Архив марта 2011

Про memcpy, memmove и Open Source

Кто не читал книжку Кернигана и Ритчи – сразу может скроллить до следующего поста. Остальные насладятся замечательной историей, почерпнутой у [info]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 и создаем нумерованный список – это замечательная фича, разработчиками упоминаемая, как “уникальная”.

reget-spisok

Запускаем закачки и… в директории, куда мы хотим скачать файлы, появляется файл img2.php (правда, Windows Explorer распознает в его содержимом png-картинку), а Регет бомбардирует нас несколькими десятками сообщений “файл уже существует, переименовать?”. Непорядок. И оказывается, что в одном из лучших download-менеджеров нет никакого способа дать свои названия куче файлов, закачиваемых автоматически.

Правда, я все же обнаружил в ReGet так называемые “макросы”, которые можно использовать для относительно массовых переименований закачек. Оказывается, что если объденить все файлы этой книжки в одну группу, то можно уже в группе задать правило, применяемое к тем файлам, для которых файл с тем же именем уже существует. Там есть выбор из нескольких настроек – “Спросить”, “Переписать”, “Переименовать” – и в случае переименования можно воспользоваться макросами. Обращу внимание почтенной публики на то, что в справке ReGet список макросов немного шире – в частности, имеется макрос Param, выдирающий из GET-запроса значение параметра с заданным именем. Как раз то, что надо – давайте назовем наши файлы page1.png, page2.png и так далее! Идем в свойства группы и ставим там такие настройки:

reget-makros

Теперь снова запускаем закачку, скачиваем пару десятков файлов уже с правильными названиями и на дальнейшие запросы получаем от сервера отлуп – “Ошибка 503, приходите позже”. Ну я думаю, вы поняли? Сервер пытается “забанить” нас по IP-адресу. Меняем айпишник (кто пользуется proxy, кто “пересовывает” соединение с провайдером) и продолжаем. Итого – за 15 минут скачиваем книжку целиком.

Зачем я это рассказываю? Разумеется, не с целью ограбить онлайн-библиотеку – как вы видите, это может сделать каждый. Я хочу продемонстрировать, что даже в лучших программах “из мира Windows” какие-нибудь не очень тривиальные действия сопряжены с возникающими “из ниоткуда” трудностями. Windows-стиль не предполагает работу с командной строкой, а уж тем более – написание сложных скриптов на командном языке. А я более чем уверен, что на любом языке какого-нибудь Unix shell (или даже Windows Power Shell, или даже в обычном cmd.exe) написание скрипта, скачивающего ту же кучу файлов по маске, займет те же 15 минут, что я изучал документацию ReGet и придумывал способы обхода непонятно откуда возникших ограничений.

Да, пользоваться wget намного (или немного :) ) сложнее, чем ReGet или Download Master – но первый можно использовать в каких-то своих целях, а “качалки” из Windows – только в рамках того, что предусмотрели их авторы.

Интересный ролик

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

Kenwood TH-K4AT

Братан купил Китаенвуд. Имею два вопроса:

Kenwood-tk4at4u_enl

1) Что на него можно услышать на юго-востоке Москвы (репитеры и т. п.)
2) Стоит ли покупать второй? (вопрос, разумеется, риторический).

Хочу чего-то большого и чистого

Мытья авианосцев не предлагать.

А если серьезно – сегодня в жежешечке появились снимки с американского авианосца “Рональд Рейган”, которому не повезло попасть в радиоактивный “след” с Фукусимы. Первым снимок выложил [info]legatus_minor (все кликабельно):

pb-110325-reagan-wash-1p_photoblog900

Естественно, было собрано немало обвинений в “фотошопности” снимка. Претензий две. Во-первых, то, во что одеты матросы со швабрами, очень не похоже на советский ОЗК. Но достаточно погуглить по слову MOPP, чтобы увидеть, что в американской армии костюмы химзащиты обычно делают камуфлированными (а судя по фото из Википедии – даже в Ираке используется не “пустынный” камуфляж, а Woodland).

Во-вторых, многих волнует судьба несчастных матросиков, которые неминуемо наглотаются радиоактивной пыли. Поэтому – небольшой ликбез на тему радиационной и химической защиты на авианосце “Рональд Рейган”. Американцы, наверное, первыми задумались о том, что делать с кораблями, подвергшимися радиоактивному заражению. Например, еще в конце 40-х на авианосце Independence, пережившем оба испытания на атолле Бикини, проводили эксперименты по дезактивации. Ничего, правда, толком не вышло, и в 1951 году он был затоплен недалеко от Сан-Франциско (так как полигона на Новой Земле у американцев нет). Но вот, как пишут на strategypage.com, “на протяжении более 50 лет на большинстве кораблей ВМФ США установлена система, смывающая радиационные, химические и биологические загрязнения” и приведен красивый снимок испытаний этой системы на “Рейгане” в 2006 году. Кто мог знать, что уже через 5 лет она неиллюзорно пригодится?

uss_reagan

Поэтому сначала на “Рейгане” палубу мыли все-таки водой, при этом считается, что смывается большая часть радиоактивной пыли.

pb-110323-japan-reagan2-jm_photoblog900

Ну а затем – ничего лучше ведра с водой, тряпки и швабры человечество еще не придумало.

pb-110323-japan-reagan3-jm_photoblog900

Конечно, есть подозрения, что палубу драют не матросы, а морпехи (которым камуфляж полагается по определению) – в американском флоте даже есть шутка про “Send the Marines”, касающаяся всяких малоприятных вещей.

pb-110323-us-reagan5_photoblog900

Как бы то ни было, не станут же просто так затевать такую уборку, да еще и в костюмах химзащиты?

Кроме того, сегодня опубликовали сообщение, что в пробах грунта с Фукусимы от 22 марта (то есть недельной давности) обнаружены следы плутония. Неделю назад все СМИ уверяли нас, что ничего страшного в Японии не случилось, а от японской радиации всем становится только лучше, улучшается потенция, вырастают волосы и все такое (в отличие, скажем, от советской). Я понимаю, когда так делают японские СМИ – если самураи хором решат, что “все пропало” и “надо валить” – то от Японии мало что останется. Но вот наши российские в этом плане я понять отказываюсь.

Опечатался

Поймал себя на том, что вместо xkcd.com набираю vrtp.ru.

Все, что должен знать программист

По на водке ребе [info]metaclass нашел интересный списочек того, что должен знать Настоящий Программист (существо, видимо, мифическое):

http://sharpc.livejournal.com/67583.html

Конечно, как справедливо замечено в комментах,

достаточно 2-3 пунктов из описанного, чтобы уже быть лучше сотен индусов, которые НИЧЕГО из этого не знают, но тем не менее получают за программирование бабло

и

Чувак с таким теормаксимумом называется “технический консультант по вытаскиванию проектов из жопы”, получает от $100-200 в час и свысока посматривает на “всех этих недальновидных индусов”

В общем, есть, на что ориентироваться.

Фотоаппарат против ноутбука

Из сегодняшнего [info]ru_radio_electr.

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

По поводу все той же дискуссии про C и Pascal

Вот ЖЖ другого преподавателя, сторонника скорейшего перехода на C: [info]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 и тому подобные. Разумеется, перед сдачей экзамена всякие там линуксоиды ворчали в плане того, что в учебном процессе нельзя упоминать проприетарный софт. ЕМНИП, больше тройки из них никто не получил.

Два мира, две системы

У них (из книги Питера ван дер Линдена Expert C Programming: Deep C Secrets), перевод мой.

В Йельском университете профессор Алан Перлис (один из авторов Алгол-60) давал такое задание (на неделю) своим студентам.

Решите каждую из следующих задач:

1) Прочесть строку и вывести все перестановки ее символов.
2) Задача о восьми ферзях (напечатать все расстановки восьми не бьющих друг друга ферзей на шахматной доске).
3) Дано число N, напечатать все простые числа, не превосходящие N.
4) Написать подпрограмму умножения двух матриц произвольного размера.

На каждом из следующих языков:

1) C
2) APL
3) Lisp
4) Fortran

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

У нас (преподает сей деятель на ВМК МГУ), перевод не требуется.

…язык Си категорически недопустимо использовать в качестве языка начального обучения программированию

Подробнее – в PDF того же автора:

http://www.stolyarov.info/files/anti_c_v03.pdf

Вкратце – студенты не хотят учиться, а хотят, чтобы преподаватель “разжевал” им весь материал.

Сам не раз был свидетелем того, как студенты уже на зачете (!) начинали “качать права”, мол, преподаватель был обязан научить лично их решать те задачи, которые будут даваться в качестве зачетных (это вообще безотносительно предмета). Кроме того, слышал о печальной истории изучения Java на втором курсе мехмата МГУ. Оказывается, на третьем-четвертом курсе, когда курс “Программирование и работа на ЭВМ” (с Java) превращается в “Практикум на ЭВМ” (не очень сложные с точки зрения программирования вычислительные задачи на C или FORTRAN), студенты жаловались, что их не научили языку C. Необходимый для сдачи “Практикума” объем языка C – это максимум две первых главы тоненькой книжечки Кернигана и Ритчи. Ничего сложного даже для бывшего джависта там нет. Тем не менее, надо нажаловаться, вместо того, чтобы хоть немного “самообразовываться”.

PS Естественно, что даже в случае изучения на первом курсе C и C++ вместо Java подавляющее большинство студентов даже к третьему курсу совершенно не умеет программировать даже в том минимальном объеме, который требуется на мехмате. Но формальных поводов нажаловаться на “злого препода” – меньше.

Про “информационную открытость”

Все выходные, а также понедельник и вторник я включал утром “Вести-24″ и смотрел новости, в которых первым сюжетом обычно шло “они еще один энергоблок загубили“. Журналюги испытывали множественный оргазм от “информационной открытости” и отказывались включать мозг. Один мой знакомый, например, в понедельник дозвонился на радиостанцию “Вести-FM”, где сказал о том, что японцы что-то скрывают или выдают далеко не полную информацию, после чего ведущие продолжили свой милый разговор о все той же “информационной открытости”.

Тем временем запахло жареным, уровень радиации на Фукусиме достиг 400 миллизивертов в час – чтобы получить лучевую болезнь, достаточно поработать там пару часов, персонал со станции якобы был эвакуирован, да еще и ветер подул в сторону Токио, принеся с собой слегка повышенный уровень радиации. Этого стало достаточно для того, чтобы журналюги побежали в Росатом, где им в доступных терминах разъяснили, что японцы выдают далеко не полную информацию. “Вести” перестали выдавать новости с японской АЭС в “желтой строке”, а вечно оптимистичный японец сменился небритыми, угрюмыми и похмельными экспертами Росатома, обещающими Ад и погибель.

Вкалывают роботы?

Вот по поводу этой “программистской задачки“.

В комментах было предложено решение на ASP.NET с использованием специальной библиотеки iTextSharp. Сложность “решения” была оценена в 1-3 человекомесяца. Думаю, что если стоит задача получить более-менее качественную (”книжную”) верстку PDF – то тут и трех человекомесяцев не хватит.

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

Поясню. TeX – это хорошо известная система компьютерной верстки, довольно старая, но популярная в “околонаучном” мире – прежде всего из-за удобства верстки в ней математических формул, а также из-за очень развитого “макропакета” LaTeX, который позволяет довольно легко писать большие тексты, не заботясь о сложностях вроде автоматической нумерации параграфов, составления оглавления и списка литературы, нумерации формул, теорем, таблиц, рисунков и всего в этом роде. TeX – это не WYSIWYG-система, наподобие MS Word, поэтому считается несколько неудобным для набора простых текстов. Исходные файлы LaTeX, выглядящие примерно так:

\documentclass{article}
\usepackage{amsfonts, amsmath}
\begin{document}
This is a sample \TeX file.
$$\iint_{\mathbb R^2}e^{-(x^2+y^2)}\,dx\,dy = \pi$$
\end{document}

обрабатываются специальной программой (обычно так и называется – latex или latex.exe), которая выдает уже “обработанный” файл в TeX-овском же формате dvi (device-independent), который предназначен для просмотра или печати. Я немножко сократил описание всего процесса, но он сравнительно прост и выполняется в автоматическом режиме. Кроме того, во все современные варианты TeX входит и программа pdflatex, генерирующая по тем же TeXовским файлам PDF или же программы dvips и ps2pdf, которые конвертируют соответственно dvi в PostScript и PostScript в PDF. Из написанного выше файла получится страничка A4, на которой шрифтом 10 кегля будет написано следующее:

texsample

К чему все это длинное введение? А к тому, что генерация текстовых файлов и запуск несложных программ с этими файлами в качестве аргумента – это прекрасный способ “не изобретать велосипед”. Я оцениваю систему, которая может по введенным в веб-форму данным генерировать несколько pdf по готовым шаблонам (кстати, в LaTeX есть “класс документа” “письмо”, автоматически создающий письмо по канонам американской деловой переписки – сложите лист A4 втрое, суньте в конверт с “окошечком” и несите на почту) в один человекомесяц работы PHP-шника “средней руки” (по 10 копеек пучок на каком-нибудь “фрилансерском” сайте), включая сюда и изучение TeX в необходимом объеме. А если хочется еще сэкономить – не берите PHP-шника, возьмите человека, умеющего писать shell-скрипты.

“Околокомпьютерные” технологии, разработанные в 80-е, были рассчитаны на то, что пользователь сам может научиться немного программировать и использовать это умение для решения своих задач. Это и shell-скрипты, и язык SQL (первоначально предполагалось, что SQL-ем будет пользоваться пользователь самостоятельно, без “посредников” в виде кривых программ), и TeX, и BASIC как непременный атрибут “персоналки”, и даже программируемые калькуляторы. Предполагалось, что “профессиональное” программирование будет нужно только для каких-то особо сложных задач.

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

Если утрировать, то “счастье человечества”, по Марксу, связано прежде всего с развитием “производительных сил”, которое определяет экономическую структуру общества, а через нее – и все остальные стороны общественного устройства. “Социалистическая” мораль не допускала (хотя бы на словах) эксплуатацию меньшинства большинством. Многих удивляет, особенно после просмотра передачи How it’s made по каналу Discovery, почему китайские товары собирают практически вручную – ведь по Discovery показали таких забавных роботов, станки с ЧПУ и прочие радости. А мораль проста – относительное благополучие “золотого миллиарда” достигалось и достигается тем самым “ограблением колоний”. Это СССР мог себе позволить строить в диком Афганистане школы и больницы и отучать крестьян от выращивания мака и конопли – НАТО действует другими методами. “Американец” может позволить себе счастливую жизнь благодаря тому, что на него работает 5 китайцев.

Такая ситуация совершенно не укладывается в “Моральный кодекс строителя коммунизма”, а тем не менее (по Марксу, опять же!) для построения коммунизма необходима определенная производительность труда. Учитывая, что для белых американцев первый этап коммунизма уже наступил – могу предположить, что производительность труда “советского человека” при коммунизме должна равняться производительности труда пяти китайцев. Это можно обеспечить (в нынешних реалиях) только всемерной и повсеместной автоматизацией, когда “вкалывают роботы, счастлив человек”.

А что мы имеем в реальности? “Компьютеризация” превращается в удвоение объема бумажной работы. Программирование превращается в занятие немногочисленных “профессиональных программистов”. Даже 30 с лишним лет назад “обычные пользователи” могли освоить, к примеру, ДВК в такой степени, что писали свои несложные рассчетные программы. Сегодня даже макросы Word кажутся чем-то страшным.

Когда говорят о Unix и Windows, очень часто упоминают “порог вхождения” – мол, работать в юниксообразных ОС сложнее. Но ведь “порогов вхождения” можно выделить два – один – “для решения простейших задач” – в интернете полазать, видео посмотреть и т. п., другой – “для сложных задач” – типа “написать маленькую программулечку, которая берет файл и форматирует его”. И вот что интересно – в Unix всех видов расстояние от первого порога до второго меньше, чем в Windows. Да, первый порог в Unix выше, чем в Windows, но вот второй – определенно ниже.

Конечно, Unix и Windows – очень условные слова. Но “два мира, две системы” в программировании действительно существуют, и пишут об этом многие – от Joel-а до наших доморощенных умельцев. Ну а “законодатель мод” в Windows-мире может позволить себе заявить о прекращении развития Silverlight, когда на том уже сделан сайт московского метро :)

Интересно, а как правильно и “по-майкрософтски” эта же задача будет решаться через 5 лет?

Про “врагов унутренних”

- Унутренними врагами мы называем усех сопротивляющихся закону. Например, кого?
- Так что бунтовщики, стюденты, конокрады, жиды и поляки!

Из всего этого обширного списка речь пойдет о “стюдентах”. По альма-матери расклеены вот такие листовки (кликабельно):

igmsustipigmsuzakon

О чем говорится в первой листовке? “Студенты, аспиранты и сотрудники”, кстати говоря, нигде не называющие себя, требуют повышения стипендий. При этом они упоминают, что нынешняя стипендия составляет 1100 рублей. Это, например, стоимость 10 обедов в МГУшной столовой (и то не всякой). Не забываем о том, что студенту нужно купить еще и проездной на автобус или метро (по 250, ЕМНИП, рублей) – и возникает резонный вопрос: можно ли жить на эту стипендию? Ответ, разумеется, нет. Более того, нынешнюю стипендию никак, кроме как “подачкой”, не назовешь. О каких “определенных материальных возможностях” говорится в листовке?

Когда-то давно на форуме мехмата кем-то из тогдашних студентов было озвучено мнение, что для того, чтобы не работать и не обременять, например, родителей, студент должен получать стипендию в размере 8-10 тысяч рублей. Если принять советскую стипендию за 40 тогдашних рублей и “обменный курс” за 1:200, то получим как раз озвученые на форуме цифры. Почему в 70-е годы студенту платили за сам факт учебы без троек?

Давайте посмотрим на российское высшее образование со стороны государства. Есть довольно большое количество разнообразных “университетов” (большая часть которых – бывшие педвузы) и “технических университетов” (бывшие технические ВУЗы, отрастившие факультеты менеджмента, маркетинга и других модных иностранных слов). Каждый год в эти “университеты” вливается немалое количество денег, а на выходе получаются какие-то абсолютно никому не нужные “специалисты”. Да-да, денег уходит, как на подготовку инженера, а работает это чудо каким-нибудь “менеджером по продажам”. А теперь почитаем вторую листовку в части о “уже реализуемых реформах”.

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

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

Про ФГОСы, взимание платы с родителей в средней школе и сокращение 200 тысяч учителей говорить не буду, во ФГОСах ничего про оплату обучения и сокращение учителей не говорится.

Для полного счастья почитаем и первую часть листовки. Чем нас пугают? Все той же отменой стипендии, оплатой магистратуры и аспирантуры, превращением ВУЗов в коммерческие структуры. Как выразился бы [info]sg_karamurza, “речь идет о смене парадигмы”. Я скажу длиннее, но понятнее.

В России со времен Петра Первого высшее образование существовало лишь в интересах государства. В высшей степени это проявилось в СССР, когда существовала система распределения выпускников и их обязательной работы на выбранном предприятии. Кстати говоря, справка 086у, обязательная для поступающих – это тоже наследие “проклятого прошлого”. Если у человека были какие-то заболевания, из-за которых, окончив ВУЗ, он не мог бы работать по специальности – то учиться ему просто бы не дали.

Пару дней назад слышал разговор двух теток в автобусе, которые обсуждали их общую знакомую, решившую в 55 лет поступить в институт, и успешно там учащуюся. Теток поразило то, что после окончания института та работать не собирается, а о причинах этого своего решения говорит просто: “Интересно”. Кстати, и в проект нового закона об образовании проникло мнение о том, что выпускник ВУЗа должен потом “работать в народном хозяйстве” – там есть довольно интересная и критикуемая той же “инициативной группой” формулировка о финансировании обучения на бюджетных местах в ВУЗах 2,6% граждан в возрасте от 17 до 30 лет. Более чем уверен, что проскочила эта формулировка из документов еще советских времен.

Так вот, концепция патерналистского (или тоталитарного, если хотите) государства, которое контролирует все стороны жизни общества, и в том числе – сферу образования, благополучно сдохла под забором году так в 1991. Теперь, с точки зрения государства, студент учится в ВУЗе не для того, чтобы затем работать на госпредприятии, а для удовлетворения своих личных амбиций – “интересно” ему, например. Ради личных амбиций он идет в магистратуру, в аспирантуру – и, спрашивается, зачем государству оплачивать чьи-то личные амбиции?

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

Чего хочется авторам листовок? Да ничего особенного – за государственный счет заниматься своими личными тараканами в голове. Почему-то в России превратно понимают американскую по происхождению фразу “Я же налогоплательщик”! У нас “налогоплательщику” должны обеспечить здравоохранение, образование, да и вообще черта лысого – и все за его налоги. А вот, например, в Штатах к самосознанию налогоплательщиков обычно аппелируют тогда, когда надо сократить какие-нибудь расходы. Послушайте, например, песенку про Federal Aid.

Так вот, господа налогоплательщики. А вы хотите, чтобы в ВУЗах учились толпы бездельников, получали за это деньги в размере прожиточного минимума (а я еще не считаю затраты на раздутые штаты ВУЗов), а потом еще за ваши же деньги продолжали заниматься разной бессмысленной фундаментальной наукой? Ведь известно, все зло от них, от ученых – вон, в Японии АЭС взорвалась!

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

Можно, конечно, как предлагают в листовке, “распространять информацию”, “организовывать обсуждение”, “участвовать в акциях протеста” – но, как говорил бородатый Карл Маркс, “базис определяет надстройку” – и совершенно бессмысленно требовать от капитализма того, чтобы он обеспечил “надстройку” от того, что называлось “развитым социализмом”. Ну а наука давно уже превращается в две совершенно разные вещи – в развлечение для богатых людей, как в каком-нибудь XVIII веке и в развеселые “занимательные опыты” по каналу Discovery. С чем всех и поздравляю.

PS Кстати, есть мнение, что “инициативная группа” относится просто к числу “вечно несогласных”. Уверен, что если бы им предложили по окончании МГУ “увлекательную и творческую” работу в НИИ Говна и Торфа с окладом в 15000 рублей (такие предложения висят там на стенде рядом с гораздо более заманчивыми), они возмущались бы и против этого.

Внеочередной сеанс японофилии

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

Эксперты штаба фиксируют крайнюю недостаточность и нерегулярность поступающей информации, в том числе по международному каналу ситуационно-кризисного центра МАГАТЭ.

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

kawaii

Степень кавайности лолей будет оцениваться отдельно.

Еще про самураев

Только что по тель-а-визору показали Путина. Как известно, КГБшники бывшими не бывают, и премьер ожидаемо отжег. Спрашивали как раз про Фукусиму, на что был дан примерно такой ответ:

- Наши эксперты считают, что ядерный взрыв исключен, на основании доступных им данных.

Обратили внимание на оговорочку? Вот-вот.

[info]hirou может продолжать дальше верить в няшных япончиков, которые врать не будут.

Про самурайскую честность

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

Например, [info]vanchez напомнил про печальную судьбу японского броненосца “Ясима”. Начну с описания успешных действий русских минных заградителей во время Русско-японской войны. В Эскадре Тихого океана, которая с самого начала войны оказалась блокирована в Порт-Артуре, имелось два однотипных корабля, предназначенных для постановки мин – минные заградители “Амур” и “Енисей”.

Минный заградитель "Амур"

Минный заградитель "Амур"

Постановка мин в окрестностях Порт-Артура началась уже через двое суток после внезапной атаки японских миноносцев на стоявшую на внешнем рейде русскую эскадру и объявления войны. И в первый же день минных постановок был, так сказать, “открыт счет”. “Енисей”, неудачно маневрируя, подорвался на собственном минном поле. Во время спасательной операции на том же минном поле подорвался крейсер “Боярин”, который был в панике покинут экипажем, но не затонул, а еще несколько дней дрейфовал, пока не напоролся на вторую мину.

Крейсер "Боярин"

Крейсер "Боярин"

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

Обычно Макарова у нас представляют, как гения морской стратегии и тактики. Заслуженно или нет – неизвестно, потому как проявить свои таланты ему не удалось. Но вообще на месте мужику не сиделось – то пытался пройти “к Северному полюсу напролом”, попутно два раза испортив первый в мире арктический ледокол “Ермак” (за что с “Ермака” был отправлен куда подальше), то “изучал подводные течения в Босфоре” (мины собирался ставить, не иначе – ну и крест над Святой Софией), то, пока в Порт-Артуре не отремонтировали броненосцы, выходил пугать японцев на небронированном крейсере.

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

Броненосец "Петропавловск"

Броненосец "Петропавловск"

Так или иначе, о гибели “Енисея”, “Боярина” и “Петропавловска” моментально сообщали в печати. А что же японцы?

15 мая 1904 года во время очередного обстрела Порт-Артура на выставленных “Амуром” минах подорвались сразу два японских броненосца.

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

Броненосец "Хацусе"

Броненосец "Хацусе"

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

Броненосец "Ясима"

Броненосец "Ясима"

Ну что, вы еще верите в то, что японцы говорят “всю правду” про Фукусиму?