Автомобиль для линуксоидов

А вот, кстати, подумалось интересное.

Как утверждает Википедия,

В России стабильный спрос на «пятёрку» сохраняется, прежде всего, благодаря низкой стоимости этого автомобиля (161436 руб. на апрель 2009 по данным с сайта АВТОВАЗа), повсеместной доступности комплектующих, досконально изученной ремонтниками и автомобилистами конструкции допускающей «гаражное» обслуживание и ремонт.

Кагбе «досконально изученная коньструкция» и обслуживание на коленке — это то, за что борются энтузиасты Open Source во всем мире. Интересно, если АвтоВАЗ впихнет в «Жигули» бортовой компьютер (с Linux, конечно) и положит на заднее сиденье толстенный альбом чертежей, придется ли такая опенсорсная машина по нраву, к примеру, Ричарду Столлману?

Интересное про GNU-лицензию

Осторожно, на нерусском языке.

http://www.red-sweater.com/blog/825/getting-pretty-lonely

Краткое содержание: разработчики WordPress после консультаций с юристами Free Software Foundation объявили, что темы и плагины Вордпресса автоматически подпадают под действие GNU-лицензии. Даниэль Джалкут, разработчик софта для работы с WordPress под Mac OS, критикует это решение и саму GNU-лицензию.

Основное ограничение GNU-лицензии — запрет на использование GNU-кода под лицензией, отличной от GNU. GNU-лицензия нарушается всякий раз, когда код из GNU-проекта используется совместно с кодом под «несовместимой» лицензией (например, любой лицензией с «закрытыми исходниками»).

Это называется «вирусной природой» (viral nature) GNU-лицензии. Если обнаруживается, что GNU-код используется совместно с кодом под другой лицензией, то дело может дойти до судебного разбирательства. Единственным «нормальным» выходом является лицензирование «производного» проекта под GNU-лицензией.

Возникает, правда, два вопроса — что такое «изменение оригинального кода» и что такое «распространение». Фанаты GNU-лицензии считают, например, что плагины для GIMP (GNU Image Manipulation Program, или УАФДК — ущербный аналог фотошопа для красноглазиков) должны удовлетворять ее требованиям — ведь они представляют собой модификацию кода GIMP.

То же самое, например, касается и тем для WordPress. Но здесь возникает противоречие со сложившейся ситуацией — существует немалый рынок «коммерческих» тем, распространяемых за деньги. Предложено компромиссное решение — PHP-код распространяется на условиях GNU-лицензии, на CSS и графику такие ограничения не накладываются.

Подобные ограничения, заложенные в GNU-лицензию, не позволяют считать ее вполне «свободной». Все лицензии для ПО можно разделить на три категории:

1. GNU и аналогичные. Изменения можно распространять только на тех же условиях.

2. «Очень свободные» лицензии — BSD/MIT/Apache. Лицензированное таким образом ПО можно распространять на любых условиях с обязательным указанием авторов оригинальной разработки.

3. Лицензии с закрытыми исходниками.

Точно так же можно разделить на категории разработчиков.

1. «Идейные» сторонники GNU.

2. Просто разработчики, которых не волнуют проблемы лицензирования.

3. «Идейные» сторонники закрытых исходников.

Как всегда, «идейные» составляют меньшинство. Соотвественно, для «среднестатистического» разработчика вопросы лицензирования абсолютно фиолетовы.

С другой стороны, использование кода GNU-проектов в своих разработках, или использование GNU-программ как составных частей пакетов влечет за собой необходимость лицензирования всей разработки на условиях GNU — на что очень многие не согласятся. Соответственно, GNU-проекты превращаются в «вещи в себе», которые невозможно использовать без неприемлемых ограничений.

Якобы «свободная» GNU-лицензия на самом деле является такой же «запрещающей» лицензией, как и любая лицензия, к примеру, для ПО с закрытыми исходниками. «Свобода» GNU-лицензии модифицировать исходники по своему усмотрению — свобода чисто мнимая. Фактически, она ограничивает права разработчиков по простому зарабатыванию денег на собственном коде. Использовав в программе любой, даже самый малозначительный GNU-модуль, разработчик оказывается в заложниках этой лицензии.

Довольно нетрудно, кстати, представить такую ситуацию. Думаю, очень многие программисты когда-либо изучали какие-нибудь программы, распространяющиеся по GNU-лицензии. К примеру, специалист по сжатию видео мог изучить какой-нибудь «свободно распространяемый» кодек. Затем, работая в какой-нибудь компании, занимающейя разработкой своего, коммерческого, кодека, он вносит какие-то изменения, отдаленно напоминающие тот самый «свободный» кодек. Затем — все очень просто. Free Software Foundation подает на компанию в суд, мотивируя это тем, что в коммерческой программе использованы части GNU-кода. Фактически, если какая-то технология реализована в GNU-программе, то ее дальнейшее использование в коммерческих инструментах блокируется лицензией не менее эффективно, чем в случае «коммерческой» реализации. Кстати, именно поэтому в американских университетах все разработки в области Computer Science лицензируются по «очень свободным» BSD или MIT-лицензиям.

Если это кому-то кажется бредом — напомню, что Microsoft выиграла несколько процессов по поводу «нарушения NDA». Суть — точно такая же, программист, ранее видевший (просто видевший!) исходники богомерзкой венды, работая в другой компании, якобы использовал в «чужих» продуктах код за авторством мелкомягких. Что мешает FSF поступить так же — не знаю, но крайности, как говорится, сходятся.

К счастью, как это убедительно доказывает [info]infowatch, «вирусная природа» GNU-лицензии противоречит российскому законодательству. Поэтому у нас можно демонстративно подтираться не только «несвободной» лицензией, к примеру, на продукты Microsoft, но и «свободной» GPL. С чем я всех и поздравляю!

PS Кстати, наше Минобороны нарушает условия GNU-лицензии. На минобороновских ПК используется, по слухам, модифицированный RedHat Linux, но исходники ОС хранятся в строжайшем секрете. Единственная причина, по которой FSF не судится с МО РФ — это то, что в случае судебной тяжбы вся нелицензионная продукция прилетит, приплывет и приползет в Америку своим ходом.

PPS Завтра будет пост про Windows 7, хвалебный конечно, так что готовьте свои шайзеверферы.

Windows 7 и старые игры

Наблюдал малопонятные глюки с графикой при запуске некоторых старых игрушек (Diablo и Master of Orion II — среди прочих) в свежеустановленной Windows 7. Выглядело это примерно так:

moogluk

Причины глюка — несовместимость разных версий DirectDraw. Если первые версии «не обращали внимания» на не самое правильное с точки зрения документации использование некоторых функций, то современные реализации тех же функций требуют более строгого подхода. Соответственно, начинают вылезать разнообразные «косяки». Например, многие старые игры автоматически считают, что они — единственные запущенные DirectDraw-приложения и некорректно инициализируются. Учитывая, что графическая оболочка Windows 7 активно работает с DirectX, можно ожидать всевозможных глюков.

На импортных форумах в качестве решения предлагалось отключение explorer.exe и последующий запуск игры. На самом деле можно поступить проще. Итак, пошаговое решение проблем с графикой в старых играх для Windows:

1. Запускаем игру с правами администратора. Наблюдаем странные эффекты с палитрой, материмся и выходим.

2. Открываем regedit и смотрим ветку HKLM/Software/Microsoft/DirectDraw/MostRecentApplication. Наблюдаем там два параметра — строковый Name с названием exe-файла игры (например, Orion95.exe) и ID типа dword (к примеру, 0x333982cb). Выписываем их на бумажку.

3. Самые глазастые уже разглядели раздел HKLM/Software/Microsoft/DirectDraw/Compatibility, а то и открыли его, обнаружив там пока небольшой список «настроенного» софта (включая Diablo и Starcraft). Создаем в нем вложенный раздел и называем его так, чтобы не перепутать ни с чем другим. Например, MasterOfOrionII131 — название игры и версия исполняемого файла.

4. В этом разделе создаем строковый параметр Name, в него вписываем название exeшника. Создаем двоичный параметр ID и вписываем в него ID из второго пункта, инвертируя порядок байтов (то есть 0x333982cb превращается в CB 82 39 33). Дальше начинается самое интересное.

5. Создаем двоичный параметр Flags и начинаем экспериментировать с его значениями. К сожалению, мне не удалось найти описания этого параметра, поэтому приходится подбирать его методом тыка. Типичные значения флагов — это 01 00 00 00, 00 08 00 00, 20 00 00 00, 04 00 00 00, 40 00 00 00, 02 00 00 00. Для Diablo и Starcraft во всех вариантах (так как Hellfire и Brood War оказались незаслуженно забыты в этом списке) подошло 00 08 00 00, то же самое сочетание «вылечило» и Master of Orion II. После каждого изменения параметра запускаем игру и смотрим, прошли ли глюки. Во всяком случае, графика Master of Orion стоит того, чтобы немного поковыряться в реестре.

moo2

Думаю, это работает для гораздо большего числа «проблемных» игр.