Welcome to TechNet Blogs Sign in | Join | Help

Программист – тоже человек!

Что бы вы сказали о человеке, который решил показывать полноэкранные фильмы на машине с Intel 80386 (помните, были такие?) или решившем построить вебсайт, обслуживающий миллионы человек, на одной едиственной IBM PC XT circa 1980? Покрутили бы пальцем у виска, верно?

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

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

Чего далеко ходить, у меня был в прошлом эпизод, когда я вынужден был написать приличный кусок кода, который трудно было поддерживать. Задача была такая, сложная. Росла эта сложность из бредовых требований к функциональности, которые по политическим мотивам нужно было реализовать, в результате получился сложный кусок. Мой менеджер несколько раз порывался править его за меня, и это был первый (и пока последний) случай в моей жизни, когда я наблюдал у человека 100% регрессий. То есть, каждый раз, когда Серый Крыс (назовем так сей обобщенный образ в традициях данного блога*) правил реальный или воображаемый баг в моем коде, он вносил туда другой, как правило более худший баг. Ограничив размер потребляемой памяти он внес deadlock. Проверяя качество моего кода, он вообразил, что я не освобождаю переменную, «исправил» это и внес утечку памяти (не спрашивайте меня, как можно внести утечку памяти добавив free() – я тоже был очень впечатлен.) А исправив редкий и трудно воспроизводимый реальный баг в сетевом соединении он одним махом обрушил половину функциональности всего продукта. В общем, писать код так, чтобы абы кто мог его править, конечно, невозможно. Но ведь можно хотя бы думать об этом и не создавать искуственных усложнений на пустом месте, верно?

Другой пример, где трудно сказать, кто прав, кто виноват, но который показывает к чему приводит сложность кода. Еще в России мой друг работал на некую софтверную фирму и написал им изрядный кусок кода, который был весьма и весьма сложен. Надо отдать должное – задачи и правда были сложные, по своей природе. Сложная растеризация векторной графики. Потом мой друг уехал в Штаты. Через пару лет другой мой друг зашел в ту фирму и увидел следующую картинку: двое ребят грусто смотрели на экран и один другому говорит: «Да-а-а, это Вадик писал, теперь в этом никто не разберется. Придется переписывать...» Никто не сомневался, что он – гений. Проблема в том, что когда гений уезжает в Штаты, найти другого гения ему на замену, который к тому же еще бы и смог разобраться, что тут предыдущий гений накропал, очень тяжело.

Так, а с чего я заговорил на данную тему? Ну, да, натолкнулся на это дело. Кстати, натолкнулся на это в открытом коде, не считайте это нападкой на открытый код, просто именно в нем я натолкнулся на это очередной раз, вот и пишу о нем. К тому же, с открытым кодом каждый может его загрузить и убедиться лично. Собрался я поставить CMS на один из сайтов моей жены. Выбор, разумеется, огромный, но последнее время мне очень нравится Drupal. Amazon.com на нем, конечно, не построить, но сотню-другую посетителей в день он выдерживает легко, а для любительского сайта ничего больше и не нужно. Одна беда, хорошей темы под рукой нету, а сайт у нее специализированный, доступными темами не обойдешься. Ну, что, взял я одну из стандартных тем, начал править. Ёма-ё...

Каждая страница требует примерно дюжину stylesheets. FireFox примерно половину их не видит, или по крайней мере не сознается в этом в плагине разработки. Впрочем, в том, как он отображает страницу, тоже не сознается. То есть, написано в стиле:

body.sidebars {… }

Проверяешь текст страницы:

<body class=”sidebars”>…

Файл со стилем в заголовке страницы. Наводишь на body мышку, элемент видит, класс видит, стиль не видит.

Да-да, сейчас и к IE перейду, не волнуйтесь так. IE стиль видит, но применяет его как-то странно. Представьте себе два вложенных элемента, у внешнего элемента фон зеленый, у внутреннего – синий. Как это должно выглядеть. Просто, синий прямоугольник внутри зеленого, верно? Как бы не так. Я так и не понял, что разработчики этого стиля устроили, но внешний элемент мне показали без фона, а внутренний – зеленым.

Я знаю, что сейчас многие начнут подпрыгивать на месте и кричать про плохой IE, который не поддерживает стандарты, но ведь лисенок от таких стилей тоже рехнулся, при чем тут стадарты? Может просто писать попроще и понадежнее надо?

Что мне тут не понравилось?

  1. Дюжина динамически генерируемых файлов со стилями очень плохо загружается в человеческую голову.
  2. Переписывание атрибутов одного и того же элемента или класса в нескольких разных файлах еще хуже отслеживается в голове.
  3. Стандартная тема должна разрабатываться с расчетом на то, что ее будут использовать в качестве основы для новых тем.

А тут скромнейшие изменения воспринимаются по принципу сталинских лагерей: «Шаг вправо, шаг влево – попытка к бегству, прыжок на месте– провокация.»

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

Да, я понимаю, что это – открытый код, что я не вправе требовать от него суперкачества, что люди тратили свое личное время совершенно задаром, и я должен сказать спасибо за то, что есть. Я и не требую. Просто я решил рассказать, что я буду требовать от себя, когда сегодня вечером сяду писать тему для того сайта с нуля за неимением лучшей альтернативы.

---

* Про образ «Серого Крыса» и сказку об Иванушке Дурачке работающем на Серого Крыса (вместо Ивана Царевича и помогающего ему Серого Волка) можно прочитать вот здесь.

Posted by EldarM | 0 Comments

Спам-блоги или âµ°»Ã½Ã...

Недавно мне поместили такой вот комментарий:

EldarM wrote an interesting post today on Downoading communism â�� ���µ���°�»���½�¾�µ �±���´�����µ�µ �±�¸�·�½�µ��-�¼�¾�´�µ�»�¸ ...

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

Очевидно, это был блог-спаммер. Есть несколько игр вокруг блогов, которые могут использовать те, кто хотят обмануть поисковики и нагнать траффик на свои сайты. Наиболее примитивная форма блог-спама состоит в публикации комментария со ссылокой. Этих, с виагрой-дот-ком я каждый день чищу в количестве не одного десятка. То, на что я натолкнулся выше, это уже следущее поколение спаммеров. Что они делают, это создать специальный спаммерский блог, который автоматически сдирает посты с других блогов через RSS или Atom и публикует их у себя со ссылками на исходный пост. Обратите внимание на "автоматически" - это освобождает спаммера от трудов по копированию и обслуживанию блога.

С одной стороны, это не обижает тех, кого сдирают. И правда, чего бы это я обижался, если на меня ссылаются. Я и правда не обижаюсь, даже на достаточно очевидные спаммерские блоги. В отличие от комментариев, пинг-беки (ping back) от них вполне терпимая вещь. Опять же, если на это не начнется мода и если каждый день сотни идиотов не начнут этого делать. Но тут уж было явно через край. Товарищ даже не смог справиться с кодировкой...

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

Ну, а этот... как бы его назвать... ну, ёлки-палки... Мало того что чудак на букву "м" не справился с кодировкой, он еще и настроил сдирание русскоязычного блога с английским комментарием: "EldarM wrote an interesting post today on ..." Ё-к-л-м-н...

Всех с Днем Победы - 9 мая!

Всех с Днем Победы - 9 мая! Особенно старшее поколение, ветеранов. Только что поздравил отца по телефону, и теперь пишу поздравления здесь.

Кстати, а вы в курсе, что конечная битва Добра и Зла с окончательной победой Добра (согласно христианской традиции) - Армагеддон, предположительно тоже будет 9 мая. По крайней мере согласно, традиционному мнению, именно тогда был первый Армагеддон, который и попал в Библию - битва при Меггидо - в 1457 (предположительно) до нашей эры. Во всяком случае, мне кажется это более подходящим прообразом нежели вторая битва при Меггидо, случившаяся в 609 году до нашей эры, когда армия Иудеи на стороне вавилонян выступила против армии Египта (опять), была в треск разгромлена, но сумела задержать египтян и тем самым прибилизила вавилонский плен в 586 г. до н.э.

Оригинал поста

Мак-шедевр, которым я не могу не поделиться...

Я все еще осваиваю свой новый Мак ноутбук. Сегодня я видел нечто удивительное...

У мака есть несколько специальных клавиш, в том числе клавиша со специальным заковыристым знаком, так, просто, чтобы быть cool, и для тех, кто не-cool вроде меня, еще и подпись COMMAND. Я сегодня пытался найти комбинацию клавиш, чтобы удалить файл. Мне подумалось, что Commad-D может быть логичным решением, если уж обычная клавиша Delete не работает. Я был готов к тому, что она не работает, и мне придется искать что-то другое. Но я был совершенно не готов к тому, как же она на самом деле работает.

Не буду томить, Command-D (что я по наивности прочитал как Command-Delete) создает копию файла в том же каталоге. Думаю, что гении, это дело придумавшие, имели в виду Command-Duplicate, но кто следующий будет мне лапшу вешать на уши насчет интуитивности Мака будет послан в Command-L.

ЗЫ А после установки питончика, просто Hello.py в командной строке в упор не понимает. Требует python Hello.py... Как пишет на своем блоге Сережа Соляник (см. ссылку на его блог справа), не все интуитивное для чайников, удобно для нормальных людей... 

Спать на работе полезно!

Уже не в первый раз в печати проскальзывают заметки, что чуть дневного сна повышают работоспособность, улучшают здоровье и вообще замечательная штука. А теперь группа ученых под руководством Олафа Лала вуниверситете Дюссельдорфа доказала, что даже шестиминутный дневной сон (знаете,как на военной кафедре, лбом ну кулак сидя за партой...) еще и улучшает память.

В их экспериментах добровольцы являлись в лабораторию в час дня, учили в течении двух минут тридцать новых слов, а затем либо бодроствовали, либо спали 6 минут, либо спали 35 минут. Первые затем вспоминали только в среднем семь слов, вторые – восемь, третьи – более девяти.

Особенно мне понравилась фраза в этой статье, «Executive thinking is particularly impaired by sleep loss,” Horne says. “You become much more blinkered in your thinking, less able to evaluate risk.» В вольном переводе что-то вроде «Исполнительное (executive) мышление особенно страдает от нехвати сна. Ваше мышление становится все более пунктирными менее способным оценивать риск.»

Хотя не думаю, что некоторые неудачные executive решения могут быть обьясены всего лишь недостатком сна.

Naps for Better Recall by John Whitfield – Scientific American, May 2008, p.32.

Конец телевидения как мы знаем его – с точки зрения классовой теории

Кросс пост с персонального блога...
--- 

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

Классовая теория for Dummies

Итак, для начала позвольте описать «на пальцах», что же такое марксизм. Вы еще застали его в школе? Если да, вас когда-нибудь удивляло, почему теория Дарвина указывалась в качестве одного из важнейших естественонаучных открытий, которые сделали возможным появление марксизма? Причем говорилось это с самоуважением гибрида советского вахтера и представителя HR американской корпорации, а попытки попросить обьяснить ничем разумным не заканчивались. Учителя этого тоже не понимали.

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

Как у Дарвина? Было болото, летали комары; прыгали лягушки, питающиеся комарами; их ловили и ели цапли; а за яйцами цаплей и лягушками охотились выдры. Потом где-то прорвало плотину, болото пересохло, комарам стало негде размножаться, лягушки кто передохли, кто разбежались, цапли улетели искать другие болота, выдры уплыли в речку охотиться на рыбу. Зато выросла луговая трава, по ней стали прыгать кузнечики, очень вкусные кузнечики для появившихся тут же мышек-полевок, а уж за мышками появились лисы и совы. Ну, а уж поверх этого та маленькая деталь, что кто-то из лягушек может мутировать в ящерицы и выжить на лугу. Как, например, случилось в конце каменноугольного периода, когда хвощевые болота сменились более сухим климатом.

Основная идея – есть еда, есть те, кто ее ест, нету еды – нету тех, кто ее ест. Просто правда? Причем те, кто едят, тоже могут рассматриваться в качестве еды для кого-то другого, который тоже при этом появится. Одним словом, как гласит народная мудрость, «было бы корыто, а свиньи найдутся.»

Вот эта простая, но фундаментальная идея и лежит в основе марксизма. Что говорит марксизм? Не сам Маркс, который будучи гуманитарием-журналистом писал столь корявым языком, что понять его без полбанки невозможно, причем с полбанкой тоже, но это уже не ощущается как потеря. Что по сути говорит марксизм как теория?

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

Аналогичные процессы имеют место и при других сменах формаций. Скажем, переход от феодализма к капитализму в Англии. Лорды стали огораживать землю для выпаса овец, которые давали шерсть для мануфактур. Возможости прокормиться для крестьян катастрофически уменьшились. Как и лягушки, крестьяне стали разбегаться. Около ста тысяч развесили на перекрестках дорог, остальные осели там, где была способность прокормиться – в качестве рабочих мануфактур. Была еда для крестьян – были крестьяне. Были крестьяне – были феодалы. Исчезла еда для крестьян, появилась еда для рабочих. Исчезли крестьяне, появились рабочие. Исчезли феодалы, появились капиталисты. И даже лорды превратились из феодалов во владельцев вполне капиталистических предприятий.

Чувствуете? Один к одному. Есть еда – есть те, кто ее ест, нету еды, нету тех, кто ее ест.

А общественный строй по марксизму – это просто уровень технологического развития, определяющий для кого есть еда, а для кого нет, плюс основные две категории – те, кто ест, и те, кто едят тех, кто ест, а главное, как они это делают. Это и называлось производственными отношениями. Комары-лягушки-цапли. Кузнечики-мышки-совы. Крестьяне-феодалы. Рабочие-капиталисты. Ну, или если вам так хочется видеть группу из трех, крестьяне-феодалы-монархи, рабочие-капиталисты-финансисты.

Рождение средств массовой информации – переход от капитализма к социализму

Капитализм родился давно, в 17-м веке. Устроен он был просто – капиталист ходил по фабрике и раздавал подзатыльники нерадивым рабочим. Так и жили. Рабочих было много потому что было много рабочих мест для рабочих. Капиталист мог эксплуатировать рабочих, потому что он владел фабрикой. Два класса жили если не в мире, то в своеобразном симбиозе, поддерживавшем обоих.

Примерно во времена Маркса фабрики и заводы стали такими большими, что лично ходить по ним и раздавать подзатыльники капиталисты уже не могли. И потребовались специальные люди – мастера, начальники цехов, господа главные инженеры... одним словом, менеджеры.

Это очень важное изменение. Поначалу они были просто помощниками капиталиста, но постепенно их стало столь много, что капиталист уже не имел большого контроля на фирмой, а с распространением открытых акционерных обществ (public corporations), в которых “капиталистами” могут быть миллионы незадачливых владельцев акций, менеджмент в лице президентов, CEO, и советов директоров вообще практически никому не подответсвенны. Невелик сюрприз, что «капиталисты» – владельцы акций – все чаще и чаще получают шиш с маслом, а иногда и без него, а все купоны стригут эти самые представители высшего менеджмента.

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

Разница между капиталистом и менеджером огромная. Капиталист получат прибыль за счет того, что завод – его собственность. Менеджер ничем не владеет, он получает прибыль за счет того, что он распоряжается чужой собственностью. Это два приципиально разных класса. Капиталист должен владеть заводом, чтобы получить прибыль. Менеджеру совершенно все равно, кто владеет заводом. Это могут быть лопухи-владельцы акций, а может быть воообще «всенародной собственностью», для менеджера это все фиолетово, его навар в праве распоряжаться этой собственностью.

Не менее велика разница и между неорганизованными и организованными рабочими, к чему, кстати, приложил руку и Карл Маркс во второй части своей теории. Недовольных неорганизованных рабочих можно расстрелять из пулеметов, как это делали американские фирмы в странах Латинской Америки или британская золотодобывающая компания на Ленских приисках. Организованный рабочий класс уже нельзя. Это уже тот народ, который нельзя посадить в Бастилию. Они могут сорвать производство. Они могут устроить революцию. За их плечами стоит мафия, у кого чикагская, у кого эсеры с большевиками. Этим надо... как бы это выразить прилично... вешать лапшу на уши, пудрить мозги, обманывать в массовом количестве. В общем, нужна пропаганда и реклама. И нужны средства ее доставки.

Помните? Есть еда, есть те, кто ее едят. Есть массовый рынок читателей-слушателей-зрителей и тех, кто готовы платить за донесение до них информации, есть средства массовой информации – mass media. И обратите внимание, появились они как раз в то же время, когда капиталистов стали сменять менеджеры, а рабочий класс начал организовываться в партии и профсоюзы.

Кстати, я тут говорю, что капитализм стал сменяться новым общественным строем. Вы уже догадались каким? Подумайте, шайка-лейка, которая ничем не владела, но всем распоряжалсь, и оправдывала это средствами пропаганды... хм-м... где бы это могло быть? Ага. Новый строй назывался «социализм», хотя правильнее его наверное было бы называть «бюрократия». И да, он был по обе стороны океана. Только в одном полушарии бюрократия была государственная, а в другом – корпоративная. Никакого противостояния капитализма и социализма не было, были две социалистических империи, которые делили мир.

СМИ – включая телевидение – это порождение социализма, порождение массового рынка рекламы и пропаганды. Они появились с социализмом, и «еда» для них существует, пока есть социализм.

Конец телевидения

Внимательные читатели, наверное, уже догадались в чем проблема. Ведь никто не обещал, что социализм будет и дальше. Если история чему учит, так тому что рано или поздно не будет. А будет ли «еда» для телевидения, когда закончится социализм?

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

Появились knowledge workers – особый класс работников, сила которых уже не в мафии за плечами, а в том, что они редкие, дорогие и сами знают, что нужно делать для фирмы. А менеджер, как правило, не знает. Пулеметы с ними тоже не работают, потому что хотя всех умников теоретически можно построить в шеренгу и расстрелять, но для страны это кончается печально. Однако СМИ, включая телевидение, с ними тоже не работают. И вот почему.

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

Новый «пролетариат» – knowledge workers – сильно в этом плане отличается. После штамповочной обработки в средней школе, которую большинство из них заслуженно ненавидит, они «доводятся» до готовности небольшими партиями в университетах. Эта «доводка» занимает 3-6 лет и включает в себя значительный дополнительный набор не только знаний, но и ценностей, взглядов на жизнь, политических предпочтений. В результате «материал» для обработки рекламой и пропагандой оказывается сильно фрагментированным. Нужда и в рекламе, и в пропаганде по-прежнему есть, а вот массовость в стиле двадцатого века уже невозможна.

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

Как говорят в Америке, упс!

Моя жена получила первый чек от Гугла...

Нет-нет, она не пошла туда работать. Просто на паре своих сайтов выставила их рекламу. Что забавно, действительно что-то "капнуло"... Во!

Аж, сто двадцать баксов!

Одноминутная головоломка - найдите проблему в этом цикле за 60 секунд

Вечером опубликую пост побольше, а пока экспресс-головоломка: найдите проблему в этом цикле за 60 секунд или меньше.

Такой вот цикл:

int ar[5];
for (unsigned int i = 4; i >= 0; i--) {
      printf(
"%d\n", ar[i]);
}

 Ответ не даю, поскольку должен быть очевиден. Нет, правда смешно?

Как вызвать метод с UI thread в Silverlight?

Для этого есть такой полезный обьект System.Windows.Threading.Dispatcher.

Если ваш класс произведен, скажем, от UserControl:

public partial class Page : UserControl

То у вас автоматически есть доступ к диспетчеру, поскольку он является public членом подлежащего класса  System.Windows.DependencyObject.

Иерархия такова:

System.Windows.Controls.UserControl : System.Windows.Controls.Control : System.Windows.FrameworkElement : System.Windows.UIElement : System.Windows.DependencyObject

Если же нет, например, ваш код вызывается из отдельного класса без доступа к любым UserControl'ям, то диспетчера можно достать из Application.Current.RootVisual.Dispatcher, но будьте осторожны: RootVisual вроде бы доступен только с UI thread, так что скорее всего придется вытащить его где-нибудь в подходящем конструкторе или по нажатию кнопки и сохранить ссылку в удобном месте.

Использовать диспетчер очень просто:

disp.BeginInvoke(Action) 
или
disp.BeginInvoke(Delegate, Object[])

Вторая запись позволяет переменное количество параметров, причем массив создавать не обязаетльно. Например, disp.BeginInvoke(new MyDelegate(callback), 1, 2, 3, 4, 5)

XBox development kit - на чем пишутся и отлаживаются игры для XBox 360

Вот подумал, что может быть интересно. Кстати, а вы знали, что XBox 360 внутри не Intel, а PowerPC, и Windows там не совсем обычная, а с рядом интересных особенностей (например, нет registry и COM)

Поскольку это не обычный компьютер, да еще и защищенный, отлаживать на обычном XBox 360, купленном в магазине, не получится. Поэтому для этого есть специальная версия XBox 360 Development Kit, которая сильно дороже, включает в себя некоторые дополнительные удобства для разработки поддержанные дополнительным железом, которое в основном прячется в этой серой "башенке" сверху.

XBox 360 Development Kit

Рынок рабочих мест в IT в США

Такая вот забавная статья в Communications of ACM. Впрочем, сама статья явно заказная, пытающаяся доказать, что аутсоурсинг не забирает рабочие места из Америки, но статистика занятная.

Конечно, точные цифры стыдливо прячутся за графиками, где вертикальная ось в тысячах (1000, 2000, 3000...) скрывается за расстоянием в полсантиметра, причем чего тысяча – не говорится. Подозреваю, что на самом деле подразумеваются миллионы, но стыдливость авторов не позволила это вразумительно выразить. Вдобавок, данные берутся на основании (держитесь за стул) Интернет сайта для поиска работ Monster.com – то есть ребята просто удосужились побывать на этом сайте  раз в год, или там квартал, в течении трех лет, а может просто раскопали статью тех, кто удосужился. В общем, типичная курсовая, которая иначе не заслуживала бы большого внимания. Кстати, как эти ребята ухитрились опубликоваться в Communication of ACM – выше моего понимания. Наверное, их стыдливость распространяется только на печатные материалы, но даже это полностью всего не обьясняет.

Но, все-таки, о статистике. Статистика 90-х у них начинается с 1992, но учитывая ограниченность Интернета в 1992, ранние цифры мало что говорят. Более поздние утверждают, что в 1996 было порядка трех с половиной тысяч (неизвестно чего) работ, в 97-м – почти пять с половиной, а уже в 98-м оно упало до почти ровно трех. Для сравнения приводятся цифры для 2000-х годов (я надеюсь, в тех же единицах, хотя авторы этого явно не обещали...) Итак, с 2002-го по середину 2004-го число работ болталось в районе двух тысяч (опять же все того неизвестно чего). Потом в третьем квартале 2004-го произошел всплеск до четырех тысяч, затем легкий спад до трех, и рост до шести тысяч в конце 2005-го и восьми тысяч в начале 2006-го. Насчет 2007-го или там, Боже упаси, 2008-го, стыдливость авторов опять взяла верх.

В общем, идея – «заткнитесь и не жалуйтесь, работ больше чем в 90-х». Ха. Ха. Ха. Нет, все равно не смешно... Тем не менее, хоть какие-то данные.

В общем, не знаю. В 2005-2006 и правда ситуация на рынке труда сильно улучшилась. Сейчас она вроде бы опять ухудшается, хотя точно непонятно. Исходя из общих теденций, полагаю, что будет хуже пару-тройку лет, потом опять подьем. Опять же, падающий доллар должен вернуть некоторые работы в Америку. Вот, в общем-то, и весь прогноз. Аутсоурсинг в Россию, а также в Индию и Китай, слегка ослабеет, хотя выразится это «ослабение» в падении или снижении скорости роста – сказать трудно. Запросто может быть второе.

А у кого-нибудь есть данные получше?

The Size of the IT Job Market: Comparing the U.S. IT Job market of the 1990s and 2000s by Chuck Litecky, Bipin Prabhakar, and Kirk Arnett – Communicationsof ACM, April 2008, Vol. 51, No.4, p.107-109.

Я уже жаловался на погоду с Сиэттле?

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

Мы не просто поимели снег, но и град! Я не стал занудствовать и писать об этом несколько дней назад, когда это случилось, но сегодня я узнал, что в Редмонде этот град был с голубиное яйцо размером... У Вадика Слесарева, который недавно ушел из Windows Home Server и теперь работает над встроенными автомобильными системами (представьте себе, CD риппер, встроенный в вашу машину! Нет, не компьютер. Одно устройство, чтобы и пиратски копировать музыку, и уезжать от полиции :-) Шучу, конечно ;) )... хм, о чем это я... Ага, так у Вадика Слесарева этим градом разбило столик, на котором он раскатывал тесто для пиццы, которую он печет в своей уникальной итальянской печке на заднем дворе. Не верите? Смотрите сами!

Кстати, насчет печки. Думаете я пошутил? Какая-нибудь дешевая американо-китайская подделка? Не, честно, итальянской. Фигурные кирпичи и вообще полный комплект для этой печки заказан из Италии и шел морем несколько месяцев.

---
Как всегда, я сначала публикую на персональном блоге.

Posted by EldarM | 3 Comments

Почему изобретателей считают идиотами?

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

Patent Award Cerificate Plaque

Что еще смешнее, при этом применяются достаточно дешевые маркетинговые приемчики. Например, название одной из фирм звучит примерно как “U.S. Patent and Trademark Office Memorial Plaque”. Предполагается, что изобретатель прочитает первую половину названия и решит, что это письмо прислал патентный оффис, что естественно повысит продажи данных табличек.

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

Albert Einstein

Вы можете сказать, что раз рассылают, значит работает. Да, очевидно работает. Хотя в большинстве случаев скорее всего совсем не так, как рассчитывают создатели этой рекламы. Скажем, у меня такая табличка может и будет. Microsoft обычно заказывает их за свой счет для поддержки морали. Только в этом случае и рекламу следовало слать фирме, а не мне. Видимо рассчет на то, что я принесу эту бумажку на фирму и начну клянчить табличку. Впрочем, в Microsoft это, во-первых, не нужно, обычно их и так заказывают, а во-вторых, не сработало бы, поскольку к тому времени, когда патент наконец выпускают, ты уже давно сменил не одну группу, а то и отделение. Впрочем, это уже мелочи.

А все-таки, почему люди в маркетинге считают изобретателей идиотами???

---
Кросс-пост с персонального блога...

Downoading communism – Печальное будущее бизнес-модели сегодняшней видеоиндустрии – взгляд из истории

У одного из моих коллег в офисе висел плакат: очкарик склонился над компьютером и собирается нажать кнопку Download, за его спиной огромный лохматый казак с черной лохматой шевелюрой, выпучеными глазами и огромными кривыми зубами, в полушубке, опоясанный пулеметными лентами, с огромной красной звездой на папахе одобрительно похлопывает паренька по спине. Все это сопровождается подписью “When you download free music, you download communism!”

Да-да, опять кросс-пост с персонального блога... 

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

Кратко и по существу

Честно предупрежу: статья большая. Так что, я сначала выражу свою мысль кратко и по существу, а уж кому нужны детали, читайте до конца. Итак, кратко и по существу. Если взять историю индустрии развлечений с Египта и Вавилона, а не с появления Голлливуда, как некоторым хотелось бы, то окажется, что почти всю ее историю копирайт и интеллектуальные права не имели для нее никакого особого значения. Конкретнее, за семь тысяч лет истории человечества, копирайт имел хоть какое-то значение лишь последние пару сотен лет. И даже эту пару сотен лет, он использовался исключительно игроками на этом рынке для разборок между собой, не трогая почтенную публику. И при этом никогда не являлся центральной частью бизнес-модели индустрии развлечений – что музыкальной, что видео.

Отсюда выводы:

  1. Копирайт не является неотъемлемым требованием существования индустрии развлечений.
  2. Копирайт никогда не создавался, чтобы обдирать до нитки нищих студентов, что похоже превращается в новую бизнес-модель старой видеоиндустрии. Он просто не для того придуман.
  3. Копирайт не может функционировать как хребет бизнес-модели видеоиндустрии, он  просто для этого не приспособлен.
  4. И наконец, копирайт вернется на свое скромное место защиты авторов от жирных котов видеоиндустрии и не будет ключевой частью новой бизнес-модели видеоиндустрии.

В конце я также изложу свое мнение о том, какой же будет эта новая бизнес модель.

Подробно и со вкусом

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

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

Далеко не всегда закон находится на стороне защиты собственности. Например, если в вашей земле найдутся археологические или палеонтологические находки, государство вправе проводить раскопки несмотря на все ваши права собственника. В данном случае общество взвесило ваши потенциальные потери против важности находок для науки и общества и решило, что ваше право собственности “это еще не повод”.

Пока что я понятно обьясняю? Итак, что же я сказал:

  1. Сами по себе копирайт и интеллектуальные права не являются легитимным “долгоиграющим” аргументом.
  2. Я не сказал, что интересы видеоиндустрии должны игнорироваться,
  3. Но не должны игнорироваться и интересы общества в целом.
  4. Причем именно интересы общества в целом должны определять законность или незаконность интеллектуальных прав.

Кстати, более подробно об этом всем можно прочитать в выдащейся книге Лессига “Бесплатная культура” («Free Culture: The Nature and Future of Creativity» by Lawrence Lessig), очень ее рекомендую.

А при рассмотрении интересов общества возникает естественный вопрос: а что дает видеоиндустрия обществу, что оправдывает ее существование, и не может ли общество получить то же самое с меньшими издержками? Да, это может означать конец телевидения и видеоиндустри в том виде, в котором мы их знаем. Но в истории не раз и не два целые индустрии уходили в небытие и были не просто подорваны неблагоприятыми законами, а просто явно запрещены. Например, индустрия работорговли была полносью легитимна долгое время, а потом общество ее запретило. Или пиратство, на которое во времена пиратов Карибского моря можно было получить королевский патент.

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

Впрочем, мы отвеклись. Давайте вернемся к копирайту как центру бизнес-модели современной видеоидустрии. Сейчас он кажется неотемлемой частью ее, без которой мы мгновенно окажемся без развлечений, музыки, фильмов... но только людям страдающим склерозом или не владеющим историей вопроса. Дело в том, что копирайт стал центром бизнес-модели видеоиндустрии совсем недавно. А что было до этого? Давайте разберемся!

К слову, а что нужно обществу, чтобы получать то, что дает видеоиндустрия?

  1. Некоторая возможность авторам зарабатывать на жизнь своими произведениями. Необязательно хорошая, если мы возьмем средний заработок автора, то эта цифра никого не убедит. Если же брать только «звезд», то для экономики это не аргумент, на одних звездах индустрия не выживет, да и процесс превращения в «звезду» вызывает много вопросов.
  2. Некоторая возможность актерам зарабатывать на жизнь игрой. С теми же ограничениями.
  3. Возможность фирмам, организующим производство, и продюсерам зарабатывать на производстве фильмов или музыки.
  4. Возможность зарабатывать на вспомогательных услугах по доставке  продукции (3) зрителям и слушателям, если эти вспомогательные услуги общество не может получить другими, более дешевыми способами.

Обратите внимание, на самом деле современная видеоиндустрия и телевидение – это прежде всего (4), то есть они вообще сбоку-припеку. Причем телевидение вобще появилось лишь в середине двадцатого века, а фильмы в конце девятнадцатого, что дает легитимную причину сказать что «а вас здесь не стояло.» А что же «стояло»?

Шекспир и бродячие театры

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

Однако, бизнес-модель тогда и не требовала копирайта. Бизнес модель опиралась не на копирайт, а на права на недвижимость, будь то здание театра или временные права на подмостки на базарной площади. Зрители платили за право находится в пределах этой недвижимости во время представления, а со сборов платили актерам и авторам.

Именно в этом состоянии индустрия и находилсь достаточно долгое время, включая время уже нормальных театров. И даже сегодня многие театры ставят одни и те же пьесы, доказывая, что права авторов пьес уж точно не столь существенны для выживания этой индустрии.
Вы можете спросить, а чего ради авторы будут писать, если их права не гарантированы? Много причин. Джонатан Смит и Даниель Дефо писали, чтобы пропагандирвоать свои политические взгляды. Опубликованная книга или снятый по вашему сценарию фильм помогает наняться штатным борзописцем или редактором в какую-нибудь фирму. Наконец, просто бренная слава земная. Уверяю вас, подавляющее большинство писателей именно за это сейчас и работают. Уже. Сейчас. Стивены Кинги и Роулинг – это статистически незначимые случайные выбросы. К тому же, первую книгу Роулинг написала по совершенно другой модели – на грант, а последнюю, если честно, и не жалко. Равно как и продукцию Стивена Кинга.

Фильмы и кинотеатры

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

Это очень важный момент – то, что рядовых граждан это не касалось. У общества тогда не было средств для того, чтобы продукция авторов, актеров, продюсеров и студий стала доступной зрителям сама по себе, поэтому потребовался посредник – прокатные сети. Прокатные сети выполняли полезную обществу функцию – доставки фильмов зрителям. За эту функцию они получали свои прибыли. Копирайт использовался чтобы замкнуть цепочку в обратую сторону и обеспечить средства существования создателям фильмов, а вовсе не прокатчикам.

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

Телевидение

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

Кстати, истошные писки о конце индустрии и вообще «конце времен» далеко не изобретение современной видеоиндустрии. Прокатные сети уже отыграли это все больше чем полвека назад. Но это – детали. А суть проста, кто пойдет в кинотеатр, если можно увидеть то же кино дома?

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

Кстати, обратите внимание, несмотря на все эти писки, прокатные сети не вымерли. Да, им пришлось адаптироваться, отказаться от тошнотворых докуметальных фильмов перед фичей, понять чем они могут быть ценными в новом окружении. Я и сам иногда хожу в кино. Посидеть перед огромным экраном, так что надо крутить головой, чтобы увидеть все детали, погрузиться в звук, который не создать дома, все это в компании и под поп-корн или начос – все это вполне стоит того. Но чтобы выйти в это состояние, прокатным сетям пришлось найти новую бизнес-модель. Не высокомерного монополиста, единственного канала сбыта для производителей фильмов от которого зрителям никуда не деться, а как место для «события», «выхода на люди» для зрителей и очень эффективного способа получения прибыли от показа фильмов для создателей фильмов.

А прогресс тем временем продолжался и сформировалась бизнес-модель телевидения.

Какая позитивная общественая функция выполнялась телевидением? Доставка фильмов зрителям, причем значительно дешевле в расчете «на нос», чем это делали прокатные сети, и значительно удобнее – домой!

На чем телевидение делало деньги? На продаже рекламы, вставляемой в показываемые программы.

Что было ключевым для функционирования бизнес-модели? Контроль над показом фильма – возможность вставки рекламы, которую увидят все, кто смотрит фильм.

Какова была функция копирайта? Убедиться, что посредник – телевидение – платит создателям фильмов, чтобы те могли создавать больше фильмов.

Опять же, обратите внимание, разборки идут исключительно между крупными фирмами-посредниками – телевидением – и создателями фильмов. Рядовые зрители тут ни при чем. Существование посредника оправдывается лишь тем, что дешевле и эффективнее общество, увы, еще не умеет. За свои затраты на сети трансляции, телебашни и прочее, посредник получает свою мзду, опять же, поскольку лучше общество пока не умеет.

Видеомагнитофоны

Это был инфаркт, инсульт и инсалт (оскорбление) видеоиндустрии и телевидения в одном лице. Когда фирма Sony выпустила на рынок первый видеомагнитофон, на нее подали в суд за кнопку «Запись». Аргументация была примерна та же, что и у современной индустрии. Ах! Ох! Разбойники, воры, уроды!!! Фильм можно записать и просмотреть хоть десять раз??? Да еще и вырезав рекламу??? Индустрию режут без ножа!!! Телевидение щас умрет и забрызгает вас своей черной кровью!

Хорошо бы. Но не умерло. Несмотря на все свои писки.

Что же оказалось на практике?

Во-первых, оказалось, что хотя люди и правда записывают и смотрят, это не особенно влияет на доходы телевидения. Реальная проблема возникает когда кто-то записывает, а потом пытается копировать и продавать. То есть проблема была не в отдельных зрителях, копирующих фильмы, а в «левых» бизнесах, пытающихся продавать незаконные копии. Чувствуете «тенденцию»? Копирайт по-прежнему сработал, и по-прежнему не касаясь рядовых зрителей. Это были разборки с подпольными бизенсами, торгующими нелегальными копиями.

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