2008-12-29

Сам писи!

Микрософт завесил все станции метро (BART) в Сан-Франциско вот такой рекламой. Которая, как обычно, является "достойным ответом" на придуманное другими. Рекламная серия предлагает мне сказать "I'm a PC". Какой я вам писи! И не мак, и не грамофон, и не тостер! I'm human. А за PC ответишь...

2008-12-24

SFO

Только что приехали из Сан-Франциско. Небольшая трехдневная поездка превратилась в недельное приключение. Сама поездка была небезынтересной. Три дня впечатлений. Но когда мы, уставшие и довольные, приехали в аэропорт, оказалось, что обратный рейс был отменён по случаю непогоды в Сиэтле. Нам дали талон в гостиницу и перенесли рейс на "завтра", что поначалу вызвало у нас даже некоторый интерес: ещё один день, задаром. Но когда его отменили снова и перенесли рейс уже на четверг, т.е. на день после рождественских праздников, причём, по прогнозам это могло оказаться не последним переносом рейса, это вызвало у нас просто шок. К тому же бесплатных гостиниц больше не предлагалось. Ещё оказалось, что поезда тоже не ходят, автобусы не ходят, и вообще ничего никуда не ходит, короче, "делайте, что хотите". А хотели мы домой. Дома выпал снег! В кои веки! И мы сомневались, сомневались, но решились поехать сами! Прогноз погоды обещал один день без осадков, что давало шанс удачно проехать. Взяли машину, купили цепи на колёса, и поехали. Оказалось даже чуть легче, чем я ожидал. Местность обитаемая, множество гостинниц и заправок. Цепи пришлось надеть дважды. На перевале после озера Шаста и около Портланда. У последнего был самый противный участок с пробкой, в которой мы ползли очень долго. Пробка была из за нечищенной и заледеневшей дороги. Но в целом дорога была довольно хорошая. Всего ехали два дня, проехали порядка 800 миль за 16 часов, из них часа 3 потеряли в Портланде. Такое вот приключение. Мне даже понравилось. А дома снег! Никогда не видел столько снега в этих краях. Жаль скоро растает. P.S. SFO - международный код аэропорта С-Ф.

2008-12-12

Google chrome & native client

Ко всеобщему удивлению, Chome вышел из беты. Все были готовы, что бета будет длиться вечно, как у gmail. Но, понятно, что компо-продАвцы не хотят пред-устанавливать бету на enterprise, а потому пришлось срочно зарелизить. Хотя качество вполне достойно первой версии. RSS, autofill, extensions (включая adblock), native linux and mac versions обещаны. Не слишком заметно произошло появление ещё одного любопытного проекта: native client. Как я понял из анонса, это addon, дающий возможность запускать native code, т.е. программу в машинных кодах из браузера. Все сразу закричали ActiveX и были в корне неправы. В данном случае native code не сможет сделать ничего плохого, в отличие от Active-X, который может всё, из за предварительной верификации кода. Статический анализ кода - вещь популярная (см. например Midori), но готовых решений я пока не видел. Предполагается, что код не будет иметь возможности обращаться к платформе, но сможет работать с предоставленными ему интерфейсами браузера. Поэтому он будет независим от операционной системы, а зависим только от вида процессора. С точки зрения Web-а, это примерно как адобовский flash, только, возможно, быстрее (хотя сравнимо, я полагаю, с будущей 10 версией, если там LLVM). Но реальный смысл появляется, если рассмотреть браузер как платформу. Если запустить браузер поверх некоего мини-ядра, получается полная платформа, которая может запускать приложения, причём работающие с нормальной скоростью. Вот вам и Google OS. Второй смысл этой штуки - это серверные приложение в "облаке". Сейчас у них поддерживаются только Python и Ruby, а с этой штукой добавляется куча нормальных компилируемых языков. Изолированный код легко перемещать и копировать в облаке. Почему мне всё это понравилось? Во первых, потому, что я всегда считал, что модель безопасности должна исходить из ограничения того, что может сделать компонент кода, а не абстрактного "юзера". Я доверяю себе, как "юзеру", но я не доверяю конкретному компоненту кода. А сейчас код, откуда бы он не появился, автоматически может сделать всё, что может сделать "юзер". Во вторых, это может привести к появлению бинарного выполняемого формата, который имеет чётко описанный внешний интерфейс, и в то же время независим от операционной системы. Что давно, уже лет двадцать, ждёт всё прогрессивное человечество. По поводу статического анализа, это непросто в современной архитектуре, где данные и программы перемешаны в памяти. В байт-коде это значительно проще, но хорошие оптимизирующие компиляторы байт-кода, во первых сложны, во вторых, медленны и не защищены от ошибок. Многие, в результате, предпочитают проверять сгенерированный код, особенно если в него добавить некоторые подсказки, (интересующиеся могут погуглить "typed assembler"). Анализатор дизассемблирует код и проверяет все инструкции восстанавливая логику программы, проверяя типы всех операндов, допустимые смещения и т.д. Любой код, который может сделать что-то не то, не будет допущен до выполнения. А сделать можно многое, например, изменить адрес возврата из стека, что выглядит в точности как целочисленное присваивание локальной переменной. Анализатор должен определить не выполняя программы, что по этому смещению нет переменной, а расположен адрес возврата. И многое другое.

2008-12-09

Немного об истории и литературе.

Считается, что в древности литературы не было. Дорого по камню лирические отступления высекать. Потому суровые летописцы тщательно высунув язык выводили, что "пятого года произошёл великий мор, а шестого года царь отобедав преставился и на престол взошёл его старший сын, который в тот же месяц повелел собрать войско и отправился воевать соседей" и т.д. и т.п. Ну какая же это литература? А такая! Такая она, первая литература! Рассказ в жанре fiction, устный и от первого лица, появился задолго до письменности. Подозреваю, что ещё первобытный человек рассказывал, в грудь себя бия, как он один на один мамонта побеждал. И познав письменность, вряд ли стал он вдруг правдивым и ничего не приврал, и ни приукрасил, не приписал себе или своему властителю чужие подвиги, и не переписал на местный лад услышанные от проезжих купцов сюжеты. Слово письменное написано для читателя. А слово для читателя есть литература. Книжка с историями о веках прошедших для развлечения и наставления. А потом гадают откуда берутся повторы, почему столько совпадений в хрониках и кто был чьим оригиналом. Да сам летописец небось не знал кто был чьим оригиналом, это просто сюжеты кочуют из одной страны в другую. Хотите пример? Вот армянская народная сказка. Вот марийская сказка. Вот сказка Вятской губернии. Вот книжка японских сказок. А вот чешские и словацкие. Последних двух не читал, но судя по названиям очень подозреваю.

2008-12-08

Рекомендую.

Не могу не порекламировать текст Эльдара. Вся серия очень неплоха, а часть 4 просто замечательна. technet link, то же на eldar.com.

2008-12-07

Об истории, хронологии, литературе и психологии познания. Обо всём, короче.

Процесс понимания всегда многоступенчатый. Впервые услышав некую мысль, нам кажется, что мы её поняли, что там сложного, сто раз слышали подобное. На самом деле мы её не поняли, а просто классифицировали по первичным признакам. Типа, например "А, это конспираси", или "А, опять зелёные человечки", или "А, это у автора старческий маразм". Так любые сомнения в правдивости версии взрыва башен будут классифицированы, как паранойя и конспираси, сомнения в правильности истории как "Опять Фоменко", а сомнения в текущей идеологии как промытость чужой пропагандой. У многих система классификации так сильна, что дальше с этой мыслью ничего уже не сделать. Мысль сразу классифицируется в двоичной системе понятий как бредовая, и потому бесполезная, и все дальнейшие рассуждения на эту тему будут отражаться на дальних подступах. Однако у некоторых особей инстинкт любопытства берёт верх над инстинктами секса и карьеры и мысль застревает в сознании. Всё ещё классифицируемая как бредовая, она тем не менее вызывает некие фоновые сравнения, каждый раз хоть и подтверждающие её бредовость, но с некоей погрешностью, которая накапливаясь со временем, вдруг однажды переворачивает представления вверх ногами, а точнее, с головы на ноги. Всё становится ясным и понятным, хотя и по прежнему невероятным, но как бы уже почти на равных с традиционной точкой зрения, вызывая постоянные сомнения. Для окружающих это может выглядеть как отъезд крыши, но, впрочем, они с самого начала знали, что с этим товарищем что-то не так, его всегда интересовали вещи дурацкие, типа устройства мира, и не имеющие отношения к главному в жизни - карьере и благополучию. Так вот, чтобы понять нечто по настоящему требуется несколько таких шагов, его надо прочувствовать. Это особое состояние, когда вдруг становятся понятны логические связи, когда это проникает куда-то в глубь сознания, вызывая дрожь понимания и ощущение правильности. Сколько раз, например, я слышал, что внутри каждого человека сидит зверь, и всегда считал это игрой слов, но только недавно (позор!) прочувствовал, насколько это правильно и точно. У некоторых зверь почти весь снаружи, человеческое сознание используется им только для коммуникаций, но у других - наоборот, сознание доминирует и зверь сидит внутри него как в клетке и страдает. Не надо загонять его глубже, подружитесь с ним, выгуливайте, играйте, ласкайте, угощайте и он не будет вас мучить и создавать вам проблемы. Э... хотел об истории... Нельзя давать несколько мыслей в одном сообщении. Оставлю её до завтра.

2008-12-03

Прошлогодний San Francisco

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

2008-11-24

На коленке.

"Сделано на соплях", "сделано на коленке" -- эти две фразы я слышал неоднократно от разных людей, причём они имели при этом противоположные значения.

В устах одних это означало, что сделано на "низкоуровневом языке типа С", потому плохо, ненадёжно, опасно, непрофессионально, "home grown" или "home brewn". Часто такое слышал про Open Source Code. Обычно в контексте, что написано студентами-двоечниками, которые не могут найти нормальную работу. Правильное, профессиональное решение должно быть написано на защищённом высокоуровневом языке (C#, Java) и хранить данные в серьёзном месте, типа SQL сервера. Причём все данные, компромиссы не допустимы. Компромиссы вообще не допустимы, надо взять самые последние и мощные инструменты, и писать с их использованием. Остальное - на коленке.

В устах других - точно наоборот. Любой интерпретируемый или JIT-код в системе - признак непрофессионализма, люди используют от неграмотности, не могут освоить C/C++. Тоже про Windows: не могут освоить Unix. Приложение надо оптимизировать по максимуму, а любой лишний уровень не позволяет этого сделать. SQL вообще сложно оптимизировать, у него от версии к версии всё меняется. Поэтому надо написать всё самим на С/C++, все классы, протоколы и базу данных. Это круто и профессионально.

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

2008-11-20

Picasa 3

Хотя они и не сделали некоторых желаемых изменений, и сделали кучу нежелаемых, но общее впечатление неплохое, не испортили, и на том спасибо. Добавился приятный viewer и screensaver. Наконец-то у фоток появились теги. Видео можно резать и на ютюб выкладывать. Ну и разное всякое прочее. Гугл сегодня что-то расщедрился на обновления. Gmail стал красивый, с темами. Даже окно результатов поиска обновилось, появились некие кнопочки оценки результатов. Вообще, мне интересно смотреть на то, что делает Гугл, и мне пока нравится, что он делает.

2008-11-11

Another Canvas Test

Your browser does not support canvas.
Этот график считается и строится непосредственно в браузере. Оказывается, вполне возможно добавить скрипт в блог.

2008-11-10

Холст

Canvas - интересный элемент HTML5, который позволяет рисовать с помощью двумерных графических примитивов в прямоугольной области экрана. Впервые появился в Safary, сейчас прекрасно работает в FireFox и Chrome. Пока нет поддержки в IE, хотя, кажется, есть сторонние Active-X для этого.
По ссылке находится скрипт рисующий очень простую векторную картинку, которую я нарисовал много лет назад в графическом редакторе собственного изготовления. К сожалению, я не могу скриптовать блог, поэтому картинка будет отдельно.

2008-11-03

My Desktop

Несколько иллюстраций к предыдущему посту. Вот так выглядит мой домашний десктоп и вот так я работаю.

Это BBLean с открытым меню приложений и запущеным Google Chrome, в котором открыта персонализированная iGoogle. Мне, кстати, последняя понравилась. Вся информация в одном месте, почта, RSS, закладки (последние сконфигурированы открываться в новом табе, поскольку в Chrome закладки ещё не сделали). Кстати слева - столбик с иконками Quick Launch.

Те же и FAR. Это наиболее типичная конфигурация экрана, вероятно 80% времени.

Пара кадров с Visual Studio VS6. Я пользуюсь до сих пор 6-ой версией поскольку мне в ней нравится оболочка. Компайлер С++ в ней не супер, но, мне его хватает. Новые версии более громоздкие и менее удобные.

А каково ваше рабочее место?

2008-11-01

Три PM-а под виндой занимались ерундой

Здесь рассказывается про новые интерфейсные штучки Windows 7. Я посмотрел по диагонали периодически проматывая. Как и ожидал, не увидел ничего, что бы заставило воскликнуть "как здорово, наконец-то". На Мак стало похоже, не буду говорить, что содрали, но стало похоже. Опять все изменения придётся делать в приложениях: и табы в виде картинок представлять, и всякие новые контекстные меню и прочее. Все красивости показаны в микрософтовских приложениях, а как будут выглядеть все остальные, не поддерживающие новые интерфейсы, не очень понятно. Старым приложениям, будет, как я понимаю несколько хуже, но сейчас в Микрософте есть явная тенденция к постепенному искоренению старых приложений. Кстати, убили Quick Lunch, который все использовали как некий рабочий вариант списка приложений. Я только им и пользуюсь. Стандартный список так раздут, там так легко нажать uninstall вместо запуска, а работает он так медленно, что пользоваться им просто невозможно. Но хватит ворчать. Я хотел сказать вот о чём: Есть два типа интерфейсов и, соответственно, два типа пользователей, отличающиеся сложностью комфортной для них картинки. Первые любят UI мелкий, где показано много информации и она стабильна, относительно мало меняется. Пример - системы разработки программ, графические пакеты, файл-менеджеры типа FAR. Напоминает операционный стол или верстак - много инструментов, лежащих под рукой, каждая вещь на своём месте, ничего лишнего. В таком интерфейсе иконки если и есть, то некрупные и неяркие, минимум всяких украшательств, отвлекающих от работы. Режим с использованием только клавиатуры, без мыши - must have. Вторые любят UI крупный и яркий. Красивое окно с выбором из нескольких пунктов, с красивым фоном, эффектом при наведении мыши. Иконки крупные, яркие. Выбрал, всё изменилось и показало что-то другое, тоже красивое. Работа идёт, в основном, мышью. На клавиатуре набирается только текст. Зона основной информации существенно меньше, часть пространства пожертвована на то, чтобы сделать команды более доступными. Это не просто профессионал-новичок. Это два психотипа, две разных эстетики. Есть картины/романы/интерьеры/ландшафты первого типа (битва при Ватерлоо), а есть второго (белеет парус одинокий). Я, конечно, принадлежу к первой группе. Всегда любил карты разглядывать. Мне совершенно не нравится толстая полупрозрачная рамка окон, крупные иконки и широкий task-bar, как и все эти цвета, выплывания и подсвечивания. Раздражают и отвлекают. Я вообще почти не пользуюсь ни Микрософтовскими программами ни стандартной оболочкой. У меня стоит BBlean, который делает и панель задач и всякие меню тоньше и мельче. Shell я не использую, пользуюсь FAR-ом. Офис запускаю только для просмотра присланного документа, media player или browser - другие, разные. Короче, мне этот их экран не нужен совершенно. Мне надо, чтобы работали программы типа BBlean, чтобы можно было сделать из цветных виндов интерфейс "первого рода". И сделать это всё сложнее и сложнее. С Вистой, кстати, у меня пока ничего не получилось. Blackbox под ней не работает. Был бы помоложе, сказал бы, "хоть сам пиши". Нет, сам всё не напишешь, жизни не хватит.

2008-10-30

Мостик

Сейчас это мостик для пешеходов и велосипедистов. Когда-то он был железнодорожный. Перил и ограждений не было. Поверх высоченных деревянных опор лежали шпалы и рельсы. И всё. Логично, но страшно.

2008-10-27

Written on the piece of junk

Все уже много раз процитировали высказывание Стива Джобса “We don’t know how to build a sub-$500 computer that is not a piece of junk.”. Ну вот! А я подумывал купить их акции! Это же и есть проблема Apple номер 1. Чтобы выжить, им нужно это придумать. У меня почти все компьютеры такие, в районе $500 без монитора. А последняя покупка - MSI Wind, так практически целиком уместилась. 
Мне всегда казалось, что компьютеры несколько overpriced. Штука, в принципе, не жизненно важная, в основном развлекательная и очень недолговечная. Ну, допустим, гипотетически, что купил я за пару штук их супер-тонкий ноут. Аккумулятор сдохнет через год и ничего с ним не сделаешь, впаян. А если куплю другой без яблока на корпусе и на миллиметр толще, то всё равно, устареет морально года через два-три. Новая система уже не поставится без апгрейда, во время которого окажется, что успело поменяться всё, даже расположение дырок на корпусе и число бит в процессоре, так, что вези всё в PC Recycle, и раскошеливайся снова по полной программе, включая лицензию на операционку. А последняя уж точно piece of junk, хоть одна, хоть другая, хоть третья. 
Нет, я куплю лучше piece of junk подешевле, не так жалко будет выкидывать. Работает он точно так же, как и те, распальцованные. Опять же, в нем милостливо соизволен привычный XP, что приятно. И на что же Apple будет жить, что делать? Да операционку, блин! Кошачих своих хищников пора выпускать из клетки! Если уж компьютеры не придумываются. Будет альтернатива Висте. Может, я её и поставил бы на свой Wind.

Subversion

Я уже давно поставил subversion на свой домашний сервер (Synology). Раньше я "догфудил" нашу внутреннюю систему, и она работала очень хорошо даже на netbook-е, но мне всегда хотелось, чтобы она работала на linux-сервере. Subversion оказалась очень удобной, особенно для персонального использования:

  1. Есть варианты для ARM-процессора, что позволяет использовать Slug (Linksys NSLU2), или Synology, или даже Nokia N800.
  2. Её можно сконфигурировать для работы через inetd, когда она не висит постоянно в памяти. При персональном использовании это наиболее удобный режим.
  3. Один сервер может работать с несколькими репозитариями. Что позволяет создать не хранить мух с котлетами. Один для моих проектов, сыну - свой, один - как backup для всяких my documents, один для временных вещей, которые потом будут удалены и т.д.
  4. Можно быстро загрузить репозитарий из файла и сохранить в файл. Я сделал скрипт и загрузил свои проекты вместе с полной историей.
  5. Tortose Svn - как оболочка очень удобна. Даже spell-checker с подсказками имён функций из текста. Супер.
  6. Очень удобно, что сервер не хранит состояние клиента. Это просто гора с плеч. Никаких read-only атрибутов, никаких "открыть файл для редактирования". Просто работаешь спокойно, переписываешь всё вместе куда хочешь, если надо, потом система разберётся сама, что изменилось. И не надо никаких плагинов к Visual Studio.

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

2008-10-20

Вчера на Snoqualmie Middle Fork

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

2008-10-14

Йцукенъ

Гуляя по Нижнему Новгороду зашёл в данный магазин с желанием купить какой нибудь забавный сувенир.  Пообщался с приветливой продавщицей, которая, похоже, была рада любому редкому посетителю. 
Ничего не выбрал, ничего не понравилось. Скучно, плоско и очень примитивно с точки зрения дизайна, прежде всего. На картинках выглядит лучше, но дизайнеры знают, что вещь на картинке и вещь в реальности - разные вещи. А в реальности предметы имеют другие пропорции, не дисплейные цвета, острые края. Чайник ужасен. Даже чашку с ручкой в виде @ совершенно не комфортно держать в руках. За промышленный дизайн ставлю им 2. 
За издание "ководства" ставлю 3 с минусом.  Не знаю, что там с типографикой, мне она не очень интересна, но с точки зрения общего дизайна, я книги с таким крупным шрифтом не покупаю. Это текст, вещь для чтения, а не альбом со шрифтами. С точки зрения содержания, книга по дизайну должна быть переполнена примерами и текстом.  А здесь одна мысль, другая мысль, третья мысль. Сколько глав, столько мыслей. Мысли не перетекают одна в другую, не образуют системы, не заметно, что у автора их больше, чем он может написать. Скучно. Другая книжка про Интернет была забавнее, хотя я всё это уже видел, давно, и решил не захламлять свой книжный шкаф.
Потрогал их клавиатуру за $2500. Пренеприятное ощущение. Дешёвый пластик трётся о другой пластик с хрустом и скрипом. Как песок пожевал. Кнопки заметно медленно меняют картинку при нажатии shift-а. Позиционирования этого изделия вообще не понимаю. Элитная клавиатура должна быть комфортна и качественна как клавиатура, в первую очередь. Надписи на кнопках - вещь вторичная, на них вообще смотрят редко, только когда учатся печатать, а научившись смотреть перестают, или смотрят краем глаза. Во всех компьютерных столах клавиатура убирается под стол, и там, под столом на ней и печатают.  (Кстати, в штатах видел клавиатуру совсем чёрную, без букв. Для слепой печати. Народ пробовал, говорят удобно, быстро отучает смотреть на кнопки.) Продавщица сказала, что есть специальная раскладка для фотошопа. Представляю, дизайнер мышкой рисует, рисует, а потом лезет на клавиатуру вместо меню. Глупо.
Короче, я был разочарован. После многочисленных "линчей" я ожидал большего, ожидал качества. А не фига. Ни качественного дизайна, ни оригинального дизайна, ни забавных надписей на майках, ничего, кроме очередного немерянного пустого выпендрёжа, который уже стал нашим русским фирменным стилем.  
Кстати, неподалёку продавались русские народные берестяные и деревянные поделки. Насколько они сделаны качественнее и приятнее! Вот где настоящий дизайн, блин вам всем в компот!