Брет Виктор — исследователь и визионарий новых интерфейсов человеко-машинного взаимодействия. Я уже писал о нём в моей заметке «Интерфейсы и инструменты»:
Программистам и дизайнерам интерфейсов посвящается. Настолько мощная презентация от изобретателя новых концепций пользовательского интерфейса в Apple, что одним ретвитом @stevebest не обойдёшься.
А так как Брет человек дела, а не только слова, то он написал не просто аргументированную критику связки JS+Processing, использующуюся в курсах Khan Academy, но и потрудился тщательнейшим образом реконструировать возможный интерфейс правильной системы для обучения. Эта работа Брета показалась мне настолько увлекательной, что в голове постоянно крутятся слова seminal paper в применении к данной работе. Это действительно работа мастера. Всем программистам и дизайнерам интерфейсов читать полностью, без вариантов и отмазок.
В своей работе Брет постепенно, подход за подходом, прилагает очередную мощную идею из своего списка идей и ценностей проектирования интерфейса, и доходит до захватывающих результатов. При этом, его примеры — это не просто картинки, а живые видео-иллюстрации. Это нужно видеть!
Ближе к концу Брет отвлекается от проектирования надстройки над JavaScript, и делится видением по поводу метафор, стоящих за языками программирования.
Каждый язык программирования наполнен метафорами, но некоторые ложатся на мозг лучше, чем другие. Стандартный императивный подход использует метафору «присвоение переменным» — перемещение битов между маленькими коробочками. В отличие от черепашки Logo, эта метафора не была спроектирована для того, чтобы соответствовать тому, как люди учатся и понимают; она просто эволюционировала как тонкий слой над метафорами, использующимися в архитектуре назлежащей машины, такими как «сохранение в памяти».** Алан Кей в «The Early History of Smalltalk»: «Операторы присваивания — даже абстрактные — выражают очень низкоуровневые цели... Люди-программисты не являются машинами Тьюринга, и чем меньше их программные системы требуют техники от Тьюринг-машин, тем лучше.»
Из дальнейшего рассмотрения метафор, на которых построены некоторые другие языки программирования, мы видим, что Smalltalk (или тот же Erlang, если читать между строк) предоставляют очень вкусную метафору посылки сообщений между объектами. «Эта очень мощная метафора, потому что ролевые игры и разговоры являются мощными встроенными человеческими свойствами.»
Далее Брет Виктор цитирует одного из авторов языка Haskell:
Когда программист пишет модульную программу для решения задачи, он сначала разбивает задачу на подзадачи, затем решает подзадачи, и в конце концов объединяет решения. Способы, которыми программист может разбить оригинальную проблему, напрямую зависят от способов, которыми он сможет затем склеить решения вместе. Следовательно, для увеличения чьей-то способности модуляризировать задачи в принципе, нужно обеспечить новые типы клея в языках программирования.Функциональные языки обеспечивают два новых, очень важных типа клея... Это ключевая вещь, обеспечивающая мощность функционального программирования — оно позволяет улучшенную модуляризацию.
Недостатки модульности среды Processing являются серьёзными барьерами для рекомпозиции. Программист не может просто взять у друга модель прыгающего мячика и положить рядом его собственного прыгающего мячика. Переменные должны быть переименованы или инкапсулированы вручную, соответствующие функции "draw" и работа с мышью должны быть переплетены друг с другом, и так далее. Можно легко начать работать с существующей программой Processing и изменять её, но язык не поощряет комбинирование двух программ.Что ещё хуже, зависимость Processing'а от глобального состояния (там хранится графический контекст, например, матрицы трансформаций — lionet) убивает даже простейшие формы рекомпозиции.
Smalltalk: canvas drawEllipseCenteredAtX:50 y:50 width:100 height:100.
Processing: ellipse(50,50,100,100);
x86 assembly: push 100; push 100; push 50; push 50; call _ellipse
В Smalltalk аргументы дают контекст. В Processing функция "ellipse" точно такая же таинственная, как и в языке ассемблера. Читатель должен подсмотреть или запомнить каждый аргумент — существенный барьер для чтения.
http://worrydream.com/LearnableProgramming/
Если из моих слов выше ещё не вполне понятно, то поясню: я считаю, что Брет Виктор написал очень крутую вещь. Последняя цитата:
Частый вопрос по поводу техник, которые описаны здесь: «Как это масштабируется до реального программирования?» Это очень хороший вопрос, но это примерно как спрашивать, как двигатель внутреннего сгорания сможет помочь лошадям. Вопрос подразумевает трансформацию не того рода.
Артемий Трегубенко: «в предыдущих Humble Indie Bundle мне как-то ни одна игрушка не казалась интересной, а здесь — все! пойду сейчас покупать…»
We’ve barely had chance to digest the last Humble event, but there’s already another: the 6th Humble Indie Bundle.
But the good news for gamers this time around is that, unlike recent collections, this latest bundle is packed full of six new-to-Linux titles.
Ubuntu users can, once again, redeem their purchase through the Ubuntu Software Center.
The main five titles comprise:
Should you pay more than the average price at the time of purchase you’ll also nab:
As ever it’s you, the customer, who decides the price you pay for these games. Want to pay $1? You can. Feel that they’re worth $100? Go for it! It’s entirely your decision.
Further details, along with the all important purchase form, can be found at the Humble website.
Артемий Трегубенко: «тысячи юнит-тестов для лекарств»Calling them "our bodies' own repair kits," Susan Solomon advocates research using lab-grown stem cells. By growing individual pluripotent stem cell lines, her team creates testbeds that could accelerate research into curing diseases -- and perhaps lead to individualized treatment, targeted not just to a particular disease but a particular person.
Артемий Трегубенко: «иронично вышло: журнал принципиально стал использовать фотографии не моделей, а «обычных» женщин, чтобы читательницы чувствовали себя лучше в сравнении — а получилось наоборот : )»
A German women’s magazine which dropped models to use pictures of “real people” in its pages, has reversed the decision and will be returning to the professionals.
From now on, they would work with models “whenever we believe that it fits better for a topic or cover image,” they said. “For more diversity in Brigitte.”
They said more than 1,000 women aged between 18 and 68 had been used in fashion and beauty features - singers, housewives, policewomen and students – in the attempt to “give beauty its naturalness back and show that attractiveness has many faces.”
As well as the odd wrinkle or rounded belly, the women featured were given full names, ages and occupation in the attempt to change the game when using photographs of women.
But they claimed to have had some feedback saying that the “normal women” in the photo shoots were distracting – and even made readers feel worse about themselves than models, because they seemed so flawless, but were nonetheless not models.
The sales figures seem to have failed to follow those of the models in rounding out even a little since January 2010, the Tagesspiegel newspaper said on Friday.
It said the number of subscriptions had dropped by nearly 22 percent since the change-over, while 35 percent fewer copies were sold in shops. And although a number of factors were likely to be at fault, the “no models” policy would likely be one of them, the paper said.
Although the models will be back on Brigitte’s pages, the editors promised they would not be using very thin, “size zero”, models, and that they would continue to look for and feature non-professionals for photo shoots.
The Local/hc
Артемий Трегубенко: «наивный борец с шумом в нью-йорке хитреет и побеждает (?)»
Артемий Трегубенко: «неплохой фильм про подобие Гуантанамо»
Артемий Трегубенко: «симпатичная шпионская комедия с непроницаемым лицом»
Артемий Трегубенко: «боевичок для поднятия духа американских моряков»