2008-10-12
2008-10-09
Конец бумажных книг
2008-10-08
2008-10-03
Cloud OS
2008-09-26
Google Chrome - 20 дней спустя.
2008-09-22
Нижний Новгород - город контрастов.
2008-09-19
Для чего нужен Downtown?
2008-09-02
Google Chrome
2008-09-01
Пеньки на Keechelus Lake.
Почти все горные озёра - натуральные. Горные речки заливают впадину и получается озеро. Но уровень многих дополнительно поднят дамбой. Вода используется для орошения засушливой восточной части штата. Весной озеро наполняется талой водой, а за лето вода расходуется и озеро опускается до своего естественного уровня.
2008-08-31
Последствия снежной лавины
2008-08-26
Компьютерно-операционно-системное.
2008-08-24
Жирный пингвин робко прячет тело жирное в утёсах...
2008-08-23
2008-08-05
Мысль дня
2008-08-04
О хлебе насущном.
2008-08-02
Корпоративные игры.
Фабрики производят массовый товар, выполняя функцию клонирования. Программисты должны, в принципе, писать уникальный код, ибо стоимость прямого клонирования нулевая. Но модель продажи построена на старых традициях материального производства, поэтому нулевая по себестоимости функция клонирования оплачивается реальными деньгами, и эта особенность приводит к тому, что компания однажды завоевавшая рынок, может больше вообще ничего не производить, продавая копии уже сделанного. Рынок информационного продукта в силу ряда причин любит сиквелы и версии того же самого, что работает на ту же тенденцию. Обычно мелкие изменения и исправления багов достаточны для продолжения продаж. Покупатели не требуют прорыва и изменений. "Мы только-только разобрались в предыдущей версии, не надо нам нового API, сделайте просто чтобы старый работал, и всё."
А люди сидят, им надо расти, делать карьеру. Чем же они заняты? Корпоративными играми. Они играют в производство, в карьеру, в перспективные исследования и разработки, в новые методы производства и системы управления персоналом. Сотрудники делают супер-пупер продукт следующего тысячелетия, проводя бессонные ночи над переписыванием всего кода на новый язык или новую платформу, и ничего при этом не выпуская. А когда кто-то вдруг потребует выпустить что-нибудь, чтобы оправдать расходы, можно быстро повырезать весь новый сомнительный креатив и выпустить почти то же самое, что было, слегка перекрасив. Начальник сделает умное лицо и скажет, что мы потратили миллиарды на разработки и исследования и выпустили продукт много лучше, чем все остальные наши продукты. Блогеры и журналисты скажут WOW! Хакеры расскажут о способе вернуть старую раскраску и привычные функции. Все будут довольны.
Но только до тех пор, пока неумолимое движение прогресса не сделает этот супер-успешный продукт никому не нужным или выскочка-конкурент не напишут вдруг что-нибудь на порядок лучше и удобнее. Но даже и тогда, агония будет долгой, движение прогресса неспешно, инерция потребителей велика, супер доход от копирования позволит уничтожить конкурента или, в конце концов, попытаться завоевать новый рынок.
И тут-то и будет поджидать засада. Забыли! Разучились! Забыли как выпускать. Разучились писать исходя из здравого смысла, из проблем потребителя, быстро и эффективно. Начальство продолжает играть в игры, в карьеры, строить супер-пупер стратегии. Внедрять технологии и бизнес-процессы. Управлять персоналом. И потому не получается захватить новый рынок. Остаётся подождать, пока конкурент тоже начнёт деградировать от своих внутренних игр. И там, в будущем, мы ещё посмотрим, кто победит в финальной схватке гигантов. Если сумеем вспомнить их имена.
2008-07-29
Synology
2008-07-25
2008-07-23
Переключение раскладки в Windows с помощью Caps Lock.
В Windows поменять кнопку, конечно же, нельзя. А написать свою программу можно, но лень. Кроме того, API для этого довольно странный. Например, раскладка в Windows есть не свойство Desktop, как бы логично было предположить, а персонально свойство каждого thread в системе. Потому переключатель должен внедрить DLL в каждый поток каждого процесса, имеющего окна.
Оказалось, однако, что всё уже, в принципе, сделано, и можно найти, если поискать. Есть такая программа "The Microsoft Keyboard Layout Creator". В ней можно создать свою раскладку клавиатуры и Caps Lock в ней - одна из клавиш состояния, наряду с Shift и Alt-Gr. Вот эта раскладка!
Инструкция по установке такая:
1. Поставить creator и скачать раскладку (может потребоваться проверка подлинности Windows, как обычно для сайта MS).
2. Загрузить второе в первое.
3. Пойти в меню Project и выполнить "Create DLL and setup package."
4. Проигнорировать предупреждения.
5. Когда откроется каталог со сгенерированными файлами, запустить из него setup.
6. Пойти в Control Panel туда, где ставятся кнопки переключения раскладок, и выбрать новую раскладку раскладкой по умолчанию для английского языка (!!!). Новая раскладка универсальна, и содержит и кириллицу и латынь.
7. Можно выключить старые кнопки переключения на русский, во избежании путаницы.
8. Всё, можно наслаждаться.
Утверждается, что некоторые старые программы могут не понимать русские символы, введённые таким образом. Я пока такого не встречал.
Update: Сгенерированные драйверы можно загрузить здесь. Это zip-архив с инсталлятором. Его надо распаковать во временный каталог и перейти сразу к пункту 5.
N.B.: Переключение раскладки глобально в системе и не запоминается для каждого окна. Это свойство данного метода и мне лично оно очень нравится.
N.B.: Caps Lock не переключает ни раскладку, ни текущий язык. Он лишь является модификатором внутри раскладки, так же, как, например, и Shift, и заставляет клавиатуру генерировать другие коды. Оказалось, что Microsoft Word использует информацию о текущем языке, чтобы установить правильную проверку правописания. Так что с приложениями Офиса возможны некоторые проблемы.
Update: Я сделал аналогичную раскладку для OSX.
2008-07-17
Про NAS
2008-07-16
Vita Nostra
2008-07-10
AJAX, History and Backward Key
2008-07-06
Зелёная черепаха
2008-07-01
Я вернулся
2008-06-13
True Crypt
2008-06-11
2008-06-10
2008-06-05
Цены на бензин
Business value of Windows Vista.
2008-05-28
Невыполнимая миссия
2008-05-25
Kangaroo Farm
2008-05-24
2008-05-20
Microsoft about Vista
2008-05-19
В Spokane всё спокойно
2008-05-07
Выбор домашнего сервера
2008-05-05
Google calculator
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
Куда их совать-то?
О высоком
2008-05-01
Жгун
2008-04-30
Утиная типизация
2008-04-29
2008-04-28
Corteo
2008-04-17
Софт подчиняется закону Паркинсона.
2008-04-15
TGMLC = The Great Moore's Law Compensator

2008-04-10
Прошлогодний кампинг на Sunrise Point.
Пишут же люди операционные системы...
2008-04-08
Весна на Snoqualmie
2008-04-05
Дикие черепахи
2008-04-04
Перевернул зеркало.
2008-04-02
Блог в зеркале
Что мне не очень нравится в LJ, это то, что это не совсем блог, это социальная сеть. Потому там всё заточено на общение, а не на тексты. Опять же, чтобы оставить комент, нужно регистрироваться, логиниться и т.д. Да и дизайн весь какой-то социальный. И всякие рейтинги, "друзья", обсуждения, и пр. Я никогда не принадлежал к никакой тусовке и не переношу никаких рейтингов. Желание уйти из злачного места появляется сразу после просмотра блогов рейтинговых "лидеров" на первой странице. Я туда раньше не заглядывал и правильно делал.
2008-03-31
Опять хакнули баш.
2008-03-30
2008-03-29
2008-03-28
Переползание в blogger.
Unicode
2008-03-26
BIOS Hypervisor
2008-03-25
Смена лампочки в Микрософте
Слегка сокращённо. Я не знаю, как перевести некоторые термины, оставив их на английском.
Этот классический пост Эрика Липперта описывает, со всей мучительной детальностью, какая в точности нужна работа, чтобы добавить одну функцию ChangeLightBulbWindowHandleEx в Микрософтовский код:
# Один девелопер потратил пять минут на написание ChangeLightBulbWindowHandleEx.
# Один программ-менеджер написал спецификацию.
# Один эксперт по локализации проверил спецификацию на возможные проблемы локализации.
# Один эксперт по usability проверил спецификацию на возможные проблемы с usability и accessibility.
# Как минимум один девелопер, один тестер и один ПМ провели "мозговой штурм" по поводу возможных проблем с безопасностью.
# Один ПМ добавил модель безопасности к спецификации.
# Один тестер написал план тестирования.
# Один тест-лид включил его в график-тестирования.
# Один тестер написал тесты и добавил их в ночной автоматический тестовый прогон.
# Три или четыре тестера поучаствовали в "ad hoc bug bash" (поковырялись на предмет багов).
# Один технический писатель написал документацию.
# Один технический корректор вычитал документацию.
# Один технический редактор проверил документацию.
# Один менеджер документации добавил новую документацию в существующую систему, обновив таблицу содержания и поисковые индексы.
# Двадцать пять переводчиков перевели документацию на все поддерживаемые языки. Менеджеры переводчиков живут в Ирландии (для европейских языков) и в Японии (для азиатских языков), сдвинутые по времени относительно Редмонда, потому это не простая логистическая проблема.
# Команда старших менеджеров координирует все эти усилия, оплачивает работу и обосновывает расходы перед вице-президентом.
...
Кто же всё это делает для Open Source? Ответ, согласно комментарию Raymond Chen, это "никто", что говорит о вопиющей непрофессиональности и некачественности ОС софта.
Моё (codinghorror) откровенное мнение: "А вам всё это нужно, чтобы быть успешным?".
А моё мнение, как девелопера, что процесс сильно идеализирован и сокращён. Всё сложнее и дольше даже на первых стадиях. Потому до написания документации дело может дойти только по решению европейского суда.
Зачем всё это нужно мне? Ради одного последнего пункта, "оплачивает работу и обосновывает расходы". Это то главное, чего мне очень не хватает в Open Source.
2008-03-23
Стерео
2008-03-21
Из блога в блог перелетая
2008-03-19
Кто-нибудь хочет в Microsoft?
Вперед, в XXI век
2008-03-18
Vista vs XP
2008-03-17
Суп из рекламы
2008-03-14
Power Pain Point
2008-03-11
Yahоо
2008-03-08
2008-03-06
Неинтересные интересы
2008-03-04
2008-03-03
Выборные игры
Инн-овации
2008-02-24
2008-02-12
Незаметный Подкрад
2008-02-11
Московский цирк
... приехал в нашу деревню. Они выступают три дня в Kirkland Performance Center. Очень понравилось! Молодцы, ребята! Всё чётко, профессионально, весело и красиво. И музыкальное сопровождение замечательное, живое, играло трио с балалайкой, баяном и чем-то типа гуслей и всякими флейтами, но при этом как-то необычно, не заезжено и даже современно.
2008-01-29
Бред
Что противнее всего в этой теперешней простуде - это зацикленный, как "for(;;)" сон, состоящий из одной какой-то неопределённой и бессмысленной, но очень интенсивной мысли, которая во сне казалась очень важной, что-то надо было сделать, и зациклена она была, чтобы, вероятно, я не забыл это сделать, как это иногда бывает с мыслью "не проспать", но выматывает это примерно так же, как зацикленная мелодия из нескольких простых нот. Даже кратковременной пробуждение не помогает. Всё возвращается обратно.
Уже не первый раз думаю, что неплохо бы научиться методике выходить из таких неприятных циклических снов, какое нибудь ментальное расслабление, переключение внимания.
2008-01-13
2008-01-07
Народ обиделся
2008-01-05
Про выборы
2008-01-01
Та самая Татьяна?
2007-12-29
Экслер и фильмы
2007-12-27
Демократы в России
Я благодарен соратникам по партии, которые выдвинули меня кандидатом в президенты. Сделаю все, от меня зависящее, чтобы остался один кандидат от демократических сил.
Звучит угрожающе! Хотя позже он уже пообещал сделать себе хакамаду. А я уж было надеялся на необычные дебаты.
2007-12-25
Год спустя
2007-12-17
Free as in "free cheese".
Тюрьма Азкабан
Alcatraz Island. Магическая тюрьма из "Гарри Поттера". Совпадает по описанию и название похожее. Знаете где это?
2007-12-12
Anyone can hack.
Как пользователь начинает работать с программой? Читает мануал? Нет. Он её запускает и смотрит. Дальше происходит примерно такой мысленный монолог:
... Так, тут обычное меню File с пунктами Open и New. Нажмем New.
... Ага, текстовый курсор, можно печатать. И тулбар с Bold/Italic, значит текст с атрибутами.
... Печатаю, строчка сама переносится, значит редактор не строчный, а по параграфам.
... Ага, выделеный текст можно сделать Bold, а ещё раз нажать и снова обычный.
... Снова нажал New, он спросил сохранять или нет. Значит New не открывает нового окна или закладки, а просто заменяет в том же окне.
И т.д.
Это обычный reverse engineering. Метод "научного тыка". Пользователь играется с приложением и строит у себя в сознании модель того, как эта программа работает. Причем это делает не какой нибудь крутой спец, а каждый рядовой пользователь! Часто это делается интуитивно и неосознанно. Человек даже не помнит как оно работает, но при изменении ощущает, что программа "стала работать как-то не так".
Всё это очевидно? Казалось бы очевидно, но не всем. Почему-то фразу "пользовательская логическая модель" часто воспринимается в штыки. Такая модель должна быть продумана заранее, включая терминологию, в которой и надо делать интерфейс и документацию. Эта модель должна быть проста, логична, полна и, по возможности, состоять из ортогонального набора функций. И она обязательно должна быть discoverable. Иначе будет не программа, а набор хитро запрятаных "пасхальных яиц". Никто ваш длинный readme и FAQ читать не будет, даже если его набрать с capslock.
Для того, чтобы понять нечто в первый раз нужна аналогия. Где-то было так сделано, можно предположить, что и здесь это может работать. Либо поможет "крутой спец", который поделится кусочком своей модели. Либо, конечно, книжка. Кстати, Вы читали инструкцию к вашему телевизору? А к часам на руке?
P.S. Название поймёт тот, кто смотрел Ratatouille.
2007-12-08
2007-12-01
Есть такая партия, в шахматы
Есть "партия власти", которая по определению одна и которая олицетворяет путь на "сохранение завоеваний последних лет" в очередной холодной войне. Суверенитет как высшая ценность. Вероятно, она и соберёт большинство реально. Просто потому, что все остальные - партии нишевые.
Взять, к примеру, коммунистов, ЛДПР и, вероятно, Яблоко. Это партии, которые имеют шанс получить голоса определённой ниши избирателей, пройти на них в парламент (Яблоко - сомнительно), и договориться с партией власти, выторговывая себе определённые уступки. Это как компании-сайты продаются Гуглу или Микрософту за большие деньги, ибо имеют большую "пользовательскую базу", и реально за эти деньги продаются "души пользователей". Так и здесь: "голоса избирателей". Это нормально, в принципе, в политике, люди будут работать в парламенте, влиять на принимаемые законы, и т.д. и т.п.
Я бы поставил отдельно СПС сейчас, которая заявляет о том, что не будет договариваться. Вероятно именно поэтому такие нападки властей именно на неё. Фактически только СПС сейчас заявляет о реальном альтернативном пути развития. Это типичная партия западничества. Т.е. "открытая экономика", интеграция в Европу, Нато и т.д. Ну, да, и конечно, "распродажа земли и ресурсов", приватизация госкорпораций, и т.д. За ней должны бы стоять интересы международного капитала, но похоже не стоят или стоят не очень, вероятно, не надеясь на успех и предпочитая работать с существующей властью. СПС выглядит слишком радикально со своей непримиримостью.
Странно, мне казалось, что СПС - естественный выбор для эмигрантов, заинтересованных в "открытости" и "интеграции" больше, чем в "суверенитете". Хотя она воспринимается как партия "переворота" и потому, вероятно, неприемлема для многих, не желающих потрясений. Но они тоже будут работать в парламенте, если пройдут, никуда не денутся.
"Другая Россия", претендующая на то же самое место, как уже неоднократно сказано, партия только в смысле шахмат, и не выбираема.
Есть ещё всякие "Истинные Патриоты Матери-Отчизны" с какими-то совсем непонятными нишами.