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-а. Позиционирования этого изделия вообще не понимаю. Элитная клавиатура должна быть комфортна и качественна как клавиатура, в первую очередь. Надписи на кнопках - вещь вторичная, на них вообще смотрят редко, только когда учатся печатать, а научившись смотреть перестают, или смотрят краем глаза. Во всех компьютерных столах клавиатура убирается под стол, и там, под столом на ней и печатают.  (Кстати, в штатах видел клавиатуру совсем чёрную, без букв. Для слепой печати. Народ пробовал, говорят удобно, быстро отучает смотреть на кнопки.) Продавщица сказала, что есть специальная раскладка для фотошопа. Представляю, дизайнер мышкой рисует, рисует, а потом лезет на клавиатуру вместо меню. Глупо.
Короче, я был разочарован. После многочисленных "линчей" я ожидал большего, ожидал качества. А не фига. Ни качественного дизайна, ни оригинального дизайна, ни забавных надписей на майках, ничего, кроме очередного немерянного пустого выпендрёжа, который уже стал нашим русским фирменным стилем.  
Кстати, неподалёку продавались русские народные берестяные и деревянные поделки. Насколько они сделаны качественнее и приятнее! Вот где настоящий дизайн, блин вам всем в компот!

2008-10-12

Snoqualmie Pass

Snoqualmie Pass внизу. Вдали виден Rainier.

2008-10-09

Конец бумажных книг

Надцать лет назад я не верил, когда читал в журнале, что плёночные фотоаппараты скоро уйдут в прошлое. Казалось, что цифровая технология настолько сырая, качество настолько плохое, что пройдут десятилетия, прежде чем чип заменит плёнку. А с книгами, качество экранов настолько хорошее, преимущества настолько велики, что даже непонятно, как это может не заменить бумагу. Фактически, я уже давно читаю новые книжки соньковским ридером. Но посмотрите на ссылку! Это же не просто книжки, это и журналы, и техническая документация, и энциклопедии. 
Конец шкафам, стопкам и полкам. Что будет с библиотеками и букинистическими магазинами? С уютными книжными магазинами, где можно полистать книжки и журналы за чашкой кофе? С возможностью продать прошлогодний учебник в бук выручив пол-цены, подарить или дать почитать знакомым? Это всё настолько большая часть нашей культуры, она скоро изменится и хотелось бы не потерять незаметно те права, которые есть сейчас.  Кстати, а не пора ли новостийным сайтам делать вариант верстки для оффлайнового чтения на ридерах? http://www.engadget.com/2008/09/11/plastic-logics-e-reader-vs-amazon-kindle-fight/

2008-10-03

Cloud OS

Нет, я ничего не знаю, что будет в том варианте ОС, про корорую говорил Балмер. Я подозреваю, что ничего особенного, какая нибудь очередная репликация. Вряд ли то, что нужно, то что было сделано давным давно в некоторых старых ОСах ещё до изобретения слова Cloud и то, без чего все ОСы немножко не ОСы, а просто набор драйверов. А именно возможности приостановить приложение, сохранить его состояние в файле, перенести файл на другую машину и там продолжить. Или, ещё круче, то же самое, но без приостановки, реплицируя состояние вживую, ожидая завершения тредов на одной машине, но запуская новые на другой :-) Но это уж я размечтался. 
VMWare делает всё через виртуальные машины, что значительно медленнее и более громоздко. Но хоть как-то. Казалось бы, вот процесс отсвоплен, уже образ, уже в файле, бери и копируй. А не тут то было. Надо выделить из него машинонезависимое состояние процесса, а у авторов современных операционок всё от всего зависимое. И в Линуксе ничего такого нет. Народ хачит скриптовые языки пытаясь хотя бы из виртуальной языковой машины выкусить независимое состояние, что относительно просто, в связи с доступностью исходного кода.
А ещё можно, например, связать две физические машины в "одну" логическую, но с суммарным количеством ядер... Я, честно, сам придумал, ничего я не знаю... Ой, а вдруг угадал?

2008-09-26

Google Chrome - 20 дней спустя.

Неожиданно браузер стал основным. Не думал, что смогу прожить без привычных расширений firefox, но вот уже двадцать дней только им и пользуюсь. Привлекает мгновенный запуск и, наконец-то, шустрый javascript, который делает сайты действительно живыми. Наконец-то можно использовать всякие javascript frameworks, типа jQuery, например, что мне давно хочется попробовать. Из расширений не хватает реально двух - AdBlock и GMarks. Без второго можно обойтись открыв в одном из табов Google Bookmarks. Что касается первого, то можно поставить Privoxy. Google обещает сделать расширения, так, что это временно. Вообще, я восхищён программой и тем, как она сделана. Компактно, быстро, ничего лишнего. Идеальный браузер. Фактически сейчас она является самой используемой программой на моём компьютере. Я бы её даже объявил самой удачной программой последних нескольких лет. Предыдущий приятный сюрприз назывался Picasa.

2008-09-22

Нижний Новгород - город контрастов.

Я несколько раз пытался начать писать про Нижний, но длинно и литературно не получается и как-то даже и не хочется. Фотки здесь. Было очень приятно со всеми увидеться! Жаль, что не со всеми удалось встретиться! Мне понравилась чистота в центре города, люди на улице, их одежда, книжные и компьютерные магазины, маленькие кафе и еда в них, продуктовые и хозяйственные магазины, непривычная вежливость сервиса и отсутствие "How are you doing?" при этом. Не понравилась грязь во дворах, разваленные хрущёвки, бегающие беспризорные животные, обилие машин, практически парализовавшее движение в городе, заброшенное и жутко замусоренное когда-то любимое место отдыха, и банки из под пива лежащие под каждым кустом. Первое место в положительном списке - еда. Желудок стал проситься обратно в Россию. Первое в отрицательном - машины и трафик. Голова напоила желудок пивом и решила, что он обойдётся.

2008-09-19

Для чего нужен Downtown?

В раздумьях об описании своих впечатлений от поездки на родину я вдруг обнаружил некоторую непонятность: зачем в городе нужен downtown? 
Нет, серьёзно! Какие функции он выполняет? Что за выгода строить высоченные здания на дорогущей земле вместо того, чтобы взять пригородный пустырь и построить там целый кампус вместе с хорошей парковкой. В downtown всегда плохой трафик, всегда проблемы с парковкой. Казалось бы, единственное достоинство downtown - это пешеходная досягаемость одного здания от другого, коммерческая ценность коего совершенно непонятна. Зачем нужно ходить из одного банка в другой в эпоху глобальных сетей?
В каждом городе есть подобный район, застроенный офисами банков и всяких "крутых" контор, демонстрирующих, что им некуда девать деньги. Может это просто сублимация, район финансовых фаллосов? 

2008-09-02

Google Chrome

Гугл выпустил бету своего браузера. Очень недурственно. Мгновенный запуск приложения. Удобное начальное окно (то, что мы привыкли называть home page). Неплохой UI. Очень быстрый javascript. Наконец-то все гугловские приложения работают быстро. Можно даже пользоваться их он-лайновым редактором и электронной таблицей. С такой скоростью уже можно писать нормальные приложения на AJAX-е. Короче, смотрите сами. Мне понравилось. Не так, как это обычно бывает с новой версией привычной программы, "ну вот, опять наворотили", а быстро и просто - вот два ключевых слова, определяющие продукт.
Из минусов - нет расширений. Нет блокировки рекламы, и нет синхронизаторов закладок. А ещё нет многоязычной проверки правописания. Язык выбирается в установках, что неудобно. Надеюсь, это всё поправится со временем.
Что касается любимого занятия журналистов, сравнения рейтингов, то я не очень уверен в завоевании рынка. Явно заберёт голоса у тех, кто знает о разных браузерах и умеет их инсталлировать, т.е. у пользователей Firefox и Opera. У Safari свои сторонники, яблочники с альтернативным восприятием рендеринга. А большинство тех, кто пользуется IE, купили "интернет" вместе с компьютером и ничего другого ставить не будут. Вот если Гугл уговорит поставщиков предустанавливать его на компьютеры, тогда другое дело. Но поставщикам Гугл не указ, он на Windows скидок не даёт. Посмотрим.
Кстати, Picasa 3 beta тоже вышла. Наворотили.

2008-09-01

Пеньки на Keechelus Lake.



Почти все горные озёра - натуральные. Горные речки заливают впадину и получается озеро. Но уровень многих дополнительно поднят дамбой. Вода используется для орошения засушливой восточной части штата. Весной озеро наполняется талой водой, а за лето вода расходуется и озеро опускается до своего естественного уровня.

2008-08-31

Последствия снежной лавины

Видно, что под поломанными деревьями и ветками толстый слой снега, под которым течёт потерявшая своё русло горная речка. Меня удивило направление вывала леса на склоне слева. Стволы легли вверх. Такое впечатление, что лавина с разгону заехала на противоположный склон, повалив деревья. Gold Creek, 3.5 miles from trail head.

2008-08-26

Компьютерно-операционно-системное.

Для начала порекламирую неплохой блог с занятной и полезной информацией: блог Guastavo Duarte (англ.) А в нём статьи о начальной загрузке, адресной арифметике и уровнях защиты. Если данные вопросы неинтересны или непонятны, дальше можно и не читать. Собственно, не читать можно в любом случае. Как и наборот. А теперь, после введения, очередная небольшая порция ворчания. Которое состоит в том, что вся эта адресная арифметика и кольца защиты сейчас настолько привычны, что мы даже и не представляем, что может быть по другому. А вот раньше, говорю я постанывая, посвистывая и с хрустом распрямляя позвоночник, мы работали в системах "real mode" безо всякой защиты и такие программы писали, такие, этакие..., да такие же как и сейчас, только поменьше. И которые при любой ошибке вызывали перезагрузку, которая, однако надо отметить, была значительно быстрее теперешней! Довольно занятные системы были в домикрософтовсую и до-ibm-pc-шную эру реального режима. Например, были всякие занятные системы основанные на паскале и модуле. Последная была, как нетрудно догадаться, модульная, причём драйвер устройства - такой же модуль, как и программа пользователя, никакой разницы. Никакой разницы не было, kernel mode or user mode. Одно вызывало другое. Это была экзотика, мини-компьютеры. А большие компьютеры делались на той же, что и сейчас архитектуре, с двумя режимами, режимом ядра и режимом пользователя. Главное в такой архитектуре - защитить ядро от программы пользователя, и программы друг от друга. Традиционно есть процесс, как единица защиты. Процессы защищены друг от друга, ядро защищено от процессов, процесс можно убить, все ресурсы утилизировать без вреда для системы. Внутри же процесса - никаких защит, делай всё, что угодно. Это традиционная архитектура операционных систем. Для неё и делаются все эти адресные арифметики, кольца защиты, виртуальная память с таблицами страниц и прочее. И она, эта архитектура позволяет заражать программы вирусами, исполнять код в стеке, переполнять буфера, позволяет почтовым программам модифицировать системные файлы, ну и конечно, позволяет выполнять и все остальные полезные функции, за что мы её и любим. Естественно была попытка сделать и менее традиционную архитектуру. Где нельзя заражать и выполнять. Где почти ничего нельзя, кроме того, что можно. Где защита сидит в каждом указателе, в каждом массиве, в каждой функции. Аппаратно нельзя выйти за границы. Аппаратно нельзя сделать из числа указатель. И функцию нельзя вызвать если нет на неё указателя. Абсолютная защита. Естественно, всё было задумано в Советском Союзе, как нетрудно догадаться по приведённому описанию, и там же успешно где-то реализовывалось в течении многих лет, до тех пор, пока Горбачёв не произнёс своё знаменитое "разрешено всё, что не запрещено", чем подрубил концепцию на корню. Я очень уважаю разработчиков Эльбруса за эту архитектуру. Увы, в полноте своей она несколько утопична, почти как коммунизм. Обе требуют от человека того, что он дать не может. Коммунизм требует нечеловеческой сознательности, а Эльбрус - нечеловеческой предусмотрительности при программировании на нечеловеческих языках. Хотя второе интересно было бы попробовать. Не знаю, что там будет дальше с Эльбрусом. Идеолог, академик Бабаян теперь работает в Интеле, хотя фирма существует. Но бог с ней, с фирмой. Дело в том, что в подобной системе тоже нет уровней ядра и пользователя. Если функции защищены друг от друга, то драйвер - это просто функция, такая же, как и любая другая. И файловая система - обычный модуль, как и любой другой. И никакой трансляции адресов не надо, и уровней защиты не надо и много всего прочего. Фактически, сложность аппаратуры не выше, чем традиционной. Кстати, упомянутая фирма недавно сделала таки свой микропроцессор, и двоичный компилятор для него. Респект, если работает. Это вам не винду перекрашивать. Хотя я опять отвлёкся, не про него хотел рассказать. Одно время казалось, что это всё где-то далеко в фантастических северных странах, в далёком прошлом или далёком будущем, но услышанная фраза "software isolation" заставила поменять точку зрения. Фраза очевидна - заменить аппаратные границы программными. В эпоху виртуальных машин даже нетривиальная архитектура возможна. Но виртуальная машина - только один из нескольких подходов к "software isolation" и далеко не самый эффективный. Второй подход исповедуют разработчики проекта Midori в Microsoft (бывшая Singularity). Они предлагают оставить процессы как границы защиты и проверить программно двоичный код процесса на то, что он не выйдет за границы и ничего не сделает запрещённого. Тогда этот процесс можно запускать без аппаратной защиты. Я скептически отношусь к данному подходу. И доказать очень сложно и выгода невелика - только производительность, что в наше время грядущих 64-процессорных ядер не самая большая проблема. Третий подход основан на идее генерации кода. Допустим программа существует на некоем байт-коде, а система строит реальный двоичный код сама при запуске. Как в .NET или Java. В таком случае если исходный байт-код не позволяет чего-то сделать то и двоичный код этого не сделает. И его можно запускать без аппаратной защиты. Подобные системы могли бы работать почти как Эльбрус без его аппаратных заморочек. Причём большая часть ядра может сама быть написана на подобном языке. Неудобство данного подхода в невозможности запускать программы в двоичном коде, написанные на non-managed языках. Мне кажется, наиболее перспективный подход, особенно для встроенных систем. Сейчас есть несколько проектов, Java OS, например. Привет вам от Модулы. Здесь выгод может быть множество: более простая аппаратная часть, более простая структура операционной системы, защищённость на уровне процедур или классов. К сожалению, языки типы Java или С# не могут достичь идеальной защиты и избавить нас от вирусов и троянов. Их байт код недостаточно ограничен для этого. Но вообще, я думаю, что software isolation - интересное направление. Но вряд ли пройдёт в mainstream. Слишком далеко мы все ушли в другую сторону. Куда мы без привычной винды.

2008-08-24

Жирный пингвин робко прячет тело жирное в утёсах...

Почитал на досуге про udev vs. devfs. Для незнакомых с Линуксом поясню, что это управление именами устройств в файловой системе, т.е. некая жизнь на границе ядра и приложений. Короче, пингвиньи блохи. Раньше жил только один вид, devfs, а потом постепенно развился новый - udev и полностью вытеснил старый. Просто совсем вытеснил, вплоть до полного удаления. Интересно то, что непонятно чем новый вид, собственно, лучше. У меня сложилось впечатление, что он не только не лучше, а хуже. Если объяснять на компьютерном языке, то devfs представлял собой небольшой модуль в ядре, который по сигналам драйверов создавал устройства со стандартными именами. Зато udev - это архитектурная астронавтика. Это демон, который общается с ядром, создаёт имена по некоторым описанным в конфиге правилам, общается с приложениями, которые хотят получать события о создании устройств, и т.д. Дизайн-патерн мне показался очень знакомым. Ситуация такова - есть первая система, очень простая и понятная. С некоторыми небольшими проблемами. Есть некий архитектурный астронавт, который очень пропагандирует некоторую супер-архитектуру, способную покрыть старую систему как бык овцу, и в дополнение решить кучу других проблем, хотя никто никогда с этими другими проблемами и не сталкивался. Как правило маленький компонент или функция будет заменён на некий сервис, вероятно сетевой, возможно веб-сервис. Производительность будет ужасна, но не фатальна, она, вероятно и никогда не была узким местом. Новые проблемы, которые возникли после перехода на новую систему, будут объяснены тем, что система ещё не доделана до полной своей функциональности, и тогда она покроет не только старую функцию, но и всю систему вообще. Здесь главное - напористость астронавта. Особенно, если старая архитектура не особенно персонифицирована и не имеет столь же горячего защитника. Как только новая архитектура будет принята, её доделают до некоей приемлемой формы, другого выхода нет, но лишний килограм веса на животе это добавит. Ещё один, к досаде тех, кто ценит стройность архитектуры. Я раньше считал, что подобное - удел коммерческих компаний и закрытого софта больших компаний. Там это просто непрерывно. Но почитав линуксовые форумы, понял, что нет, это универсально. В открытом софте - то же самое. Фактически, исправить ситуацию может только давление, отбраковывающее подобные патерны, а его по ряду причин нет. Грустно. Не хочется пускать в свой компьютер жирного пингвина. И udev не хочется. Хочется простоты и удобства. Каталоги, как в GOBO, простые модули вместо сервисов, ненавижу сервисы. Наверное, надо фряху посмотреть или в гентушники податься, последнее прибежище отчаявшихся в разумности коллективного сознания.

2008-08-05

Мысль дня

"There is nothing intellectual in a property." (Нет ничего интеллектуального в собственности.)
Навеяно обсуждением параграфа из годового финансового отчёта Майкрософт.