Омар Ризван — исследователь и разработчик, интересующийся новыми компьютерными интерфейсами и новыми способами программирования. Ранее он работал в компанияхStripe, Khan Academy и Dynamicland, где занимался такими проектами , какGeokit. Он также является активным автором проектов, бросающих вызов парадигме , таких какScreenotate, Horrifying PDF experiments, Hijack Your Feed и многих других.
ДЕВОН: Здравствуйте, я Девон, и вы слушаете «Инструменты и ремесло» — серию бесед с дизайнерами, инженерами и изобретателями, которые формируют компьютерную технику, какой мы ее знаем. Сегодня я беседую с Омаром Ризваном. Омар проводит свое время, размышляя, сочиняя и создавая новые компьютерные интерфейсы и способы программирования. Он работал в лаборатории Брета Виктора, Dynamicland, Stripe и Академии Хана. Он также является создателем Screenotate, инструмента, позволяющего сохранять текст и происхождение скриншотов в файловой системе. Омар также создал TabFS, расширение для браузера, которое монтирует вкладки вашего браузера как файловую систему на вашем компьютере. Мне также очень повезло, что Омар является одним из моих самых близких друзей. За годы, прошедшие с тех пор, как мы познакомились в колледже, ежедневные сообщения Омара в моих групповых чатах оказали большое влияние на мое представление о компьютерах, инструментах и многом другом. Омар, большое спасибо за то, что нашел время для беседы. Я очень ждал этого.
ОМАР: Спасибо, Девон, очень приятно быть здесь.
ДЕВОН: Приведите пример компьютерного взаимодействия, которое, по вашему мнению, было бы лучше с тактильной обратной связью?
ОМАР: На вашем компьютере, ноутбуке или телефоне есть множество объектов. Есть окна, есть вкладки, есть файлы. Мне кажется, что часто я хочу почувствовать, что мне просто хочется взять это окно, подвигать его и почувствовать, где оно находится. Я не знаю, считается ли это тактильной обратной связью в узком смысле, когда в телефоне есть вибромотор и он вибрирует, когда вы что-то делаете. Но я думаю, что ощущение того, что можно действительно прикасаться к предметам в компьютере и использовать не только глаза, — это то, чего мне очень хочется.
ДЕВОН: Почему это важно?
ОМАР: Часто я думаю о вычислениях скорее так: есть некое чувство, которое я испытываю, и которое я хочу получить на этом внутреннем уровне. Возможность перемещать предметы на ощупь. Мы пользуемся пальцами и руками с тех пор, как стали обезьянами, и мне кажется, что в них есть много тонкостей, которых не понимаешь, когда просто манипулируешь сенсорным экраном или мышью и используешь глаза, чтобы указывать на вещи.
Я бездумно просматривал меню в Chrome
подумать о том, сколько пунктов меню посвящено управлению различными видами виртуальных объектов («закладки», «вкладки», «окна»)
ДЕВОН: Да. Кажется, что многие компьютерные и программные разработки делаются на основе оптимального способа сделать что-то или каких-то очень измеримых вещей, что очень полезно. Измерение вещей очень полезно, но оно может как бы отбросить повседневные ощущения и то, в каком настроении вы находитесь, какие вещи вы скорее всего будете делать.
ОМАР: Это также связано с определенной историей и определенными технологическими ограничениями: мы можем сделать мышь, потому что мы можем сделать датчики для мыши. Мы можем поместить два потенциометра внутрь мыши, чтобы можно было определить, куда она движется по осям X и Y. Сделать мышь просто, а сделать что-то действительно тактильно насыщенное — сложно, и поэтому есть технические ограничения, которые мешают нам это сделать. Кроме того, мне интересно, существуют ли какие-то культурные ограничения, связанные с тем, как наша культура представляет себе, что значит взаимодействовать с миром. Если бы мы были выходцами из другой культуры, считали бы они важными другие вещи? Что, если бы у вас был исламский компьютер, где существует запрет на отображение изображений людей, животных? И тогда он превращается в полностью векторный дисплей, на котором можно рисовать только некие абстрактные фигуры. Как бы это выглядело?
Это своего рода позиционирование альтернативной истории. Другой пример, о котором я думаю, — 1980-е годы. В 1980-х годах у нас в США было множество персональных компьютеров, таких как Apple II и IBM PC. А в Японии был совершенно другой набор доминирующих персональных компьютеров от японских компаний, и эти компьютеры, как правило, имели гораздо более развитую графику, поскольку из-за особенностей японской письменности для выполнения базовых задач требуется более качественная графика. В то время как в США, поскольку у нас есть только алфавит, это не так. Нам не нужна такая богатая графическая система, поэтому для нас она была разработана позже.
ДЕВОН: Это немного напоминает мне недавнее эссе, которое Вы написали. Но там была сноска о том, что скорость, с которой принтер печатает лист бумаги, действительно меняет ваше отношение к нему и то, как вы в итоге его используете. Вы отметили, что «полароиды» и принтеры для печати квитанций обладают некоторой легкостью и «запиской Post-it» по сравнению с лазерным принтером, которому для печати того же документа может потребоваться 30 секунд. Что меняется, когда вы чувствуете, что можете печатать вещи очень быстро?
ОМАР: Когда вы чувствуете, что можете печатать вещи очень быстро, это становится чем-то, что вы делаете в процессе работы над чем-то. Пока вы работаете над вещью, вы думаете: «Я собираюсь распечатать эту маленькую штучку, потому что это займет всего секунду». У вас как бы есть эти эфемерные объекты, и они также чувствуют себя… Кроме того, если принтер меньше по размеру, он может быть ближе к вам. Он становится частью вашего рабочего процесса, чего не скажешь о лазерном принтере. Я думаю, что это тоже имеет смысл. Ведь если задуматься о том, для чего оптимизирован лазерный принтер, то он, скорее всего, оптимизирован для того, чтобы сидеть посреди офиса и распечатывать длинные многостраничные документы. На самом деле это совсем не тот случай использования, который меня интересует в вычислительной технике.
ДЕВОН: Вдохновившись многим из того, о чем вы говорили, я купил компьютер для своего офиса. Но с тех пор я просто оклеиваю свои стены разными вещами. Это совсем другое, я могу распечатать что-нибудь в FedEx рядом с моим домом.
ОМАР: Верно. Это как крайний вариант. Вы всегда можете просто собрать все в пакет, пойти в FedEx раз в неделю и распечатать. Но вы не будете печатать одни и те же вещи, если таков ваш рабочий процесс. Ваш экран — это ограниченное пространство, а если у вас есть принтер и если вы можете печатать вещи, то теперь у вас есть гораздо больше пространства, в котором вы можете эффективно работать, потому что вы можете разложить все вокруг своего стола. Если у вас есть что-то распечатанное, то теперь у вас есть все инструменты физического мира, которые вы можете применить к этому. Об этом мы много говорили на Dynamicland. Теперь я могу делать на нем пометки, наклеивать на него стикеры, а может быть, даже разрезать его и делать коллажи или сопоставлять его с другими вещами. Все это довольно сложно сделать на компьютере. Очень неудобно, когда 50% твоих работ — это физические вещи, а 50% — цифровые, потому что перейти эту границу довольно сложно.
Будь то печать, сканирование или что-то еще. Это часть долгосрочного видения того, что вы хотели бы сделать с помощью подобной системы. Если у вас есть объекты на компьютере, вы можете иметь их голографические проекции на своем столе, а затем вы можете втянуть их в физические объекты, если хотите их физикализировать. Или вы можете превратить их обратно в голографические объекты, если у вас есть физический объект. Это идея, которой я занимался… Поскольку компьютер существует в физическом пространстве, гораздо проще просто пересечь цифровую физическую границу, просто указывая на вещи в пространстве, где они находятся, вместо того, чтобы иметь вычислительное устройство.
Если у вас есть объекты на компьютере, вы можете иметь их голографические проецируемые версии на своем столе, а затем вы можете втянуть их в физические объекты, если вы хотите их физикализировать. Или вы можете превратить их обратно в голографические объекты, если у вас есть физический объект.
ДЕВОН: Пространство существующих устройств ввода и вывода как-то искусственно ограничено. Просто не так много вещей, которые хотя бы вошли в мейнстрим. Вероятно, существует множество различных типов устройств ввода и вывода, но люди просто не используют их.
ОМАР: Это действительно интересная область. Несколько месяцев назад я как раз рассматривал PlayStation 5. У них есть новый тактильный контроллер. Он похож на обычный игровой контроллер с кнопками, джойстиками и прочим, но, во-первых, у него очень мощный и точный тактильный мотор. Подобный контроллер есть и у Nintendo Switch, и у iPhone, я думаю, тоже. Игры могут генерировать очень тонкие вибрации, указывающие на то, что вы идете по чему-то вибрирующему, или на то, что в вас стреляют, или на что-то еще. Вы получаете очень тонкую обратную связь с высокой точностью и большим разнообразием. Плечевые кнопки, например, кнопки L и R, оснащены моторами, поэтому при нажатии на них игра может создавать различные ощущения. Вы можете почувствовать, что нажимаете на пружину, или почувствовать, что нажимаете на что-то, имеющее два упора. Таким образом, вы получаете очень тонкую обратную связь с высокой точностью и большим разнообразием. И плечевые кнопки. Кнопки L&R, по сути, оснащены моторами, так что вы можете почувствовать, как игра заставляет вас ощущать различные вещи при нажатии на эти плечевые кнопки: вы можете почувствовать, что нажимаете на пружину, или вы можете почувствовать, что нажимаете на что-то, что имеет два упора, так что ваш палец идет вниз, а затем он останавливается, и вам нужно нажать сильнее, чтобы получить другой упор. Поскольку двигатель может быть запрограммирован, двигатели и кнопки L&R могут быть запрограммированы на сопротивление различными способами.
ДЕВОН: Я думаю, что это действительно важная часть того, почему iPhone кажется людям таким приятным, потому что Apple действительно тратит много времени на обдумывание всех этих взаимодействий и пытается максимально физически реализовать их. Одно из моих любимых взаимодействий — на левой стороне iPhone есть небольшой тумблер. Это физический аппаратный тумблер. Когда вы включаете все звуки и переключаете его, он издает звук щелчка. Должно быть, здесь есть и тактильное поле, потому что возникает ощущение, что я взвожу пистолет или что-то в этом роде. Это такое приятное ощущение тяжелого металла. Я думаю, что для этого нужно проделать огромную работу, чтобы сделать последовательным весь интерфейс. Это кажется поверхностным, да и какая разница, как это ощущается? Главное, чтобы он просто блокировался. Пока она функциональна, зачем она нужна?
ОМАР: Верно. Мне также кажется, что если такое взаимодействие приносит удовлетворение, то у вас возникают другие отношения с игрой. Я хочу делать больше вещей, которые являются просто игрушками, с которыми интересно взаимодействовать, потому что мне кажется, что это задает очень высокую планку. Игра может быть интересной, потому что в ней есть сюжет, есть классные персонажи, есть система подсчета очков или что-то еще. Но игрушка должна быть интересной просто потому, что с ней интересно играть, просто от самого взаимодействия.
Мне нравится идея создания «игрушки», а не «игры» или «приложения», потому что она задает высокий стандарт: с этой вещью должно быть интересно взаимодействовать на самом базовом механическом уровне, даже если нет более серьезного сюжета или структуры стимулов.
ДЕВОН: Абсолютно. Недавно у нас был эпизод с Джонатаном Блоу, дизайнером видеоигр, и он действительно одержим производительностью своих видеоигр и тем, чтобы они были действительно хорошими. Он говорил о том, что если игра не будет действительно приятной на ощупь, люди просто уйдут, потому что им не нужно играть в вашу игру по сравнению с рабочим программным обеспечением или чем-то, что их заставил использовать начальник. Они должны пользоваться этим.
ОМАР: Верно. Я смотрел на то, каковы тактильные ощущения в телефонах Android? Насколько я знаю, они даже близко не похожи. Apple потратила значительные дополнительные средства, и это, возможно, не оправдано на бумаге, чтобы иметь … Потому что для того, чтобы иметь действительно хороший тактильный мотор, требуется дополнительное пространство в телефоне. А это, очевидно, дорогого стоит.
ДЕВОН: Об этом тоже не говорят. Этого нет ни в рекламе, ни в чем-либо подобном. Но вы приходите в Apple Store, берете его в руки и сразу же ощущаете его. Если бы мы больше сосредоточились на истории вычислений на устройствах ввода-вывода, таких как терминалы, дисплеи, принтеры, все эти вещи, а не на компьютерах и истории вычислений, как это обычно делается, как бы это изменило способ, которым дизайнеры создают интерфейсы?
История вычислительной техники, в которой основное внимание уделяется устройствам ввода/вывода (терминалы, дисплеи, сенсорные устройства, мыши, клавиатуры, датчики, сети), а не самим компьютерам
ОМАР: Я думаю, что это открыло бы многие из тех дискуссий, которые мы вели. Я думаю, что во многом поэтому не было большого движения в области компьютерных интерфейсов… Был iPhone, есть настольный компьютер. По сути, эти парадигмы интерфейса остаются неизменными с момента появления каждой из них. Ваш настольный компьютер сейчас не сильно отличается от Mac 1984 года. У меня есть гипотеза, что во многом причина этого застоя заключается в застое устройств ввода-вывода. У вас есть монитор, есть клавиатура, есть мышь или трекпад. При том ограничении, что у вас есть монитор, клавиатура и мышь, вы не можете сделать ничего лучше, чем окна, иконки, приложения и прочее, потому что устройства ввода/вывода накладывают довольно сильные ограничения на то, что вы можете делать.
ДЕВОН: Почему произошла стагнация в области устройств ввода-вывода?
ОМАР: Думаю, это вопрос из области индустрии или бизнеса. Я думаю, что мы очень хорошо освоили производство дисплеев, клавиатур и мышей. Когда у вас появляется рынок, на котором миллионы людей покупают компьютеры, вам также необходимо быть совместимым с этим рынком. Трудно делать действительно новые вещи, потому что все хотят иметь свои рабочие процессы и электронные таблицы, а это те части программного обеспечения, которые вы должны поддерживать. Некоторые из примеров того, что, как мне кажется, мы не можем делать, — это действительно богатые пространственные интерфейсы, такие как гигантские холсты с возможностью масштабирования, которые, как мне кажется, довольно неудобны при использовании мыши и клавиатуры. Я думаю, что визуальное программирование довольно неудобно с помощью мыши и клавиатуры, когда у вас есть блоки или коробки с проводами между ними. Многие странные идеи программирования, которые не сводятся к набору текста в текстовом редакторе, я считаю одной из причин того, что они не получили большего распространения, заключается в том, что их очень неудобно использовать с мышью и клавиатурой, поскольку приходится перетаскивать по одной штуке за раз.
Многие странные идеи программирования, не связанные с набором текста в текстовом редакторе, я считаю одной из причин того, что они не получили большего распространения, заключается в том, что пользоваться ими с помощью мыши и клавиатуры очень неудобно, поскольку приходится перетаскивать по одной штуке за раз.
ДЕВОН: Сенсорные экраны могут быть немного лучше для этого, например, iPad?
ОМАР: Да. Я думаю, что да.
ДЕВОН: Но тогда они тоже кажутся неуклюжими. Это может быть хорошо для относительно больших блоков, но вы не можете сделать так много деталей. Один из типов устройств ввода, которые вы часто используете, — это проекторы. Каким образом проекторы позволяют делать то, что обычные мониторы делают не так часто?
ОМАР: Первое, что приходит на ум, — это то, что проекторы позволяют работать в гораздо больших масштабах. Пока ваш защитник находится достаточно далеко, вы можете покрыть гораздо большую площадь. Если в этом есть что-то более человечное, то масштаб больше соответствует всему вашему телу, и вы не просто сидите за столом, как это происходит с ноутбуком или даже с листом бумаги или книгой. Это очень важно. Я имею в виду, что вы можете накладывать объекты на мир. Это очень похоже на то, что мы делали в Dynamicland. Я думаю, что на самом деле потенциал проекторов немного недооценен. На мой взгляд, стереотипное использование проекторов — это PowerPoint на стене в офисе и щелчки по нему. Я думаю, что можно сделать гораздо больше. Гораздо проще организовать взаимодействие между несколькими людьми.
ДЕВОН: Вы несколько раз упоминали Dynamicland. Некоторые слушатели, вероятно, не знают, что это такое. Можете ли вы описать, что такое Dynamicland?
ОМАР: Dynamicland — это исследовательский проект, в котором я проработал пару лет и который был начат Бретом Виктором. Он является своего рода исследователем интерфейсов. Цель проекта — создать некий общественный физический компьютер. Сам Dynamicland находится в этом здании в центре Окленда. В нем есть целый этаж. Идея заключается в том, что, придя в Dynamicland, вы можете оставить свой ноутбук дома. Вместо этого все здание, по сути, представляет собой единый компьютер. Конкретно это работает следующим образом: по всему пространству Dynamicland расставлены столы, а над каждым столом установлены камеры и проекторы. Вместо того чтобы иметь ноутбук, мышь, клавиатуру и экран, у вас есть объекты на этих столах, которые вы перемещаете, и это приводит в действие компьютер, а компьютер может проецировать информацию на столы. Вместо виртуальных объектов, таких как файлы, окна и т.п. на экране, у вас есть физические объекты. Обычно это листы бумаги, и вы можете перемещать эти физические объекты и направлять их друг на друга.
Другая ключевая часть системы Dynamicland, и я уже говорил с вами о том, что, как мне кажется, многие люди не замечают этого, даже если приходят и видят ее, заключается в том, что это система полного программирования. Все листы бумаги, все предметы на столе и в пространстве, каждый предмет — это маленькая компьютерная программа, и вы можете взять с полки клавиатуру, направить ее на один из этих предметов и перепрограммировать его на выполнение чего-то другого. Цель состоит в том, чтобы каждый, кто приходит сюда, знал или научился программировать, и это как бы часть социального аспекта пространства, что это также пространство программирования. В этом и заключается новизна. В прошлом существовали физические вычислительные системы, где есть целая стена, которая активируется, или есть объекты проекционной карты, но я думаю, что этот дополнительный аспект, когда вы можете перепрограммировать систему внутри системы, не имея ноутбука или настольного компьютера, — это нечто действительно новое.
Цель состоит в том, чтобы каждый, кто приходит сюда, знал или научился программировать, и это как бы часть социального аспекта пространства, что это также пространство программирования. Это то, что действительно является новшеством.
ОМАР: Это своего рода философия, которую я переношу на многие другие вещи, которыми я сейчас занимаюсь.
ДЕВОН: Если бы у вас дома была полноценная установка Dynamicland, для чего бы вы ее использовали?
ОМАР: В идеале, вы используете его для того, для чего сейчас используете свой ноутбук и телефон. Вы можете использовать его для своей обычной работы. В этом и состоит цель системы — быть компьютером в полном смысле этого слова. Это не просто образовательная система или игрушка. Это должна быть реальная система, внутри которой вы работаете.
ДЕВОН: Каковы текущие ограничения Dynamicland для достижения этой цели на данный момент?
ОМАР: Я имею в виду, что это зависит от ваших приоритетов и от того, кого вы спрашиваете. Я думаю, что есть, и это то, над чем команда работала в последнее время, — это множество технических ограничений, и есть много инженерной работы, чтобы сделать больше перепрограммируемых объектов. Позволить создавать больше видов объектов, которые не являются просто кусками бумаги. Это очень важно, потому что, когда люди заходят на сайт или видят демонстрационные образцы чего-либо, они привязываются к конкретным примерам и экстраполируют их. Например, что представляет собой вся эта система? Я думаю, что наличие большего количества примеров того, что можно сделать с помощью системы, очень важно, и в этом заключается большая часть технической работы, которую они выполняют. Я имею в виду, что многие вещи, с которыми я столкнулся, когда почувствовал себя ограниченным, были связаны с размышлениями о том, что мне делать на моем ноутбуке?
Я общаюсь с друзьями, пользуюсь Twitter, читаю книги, PDF-файлы и статьи. Многие из этих вещей по разным причинам были невозможны в системе Dynamicland. Я думаю, что это конкретные примеры того, что вы можете захотеть сделать. Возможно, у вас нет возможности подключения к Интернету, нет возможности рендеринга в высоком разрешении или отслеживания физических книг. Или что-либо еще, необходимое для решения подобных задач. Вместо этого все шло снизу вверх. Мы демонстрировали, что можно делать в системе, но не обязательно переносили рабочие процессы с существующего компьютера.
ДЕВОН: Какие аспекты системы Dynamicland кажутся действительно важными, но на самом деле являются случайными и могли бы быть выполнены совершенно по-другому?
ОМАР: То, на чем зацикливаются люди, впервые увидев систему, оказывается наименее важным. Например, есть цветные точки, которые используются для отслеживания листов бумаги. Если вы когда-нибудь увидите фотографию Dynamicland, или видео, или что-то еще, то, вероятно, первое, что вы заметите, — это цветные точки. Это действительно значок или логотип системы. Они совершенно случайны, и вы можете сделать систему, которая, на мой взгляд, была бы узнаваема как система Dynamicland, но не имела бы цветных точек. И наоборот, можно создать систему с цветными точками, которая не будет обладать ни одним из интересных свойств системы Dynamicland.
ДЕВОН: Давайте немного сменим тему. Вы упомянули, когда говорили о Dynamicland, о том, что она социальная. Я помню, вы много говорили о том, что CS107 II, класс, который вы преподавали в Стэнфорде под названием «Компьютерные системы с нуля», и офисные часы для него были очень социальным пространством. Как это выглядело и как люди взаимодействовали в этом пространстве?
ОМАР: Это было что-то вроде второго или третьего курса по CS. Вас учат языку Си, системному программированию и тому подобному. Это была экспериментальная версия класса, где я организовывал встречи, или вы как бы знали, что есть точка сбора, где люди будут в любом случае.
ДЕВОН: Если бы я вернулся в колледж, я бы постарался отфильтровать размер класса и соотношение персонала и преподавателей. Я думаю, что, будучи студентом, я не ценил этого до второго или последнего года обучения, когда я начал посещать больше небольших классов. Эти занятия почти всегда были намного лучше. Жаль, что никто не сказал мне об этом, когда мне было 18 лет.
ОМАР: Если у вас есть личные отношения, когда люди знают, кто вы, и вы пытаетесь произвести на них впечатление, дружите с ними или что-то еще, я чувствую, что это создает гораздо более сильную связь с материалом и гораздо больше мотивирует, чем если бы вы были просто частью машины и сидели в лекционном зале.
ДЕВОН: Определенно. Я думаю, что это справедливо и для изучения языков. За последние несколько лет у меня появилось гораздо больше мотивации для того, чтобы действительно хорошо изучить испанский язык, потому что мой второй половинка родом из испаноязычной страны. Мысль о том, что я смогу говорить с его мамой, действительно невероятно мотивирует. По сравнению со школой, это было круто. То есть, мне нравилось учить испанский, но это не было в глубине моего сердца.
ОМАР: Я думаю, это забавно, потому что такой образ мышления действительно делает меня гораздо менее заинтересованным во многих вещах, связанных с образованием или педагогикой, чем я думаю, я был бы, возможно, 10 лет назад. Потому что мне кажется, что это никогда не было важной частью. Всегда важна мотивация и социальная составляющая того, почему вы учитесь. Одна из самых важных вещей — если вы чувствуете, что вам нужно переключать режимы, чтобы использовать эту вещь… Пример, который я приводил в прошлом: когда я вел этот курс, у людей часто были очень неприятные ошибки в их программах. Они всегда, всегда, всегда откладывали использование отладчика для поиска этой ошибки. Мы всегда пытались подтолкнуть их к использованию отладчика, а они откладывали это до последней минуты. Они вставляли операторы печати, заставляли программу мигать или что-то еще. Это очень наглядно. Это говорит о том, что что-то не так с этим рабочим процессом или взаимодействием при переходе к отладчику.
Я думаю, что люди боятся этого, и думаю, что они боятся этого, потому что для того, чтобы вызвать отладчик, нужно попасть в другой мир. У вас есть свои обычные способы, когда вы пишете программу в текстовом редакторе, компилируете ее и отправляете на Raspberry Pi. Но теперь вы должны прекратить все это и использовать этот странный отладчик, который имеет совершенно другие команды, и вы запускаете его по-другому. Кроме того, вы как бы признаетесь себе, что не можете разобраться в этом. Я думаю, что в этом есть и своего рода эгоизм, но это чувство, что вы должны прекратить то, что вы делаете, что это обрыв и вы должны сделать что-то другое, я думаю, что это порождает большой страх. Я думаю, что это часто ассоциируется с такими инструментами, как отладчики, профилировщики и т.д. Там, где это находится за пределами вашего обычного взаимодействия с системой программирования.
ДЕВОН: Является ли это чем-то таким, что присуще всей идее отладчика, как мы о ней думаем? Или вы думаете, что если бы мы попытались разработать отладчик с учетом этой идеи, то смогли бы сделать его намного лучше.
ОМАР: Я думаю, что можно было бы сделать гораздо лучше. В смысле, я думаю, что слово «отладчик» немного неудачное. Кажется, кто-то, возможно, мой друг Уилл в Twitter, говорил об этом. Слово «отладчик» почти предполагает весь этот рабочий процесс. Может быть, вы бы не назвали это отладчиком. Я думаю, что основной вопрос заключается в том, как мы можем увидеть, что делают наши программы, осознать это и понять, почему они идут не так? Я думаю, что сейчас отладчик — это та вещь, которая способна ответить на этот вопрос и дать вам эту информацию. Но можно представить себе и другие способы, когда эта информация просто как бы присутствует в реальности, когда вы выполняете программу, и вы просто видите, как что-то появляется, и вам не нужно явно входить в программу и взаимодействовать с ней.
ДЕВОН: И еще один очень большой шаг — это просто подумать о том, чтобы использовать его. Потому что это связано с тем, что вы говорили о необходимости перейти в другой режим или совершенно другой инструмент. Когда вы работаете с одним инструментом, вы находитесь в потоке, и один шаг естественным образом приводит к другому. Вы видите что-то на экране и реагируете на это. Чтобы перейти к отладчику, нужно остановить себя и сказать: «Эй, эта новая штука, называемая отладчиком, может быть полезной прямо сейчас. Надо бы им воспользоваться». Кроме того, это может даже не прийти вам в голову, потому что у вас нет сильной привычки или каких-либо визуальных стимулов, которые бы подтолкнули вас к этому.
ОМАР: Верно. Есть также порог, вы как бы торгуетесь в своей голове, я думаю, все время, типа: «Могу ли я исправить это без необходимости идти в отладчик? Потому что если я исправлю это, не заходя в отладчик, все, что мне нужно сделать, это просто добавить этот дополнительный оператор печати или есть вещи, которые я могу сделать на полях, которые могут …». Вы пытаетесь понять: «Достаточно ли этого или мне нужно зайти в баггер?».
ДЕВОН: Одна из вещей, которая мне очень нравилась в офисных часах в колледже, заключалась в том, что все хорошо понимали разные части, и вы садились за большой стол, вместе работали над проблемами и обсуждали их. Каждый из вас уходил, как бы переняв опыт у другого. Вы говорили об этой идее местных экспертов, и, по-моему, кто-то ответил на один из ваших твитов, сказав, что это напоминает фильмы про ограбления. Как есть крошечный человек, который ползает в пространстве, а есть большой сильный парень или что-то в этом роде. Не могли бы Вы немного рассказать об этой концепции и о своем опыте работы с разными людьми с разными сверхспособностями?
ОМАР: Я думаю, что в твите, в котором это прозвучало, речь шла о грамотности и, возможно, о вождении. Люди часто делают такое сравнение, что программирование — это как грамотность. Это как уметь читать и писать. Я думаю, что такое сравнение приводит к тому, что это довольно проблематичный взгляд на то, что это значит, на то, что грамотность означала исторически. Когда не многие люди умели читать и писать, а умение читать и писать было чем-то вроде сверхспособности, и это делало тебя лучше других. Или давало доступ к тому, к чему раньше не было доступа. Я думаю, что это своего рода проблематичный индивидуалистический взгляд на то, что значит обладать навыками. Где вы — парень, владеющий грамотой, и это позволяет вам делать всевозможные вещи. На самом же деле, и я думаю, что на это указал один искусствовед в Twitter, часто в сообществе есть человек, который умеет читать и писать, и это накладывает на него определенные обязанности по отношению к остальным членам сообщества.
Мне очень интересно, как мы можем рассматривать такие вещи, как «грамотность», «мобильность», «умение программировать», как инструменты, которые часто являются общими для всего сообщества, а не только как навыки, которыми обладает отдельный человек
Возможно, именно сообщество в целом является правильной единицей анализа. Деревня, район, город или что-то еще — возможно, это правильная единица анализа, а не отдельный человек.
ДЕВОН: В прошлом мы говорили о том, что длительное пребывание в системе может помочь Вам понять то, что Вы не сможете понять при неглубоком взаимодействии с ней. Чему вы научились, проведя много времени в определенной системе?
ОМАР: Наверное, на ум приходят две системы, но я расскажу сначала о текстовом редакторе Acme, которым я пользовался фактически целое лето. Acme — это встроенный текстовый редактор для операционной системы Plan 9. Это была исследовательская операционная система от Bell Labs. Она должна была стать преемницей Unix и была создана в 80-х годах. В Unix есть Vi или Nano— встроенные текстовые редакторы. Эквивалентом этих редакторов в Plan 9 является Acme. Acme действительно интересен тем, что в нем вы должны использовать мышь как можно чаще. Мне нравится этот подрывной аспект, что вместо того, чтобы быть хардкорной компьютерной штукой, в которой вы все время сидите на клавиатуре, вы, наоборот, все время сидите на мыши. Я имею в виду, что в Интернете можно найти демонстрационные версии этой системы. Это гораздо более гибкий интерфейс, чем практически все графические программы, которые я когда-либо использовал.
В процессе работы, редактирования файлов в Acme, программирования, что бы вы ни делали в текстовом редакторе, вы как бы создаете рабочую область и палитру операций, которые вы выполняете. Вы можете щелкнуть на любой операции в программе, чтобы выполнить ее. Сначала вы набираете кучу команд, а затем щелкаете по ним средней кнопкой мыши, чтобы выполнить их. Но со временем вы создаете палитру всех команд, которые вы уже вводили, и просто щелкаете на них снова, чтобы выполнить их еще раз. На самом деле вы разрабатываете этот интерфейс для конкретного действия, которое вы делаете в данный момент. Он кажется гораздо более гибким, мощным и настроенным на тот час или день, когда вы работаете. В отличие от большинства текстовых редакторов, где можно сделать сочетание клавиш, но вы не станете этого делать, если это не то, что вы действительно постоянно делаете.
ДЕВОН: Понятно. Он как бы создается и накапливается вокруг вас по мере того, как вы его используете.
ОМАР: Да. И в очень малых масштабах, а не только в масштабах недель, месяцев или когда бы вы ни взялись за настройку своего текстового редактора. Вы как бы постоянно настраиваете его под то, что вы делаете в данный момент.
ДЕВОН: Вы делаете это неявно, просто используя его, в отличие от необходимости принимать решение?
ОМАР: Верно. Я бы сравнил это с тем, что я думаю о Screennotate— приложении для снятия скриншотов, которое я сделал. Это то, что вам не нужно идти и делать что-то еще. Вы просто делаете обычную очевидную вещь, и это приносит свои плоды. Это приложение для Mac и Windows. Я просто опишу процесс работы на Mac. В основном на Mac есть комбинация клавиш, с помощью которой можно сделать снимок экрана и опубликовать его в Twitter или отправить кому-то. Все, у кого есть Mac, могут это сделать. Screenotate устанавливается на компьютер и подключается к сочетанию клавиш, которое используется для создания скриншотов. Вам не нужно делать ничего другого, кроме того, что вы уже делаете. Теперь, когда у вас есть Screenotate, каждый раз, когда вы делаете скриншот, Screenotate сохраняет его и распознает текст внутри скриншота. Он распознает название файла, из которого сделан снимок, или URL-адрес, с которого сделан снимок.
Демо-версия программы Screennotate. Изображение от Омара Ризвана.
ОМАР: Любая информация о том, откуда был сделан снимок экрана, сохраняется вместе со снимком. После того, как вы установили программу на некоторое время, у вас появляется целый архив того, что вы отправляли людям, или того, что вы публиковали, или того, что вы сохранили. У меня, например, сейчас 30 000 скриншотов, и вы можете искать по определенным фразам или по веб-сайтам, с которых они были сделаны, и они сразу же появляются на экране. Это очень мощный, гибкий инструмент… Это почти как система ведения заметок, но она ориентирована на создание скриншотов. Это жест, который вы уже делаете. Если вы похожи на меня, вы и так постоянно это делаете, а это просто дает вам дополнительную функциональность бесплатно.
ДЕВОН: Мне очень нравится время от времени заглядывать в свою папку Screenotate. Наверное, раз в два месяца я просто просматриваю ее и думаю: «Точно, я думал об этом, или я говорил об этом». У него есть и социальный аспект: для меня он ориентирован на то, чем я делюсь с другими людьми. Это также напоминает мне: «Вот так. Я говорил об этом со своим другом Омаром». Это так приятно. Я всегда немного улыбаюсь, когда просматриваю его.
ОМАР: Да. Скриншот имеет весь этот богатый эмоциональный контекст. Забавно, но я задаюсь вопросом: а может быть, дело в том, что это изображение и оно относится к очень конкретной ситуации… Если у меня есть скриншот, на котором я разговариваю с вами в 2015 году или в каком-то другом, это будет оригинальный шрифт и оформление Facebook Messenger от 2015 года и все такое. Или если у меня есть скриншот из The New York Times, то на нем будет шрифт The New York Times того года, когда он был сделан. Это очень конкретное изображение, которое, как мне кажется, несет в себе много истории. В том смысле, что если бы оно было скопировано и вставлено в мои заметки или что-то в этом роде, оно бы не сохранилось. Веб-сайты часто оказываются на удивление хрупкими, и архив на компьютере — это то, что сохранилось. Вообще, это было бы интересно проверить. Мне кажется, что у меня есть много скриншотов, где оригинального сайта уже нет, и, возможно, мой скриншот — это единственный архив.
ДЕВОН: Время от времени Google Photos выдает мне небольшое push-уведомление: «Эй, мы нашли кучу скриншотов. Хотите, чтобы мы их удалили?». Подразумевается, что «они, конечно, бесполезны. Разве не мило с нашей стороны помочь вам выбросить мусор?». Какая-то часть меня говорит: «Эй, это почти оскорбительно. Эти вещи — не мусор. Это действительно очень важно для меня». Это заставляет меня задуматься о том, что, возможно, другие люди не используют скриншоты таким же образом, или, может быть, Google просто не в курсе дела. Не знаю.
ОМАР: Мне кажется, что если вы проводите много времени за компьютером или телефоном, то ваши скриншоты так же важны, как и ваша фотогалерея фотографий, сделанных в реальной жизни. Это то, что вы делали — вот что значат ваши скриншоты.
ДЕВОН: Одна из фраз, которую Вы иногда бросаете, говоря о Screenotate и скриншотах, а также о других технологиях и рабочих процессах, — это идея народной практики. Не могли бы вы объяснить, что это значит и какие примеры можно привести?
ОМАР: Я не знаю, есть ли у меня определение этого понятия, но оно означает те вещи, которые люди делают на компьютере, особенно конечные пользователи, например, непрограммисты, вещи, которые люди делают не так… Вы не думаете, что это правильный способ сделать эту вещь, но почему-то многие люди делают именно так. Например, если сделать скриншот, чтобы сохранить его, вместо того чтобы сохранить веб-страницу или скопировать текст куда-нибудь, то в этом есть что-то неправильное. Потому что на скриншоте обычно нет текста, он получается с потерями и представляет собой просто плоское изображение. Или иногда, когда я сижу в поезде, заходят люди и фотографируют карту на стене поезда своим телефоном, а потом эта карта оказывается в их фотогалерее. Я думаю, что это своего рода народная практика, потому что в каком-то смысле правильный способ получить карту на телефон — это скачать приложение или зайти на сайт железнодорожной системы и получить карту в формате PDF.
Народная практика, копирование и вставка, скриншоты
Но я думаю, что в этом есть чему поучиться, потому что кажется, что это на самом деле проще и лучше, чем пытаться получить PDF для этого. Не зря же люди занимаются народной практикой.
ДЕВОН: Мне кажется, что это связано с доверием, или, по крайней мере, с теми ответами, которые вы дали, с теми примерами, которые вы привели. Потому что, возможно, у меня был опыт создания карты на Google Maps, и она действительно очень хороша и дает мне всю необходимую информацию. Но я не очень верю в то, что Google Maps не упадет в какой-то очень важный момент. Я делаю скриншот на случай, если пропадет сигнал или что-то в этом роде. Если бы я был полностью уверен в том, что Google Maps никогда не даст сбой, я бы, наверное, так не делал.
ОМАР: Я думаю, что это также ощущение того, что, я также говорю об этом с файлами, есть ощущение того, что скриншот на вашем телефоне — это объект. Он находится в вашей фотогалерее, вы знаете, как с ним работать. У него есть физика, которую вы понимаете. Вы знаете, как с ним работать, и он будет там, вы знаете, как до него добраться, и вы знаете, что он не исчезнет или не потеряется, если вы случайно найдете другой адрес, как это может сделать Google Maps. Думаю, именно это вызывает доверие. Я думаю, что в вашем телефоне или на вашем компьютере гораздо меньше вещей, чем должно быть, которые обладают подобной предметностью.
ДЕВОН: Это немного похоже на динамические интерфейсы, в которых есть все эти плюсы, где они могут реагировать на ваши действия и все эти очевидные, приятные вещи. Но при этом возникает ощущение, что вы арендуете пространство, а не владеете им.
ОМАР: Да. Google Maps, я думаю, является отличным примером, потому что он может быть только в одном месте одновременно, и вы, по крайней мере, я, часто обнаруживаю, что я как бы жонглирую, типа: «Хочу ли я отказаться от своего состояния здесь, чтобы пойти поискать что-то еще? Стоит ли оно того?» Я думаю, что это также модель приложения, когда приложение — это одна вещь, и оно занимает весь экран вашего телефона, и в нем может быть только один штат за раз. Если бы у вас было несколько копий Google Maps или чего-то подобного. Я имею в виду, что это более распространено на настольных компьютерах, но все равно, я думаю, что у вас есть несколько вкладок или что-то еще, это очень похоже на то, что Google контролирует ситуацию. Вы можете делать подобные вещи с фотографиями или фотографии дают вам такие свойства, которых нет у обычного программного обеспечения.
ДЕВОН: В следующей части я перечислю несколько твитов, а затем задам вам вопрос по ним. Номер один: какой краской подписывают незаконченные части пользовательского интерфейса программы? Она может размазать указатель мыши или палец, если вы не будете осторожны. Твит номер два — потратить месяц на хождение из одного конца кодовой базы в другой. Твит номер три: не закрывающаяся вкладка. Твит номер четыре: всплывающее окно как своеобразный джинн. Можно продолжать и продолжать. На самом деле я собрал их 20, и, наверное, есть еще больше, которые я просто не нашел.
ОМАР: Я вроде как собирался порыться и… Я даже не знаю. Что-то вроде коллекционирования. Я даже не знаю, что из этого получится…
ДЕВОН: Что их объединяет?
ОМАР: Я думаю, что все они направлены на то, чтобы попытаться взять вещи в компьютере и придать им некоторое богатство, текстуру и воплощение вещей в реальном мире, а также масштаб. В компьютере все как бы нетронуто, закрыто и идеально, его нельзя потрогать, оно не разлагается, и все как бы помещается в этот 11-дюймовый прямоугольник. Я думаю, что многое из того, что я пытаюсь делать в Twitter, — это пытаться подорвать это или высмеять, или что-то еще, и сказать: «Что, если бы вы могли прогуляться по своей кодовой базе?». Типа, ваша кодовая база сложнее, чем многие здания, по которым вы ходите. Почему бы вам не иметь возможность почувствовать это на своем теле, или почему бы вам не нанести мокрую краску на ваше приложение, если оно сделано не так, как мокрая краска на стене? Ведь у нее есть то же свойство — она еще не закончена, и почему вы не можете почувствовать это на собственном опыте?
Знак «Мокрая краска» на незавершенных частях пользовательского интерфейса программы
ДЕВОН: Да. Материал на самом деле не говорит вам о его состоянии или … Да.
Омар: Я думаю, что, как и мокрая краска, это вроде бы случайность, но я все равно хочу этого. Это не обязательно то, что желательно в реальном мире, но в то же время есть что-то приятное в том, что есть все эти побочные каналы и маленькие способы указать информацию без того, чтобы люди явно вывешивали знаки.
ДЕВОН: Какие данные Вы вводите в свой мозг, чтобы придумать что-то подобное?
ОМАР: Я имею в виду, я думаю, что во многом это связано с опытом жизни и работы с такими системами, как Acme или Dynamicland, с которыми я провел два года. В Acme я провел лето. Я думаю, что это дает вам очень глубокое ощущение того, как вы можете делать вещи на компьютере, и способов мышления о вычислениях. Я думаю, что такое ощущение можно получить, только погрузившись в работу. Я не думаю, что это чувство можно получить, читая о системе или написав о ней. Я думаю, что это ощущение может возникнуть только при погружении в систему. Я чувствую, что сейчас, когда я пользуюсь компьютером, когда я сижу в Twitter, программирую что-то или что-то еще, какая-то часть меня постоянно испытывает низкий уровень недовольства по поводу множества различных вещей. Почему я не могу сделать это? Почему я не могу сделать несколько вещей?
ОМАР: Почему я не могу верить в то, что компьютер будет работать? Когда я программирую, почему я не могу просто видеть, что происходит? Почему я не могу получить нужные мне данные из другого места и иметь их здесь? Скорее, чтобы я мог увидеть это, чтобы понять, не идет ли моя программа не так. Мне кажется, что многое из того, что я пишу в твиттере, происходит от того, что я что-то делаю, и у меня возникает ощущение, что я хочу, чтобы это работало по-другому.
ДЕВОН: Что мы должны сделать, чтобы достичь этих целей?
ОМАР: Многое из того, что я делаю, — это попытка спровоцировать людей и сделать эти маленькие… Иногда это демо-версии. Иногда это просто поразительные образы. Я думаю, что это, вероятно, первый шаг. Я относительно против того, чтобы пытаться сформулировать какую-то философию, манифест или что-то вроде того, что должно быть сделано. Я больше склоняюсь к тому, чтобы сказать: «Хорошо, давайте создадим набор действительно ярких и конкретных образов, это будет что-то, что будет круто или что будет хорошо, как мы хотим». И иметь это в голове как якорь того, каким может быть вычисление. Я думаю, это первый шаг. Я думаю, что для создания новых пользовательских интерфейсов и новых способов работы с компьютером нужно много работать, и есть много вещей, которые стоят на вашем пути. Может быть, нам просто придется с этим справиться, а может быть, появятся более совершенные инструменты, которые помогут нам программировать. Но я думаю, что именно это часто является причиной того, что мы не видим большего.
Меня гораздо больше привлекает мысль: «Хорошо, давайте создадим набор действительно ярких и конкретных образов, это будет что-то, что будет круто или приятно в том смысле, в котором мы хотим.
Меня гораздо больше привлекает мысль: «Хорошо, давайте создадим набор действительно ярких и конкретных образов, которые будут крутыми или приятными в том смысле, в котором мы хотим».
ДЕВОН: Почему Вы предпочитаете подход, основанный на ярких образах, а не на манифестах?
ОМАР: У меня есть неявное предположение, что люди думают именно так. Если они слышат образ или идею и могут представить ее в своей голове, то это то, к чему они будут возвращаться. В то время как философия или свод правил — их приятно писать, но я не знаю, действительно ли они так полезны для творчества, как просто набор образов. Может быть, позже, через несколько лет, я смогу сформулировать философию, но я думаю, что образы — это главное.
ДЕВОН: Я думаю, что с вербализованными принципами дело обстоит так: они могут звучать как очень четкие описания, как четкие тесты, которые вы можете применить. Но когда дело доходит до реального создания чего-либо, становится гораздо менее понятно, отвечаете ли вы этому принципу или противоречите ему. С ценностями компании в технологических компаниях часто возникает такая проблема: вы собираетесь на совещание и пытаетесь выбрать между A и B, а один человек говорит: «Ну, A больше соответствует ценностям нашей компании, потому что бла-бла-бла». А другой говорит: «Нет, Б на самом деле больше…». Ни один из них не является абсолютно неправильным, по крайней мере, в том виде, в котором написаны принципы. В отличие от этого, я думаю, если у вас перед глазами есть конкретный пример, вы можете сказать: «Ну, эта вещь больше похожа на ту вещь, и у них есть общие характеристики». Это более конкретно. Но предметы имеют очень высокую размерность, поэтому в какой-то момент и это начинает рушиться.
ОМАР: Я думаю, что принципы — это недостатки. Они похожи на пепел или продукт выделения из этой очень богатой вещи в вашей голове, которую вы пытаетесь записать в виде принципов, но на самом деле вы не понимаете большую часть этого. А если другие люди и понимают, то только потому, что им удалось реконструировать то, что было у вас в голове. Но на самом деле в их письменном тексте этого нет. В вашей голове, где у вас действительно богатое эстетическое чувство, это не является железным законом, или вы готовы обменять это на другие вещи, потому что у вас есть это целостное чувство того, что вы считаете хорошим. Но когда вы записываете это на бумаге, это действительно сокращенный, жесткий набор принципов.
Я думаю, что принципы — это недостатки. Они подобны пеплу или продукту выделения из этой действительно богатой вещи в вашей голове, которую вы пытаетесь записать в виде принципов, но на самом деле вы не получаете большую часть этого.
ДЕВОН: И универсализация тоже. Компьютеры, как мне кажется, не обязательно должны быть такими, но за последние несколько десятилетий они стали очень универсальными.
ОМАР: Верно. Как будто есть одна часть программного обеспечения в домене, которую используют все, миллионы людей используют эту вещь. Я думаю, что для компьютера частью цели является смягчение или противодействие этому.
ДЕВОН: Есть все цели, связанные с достижением веб-масштаба или чего-то подобного. Это, я думаю, правильная цель для множества различных вещей, но, как мне кажется, в итоге она ущемляет множество небольших, более личных проектов, которые вы можете делать. Я думаю, что Робин Слоун очень хорошо описал это. Думаю, именно вы поделились со мной этой мыслью, сказав:«Почему бы нам не иметь больше программных проектов, которые похожи на домашнюю еду?«.
ОМАР: Верно. Да, я это видел.
ДЕВОН: Вы просто делаете его для одного или двух других людей. Или что-то в этом роде.
ОМАР: Зачастую, когда речь идет о веб-масштабах, создается впечатление, что они намного лучше того, что было раньше, по одному или нескольким параметрам. На самом деле, есть веские причины для их внедрения. Но при этом вы теряете многие другие возможности. Или же руководство просто вынуждает вас принять их.
ДЕВОН: Я думаю, что многие из них действительно фантастические. Единственное, что меня беспокоит, — это то, что они высасывают часть воздуха из комнаты. Потому что вы можете заработать много денег и добиться большого успеха, сделав «бизнес в Интернете» или что-то в этом роде, и в итоге мы не уделяем столько внимания другим вещам, которые может делать компьютер.
ОМАР: Да. Я имею в виду, что это также напоминает мне о том, что мы говорили о вводе/выводе и вычислениях. Я думаю, что это связано с тем, что многие люди используют компьютеры не для вычислений, а просто для общения с другими людьми. Будь то электронная почта, обмен сообщениями или создание общих документов. Я думаю, что вопрос о том, какое программное обеспечение стоит на компьютере, — это также вопрос о том, как люди общаются друг с другом? Как люди хотят общаться? Может быть, мы не хотим отдавать все это на откуп нескольким программам? Может быть, у людей должно быть свое собственное программное обеспечение, то есть то, как они хотят общаться с конкретным обществом, в котором они находятся.
ДЕВОН: Какое программное обеспечение вы хотели бы создать, которое было бы больше похоже на домашнюю еду?
Я думаю, что вопрос о том, какое программное обеспечение стоит на компьютере, — это также вопрос о том, как люди относятся друг к другу? Как люди хотят общаться? Возможно, мы не хотим отдавать все это на откуп нескольким программам.
ОМАР: То есть, я думаю, что в какой-то степени Screenotate именно такой. Я имею в виду, что это определенно яркий пример того, что я сделал эту программу для себя и использую ее для себя, и это все еще, я думаю, первая проверка того, хочу ли я внести в нее какие-то изменения. Я хочу понять, принесет ли это пользу тому, как я его использую? Другой пример: у меня есть расширение для браузера TabFS. Одна из причин, по которой я его создал, заключается в том, что я был разочарован жесткостью и недостаточной расширяемостью моего браузера. Одно из направлений, в котором я хочу двигаться, — использовать его для создания небольших рабочих процессов, небольших расширений или скриптов, связанных с тем, что я делаю на компьютере, что гораздо легче, чем создавать целое расширение для браузера. Чего я делать не собираюсь, потому что это очень трудоемко. TabFS, надеюсь, сделает такие вещи возможными.
ДЕВОН: Не могли бы вы немного рассказать о том, что представляет собой TabFS? Что такого можно сделать с помощью TabFS, чего нельзя сделать или что было бы сложнее сделать с помощью более традиционного расширения?
ОМАР: Да. TabFS — это расширение для браузера. Оно открывает все вкладки, открытые в браузере, как файлы в файловой системе. Они похожи на синтетические файлы, поэтому каждая открытая вкладка превращается в папку на вашем компьютере, а затем в ней появляются файлы, и вы можете получить HTML-содержимое вкладки, получить ее заголовок, потыкать внутри вкладки, отправить скрипты для выполнения внутри нее и т.д. Можно как бы перемещаться туда-сюда между файловой системой и браузером. Это означает, что вы можете создавать сценарии для своего браузера, используя любые языки сценариев, которые вы используете на своем обычном компьютере. Это могут быть однострочные сценарии или небольшие файлы. Вы можете получить эффект от написания целого расширения браузера, просто написав эти маленькие легковесные скрипты. На самом деле я использую его для нескольких вещей прямо сейчас.
У меня в строке меню есть небольшой индикатор, который показывает, сколько вкладок у меня открыто. Это просто просмотр количества папок в файловой системе TabFS. Это очень удобно. Я просто нажимаю на него время от времени, и он обновляется и сообщает мне, что у меня открыто 30 вкладок или что-то в этом роде. Кроме того, у меня есть несколько скриптов. Я пишу эти обновления по электронной почте для моего GitHub Sponsors, запускаю скрипты, и они превращаются в скриншот твита и вставляются в то, что я пишу. Для этого используется TabFS, обеспечивающая связь между моим текстовым редактором и материалом в нем и веб-браузером, в котором открыт твит. На самом деле такую связь было бы довольно сложно обеспечить, если бы мне пришлось писать целое расширение для браузера только для этого. На самом деле это возможно только потому, что TabFS уже предоставляет этот коммуникационный слой, с помощью которого я общаюсь с браузером с остальной части моего компьютера.
ДЕВОН: Мне бы очень хотелось, чтобы вы сделали Twitch-стрим или какое-нибудь видео, где бы вы рассказывали об этих небольших инструментах, которые вы создали здесь и там, показывали их и демонстрировали, как вы их используете. Потому что я думаю, что со многими из этих вещей, это также относится к вашей работе в Dynamicland, где я часто и нахожу, что трудно понять, что именно происходит, пока я не увижу конкретный пример.
ОМАР: Видео часто является хорошим средством для таких вещей. Когда вы пишете или говорите о чем-то, вы не знаете того, чего не знает другой человек, или часто упускаете важные детали, которые на самом деле помогли бы исправить его понимание.
ДЕВОН: Это, я думаю, одно из тех мест, где скриншоты действительно сияют. Здесь вы получаете целый контекст. Не только образ и стиль, но и возможность увидеть, что видел другой человек, в отличие от описания того, что видел другой человек.
ОМАР: Без скриншота, я думаю, вы часто пытаетесь сначала объяснить концептуальную модель, а это не совсем… Может быть, лучше просто быть очень конкретным, дать вам скриншот и сказать: «Вот эти вещи вы нажимаете».
Продолжайте корректировать свой язык в сторону уменьшения конкретных единиц, пока они не начнут понимать его, а затем медленно возвращайтесь к большей абстракции, пока они следуют за вами
ДЕВОН: Я хочу задать Вам один заключительный вопрос. Какие три идеи, которые Вы отложили, Вы хотели бы реализовать в будущем?
ОМАР: Первое, которое я выделил всего несколько месяцев назад, это то, что называется web fork, это своего рода веб-браузер, над которым я работал. Идея заключается в том, что вы можете мгновенно переключать вкладки в веб-браузере за несколько миллисекунд. Если вы находитесь на странице, вы можете просто создать ее копию, щелкнуть на чем-либо и открыть ее в новой вкладке. Вы можете щелкнуть на чем угодно и открыть это в новой вкладке, потому что новые вкладки могут быть просто продублированы предыдущими вкладками. Это трудно объяснить, но это то, над чем я хочу вернуться к работе. У него есть долгосрочный аспект — быть браузером, который находится под моим контролем, где я могу отслеживать и как бы визуализировать, что на самом деле делают эти страницы и какие связи они устанавливают с другими местами? Я не знаю. Есть целое направление или несколько различных направлений, которые, на мой взгляд, очень интересны: операции, которые вы можете выполнять на любой вкладке, и визуализация гораздо большего количества происходящего, чем обычно показывает ваш компьютер.
Мне нравится идея о том, что ОС могла бы предоставлять больше операций, которые ощущаются как надежные и прочные, как, например, создание скриншота или копирование и вставка (здесь вы всегда знаете, что можете положиться на fork/snapshot/rewind).
ОМАР: Вторая вещь — мы немного говорили об этом, но в начале этого года я занимался тактильными штучками в iPhone. Есть замечательная демонстрация от Apple, и вы тоже с ней играли, где вы можете отскакивать этот шарик от боковых сторон телефона, наклоняя его. Это странно впечатляет, и это всего лишь примерный код Apple. Я еще не видел ни одного коммерческого приложения, которое было бы настолько же хорошо, и мне кажется, что это показывает потенциал этих тактильных систем. Я также играл с контроллером PS5, который, как мне кажется, уже в основном перепрограммирован. Я думал о новых интерфейсах, использующих их. Я имею в виду, что они были очень ограничены, поэтому я думаю, что нужно быть очень осторожным, чтобы придумать что-то, что будет приятно. Это очень неинтуитивные рельсы того, что хорошо ощущается, а что не очень хорошо с этими тактильными системами. Кроме того, они предназначены для определенных условий, например, для перемещения персонажа в видеоигре.
Но мне кажется, что есть еще много вещей, которые можно было бы сделать, чтобы обеспечить более динамичный процесс разработки. Например, если вы пишете на Python или Ruby, вы можете работать очень, очень быстро, а не ждать несколько минут или часов, чтобы скомпилировать вашу вещь. Кроме того, существуют языки, ориентированные на конкретную область, которые могут представлять конкретные концепции. Это стало возможным только сейчас, поскольку многие из них были подвергнуты реинжинирингу, и производители оборудования больше не могут диктовать, как их программировать. Я думаю, что это последний из трех пунктов. Это также связано с моим интересом, мы не так много говорили об этом, но мой интерес к компьютерам, где я действительно понимаю все, что происходит. Я думаю, что это одна из составляющих того, что есть аппаратные средства, где вы программируете аппаратные средства, а затем можете использовать их для взаимодействия с другими аппаратными средствами без необходимости в драйвере. Я не знаю, имеет ли это смысл, но это мое видение того, почему это полезно или интересно.
ДЕВОН: Не могли бы Вы рассказать об этом немного подробнее?
ОМАР: Ну, с этим мы немного столкнулись в Dynamicland. У вас есть комната с кучей проекторов, камер и кучей компьютеров. Один из вопросов — как разговаривать с камерой? У вас есть камера, направленная на стол, и она видит страницы. Как вы получаете изображения с камеры в программное обеспечение на вашем компьютере? Ответ заключается в том, что камеры подключаются к USB-порту, а затем необходимо знать определенные API в Linux, и вы спрашиваете: «Можете ли вы передать мне изображение с камеры?». На самом деле это очень сложно. Для того чтобы это работало, необходимо правильно выполнить множество действий. Вы полагаетесь на этот огромный стек из миллионов строк кода Linux и драйверов, тонну кода, и не можете контролировать многие вещи, которые вы хотели бы контролировать. Например, тайминг, сжатие и все остальное.
Если бы вы контролировали свое собственное оборудование, вы могли бы запускать его на той скорости, которая вам нужна, и вы могли бы вести переговоры в протоколах, которые вы хотите иметь возможность общаться с подобными частями оборудования. Или, по крайней мере, это своего рода мечта. Мечта заключается в том, что это будет гораздо более простая система, потому что вам не нужен Linux, не нужны эти странные драйверы и не нужно иметь точно такие же аппаратные средства, потому что вы можете просто иметь эти куски глины, сидящие в центре вашей системы, которые вы трансформируете, чтобы они выполняли ту работу, которая вам нужна.
ДЕВОН: Похоже, мне придется пригласить вас снова на передачу, как только вы проведете много времени в этих системах и узнаете о них больше. Все это звучит очень интересно.
ОМАР: Да.
ДЕВОН: Круто. Большое спасибо, Омар. Это действительно интересная беседа.
ОМАР: Да, это очень весело.
ДЕВОН: Это действительно хороший повод углубиться в Вашу работу, которая всегда казалась мне очень интересной, и о которой всегда было интересно поговорить. Но это не происходит органически. Спасибо. Надеюсь, скоро увидимся.
ОМАР: Спасибо.