Сознайтесь, кодеры!

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

Говорят, что даже на Физтехе, на Факультете Управления и Прикладной Математики – цитата:

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

Я писал печальные вещи о том, как поставлено преподавание “околокомпьютерного” цикла (который входит в программу по специальности 010100 Математика, так что не надо говорить о его “непрофильности”) на мехмате МГУ. В разнообразных отзывах на этот текст (довольно непредсказуемо для меня расползшийся по интернету) писали, что в Бауманке все немного лучше (”драли за код, за гую, за непредусматривание ошибочных ситуаций”). Вроде бы все очень и очень неплохо на ВМК – настолько неплохо, что его выпускники идут работать в любые “околокомпьютерные” области, но только не программистами.

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

А вот как учат будущих инженеров (из комментариев к ролику на Youtube – это БГТУ, зачет по курсу “Детали машин”):

Признавайтесь, программисты, докапывался ли кто-то до “уродств” в тех программах, которые вы писали в ВУЗе?

PS Меня макнули мордочкой в собственное дерьмо один (!) раз за все 2 (в школе) + 4 (в универе) года, и случилось это на втором курсе, когда В. В. Борисенко заболел, и его заменял А. И. Немытов. Я сдавал одну из задач по теме “Текстовый редактор“, преподаватель быстренько проверил, как у меня обрабатываются “граничные условия”, продемонстрировал, что в этих случаях моя программа ведет себя некорректно, и объяснил, в чем суть ошибки. Больше я подобных случаев не помню.

Прапалитегу

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

Что можно сказать про это? Такого плана законопроекты не пишутся “за две недели”, и какие-то новости о том, что готовится возврат губернаторских выборов, проскакивали еще осенью, до всяких там митингов. Извините, пруфлинка не дам, он потерялся. В общем, “Пу и Ме” развели митинговавших “хомячков” по полной программе – только хомячки этого не поняли и считают себя не меньше, чем медведями.

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

Про любительский подход

У ребе [info]metaclass обсуждают три простых тезиса про выбор языка программирования. Тезисы звучат так: “работает – не трогай!”.

А сегодня я в процессе обАСУчивания некоего объекта был свидетелем интересного разговора. Обсуждались некие “общеинженерные” и “организационные” вопросы – и я поймал себя на том, что обсуждаемые этапы проекта прекрасно ложатся в выделяемые в разнообразных RUP-подобных процессах “фазы”. Интересно, переводил ли кто-то “методологии” разработки ПО на ГОСТовский язык? Я знаю только попытку провести параллели между терминами из RUP и ГОСТ в учебном пособии М. И. Кумскова “Базы данных” и его одноименном курсе на мехмате – а все нагугливаемое по RUP и подобным “методологиям” использует исключительно англоязычные термины или кальки с них.

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

Нет, я не имею ничего против программистов-фанатиков (сам такой). Но все холивары “на каком языке писать” пахнут “кружком юных радиолюбителей“, как сегодня обозвали наш НИИ Говна и Торфа (вполне заслуженно, надо сказать). Чем инженер отличается от “юного радиолюбителя”? Как раз тем, что понимает разницу между самим проектом и непосредственной реализацией (программированием, монтажом оборудования, etc).

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

Вопрос к кулинарным снобам

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

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

Ну что, знатоки среднеазиатской кухни, можно ли называть это мантами?

Про галоши

Galoshi

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

galoshi_silikon

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

Как писать страшилки

Сегодня с утра увидел в ленте пару перепостов следующей новости:

Некая, Линда Рагглес, 53 лет (Южная Каролина) оказавшись в последнее время в нищете, пыталась свести концы с концами всеми способами – например, постоянно сдавая кровь два раза в неделю. Это ее не спасло от полиции, наехавшей с прентензиями за то, что в ее несчастной лачуге драная крыша и она портит вид. Нескольких косарей баксов у нее на ремонт крыши, естественно, не было и ее присудили штраф в полкосаря за невыполнение требований. Не нашлось денег и на штраф – после чего ее бросили в темницу на 10 дней.

Новость снабжена ссылкой на сайт Russia Today, где изложено нечто другое. Оказывается, тетку арестовали (”бросили в темницу”, с крысами и замурованными в стенах скелетами) не по беспределу, а за то, что она развела бардак на пресловутом front yard. Тетке выписали штраф (кстати, умалчивается еще об одном этапе – сначала выносят предупреждение и настойчиво просят привести двор в порядок), она не заплатила и за это получила десять суток административного ареста.

Не буду обсуждать “вес” и “авторитетность” Russia Today в вопросах жизни в США, замечу лишь, что не стоит составлять мнение о жизни в России по передачам BBC и “Эха Москвы” – хотя любители находятся. Лучше продемонстрирую, как писать такие страшилки. Для начала нужна новость. Возьмем, например, сюжет о сумасшедшей собачнице. Знаете, бывают такие пенсионерки, которые сначала подкармливают бездомных Жучек и Бобиков на улице, потом приводят их в квартиру, потом разводят там страшную полудикую собачью стаю в 30-40 голов, а потом… В общем, не так давно в Москве, кажется, отловили бабку с сотней собак в малогабаритной квартире. В холодильнике у бабки обнаружились замороженные куски собачатины – когда Бобики дохли от тесноты, бабка скармливала тушки остальным. На нее завели дело о жестоком обращении с животными, а дальше история покрыта мраком неизвестности.

Предположим, что вы – журналист BBC и вам срочно надо высосать из пальца страшилку. Фигня вопрос! Для начала назовем сумасшедшую бабку “экологом”, а возбужденное уголовное дело – попыткой отправить эколога в GULAG. Дальше просто – добавляем подробностей, убираем расчлененку. Пишем, что эколог подкармливал бездомных животных, что всю пенсию она тратила на мясо для собак, приводим для сравнения стоимость килограмма отборного мяса в “Азбуке Вкуса” и минимальную пенсию. В общем, образ безвинно пострадавшей пенсионерки-эколога готов.

А теперь добавляем инфы о преследованиях экологов, не забыв помянуть Химкинский лес. Утверждаем, что обвинение надуманное (ну как можно назвать “жестоким” то, что бабка подкармливала брошенных хозяевами барбосов?), что злокозненный режим Путина так расправляется со своими противниками (чем бабка помешала Путину – умалчиваем), что “экологу” грозит до двух лет лишения свободы (”забываем”, что на первый раз 245-я статья УК РФ предусматривает лишь арест на срок до 6 месяцев, да и то, если докажут садистские методы в присутствии малолетних), “на сладкое” – чуть-чуть информации о местах заключения в России, с упоминанием слов Stalin и GULAG.

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

А вот разъясните мне ситуацию с “аддитивными технологиями”

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

Например, у меня сложилось такое впечатление, что RepRap может изготавливать только запчасти для самого себя. А вот может ли он “напечатать”, допустим, корпус зеркала заднего вида для автомобиля? Что нужно, чтобы по имеющейся детали сделать ее точную копию? Можно ли “отсканировать” трехмерный объект, подредактировать его в фотошопе 3D Studio и затем “напечатать”? Что для этого надо, сколько будет стоить?

А это немецкие толкиенисты

Взялись экранизировать “Сильмариллион”:

http://www.project-silmarillion.de/

Вам, пироманы

Статья (на английском) о японских воздушных шарах с зажигательными бомбами.

ballonbomb

Во время Второй Мировой войны самураи придумали запускать с территории Японии воздушные шары, которые должны были долетать до территории США, падать в лесах и вызывать пожары. Кроме того, некоторые из шаров несли и “обычную” взрывчатку, предназначенную для не в меру любопытных американцев.

Пацаны, нас обманули!

Смотрим “Назад в будущее-2″. Действие происходит в 2015 году. На экране показывают летающие автомобили, компактные источники питания, перерабатывающие всякие объедки в электричество и голографическую рекламу “Челюстей-19″.

Мне кажется, что нас с будущим немного обманули. Где мои “Челюсти”?

Толкиенизм на марше

Фима полужид Элронд полуэльф:

elrond

Из фильма “Гибель Властелина Колец и возвращение Государя“, снятого отечественными толкиенистами. Вот трейлер:

Говорят, длительность фильма – 268 минут. Немногие могут выдержать просмотр хотя бы трейлера.

Мусорный пакет против летающего презерватива

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

Почему все без исключения гелиевые шарики лопаются на высоте 30-40 километров, а продолжительность их полета – не более пары часов? Дело в том, что “запускатели” накрепко завязывают шарик. Что же происходит дальше? Смотрим на верхнюю полоску “гомикса”.

stratosphere

При подъеме шарика снижается атмосферное давление. На шарик снаружи ничего не давит и находящийся внутри газ может расширяться, раздувая при этом оболочку. Чем выше поднимается завязанный веревочкой гелиевый шарик, тем больше его раздувает (на высоте 25 километров объем шарика увеличивается примерно в 30-40 раз) – и, наконец, происходит бабах – просто оболочка из латекса становится слишком тонкой.

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

Что же дальше? Предположим, что мы запустили мусорный пакет с гелием в солнечный день. При этом пакет хорошо разогрелся, теплый гелий занял большой объем, а затем солнце зашло, пакет остыл, а гелий уменьшился в объеме. В пакет “затечет” воздух, подъемная сила уменьшится, и шар начнет опускаться. Если за ночь он не достигнет земли – то выглянувшее утром солнце снова разогреет оболочку, опять возникнет подъемная сила и шар сможет подняться обратно.

stratosphere2

В общем, по продолжительности полета мусорный пакет уделывает завязанный веревочкой шарик буквально “одной левой”. А что с высотой и грузоподъемностью?

Высота подъема такого аэростата полностью определяется его конструкцией, точнее – соотношением объема легкого газа, закачанного на земле, и полного объема оболочки. Предельная высота – это та, на которой газ, расширяясь, займет весь объем оболочки и начнет “вытекать” в атмосферу. Если “поднимать” 120-литровый мешок одним литром гелия, то “безопасно” расширение газа в 120 раз – то есть давление на высоте должно составлять 1/120 от “наземного”. Это соответствует высоте в 40 километров.

А что с грузоподъемностью? К сожалению, ничего хорошего. “Грузоподъемность” литра гелия при нормальных условиях, то есть на поверхности Земли – всего 1 грамм, так что мусорный мешок из предыдущего примера просто не взлетит. Весит он, если изготовлен из самого легкого и тонкого полиэтилена (6 микрон), примерно 15-20 грамм – то есть надо закачивать 20 литров газа. Это дает запас “по расширению” в 6 раз, что соответствует максимальной высоте полета чуть больше 10 километров – и безо всякой полезной нагрузки!

Конечно, “стратостат”, летающий более-менее продолжительное время с приличной нагрузкой сделать можно. Будем отталкиваться, например, от стоимости баллона гелия. Десятилитровый баллон гелия под давлением 140 атмосфер – это 1400 литров в нормальных условиях, в московских фирмах, торгующих оборудованием “для шариков”, он стоит 5000 рублей (3500 баллон и 1500 заправка). Предположим, что мешок объемом 120 литров весит 20 грамм (вместе со скотчем, которым мешки связаны вместе), а необходимая полезная нагрузка – 200 грамм. Итого, мы можем присовокупить к полезной нагрузке оболочку из 600 мусорных мешков – общий ее объем составит 72 000 литров. В такой оболочке гелий может расшириться в 50 раз – в общем, высота в 30-35 километров оказывается вполне доступной, а главное, в отличие от латексных шариков, вся эта конструкция может находиться там довольно продолжительное время.

Над селом херня летала серебристого металла…

…много стало в наши дни неопознанной херни.

Непонятно каким образом нашел жежешечку [info]electronik_irk, в которой обсуждаются вопросы изготовления дирижаблей по технологии, аналогичной пивным банкам. Прикидки показывают, что “пивная банка” диаметром 6 метров и длиной 12, заполненная гелием и обклеенная сверху солнечными батареями, способна вполне автономно и беспилотно летать на высоте в несколько километров. Интересна, конечно, прочность конструкции – как мне кажется, “абсолютно никакая” (сопромату я, к сожалению, не обучен :( ) – но с другой стороны, экипажа там нет, а электронику не жалко.

В комментах нашел ссылку на эпизод Mythbusters, в котором строили воздушный шар из свинцовой фольги – точнее, не шар, а “кубик”. Заполненный гелием кубик размеров 30×30x30 футов – примерно 10×10x10 метров – при собственном весе около 11 кг имел, по расчетам, подъемную силу около 17 кг. Выглядело это так:

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

Наверное, есть и более разумные способы выкинуть куда-то флешки. На мой взгляд, хватило бы и какого-нибудь QR-кода на самолетике. Кстати, самолетики находили даже в Австралии.

В общем, фантастика жульверновского пошиба, про сидящих в каких-то гаражах тайных аэронавтов – это вполне себе реальность :)

Про микроспутники

Британские ученые предлагают премию за вывод “любительского” микроспутника на околоземную орбиту. Условия просты:

- сумма премии равна 9999,99 фунтов
- вручаются две премии – за невозвращаемый и возвращаемый КА
- масса спутника должна составлять от 9,99 до 19,99 грамм
- спутник должен совершить не менее 9 витков
- стоимость спутника и носителя должна составлять менее 999,99 фунтов

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

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

Собственно, технологии, позволяющие ракетомоделистам-переросткам запустить некое подобие космического аппарата – это реальность самого ближайшего будущего. Сегодня [info]infowatch утверждает, что дешевый (менее 100$) метеозонд с FM-передатчиком, несущим треш, угар и песни “Сектора Газа” – это готовое оружие информационной войны – но, по-моему, что-то подобное уже делали – случайно не японцы во время войны? Завтра придется признать, что каждый дурак (ну это я погорячился – скорее, организованная группа, типа палестинских “юных техников“) способен запустить собственный космический аппарат – а для чего, они там разберутся.

В общем, в ближайшие лет 10-15 “космические” технологии станут едва ли не общедоступными.

Об истинной эффективности Роспила

Тут по ссылке [info]soonts в записи про чмошника мы обсуждали, что же за 9 месяцев своего существования сделал проект “РосПил”. В качестве “показателей” использовались приведенные на сайте того же “РосПила” данные – проверено 194 заказа, подано 76 жалоб, обоснованными признано 45, касающихся заказов на общую сумму около 40 миллиардов рублей.

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

[info]politrash_ru пишет, что реально эффект от деятельности “РосПила” гораздо меньше, чем “официальные” данные – например, удалось добиться отмены ФАС 7 конкурсов на общую сумму 861 миллион рублей, кроме того, 5 конкурсов на сумму 452 миллиона рублей были отменены заказчиком по неизвестным причинам.

rospiltable

И это еще не все – отмененные конкурсы все равно так или иначе проводятся, никуда от этого не деться. Например, добился Навальный отмены строительства детского сада на 276 мест в Сызрани – и что? А ничего. Сейчас вместо одной заявки вывешено две, где проектирование и строительство разделены. Думаю, для полного треша и угара на детский сад повесят мемориальную доску “Московский блоггер Навальный добивался отмены строительства этого детсада”.

Как можно охарактеризовать такую деятельность? “Главное не результат, главное процесс.”

А вот, кстати, вспомнилось

В педивикии наткнулся на статью про MathML. Если вкратце, то это такой мертворожденный язык набора математических формул на основе XML. Полюбуйтесь сами:

 <mrow>
  <mi>x</mi>
  <mo>=</mo>
  <mfrac>
    <mrow>
      <mrow>
        <mo>-</mo>
        <mi>b</mi>
      </mrow>
      <mo>±</mo>
      <msqrt>
        <mrow>
          <msup>
            <mi>b</mi>
            <mn>2</mn>
          </msup>
          <mo>-</mo>
          <mrow>
            <mn>4</mn>
            <mo>&InvisibleTimes;</mo>
            <mi>a</mi>
            <mo>&InvisibleTimes;</mo>
            <mi>c</mi>
          </mrow>
        </mrow>
      </msqrt>
    </mrow>
    <mrow>
      <mn>2</mn>
      <mo>&InvisibleTimes;</mo>
      <mi>a</mi>
    </mrow>
  </mfrac>
 </mrow>

Правда, очень просто и понятно? Сомневаюсь, что человек сможет “увидеть” здесь формулу для корней квадратного уравнения. Для сравнения, в TeX она записывается так:

x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}

…и получается вот такая красота:

root2

В ФАКе по MathML действительно, упоминают про “избыточность” формата – но сами посудите, почему нельзя сделать MathML чуть поумнее? В формулах буквы, цифры и значки обычно имеют вполне определенный смысл и изображаются вполне определенными шрифтами – в TeX просто заранее определены классы символов и правила их изображения (например, значки бинарных операторов вроде ‘+’ обычно имеют “отбивки” слева и справа, а буквы пишутся курсивом). В MathML это приходится задавать вручную – то есть снабжать каждую букву тегом <mi>, а числа – <mn>. Вряд ли можно назвать такой формат и human-readable (а уж про writable говорить не приходится).

Это, кстати, не скрывается. В том же ФАКе пишут, что желательно пользоваться программами-генераторами для создания документов MathML (кстати, такой генератор есть в Windows 7, называется “Панель математического ввода”, здорово умеет распознавать всякие каракули).

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

- human-readable/writeable – нужно далеко не всегда, а в сложных приложениях совершенно теряется.
- универсальность – в большинстве случаев нафиг не нужна, да и понимается она очень по-разному. W3C, например, “рекламируя” форматы на основе XML, утверждает, что и для XHTML, и для MathML, и для какого-нибудь SVG подойдет один и тот же “универсальный” XML-парсер. Но вот если нам не надо работать с десятью разными типами XML-документов, зачем заморачиваться такой “универсальностью”?
- “самодокументируемость” – без комментариев. Конечно, вот такое еще можно понять, но как разобраться в том же MathML без специального руководства?

custom-dll-definition

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

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

Через десяток-другой сообщений американцы были ознакомлены с теорией “золотого миллиарда”, XML я обозвал технологией, придуманной по принципу “с жиру бесятся”, а уж сжатие XML вообще не нужно.

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

Еще один клоун

Начал собирать личную коллекцию смешных персонажей из жежешечки, а также их тараканов в голове. Вот, к примеру, большой знаток философии [info]elter_jude пишет под заголовком “Философия – детям“:

Философов досократиков, учивших о материальном первоначале мира, о множестве и движении можно давать детям уже 5 – 7 лет, когда они начинают этим интересоваться. Тогда же, наверное, можно дать позитивистов: Спенсера и Конта, ввиду примитивности философии последних.
Фейербаха и просветителей давать бы лучше в 8 -10 лет, чтоб выработать у детей – ПРАВИЛЬНОЕ – т.е. никакое – отношение к религии.
С 10 до 12 лет не плохо было бы дать Аристотеля и Руссо. Классификация природы и любовь к ней.
С 12 до 16 в пору крушения идеалов лучше учить Канту.
А уже к совершеннолетию надо научить ребёнка мысли трёх ВЕЛИЧАЙШИХ философов – Платона, Гегеля и Маркса

Меня всегда радовали такие “высокообразованные” деятели, которые брали на себя ответственность определять, что правильно, а что нет. А особенно тут “радует” апломб, с которым товарищ навешивает ярлыки “примитивный” или “непримитивный”.

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

Еще немножко про Штаты

Или что меня удивило в википедической статье про Левиттауны.

Начну со ссылки на одну дискуссию в ЖЖ.

http://szhaman.livejournal.com/797541.html?thread=17765221#t17765221

Товарищ [info]sorgon_74 искренне удивляется, как право частной собственности может облагаться какими-то ограничениями, да еще и разнящимися не просто в разных штатах – на разных улицах в одном городе! Невероятно, какое извращенное понимание “частной собственности” складывается у постсоветского человека.

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

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

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

О каком “самоуправлении” можно говорить, когда мозги забиты превратно понятым определением “священной частной собственности”? Какое “гражданское общество”, какой “класс собственников”, когда эти собственники отгораживаются друг от друга трехметровыми заборами и неспособны договориться о том, чтобы заказать самосвал гравия?

Про широкий экран

Прочитал про грядущие нововведения в файловом менеджере Windows 8 (да, я тормоз). Оказывается, в Microsoft подсчитали, что 83% пользователей работает за широкими экранами (в основном – 1366×768). Еще лет десять назад мне казалось, что разрешение 1024×768 – маловато. От перехода на следующее за ним 1280×960 (на девятнадцатидюймовом LG Flatron 915 FT+ это выглядело неплохо) меня удерживали две вещи – убогий TV-out в исполнении NVidia в Windows XP и недостаточная полоса пропускания мониторного кабеля – на больших разрешениях экран “мылил”.

Время шло, я поменял монитор сначала на LG Flatron 1970H (1280×1024, к тому времени появилась возможность смотреть кино на TV-out без “клонирования” основного экрана), затем, раздолбав от злости ни в чем не повинный экран – на LG Flatron W2242T. Хочу заметить, что вертикального разрешения при последнем переходе не прибавилось, разве что оказалось проблемой найти недорогой матовый монитор с DVI-входом. О решении искать “недорогой монитор” я впоследствии пожалел, увидев монитор с IPS-матрицей. Впрочем, я отвлекся.

Оказалось, что на широком экране разрешение по вертикали – все равно страшный дефицит, зато по горизонтали добавилось 400 пикселей. Это я говорю о достаточно большом дисплее, у меня на работе вообще со сменой компьютера притащили что-то непонятное. Вместо Fujitsu-Siemens с битыми пикселями, но поддерживавшего 1280×1024, приволокли в громадной коробке (заполненной в основном пенопластом) Hewlett-Packard – но с любимым во всем мире разрешением 1366×768. В общем, получилась этакая “смотровая щель”.

Интерфейс большинства нынешних программ делается по образцу MS Office начала 2000-х (а то и гораздо раньше), когда экраны имели соотношение сторон 5:4 или 3:2. Естественно, что вертикальные панели используют по минимуму. Кроме того, ширина “основной” части окна получается просто неприличной. При комфортном размере шрифта там оказываются настолько длинные строки, что читать становится просто некомфортно.

Кстати, маленькое отступление. В издательской системе TeX (точнее, LaTeX) введено довольно странное на первый взгляд “ограничение” – длина строки текста на листе не должна превышать 65-70 символов. На самом деле это довольно древнее “типографское” правило, связанное именно с особенностями чтения и восприятия текста. Если букв в строке больше – то для чтения приходится делать некомфортные движения глазами.

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

Самое, на мой взгляд, неудачное из “устоявшихся” решений – это панель задач внизу или вверху экрана. Она появилась там во времена Windows 95 (точнее, еще раньше – на Macintosh она присутствовала чуть ли не “от рождения”, да и в OS/2 что-то такое было) – в общем, на “обычном” экране ее еще как-то можно было терпеть, а вот на широком, да еще и не очень большом, она превращается в раздражающую полоску, съедащую кучу места.

А вот если перетащить ее направо – то все получается очень логично. Кстати, и менюшки разворачивать из левого верхнего угла очень удобно.

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

Советских танковых орд псто

Наткнулся на интересную статью в немецком “Шпигеле”. Вы не замечаете ничего странного на этих фотографиях?

00511445

И поближе:

tunnel-near

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

Впечатление такое, что проектировщики этих систем предполагали, что танки могут двигаться только по дорогам, а через реки переправляться – только по мостам и туннелям, заботливо построенным немцами. А особенно оно усиливается после недавнего просмотра фильма A Bridge too Far, про англо-американскую Голландскую операцию 1944 года.

Если кто не смотрел фильм или не хочет читать Википедию, то кратенько расскажу содержание. После высадки в Нормандии (которую красочно снял режиссер Спилберг в “Спасти рядового Райана”) союзники разработали хитрый план, согласно которому Берлин должен был быть взят к Рождеству, то есть до 25 декабря 1944 года. Для этого было необходимо форсировать Рейн. Вооружившись автоатласом, англичане с американцами нашли подходящее шоссе и решили ехать по нему. Предполагалось, что немцы радостно драпанут, как они драпали до этого в Нормандии. Впрочем, в 1944 году наиболее боеспособные части были на Восточном фронте, а на Западном встречались в основном старики, гитлерюгендовцы, власовцы и даже несколько Krankendivision – подразделений, составленных из ограниченно годных к строевой службе, так что расчет союзников мог оказаться верным.

По дороге имелось несколько мостов, поэтому решили действовать так – в тылу у немцев высаживается крупный десант (около 30 тысяч человек), захватывает переправы и удерживает их до подхода основных сил в виде 30 танкового корпуса. Все получилось немного не так, как планировали. Во-первых, десант не смог захватить все мосты – переправу через канал Вилгельмины немцы взорвали, мост в Неймегене десанту удержать не удалось. Во-вторых, высадившиеся части оказались без связи. Из-за этих “накладок” движение 30 корпуса замедлилось, к тому же (внезапно!) в районе Арнема оказалось две танковых дивизии СС, выведенных с Восточного фронта для пополнения. В конечном итоге 30 корпус так и не дошел до Арнема, остатки десанта были частично “эвакуированы”, частично попали в немецкий плен.

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

Wilhelmina_001

Из-за того, что саперы особенно не торопились подвозить понтоны, на форсирование канала ушло чуть ли не полтора дня. Затем еще целый день был потрачен в Неймегене – ждали десантные лодки, которые должны были подвезти англичане. Интересно, кто мешал реквизировать плавсредства у местных жителей? Самое интересное – это то, что 30 танковый корпус остановился в итоге всего в нескольких километрах от Арнема, Рейн так и не форсировали и в итоге Голландская операция оказалась “выполненной на 90%”. Фельдмаршал Монтгомери записал ее в список своих побед, но реально все усилия оказались напрасны – союзники форсировали Рейн только весной 1945.

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

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

Могут ли слаборазвитые дети-имбецилы защититься от такого вот хулигана? Вот поэтому Збигнев Бжезинский и пугает всех “русской угрозой”.