…а точнее, о криворукости СУПа, у меня, похоже, завершилось нашествие польских спамеров. Так что открою я сейчас комменты, а с утра посмотрю на результат.
Экскурсия по исходникам MINIX 3
Что-то я не возвращался к теме запуска разных извращенных ОС на разном извращенном железе, впрочем, на то были свои причины. Если кто еще помнит, я грозился начать портировать MINIX 3 на вогоплеер. Разобрался с toolchain, собрал «железку» — и на этом надолго остановился. Сейчас появилось немного свободного времени, поэтому я и решил написать немножечко о том, что мне предстоит.
В качестве базовой версии я взял MINIX 3.1.8 r8398 — стабильную на начало марта версию. Все дальнейшие разговоры будут вестись именно о ней. Сразу предупрежу (или напомню), что пишу я «для себя», поэтому все эти очень заумные тексты могут содержать кучу намеренных ошибок и/или искренних заблуждений :)
Итак, каждый, кто установил Minix, или хотя бы загрузился с его компакт-диска, может увидеть там директорию /usr/src, в которой и собраны все исходники ОС. Пробежимся по поддиректориям.
benchmarks — разнообразные тесты производительности. Не трогаем.
boot — начальный загрузчик ОС. Очень специфический, предназначен исключительно для IBM PC-совместимых компьютеров. Я планирую использовать вместо него U-Boot.
commands — исходники программ стандартного POSIX-окружения. Предполагаю, что вполне себе кроссплатформенные. Без наличия работающего ядра и серверов бесполезны, не трогаем.
docs — два несчастных текстовых файлика.
drivers — драйверы различной периферии. Абсолютно необходимы из них драйвер консоли (tty), RAM-диска (memory), и системного журнала (log). Остальные отвечают за всякую ерунду — аудио- и сетевые карты, разного рода дисковые интерфейсы и прочую фигню, существующую исключительно на PC.
etc — эта директория превращается в /etc «работающей» системы. В основном содержит конфигурационные файлы. Некоторые из них отражают загружаемые драйверы и сервисы — соответственно, они должны приводиться в «актуальное» состояние. В общем, исправлять по необходимости.
include — разнообразные заголовочные файлы, в основном — стандартная библиотека Си, но есть одна очень важная поддиректория minix. Как нетрудно догадаться, содержит специфичные для Minix определения. Беглый взгляд на нее показывает, что многие файлы там не менялись с 1990-х годов, и в них предусмотрено существование трех различных архитектур. В других, более новых файлах, встречаются x86-специфические вещи. За этим надо внимательно проследить. Кроме того, нельзя забывать про директорию arch, появившуюся сравнительно недавно и предназначенную для «архитектурно-зависимых» вещей.
kernel — видимо, большая часть работы будет происходить именно тут. Это и есть ядро системы, и именно его придется запускать первым. К счастью, объем его не очень велик, и немалая часть кода в нем «переносима». Архитектурные зависимости вынесены в поддиректорию arch (возможно, лишь частично). Судя по коду, сделаны попытки «архитектурно-зависимые» части сделать условно-компилируемыми.
lib — всевозможные библиотеки — от libc до какого-нибудь libaudiodriver. Возможно, что придется довольно серьезно «ковырять» некоторые из них, в первую очередь — libc. Это не радует.
man — страницы документации. Не трогаем.
servers — серверы, они же — службы. Большинство из них необходимы для работы системы. Правда, по опыту мужичка, портировавшего MINIX 2.0.4 на самопальный процессор, они достаточно переносимы. Вторая после ядра часть системы, над которой придется работать.
share — интерес представляет поддиректория mk, в которой лежат некоторые makefile-ы, честно упертые разработчиками Minix из NetBSD. Сразу обращу внимание, что эти файлы немного подправлены, например, во многих явно указана архитектура i386 — а нам надо mipsel. Надо разобраться с их содержимым и при необходимости исправить и дополнить.
test — тесты, показывающие работоспособность POSIX-системы. Разумеется, переносимые, и трогать их не надо.
tools — разного рода вспомогательные утилиты для сборки загрузочного образа. Естественно, что предназначены только для PC.
Дополню это небольшим отступлением по поводу истории MINIX. Первая версия этой ОС была написана Энди Таненбаумом, когда фирма AT&T увидела, что разработанная ее специалистами операционная система UNIX превратилась из игрушки в «продаваемый» продукт. После этого исходники UNIX были «закрыты», а преподавание традиционного для американских университетов курса по архитектуре ОС превратилось в «сухое плавание». MINIX — это Mini-UNIX, то есть внешне похожая на тогдашний UNIX операционная система, но работавшая на сравнительно дешевых IBM PC. Эта версия прилагалась к первому изданию книге Таненбаума «Операционные системы: разработка и реализация», вышедшему в 1987 году. В начале 90-х MINIX активно дорабатывали, а Таненбаум активно «отпихивал» все предлагаемые изменения, утверждая, что хочет сохранить исходный код ОС компактным и доступным для изучения. Собственно, благодаря такой позиции Таненбаума и родился Linux — там «отцы-основатели» включали в ядро все предлагаемые нововведения. В 1991 году вышла версия MINIX, позже получившая индекс 1.5 — в ней появилась поддержка других процессоров (Motorola 68000 и SPARC) и основанных на них популярных тогда «персоналок». Второе издание учебника Таненбаума тоже включало в себя MINIX, но, разумеется, версии 2. В нем исчезла поддержка процессоров Motorola, а x86 и SPARC остались.
Современная версия MINIX, MINIX 3, была анонсирована в 2005 году. Изначально — это существенная переработка MINIX 2.0.4, выполненная студентом Таненбаума Йорритом Хердером (Jorrit Herder) в его дипломной работе. В третьей версии из пространства ядра вынесено все, кроме самых важных компонент (даже управление памятью и приоритетами процессов теперь выполняются в user-space). Тем не менее, после чтения тезисов Хердера (Towards a True Microkernel Operating System) явно прослеживается преемственность между версиями.
Эта преемственность мне явно пригодится — один из «отчетов» о портировании MINIX на новую для него архитектуру написан о версии 2.0.4. Я его уже упоминал, приведу ссылку еще раз:
http://www.homebrewcpu.com/minix_port.htm
Кроме того, нельзя не упомянуть и о том, что в 2006 году Ингмар Альтинг (Ingmar Alting) запустил Minix 3.1.1 на MacBook (с процессором PowerPC) — к сожалению, сделанные им изменения не вошли в «основную ветку» ОС (хотя некоторые «следы» остались). В общем, читаем его тезисы под названием «MinixPPC — a port of the MINIX OS to the PowerPC platform«. Собственно, они объясняют многие отличия нынешнего кода MINIX от того, который описан в книге. Кроме того, они могут послужить своего рода «руководством к действию».
В общем, ситуция пока складывается такая: в MINIX вплоть до «книжной» версии 3.1.0 последовательно сокращали количество возможных архитектур, в конце концов дойдя до одной только x86. Мало кто занимался адаптацией MINIX под другие машины, так что намеки на SPARC и Mototrola 68000 в заголовочных файлах — это «привет из 1997 года». Видимо, больше всего в направлении к портированию MINIX сделал И. Альтинг, выделивший в версии 3.1.1 архитектурно-зависимые части. Благодаря его работе в исходниках MINIX в некоторых местах появились директории arch. Их содержимое, разумеется — предмет для дискуссий. Возможно, что придется выносить туда что-то большее, чем «углядел» Альтинг.
Когда руки дойдут до Minix и его исходников в следующий раз — попытаюсь сделать две вещи: настроить систему компиляции (внеся некоторые изменения в Makefile-ы) и определить, какие различия между MIPS с одной стороны и PowerPC вместе с x86 придется учитывать.
2011 год
С мест сообщают, что Google Talk при установке в Windows 7 выдает такое сообщение:
Если кто не понимает, что означают цифры «6.1» — это версия ядра операционной системы. До 2000 года все версии Windows NT назывались просто — NT 3.51, NT 4.0. Потом Microsoft слегка поменяло политику присвоения названий новым версиям и следующая ОС в этой линейке, с версией ядра 5.0 получила название Windows 2000. Windows XP и Server 2003 — это NT 5.1 и 5.2, Vista и Server 2008 — 6.0, Windows 7 и Server 2008 R2 — 6.1. Google Talk ругается на то, что на компьютере стоит Windows, выпущенная менее 5 лет назад!
Помнится, где-то в 2004-2005 году я писал в техподдержку Webmoney, жаловался на то, что их клиентская программа не работает на Windows XP с ограниченной учетной записью. Напомню, что Windows XP вышла в 2001 году. В ответ получил предложение не выпендриваться и пользоваться Windows 98 (по тем временам — еще не адское старье, но близко к оному).
Все более-менее нормальные разработчики софта под Windows стараются протестировать свой продукт еще под бета-версиями новых версий ОС, и даже реализовать новые, специфичные для них возможности. Видимо, Google к нормальным не относится (про Webmoney все было понятно уже давно).
Забавный текст
Под названием «Что мешает предпринимательству».
http://muacre.livejournal.com/112168.html
По на водке
tarkhil. Если кому многабукав — вот краткий конспект:
— Вся земля мужикам.
— Каждому по сто десятин.
— Чтобы никаких помещиков и духу не было.
— И чтобы на каждые эти сто десятин верная гербовая бумага с печатью — во владение вечное, наследственное, от деда к отцу, от отца к сыну, к внуку и так далее.
— Чтобы никакая шпана из Города не приезжала требовать хлеб. Хлеб мужицкий, никому его не дадим, что сами не съедим, закопаем в землю.
— Чтобы из Города привозили керосин.
Разъясните про «международные права»
Вышел спор с
vanchez по поводу так называемых «международных прав» — что это такое и зачем они нужны.
В чем мы согласны:
— В России на данный момент действительны водительские права трех типов: розовая пластиковая карточка, выдававшаяся где-то до 2009 года, бумажные права формата A6, выдававшиеся с 2009 по 2010 год и пластиковая карточка нового образца, с рисунками машинок на обороте.
— Кроме того, ГИБДД рекламирует услугу по выдаче неких «международных прав» за мзду малую.
— Все действующие в России права более-менее похожи на документы, описанные Женевской конвенцией 1968 года — содержат надпись Permis de conduire и дублированные латиницей данные, и обычно признаются за рубежом как компаниями по прокату автомобилей, так и полицией.
В чем мы не согласны:
— Я утверждаю, что по некоторым видам российских водительских прав можно ездить за рубежом (как минимум — по «пластиковым карточкам» как старого, так и нового образца), братан — что необходимы международные.
А кто знает, как оно на самом деле? Различаются ли ситуации с поездкой, скажем, по Европе на собственном автомобиле и с арендой автомобиля уже «там»?
PS Интерес чисто теоретический, в Буржуиндию пока ни один из нас не собирается.
Ощущаю себя жестоко обманутым
Немножко полистал SICP. Вспоминаю то, чему учили студентов в курсе «Программирование и работа на ЭВМ» на первом курсе мехмата МГУ. Целый год изучался язык Си, точнее, жуткая смесь из Си (указатели, низкоуровневая работа с памятью и т. п.) и несложных задач (вычислить сумму последовательности). В SICP идет разговор о вещах, мехмату гораздо более близких: символьная арифметика, символьное дифференцирование, схемы из функциональных элементов, комплексные числа, определение функций с помощью ряда Тейлора и прочая математика, причем первому курсу вполне доступная.
Ощущаю себя жестоко обманутым.
Еще про недавний скандал с memmove
Вот представьте себе. Стоит в заповедных лесах дальнего Замкадья химкомбинат и делает что-то непонятное, используя в процессе этиловый спирт. Работяги спирт таскают, разбавляют и пьют. Нехорошо, конечно, но других в заповедных лесах дальнего Замкадья нет. И вот кому-то умному приходит в голову мысль заменить дорогой этиловый спирт на дешевую метилку. Работяги, разумеется, массово травятся, летальный исход, инвалидность, все дела.
Вопрос: кто здесь козел? Несуны-алкашики или «рационализатор», не принявший во внимание местные алкогольные традиции?
PS А вот один из ответов на вопрос. В благословенные советские времена на химзаводах использование метилки сводилось к минимуму — именно по той причине, чтобы алкаши травились не сразу и насмерть, а постепенно до цирроза печени и белой горячки.
Про memcpy, memmove и Open Source
Кто не читал книжку Кернигана и Ритчи — сразу может скроллить до следующего поста. Остальные насладятся замечательной историей, почерпнутой у
avva.
В общем, так исторически сложилось, что в языке программирования Си есть две функции, которые копируют произвольные области памяти. Одна называется memmove — memory move, другая — memcpy, memory copy. Они имеют одинаковый синтаксис, но работают немного по-разному. Первая правильно копирует данные, когда области перекрываются, вторая — нет, но работает «чуть-чуть» быстрее. Естественно, что программисты эти функцию путают, и один из авторов языка Си, Брайан Керниган в своей книге «Практика программирования» даже высказался на этот счет:
В стандарте ANSI C определены две функции: memcpy, которая работает быстрее, но может затереть память, если источник и приемник данных пересекаются, и memmove, которая может работать медленнее, но всегда корректна. Бремя выбора между скоростью и корректностью не должно взваливаться на программиста; должна быть только одна функция. Считайте, что это так и есть, и всегда используйте memmove.
Как известно, большинство программ написано плохо. Несмотря на предупреждения, многие используют memcpy даже в случае перекрывающихся областей памяти — иногда она работает корректно и в этом случае. Керниган и Ритчи плачут кровавыми слезами, но ничего поделать не могут.
В общем, разработчики одной из наиболее распространенных реализаций этих функций — библиотеки glibc, использующейся практически во всех Linux-образных операционках, решили, что хорошо бы немного доработать memcpy, чтобы та работала еще быстрее, при этом сделав так, что она совсем перестала работать с перекрывающимися областями в памяти. Эта версия библиотеки прошлым летом была включена в дистрибутив Fedora — и вскоре обнаружилось, что некоторые программы перестали работать. Баг искали несколько месяцев, пока не поняли, что дело в том, что авторы этих программ понадеялись на то, что memcpy всегда будет правильно работать в тех самых «неправильных» случаях.
После этого началась веселуха. Авторы glibc, и «по совместительству» — разработчики Fedora — заявили, что никакого бага нет, а во всем виноваты криворукие программисты. Линус Торвальдс (живой бог для всех линуксоидов) пишет примерно следующее:
You can call it «crap software» all you like, but the thing is, if memcpy doesn’t warn about overlaps, there’s no test coverage, and in that case even well-designed software will have bugs.
Then the question becomes one of «Why break it?»
и
Quite frankly, I find your attitude to be annoying and downright stupid.
How hard can it be to understand the following simple sentence:
THE USER DOESN’T CARE.
Если у пользователя после обновления ОС не работает кривой Flash-плагин — то пользователь не будет винить в этом криворуких разработчиков плагина, а будет винить разработчиков ОС. Разработчики glibc этого не понимают и их главарь, Ульрих Дреппнер, подводит вот такой итог под всей этой дискуссией:
The existence of code written by people who should never have been allowed to touch a keyboard cannot be allowed to prevent a correct implementation.
Как же это не похоже на ту идеологию, которую проповедует Raymond Chen из Microsoft. Но вся эта история объясняет, почему на большинстве пользовательских ПК все еще стоит Windows.
PS В итоге до сих пор в glibc остается новая версия memcpy. Обнаружилось, что в огромном количестве программ программисты полагались на недокументированное поведение этой функции, где-то исправили, а где-то — нет.
Скачиваем книги с ResLib.com
Понадобилась мне сегодня одна книжка по математике. Но вот беда — ее не оказалось в той библиотеке научно-технической литературы, которую на 35 дисках предлагают скачать на РуТрекере. Лет пять назад я в таких случаях пользовался «Электронной библиотекой мехмата МГУ», благо в alma mater на 15 этаже висела бумажка «сайт lib.mexmat.ru, логин mexmat, пароль mexmat». Но что знают двое — знает и свинья, поэтому эти логин с паролем распространились по всему интернету, попали в лапы правообладателей и те потребовали прикрыть лавочку, написав чуть ли не Лупанову (тогдашний декан мехмата) с Садовничим (а это ректор МГУ). Библиотека, естественно, закрыла доступ извне полностью, оставив его только для сети мехмата.
Тем не менее, через несколько лет от ЭБММ отпочковалась новая электробиблиотека ResLib.com — те же книги, но с доступом через Web и ограничением — не более 25 страниц за раз. На мое счастье, нужная мне книжка в ней нашлась. Но вот предложение читать по странице в полчаса, да еще и через неудобный Web-интерфейс мне показалось оскорбительным.
Я решил попробовать скачать эту книжку — есть у меня еще нехорошая привычка не доверять веб-сервисам. Мало ли — через неделю все закроется? Так что, посмотрев на код картинок, которые показываются при просмотре книг в этой библиотеке, я решил запустить свой любимый ReGet и воспользоваться в нем прекрасной опцией «создать нумерованный список». URL картинок выглядел так:
http://reslib.com/img2.php?b=635101403&s=l&p=1
Параметры обозначают следующее: b — идентификатор книги, s — размер картинки, нам нужен l, то есть large, p — номер страницы (видимо, «выдираются» они из djvu-файла). Запускаем ReGet и создаем нумерованный список — это замечательная фича, разработчиками упоминаемая, как «уникальная».
Запускаем закачки и… в директории, куда мы хотим скачать файлы, появляется файл img2.php (правда, Windows Explorer распознает в его содержимом png-картинку), а Регет бомбардирует нас несколькими десятками сообщений «файл уже существует, переименовать?». Непорядок. И оказывается, что в одном из лучших download-менеджеров нет никакого способа дать свои названия куче файлов, закачиваемых автоматически.
Правда, я все же обнаружил в ReGet так называемые «макросы», которые можно использовать для относительно массовых переименований закачек. Оказывается, что если объденить все файлы этой книжки в одну группу, то можно уже в группе задать правило, применяемое к тем файлам, для которых файл с тем же именем уже существует. Там есть выбор из нескольких настроек — «Спросить», «Переписать», «Переименовать» — и в случае переименования можно воспользоваться макросами. Обращу внимание почтенной публики на то, что в справке ReGet список макросов немного шире — в частности, имеется макрос Param, выдирающий из GET-запроса значение параметра с заданным именем. Как раз то, что надо — давайте назовем наши файлы page1.png, page2.png и так далее! Идем в свойства группы и ставим там такие настройки:
Теперь снова запускаем закачку, скачиваем пару десятков файлов уже с правильными названиями и на дальнейшие запросы получаем от сервера отлуп — «Ошибка 503, приходите позже». Ну я думаю, вы поняли? Сервер пытается «забанить» нас по IP-адресу. Меняем айпишник (кто пользуется proxy, кто «пересовывает» соединение с провайдером) и продолжаем. Итого — за 15 минут скачиваем книжку целиком.
Зачем я это рассказываю? Разумеется, не с целью ограбить онлайн-библиотеку — как вы видите, это может сделать каждый. Я хочу продемонстрировать, что даже в лучших программах «из мира Windows» какие-нибудь не очень тривиальные действия сопряжены с возникающими «из ниоткуда» трудностями. Windows-стиль не предполагает работу с командной строкой, а уж тем более — написание сложных скриптов на командном языке. А я более чем уверен, что на любом языке какого-нибудь Unix shell (или даже Windows Power Shell, или даже в обычном cmd.exe) написание скрипта, скачивающего ту же кучу файлов по маске, займет те же 15 минут, что я изучал документацию ReGet и придумывал способы обхода непонятно откуда возникших ограничений.
Да, пользоваться wget намного (или немного :) ) сложнее, чем ReGet или Download Master — но первый можно использовать в каких-то своих целях, а «качалки» из Windows — только в рамках того, что предусмотрели их авторы.
Интересный ролик
Про то, как дети, инженеры и топ-менеджеры справляются с задачей построить башню из зефира, спагетти и скотча. Есть русские субтитры.
Kenwood TH-K4AT
Братан купил Китаенвуд. Имею два вопроса:
1) Что на него можно услышать на юго-востоке Москвы (репитеры и т. п.)
2) Стоит ли покупать второй? (вопрос, разумеется, риторический).
Хочу чего-то большого и чистого
Мытья авианосцев не предлагать.
А если серьезно — сегодня в жежешечке появились снимки с американского авианосца «Рональд Рейган», которому не повезло попасть в радиоактивный «след» с Фукусимы. Первым снимок выложил
legatus_minor (все кликабельно):
Естественно, было собрано немало обвинений в «фотошопности» снимка. Претензий две. Во-первых, то, во что одеты матросы со швабрами, очень не похоже на советский ОЗК. Но достаточно погуглить по слову MOPP, чтобы увидеть, что в американской армии костюмы химзащиты обычно делают камуфлированными (а судя по фото из Википедии — даже в Ираке используется не «пустынный» камуфляж, а Woodland).
Во-вторых, многих волнует судьба несчастных матросиков, которые неминуемо наглотаются радиоактивной пыли. Поэтому — небольшой ликбез на тему радиационной и химической защиты на авианосце «Рональд Рейган». Американцы, наверное, первыми задумались о том, что делать с кораблями, подвергшимися радиоактивному заражению. Например, еще в конце 40-х на авианосце Independence, пережившем оба испытания на атолле Бикини, проводили эксперименты по дезактивации. Ничего, правда, толком не вышло, и в 1951 году он был затоплен недалеко от Сан-Франциско (так как полигона на Новой Земле у американцев нет). Но вот, как пишут на strategypage.com, «на протяжении более 50 лет на большинстве кораблей ВМФ США установлена система, смывающая радиационные, химические и биологические загрязнения» и приведен красивый снимок испытаний этой системы на «Рейгане» в 2006 году. Кто мог знать, что уже через 5 лет она неиллюзорно пригодится?
Поэтому сначала на «Рейгане» палубу мыли все-таки водой, при этом считается, что смывается большая часть радиоактивной пыли.
Ну а затем — ничего лучше ведра с водой, тряпки и швабры человечество еще не придумало.
Конечно, есть подозрения, что палубу драют не матросы, а морпехи (которым камуфляж полагается по определению) — в американском флоте даже есть шутка про «Send the Marines», касающаяся всяких малоприятных вещей.
Как бы то ни было, не станут же просто так затевать такую уборку, да еще и в костюмах химзащиты?
Кроме того, сегодня опубликовали сообщение, что в пробах грунта с Фукусимы от 22 марта (то есть недельной давности) обнаружены следы плутония. Неделю назад все СМИ уверяли нас, что ничего страшного в Японии не случилось, а от японской радиации всем становится только лучше, улучшается потенция, вырастают волосы и все такое (в отличие, скажем, от советской). Я понимаю, когда так делают японские СМИ — если самураи хором решат, что «все пропало» и «надо валить» — то от Японии мало что останется. Но вот наши российские в этом плане я понять отказываюсь.
Опечатался
Все, что должен знать программист
По на водке ребе
metaclass нашел интересный списочек того, что должен знать Настоящий Программист (существо, видимо, мифическое):
http://sharpc.livejournal.com/67583.html
Конечно, как справедливо замечено в комментах,
достаточно 2-3 пунктов из описанного, чтобы уже быть лучше сотен индусов, которые НИЧЕГО из этого не знают, но тем не менее получают за программирование бабло
и
Чувак с таким теормаксимумом называется «технический консультант по вытаскиванию проектов из жопы», получает от $100-200 в час и свысока посматривает на «всех этих недальновидных индусов»
В общем, есть, на что ориентироваться.
Фотоаппарат против ноутбука
Из сегодняшнего
ru_radio_electr.
Утверждается, что от электромагнитного импульса при срабатывании вспышки выгорают микросхемы декодера матрицы, не рассчитанные на такое издевательство.
По поводу все той же дискуссии про C и Pascal
Вот ЖЖ другого преподавателя, сторонника скорейшего перехода на C:
avchernov. Там в комментариях приводится ссылка на статью 1992 года, описывающая опыт Стенфордского университета по переходу во вводном курсе Computer Science с Pascal на ANSI C.
Не означает ли это пресловутого «отставания на 20 лет»?
Четвертый Рейх
Smoke on the Water в исполнении немецкого военного оркестра. Факельное шествие прилагается.
Внимание: препод говорит
Из комментов к эссе «Язык Си и начальное обучение программированию«:
Вообще говоря, основной продукт университетского образования — это учёные и преподаватели. Программисты — побочный продукт, хотя и полезный.
Напомню, речь идет про факультет Вычислительной математики и кибернетики Московского Государственного Университета. А теперь представьте, что вы — сам Фурсенка (не тот, который глава РФС, а тот, который министр образования), готовите очередную кровавую реформу и по очереди вызываете представителей всех факультетов всех вузов и спрашиваете, чем они там у себя занимаются. Приходят к вам вот такие ВМКшники в вытертых свитерах, чего-то там мнутся на пороге, а вы их строго так спрашиваете:
— Кто вы такие и чего делаете?
А они, разумеется, отвечают:
— Мы ВМКшники, занимаемся вычислительной математикой и кибернетикой, и в год выпускаем 400 человек ученых и преподавателей.
Какой будет реакция желающего потратить как можно меньше государственных денег фурсенки? Сократить к такой-то матери ВМКшников, чтоб выпускали не 400 «ученых и преподавателей», а всего лишь 40 — для компенсации «естественной убыли».
PS Ответ «Мы ВМКшники, занимаемся вычислительной математикой и кибернетикой, и в год выпускаем 400 человек программистов», кстати говоря, тоже неправильный. Дай бог, чтобы человек 40 со всего выпуска ВМК работало по специальности (называется она «Математик, системный программист»), а не какими-нибудь «IT-директорами».
Идиш-металл
По на водке Дмитрия Медведева заценил творчество группы Gevolt.
Идиш-металл — это круто.
Про опенсорсников
Заметил, что фанаты всяческого опенсорса обычно совсем не знакомы с «проприетарным» софтом и даже почему-то гордятся этим. Например, позволяют себе нести вот такую чушь в учебнике (точнее, брошюрке-«методическом пособии» с гордым названием «Введение в операционные системы«):
В последние годы маркетинговая политика отдельных компаний была направлена на смену термина directory словом folder (соответствующий русский перевод — «папка»). Для профессиональных программистов такая лексика неприемлема хотя бы по той причине, что для смены используемого (и устоявшегося) термина нужны, по-видимому, более веские причины, нежели мнение далеких от программирования сотрудников отдельно взятой коммерческой компании.
По мощности брызганья ядом в сторону «коммерческих компаний» несравнимо даже с газетой «Советская Россия». Но это можно перетерпеть.
Интересно вот что. «Отдельная коммерческая компания» Microsoft (всякого труЪ-фаната опенсорса при упоминании этого слова, видимо, корячит) использует в MSDN и WinAPI слово Directory, а не Folder. «Папка» — это несколько более сложная штука, чем просто список файлов («каталог» или «директория»). Даже в Windows 95, где впервые появилось это слово, можно было обратить внимание на то, что «папкой» является и «Панель управления», и «Мой компьютер», и «Корзина» — причем нет никакой очевидной связи содержимого этих объектов с объектами файловой системы. «Папка» — это то, что может отобразить в виде окошечка с красивыми значками файловый менеджер, встроенный в Windows. В частности, все директории (в их обычном понимании) — это папки, но ими понятие folder не исчерпывается. Если не верите — читайте то же самое разъяснение за авторством Raymond-а Chen-а.
Windows NT была спроектирована людьми, которые до этого работали над операционной системой VMS. В их квалификации сомневаться не стоит, а уж Unix и все его «фичи» им были прекрасно знакомы — и, кстати говоря, реализованы, иногда даже лучше, чем в Unix. Так что всякие заявления о том, что в Windows нет разграничения доступа к файлам или всяких там symlink-ов (да, я такое встречал) — это пример вопиющей безграмотности. «Воинствующие линуксоиды» пытаются воевать с давно умершей Windows 98 — продукте «компромиссном» во всех отношениях, и к современным версиям «венды» отношения не имеющей.
Кстати, касается это не только Microsoft. Например, когда я сдавал курс «Базы данных» (ничего особенного из себя не представляющий — немножко поговорили про реляционную алгебру, про SQL, про разработку бизнес-приложений в контексте RUP и прочего UML, немножко про OLAP и восстановление зависимостей — программа есть на dmvn), лектор упоминал в нем такие программы, как IBM Rational Rose и тому подобные. Разумеется, перед сдачей экзамена всякие там линуксоиды ворчали в плане того, что в учебном процессе нельзя упоминать проприетарный софт. ЕМНИП, больше тройки из них никто не получил.









