2008-05-28

Невыполнимая миссия

Чтобы чего-то добиться фирма должна иметь и осознавать некую миссию, которая отлична от простого зарабатывания денег. Деньги должны быть лишь следствием выполнения миссии. Например, поставить персональный компьютер каждому голодному, или проиндексировать всё, что шевелится, или создать лучшую программу в своей нише, или дать каждой семье отдельную квартиру к 2000 году. Это не слоган, типа "измени жизнь к лучшему". Слоган - это бессмысленная рекламная херня, работающая через подсознание. Миссия же - вполне сознательно сформулированая цель. Если миссии нет, её начинают заменять слоганы и процесс становится самоцелью. Начинаются всякие "software is about collaboration". Collaboration - средство, инструмент, но вовсе не цель. Начинаются всякие шатания, типа зачем что-то делать, давайте лучше работать с пользователями, или давайте вложим деньги куда нибудь, может нам купить кого-нибудь. Начинаются игры в деятельность: cмотрите, у них какая штука, мы тоже такую сделаем, будет лучше настоящей. Все компании добившиеся чего-то имель неденежную цель, деньги приходили потом, когда эта цель создавала новый рынок. Компании без цели - зомби, которые существуют только за счёт инерции рынка. Они уже ничего нового не создают, но выискивают свежие ростки и немедленно пожирают их, постепенно превращая индустрию в пустыню. P.S. Навеяно посещением "standup meeting".

2008-05-25

Kangaroo Farm

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

2008-05-20

Microsoft about Vista

> Windows Vista is doing a lot more than Windows XP, and it requires resources to conduct these tasks. В этом то и проблема, что она делает больше. Мне не надо ничего из этого "делания", я бы предпочёл, чтобы она "делала" меньше, ничего не делала. Всё, что хочется от операционной системы - это возможности выполнять нужные мне программы и работать с железом. Идеально - это когда OS не видно, когда совершенно не ощущается, что она что-то "делает", когда просто "всё работает". Я обычно трачу усилия на то, чтобы выкинуть что-то из OS, остановить ненужные сервисы, деинсталировать ненужные программы, а поставить другие, те которые я выбрал, которые обладают нужной мне функциональностью. Последний пал Explorer (причём "пал" буквально), в результате я заменил стандартный shell на bblean, чем и доволен. Фактически это привело к тому, что больше нет на экране видимых окон, принадлежащих Windows. Нет вообще.

Фраза из разговора

"А фотографии у него все художественные, а потому скучные и неинтересные".

2008-05-19

В Spokane всё спокойно

Водопад в Spokane. Это город на восточной границе штата. Через весь город протекает река с одноимённым названием, которая по случаю наступившей жаркой погоды наполнена до краёв, бурлит и клокочет. Над этим буйством стихии протянуты навестные мостики и канатная дорога. Брызги долетают до мостика и приятно освежают.
Posted by Picasa

2008-05-07

Выбор домашнего сервера

За несколько лет у меня накопилась куча железок, управляющих домашней сетью. Это два четверть-гиговых Netdisk-а, один NAS с полугигабайтным MyBook, роутер и ещё один дополнительный свитч. Из устройств есть web-камера и DVD плейер, умеющий показывать фильмы с сетевого диска. Есть ещё несколько внешних дисков с бакапами разной свежести, лежащие по шкафам. Зрелище перепутанных проводов и блоков питания приводит меня в ужас. Хочется немного уменьшить этот бардак, собрав диски в один корпус и тем самым уменьшить количество проводов. Сейчас есть пара интересных железяк от HP. Во первых это MediaSmart сервер, работающий под WHS и во вторых MediaVault, который и по размеру и по цене тянет на половинку первого, и который работает под Линуксом. Первый основан на гигагерцовом процессоре AMD, второй на дохленьком полугигагерцовом ARM-е. Почитал я спецификации и всё бы хорошо в первом, если бы не цена и не WHS. Как-то не хочется сервер под windows, мне надо, чтобы работало и с Mac-ом и с Linux-ом. Да и функциональный набор WHS кажется довольно неприменимым. Нет, совсем не вдохновляет. С другой стороны, железяка явно пошустрее и места для дисков в ней больше. Если бы первую машинку да с софтом от второй, да подешевле на пару сотен (как раз стоимость WHS, наверное). Пробовал их кто-нибудь? Интересны отзывы.

2008-05-05

Google calculator

Subj, в принципе, очень удобная вещь. В поисковой строке можно набрать формулу с величинами, имеющими размерности и всё будет корректно посчитано и переведено.

pi*(3mm^2) in inch^2: pi * (3 (mm^2)) = 0.0146084351 inch^2

Мой сын на нём считает задачки по физике. Калькулятор знает многие физические константы, может перевести результат в нужные единицы, а то, что единицы совпали, является дополнительной проверкой.

Я когда увидел, попробовал и мне очень понравилось. Я когда-то тоже делал похожую штуку. А потому знаю где лежат одни грабли. И заглянув в заветное место увидел грабли в целости и сохранности. Вот они. Но Гугл зделал их ещё занятнее.

(0 Celsius - 0 Celsius) in Celsius: (0 degree Celsius) - (0 degree Celsius) = -273.15 degrees Celsius
0 Celsius + 0 Celsius: (0 degree Celsius) + (0 degree Celsius) = 273.15 degrees Celsius
0 Celsius *3: (0 degrees Celsius) * 3 = 546.3 degrees Celsius

Собственно, объяснение простое, но сначала ещё один пример:

0 Celsius - 0 Celsius: (0 degrees Celsius) - (0 degrees Celsius) = 0 kelvin

Гугл не умеет работать с размерностями со смещённым нулём. Для абсолютных единиц типа температуры бывают шкалы, гне нуль смещён. Например, температура Кельвина - абсолютная, а Цельсия и Фаренгейта - относительные. Вычитая относительные величины, скажем градусы Цельсия, мы получаем новую размерность - интервал температуры в градусах Кельвина или Цельсия. Очевидно, что переводя интервал в градусы Цельсия не надо прибавлять смещение в 273 градуса. Этим интервал отличается от значения температуры.

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

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

Никто не знает, как Гуглу баг зафайлить?

2008-05-02

Куда их совать-то?

Та же проблема, что и в анекдоте про свечки, существует в программировании и особенно в ООП языках. Допустим есть у нас набор объектов, скажем драйверы разных графических адаптеров. И другой набор объектов, скажем графические примитивы: линии, окружности, многоугольники. И решили мы нарисовать одно на другом. И написали для этого код. Всё уже почти работает, но перед нами встала архитектурная проблема: куда засунуть метод? В C#, например, функция должна быть в классе. Можно определить, конечно, класс с одним (или несколькими) статическим методами, но заклюют за недостаток архитектурности. Можно засунуть в графический примитив. Сделать у каждого метод Draw. А можно наоборот, в драйвере сделать виртуальные DrawLine и DrawCircle. Оба решения имеют недостатки. Например, примитивы могут быть вообще не классами, а структурами и методы рисования на конкретного вида устройствах там создают ненужные зависимости. А драйверы потому и драйверы, что не содержат всякой высокоуровневой логики. Надо сделать визитора, скажут прочитавшие Design Patterns или wrappers для примитивов, или ещё один уровень поверх драйверов, и понеслось. Что интересно, раздумья эти с точки зрения выполнения кода не очень интересны, код всё равно будет один и тот же. Это скорее предмет для бурного обсуждения на API review meeting. Что наводит на мысль, что это вообще ненужное размышление. Это плата за ООП и его упрощённую модель, когда метод принадлежит только одному классу. Логически у нас есть операция нарисовать одно на другом и некоторая матрица кодов, которые выбираются исходя из некоторых условий. Старый С-программист сделал бы функцию a la printf с форматной строкой и большим switch внутри и не был бы сильно неправ. Компьютер бы полюбил такой код за компактность, но архитект бы поморщился от такой примитивности и неархитектурности. Независимый С++-программист просто написал бы набор функций. Я не буду сейчас пока описывать как я представляю хорошее решение данного примера на разных языках. Моя мысль дня была в том, что ненужные с точки зрения кода рассуждения вероятно не нужны вообще и их наличие - недостаток архитектуры. А навеян пост продолжением чтения книжки про Руби и обнаружением в классе numeric метода, повторяющего блок N раз. Блин, оператор цикла - метод в классе целого числа. Зачем он вообще метод? "А потому!" - скажет автор, и будет по-своему, по-авторски, прав. Хочу тоже быть автором.

О высоком

В очередной раз удивившись потребности некоторых коллег испытывать к работодателю трепетное чувство верности, я подумал, что моё предыдущее объяснение этого явления не годится. Конечно, это спокойнее, но сила ненависти, которая обрушивается на усомнившегося в идеалах больше, чем объясняло бы сохранение душевного спокойствия или нежелания анализировать. Причём чем моложе собеседник, тем сильнее иррациональность чувства, что явно наводит на мысль об общности механизмов с другими человеческими инстинктами. А ведь скорее всего опять проявляется инстинктивное поведение. Человек - стайное животное, В стае интересы стаи важнее личности, отсюда и верность и самопожертвование. Отсюда же потребность принадлежности стае и депрессия от отсутствия таковой. Поэтому инстинктивные психологические механизмы, защищающие продление рода, переносятся на вожака. В бою вожаку надо верить, чтобы спасти стаю, даже ценой собственной гибели. Гены твоих выживших детей это запомнят. Может отсюда же и религия? Часто говорят, что человеку свойственно верить. И поэтому либо та религия либо другая. Я всегда считал это пропагандой, но сегодня задумался: может действительно свойственно?

2008-05-01

Жгун

Замечательно мужик рисует. Лица получаются отлично. И детали. И написал в одном из постов, что ищет работу, только не web-дизайн и не фирменные стили. Да уж, конечно! С таким талантом надо чем нибудь дельным заняться. Весь этот web-дизайн, в принципе, как и все эти "фирменные стили" есть просто распальцовка и ничего больше. Вот смотрю на продукцию самой известной российской дизайнерской фирмы и ничего кроме распальцовки не вижу. Неудобная клавиатура за несколько тысяч, какие-то странно уродливые и неудобные дизайны, херня какая-то. А вот у меня под рукой мышь no-name. Самая приятная изо всех, которые видел. Купил за 12 баксов в несуществующем больше магазинчике. Искал, кто делал, так и не нашёл. Да и как найти, когда всей информации на бирке "Optical mouse, made in china". И всё! Нет, не надо идти в web-дизайн. Лучше книжки оформлять. Хотя бы и онлайновые.