2011-06-20

Клёны

Люблю клёны.

Когда-то одним из самых любимых деревьев был "американский клен", который рос в России как сорняк, на всех пустырях. Это дерево, наряду с кустами акации, было просто неотъемлемой частью моего детства. Мы лазили по толстым стволам, делали луки и свистульки из гладких зеленых побегов, грызли горьковатые ножки листьев.

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

Здесь, в Pacific Northwest, кленов очень много и разных. Когда мы купили дом, на домашнем участке уже произрастало то высокое дерево, который заваливает участок осенью огромными листьями. Первое, что мы посадили, как хозяева, был небольшой кленовый куст под окном. Он должен был радовать нас осенью золотистой листвой, но у него это пока не очень получается. А сегодня под другим окном посадили еще один, маленький мелколистовой японский кленчик. Посмотрим осенью, что он умеет.

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

2011-06-19

Ashland Lake Trail

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

2011-06-12

Шишки

Это корейская пихта (Korean Fir). С удивлением узнал, что fir = пихта, а вовсе не ель, как я думал. А ещё у пихты шишки торчат вверх, а не вниз, как у елей и сосен. Век живи - век и педь.

2011-06-08

Озеро двадцать два.



Озеро двадцать два названо в честь реки двадцать два, которая из него вытекает. А река названа потому, что это двадцать вторая река, пересекающая старую железную дорогу Монте Кристо. Все просто. Непонятно лишь, почему нет рек и озер с другими номерами.

Кстати, из каждого горного озера вытекает река. Очевидно, что иначе и быть не может, не так ли?

Зачем нужен фон?

Фон нужен не дизайнеру, как некоторые думают, глядя на ужасные яркие и мешающие читать фоновые картинки. Неяркий, едва заметный фон нужен нашему глазу чтобы сделать две вещи: сфокусироваться и свести правый с левым.

Фокусируется глаз так же, как и фотоаппарат, по максимуму высоких пространственных частот. Слабый высокочастотный низкоконтрастный фон помогает это сделать и легко удерживать фокус при чтении. Мелкий четкий текст выполняет ту же функцию. А вот крупный текст со сглаженными границами на белом или черном фоне, да еще с clear-type, помогает слабо, поэтому глаз фокусируется по слабозаметной грязи на экране, но неуверенно, потому глаза быстро устают.

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

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

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

Вот у Apple я вижу хорошее и грамотное отношение к фоновым картинкам. Изо всех телефонов, которые посмотрел, iPhone интерфейс наиболее комфортен, на нем легко и приятно читать, поскольку на нем во многих местах добавлены ненавязчивые фоновые текстуры.

2011-06-02

Windows 8

Наверняка все уже видели картинку и смотрели видео.

На планшете выглядит красиво. Ярко, цветно, инновационно. А на десктопе - странно. Вообще, интерфейс W2K был строгим и логичным, затем стал рассцвечиваться, и в Windows 7 стал похож на Disney Channel. А Windows 8 - уже, пожалуй, Cartoon Network. На выставке это красиво, в телефоне тоже пойдет, но на большом экране, работать, сидеть 8 часов смотреть мультики? И как в этом стиле будет выглядеть офис или Visual Studio?

Полагаю, что народ будет это торжество примитивизма на десктопе отключать и работать в привычном мелком и сложном интерфейсе, хотя понятно, что этот привычный режим уходит в прошлое вместе с привычными С++ приложениями. Мне стало немного грустно, мои эстетические вкусы в этот новый windows плохо вписываются, да и как-то уже бессмысленно писать традиционные Win32 программы под эту платформу.

Вообще последнее время API меняется так быстро, что я не успеваю даже книжку почитать. То были Windows Forms, потом Presentation Foundation, потом Silverlight, а еще Direct X, XNA и куча всего, а теперь вот HTML5 под IE10.

Раньше всегда можно было написать на старом добром Win32, и это работало лучше всего остального. А теперь это объявлено устаревшим и спрятано куда-то под цветные экраны. Потому и не стал я рисовать картинку в предыдущем посте. Как-то вдруг это стало уже не нужным. Хотя, в принципе, они сделали кое-что из того, что я писал вчера.

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

2011-06-01

Окошки

Мы уже давно привыкли к концепции перекрывающихся окошек. Их придумали в исследовательском центре Xerox, они выглядели как последний писк hi-tech-а, потом это вдруг стало жутко модно, и их стали все делать. Я тоже поигрался и сделал несколько вариантов. Сейчас это уже привычно, эффект новизны пропал и давно пора бы уже заметить, что это жутко неудобно.

В самом деле, зачем нужны окошки? Мы работаем в прямоугольном кусочке экрана, из под которого выглядывают куски других окошек. Куски эти обычно ни для чего не нужны, кроме как для того, чтобы показать что эти окошки есть. После запуска нескольких программ на экране наступает свалка, если не принять мер и не раскрыть окно на весь экран.

Когда экраны были маленькие, я так и делал. Все окна раскрывались на весь экран и переключались через Alt-Tab. С появлением больших экранов это стало делать неудобно. Читать текст сформатированный под широкий экран невозможно. Приходится двигать окошки мышкой и как-то располагать. Кроме того, иногда хочется видеть некоторую информацию, например on-line status в Skype или подобное. В результате приходиться терпеть свалку на экране.

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

Чего бы хотелось? Простого. Хотелось бы Tiling Window Manager.

По умолчанию я предлагаю такую раскладку: почти весь экран занят максимизированным приложением, сверху панель задач-табов, справа - панель резидентных приложений, где показываются состояния запушенных задач, прогресс фоновых операций, контакты в скайпе, все что угодно. Я бы ещё хотел, чтобы туда можно было положить в эту панель, например снизу, парочку привычных программ от iPhone или Android. Почему бы и нет? В эпоху виртуальных машин вполне можно было бы. Они как раз маленькие, пойдут в качестве widget-ов.

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

Почему это удобно? Потому что никакого бардака, который сильно отвлекает. Никаких кусочков окон, все видно целиком или не видно вообще. Должно хорошо работать на большом экране и на маленьком.

В принципе, под Линуксом что-то такое есть. Я, правда, удобных программ пока не нашел. Чтобы интуитивно и без правки конфигов. А под Windows и Mac - вообще нет. Хоть сам пиши.

P.S. Хотел нарисовать картинку, но почитал новости и понял, что это уже не важно.

2011-05-31

Абсолютная защита

Я как-то давно уже писал заметки из серии "что бы хотелось", с сожалением упоминая безвременно почивший Эльбрус. Такой уж я динозавр, что Алголы и Эльбрусы засели в моем сознании наряду с теоремой Пифагора и законами Ньютона, в самых основах моего понимания предмета. Так вот, чтобы сделать защищенную операционную систему, в которой ничего нельзя сделать, кроме того что требуется, надо чтобы на каждом уровне можно было сделать только то, что требуется и ничего больше. As simple as that.

Проблема современных систем и их API-ев в том, что код, получив управление, может сделать всё, что угодно. Его ограничивают пользовательскими правами доступа, но это есть пережиток времен больших многопользовательских ЭВМ. В эпоху персональных компьютеров, не говоря уж о телефонах, предметом недоверия является не столько пользователь, сколько, например, источник выполняемого кода. Но даже если мы полностью запретим выполнять незнакомый код, никуда не деться от багов, которые позволяют внедрить код в систему. Или от ошибок или даже злого умысла автора программ.

Взять, например Notepad. Что мы хотим от редактора? Чтобы программа могла прочитать файл, который мы выбрали, потом позволяла редактировать его в окне с использованием мыши и клавиатуры, а потом позволяла записать текст в этот или другой файл по нашему выбору. В такой постановке вопроса программа выглядит безопасной. На самом деле код программы может делать все, что угодно, особенно если, например, "админ правит конфиги", выполняя программу с правами, требующимися для записи в системные файлы. Программа может лазить в сеть, модифицировать системные файлы, устанавливать кейлогеры и делать снимки экрана. Она даже может внедрить в систему драйвер и внедрить свой код во все процессы. Для всего этого система предоставляет программе соответствующие функции! Ибо "вдруг понадобится"?

Если мы хотим, чтобы всего этого Notepad сделать не мог, надо просто не дать ему возможности это сделать. Дайте ему API, который может только прочитать и записать один файл, рисовать в одном окне, иметь доступ к клавиатуре и мыши в этом окне И ВСЁ! И никакой вирус не сможет ничего сделать, кроме как поменять ваш текст перед сохранением. Конечно, если "админ правит конфиги", остается разгул для фантазии, но, тем не менее, возможности ограничиваются существенно.

В Эльбрусовской идеологии не было возможности преобразовать число в указатель. И тем более в указатель на интерфейс. Если вам дали указатель на интерфейс, можно с ним работать. Не дали - возможности нет НИКАКОЙ. Все просто. В современных компьютерах такая защита возможна только через границу ядра, потому вместо указателя нам нужен handle выданный ядром. Если есть у программы handle позволяющий читать один данный файл, она сможет читать этот файл. Фактически вместо API, который позволяет делать всё, нам нужны множество таких handle-ов, позволяющих делать лишь заранее предусмотренные действия с ограниченным набором объектов. Например, это может быть работа в заданном окне, или работа с файлами некоего каталога, или чтения некоего ключа реестра или какие либо иные конкретные действия.

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

Интересно, что подобная концепция приведет к некоему перераспределению кода по нескольким процессам с разными правами. Например, главное окно приложения, хотя бы и невидимое должен создавать не процесс программы, а родительский процесс. А диалог с выбором файла должен быть отдельным процессом с другими правами, вероятно частью Shell. Фактически, независимый программный компонент должен быть процессом. Или каким-нибудь легковесным процессом, типа потока с отдельным адресным пространством.

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

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

2011-05-12

Хромики

Амазон готовится продавать хромобуки (chromebooks). Предлагаю назвать их "Хромики".

Как я понял, дата-план на 100Mb в месяц уже включен в стоимость. Остальные параметры не поражают: Атом, 16Gb SSD.

Лично я бы вместо них взял второй iPad, хотя для сценариев, связанных с работой с текстом, такая штука будет удобнее. И флаш в ней есть и акробат. Идеальная машинка для библиотек, школ или всяких приемных, где надо что-нибудь заполнить. Кстати, давно пора писать учебный софт на HTML5+javascript.

2011-05-08

Пара часов

В выходные заехали в канадский Ванкувер. Ненадолго, всего на пару часов.
Обратите внимание, уличные часы - паровые.

2011-05-05

Камин

Мы редко зажигаем камин. Как источник тепла, он малоэффективен. Но иногда возникает желание посидеть, посмотреть на огонь, медленно-медленно поцеживая бокал некрепкого вина. Я очень люблю смотреть на огонь. И запах костра я тоже люблю. У меня все самые счастливые воспоминания связаны с лесом, с костром, с рекой.

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

P.S. Огонь разводил я сам, а фото делал Игорь.

2011-05-04

Снова о Chrome OS

Ходят слухи, что Гугл будет распространять компьютеры с Chrome OS через подписку, с помесячной оплатой, включая 3G Интернет, что-то типа 10-20 баксов в месяц. Причем это включает и hardware upgrade. Имеет смысл, в принципе. Единственно, функциональность пока не выходит за рамки традиционной работы с браузером: почта, блоги, фейсбук, книжки, флаш-игры. А загрузить фотки с аппарата, посмотреть видео в самолете, не говоря уж о "попрограммировать", пока не очень получается. Но за 10-20 баксов в месяц, если это включает плату за интернет, то почему бы и нет?

Blog-Grid

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

2011-04-24

Фото, которое делает каждый фотограф

Эту пару я назвал "Негатив и позитив".

Тюльпаны почти все уже отцвели, поэтому на одном последнем поле толпились все желающие перевести настроение в гигабайты. Родители снимали детей в тюльпанах, молодые снимались вместе в тюльпанах, а люди постарше снимали просто тюльпаны.

2011-04-09

Hyak

Снято сегодня на лыжной прогулке. Весна, снег рыхлый, лыжня самодельная, ручьи наполняют водохранилище и пугают весенними лавинами, а редкие энтузиасты пытаются продлить лыжный сезон.