Попаданец наоборот

У покойного Константина Крылова на samlib осталась неоконченная «повесть для юношества» под названием «Иосиф Прекрасный» — с примерно такой аннотацией:

Является обратной по отношению к обычному «попаданчеству к Сталину»: здесь не герой приходит к Генералиссимусу, чтобы учить его выигрывать войны и делать атомную бомбу, а Генералиссимус приходит к герою и учит его варить борщ и стирать носки. Это сложнее, чем выиграть войну, но большевики трудностей не боятся!

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

А вот явись дух Сталина к менеджеру по перекладыванию бумажек — там бы ему было где развернуться! Во всяком случае, советы по подсиживанию коллег, офисному выживанию и даже использованию PowerPoint он мог бы давать вполне квалифицированные.

Про PowerPoint — почти не шутка, кстати. Заодно стало понятно, что значит «пиздит, как Троцкий».

Архив «Крокодила»

Совершенно замечательная подборка всех номеров «Крокодила» с 1922 по 2008 год:

https://croco.uno/

Довольно забавно проследить эволюцию главного советского сатирического издания — особенно в части «удобочитаемости» материалов. Если где-то до 60-х быстренько пролистать номер еще получается — то в 70-80-х вместо простых коротких фельетонов появляются адовы простыни на пару разворотов, с множеством «действующих лиц», дурной «литературщиной» и при этом совершенно нечитаемые.

Кокетничающий Шень

Вот сегодня пошла гулять по интернетикам картинка из нового издания задачника Шеня:

Где-то попытались поднять шум в духе «В России маркируют книги врагов народа» — но автор сам разъяснил ситуацию:

https://www.facebook.com/alexander.shen.182/posts/10158291873213423

Мне, конечно, кажется, что если надо разъяснять такой вот «юмор» — то шутка плохая и бессмысленная. Рассчитаны такие шутки на довольно малочисленную аудиторию, я бы оценил ее максимум в несколько тысяч человек, этаких «ностальгирующих диссидентов» от математики («от математики» — это существенно, нормальные люди книжек Шеня не читают). Впрочем, у них это все получает самую высокую оценку, в духе

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

— это практически дословная цитата, я не шучу!

Но нет, такое кокетничание — ах, я иностранный агент! — это вовсе не «троллинг закона», да и средневекового ужаса тут в целом никакого нет. Но не могу не отметить, что для Шеня и заметной части его аудитории сидеть и бороться с «советской властью» путем фиги в кармане — это приятные ностальгические воспоминания, так что не буду их в этом сильно упрекать :)

Кстати, а любите ли вы Лема?

А то у меня такое ощущение, что можно подобрать подходящую цитату к любой новости «хайтека».

holy-auto

Будучи далек от радикализма, Мельхиор не ставил себе задачу автоматизировать богослужение целиком, он лишь хотел пособить широким массам духовенства, для чего сконструировал несколько безотказных, быстродействующих и простых в обслуживании устройств, как-то: анафематор, отлучатель, а также особый аппарат для предания проклятию с обратным ходом (чтобы можно было проклятие снять).

PS Да, я знаю, что это всего лишь смешная опечатка.

Егор Бугаенко, Elegant Objects/Элегантные объекты

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

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

PS Впрочем, есть одно средство от депрессии — идите в embedded, пишите на голом Си, это весело и даже может сопровождаться красочными спецэффектами.

Переводчики жгут

peery-lea-iot

Сколько раз зарекался читать техническую литературу на русском — столько же раз и жалел об этом. Издательство ДМК-Пресс отожгло напалмом, такого перевода Ready to send и Clear to send я еще ни разу не видел.

DEC is dead, long live DEC

Читаю книжку, где разбираются организационные принципы Digital Equipment Corporation — от «матричной иерархии» до довольно интересной внутренней культуры. Автор — Эдгар Шейн, основатель организационной психологии и вообще — признанный живой классик этого научного направления. И вроде бы все гладко и логично получается — одни и те же принципы помогли DEC стать второй (после IBM) «компьютерной» компанией, и они же привели ее «на дно» — то есть к поглощению Compaq, а потом и HP.

Но с другой стороны — уж как-то старательно обходится стороной долгая история взаимодействия DEC с одной стороны и Пентагона с DARPA — с другой. Есть только небольшие намеки на то, что продукция DEC очень нравилась «инженерам и ученым» — а что это за инженеры и ученые, у которых есть деньги на DEC’овское оборудование? :) Есть, конечно, и байка про то, как Special Systems Group очень оперативно соорудило модульную версию PDP-8, которую можно было протащить в люки подводной лодки — но это всего лишь один эпизод.

Так вот, на фоне всего этого возникает логичный вопрос — а не связаны ли успехи DEC до «начала 90-х» и позорное его падение в 90-е с тем, что ВНЕЗАПНО иссяк источник финансирования для многих из его клиентов? И если связаны — то какое отношение имеет к этому «организационная психология», и не выдает ли Эдгар Шейн совершенно случайные факторы за приведшие к успеху?

Практическое пособие по государственным переворотам

Забавно, что те, кто орет про «организованные протесты по госдеповской методичке», обычно имеют в виду список Джина Шарпа, в целом довольно бессмысленный — ну разве что если вы не скучающие жидомасоны в тайном мировом правительстве, тогда он может пригодиться для забавной игры — выбираете случайный пункт и устраиваете его в подопечной стране. А есть и куда более полезная книжка — «Государственный переворот: Практическое пособие» Эдуарда Люттвака:

http://publisher.usdp.ru/catalog/887.html

Крайне рекомендую диванным революционерам-любителям.

Чуваки, а вот охуенное

https://www.academia.edu/43760536/Открытие_долготы_и_Первый_Транзитный_проект

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

Вот это я понимаю — нестареющая классика

Разбираясь в том, откуда взялись термины master и slave, докопался до книжки The Motor Vehicle за авторством T. K. Garrett, K. Newton и W. Steeds — у меня в виде pdf есть ее 13-е, «исправленное и дополненное» издание (2001 года) — а первое, где автором был один только Kenneth Newton, вышло аж в 1929 году:

https://openlibrary.org/books/OL6746007M/The_motor_vehicle

Cудя по иллюстрациям — что-то осталось даже от того первого издания.

PS Master cylinder там встречается в описаниях тормозной системы, а вот slave cylinder почему-то попадается только в экзотических гидроусилителях рулевого управления.

И еще про анонимность

Кстати, посмотрел тут на выходных в очередной раз «Профессионала» с Бельмондо и «День Шакала». Сюжет, в принципе, достаточно близок — симпатичный киллер собирается убить несколько менее симпатичного политика, в процессе водит спецслужбы за нос, и все это на фоне Парижа, где даже бомжи — не какие-то там обыкновенные бомжи, а настоящие французские клошары. «Профессионал» местами похож на веселую комедию, а вот «Шакала» — точнее, его литературный первоисточник — в свое время даже называли руководством для кого-нибудь, желающего скрыть личность. Скажем, описанный в книге способ получения британского паспорта довольно надежно работал вплоть до начала 2000-х (и им прекрасно пользовалось даже КГБ — скажем, паспорта на имя Хитфилда и Фоли были получены именно таким способом).

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

Mathematics for Machine Learning

Проглядел мельком очередную книжку «про машинное обучение» — точнее, даже не про само машинное обучение, а что-то вроде учебника по необходимым разделам математики:

https://mml-book.github.io/

Где-то треть книги — изложение стандартного курса линейной алгебры, еще немного — многомерный анализ (всякие там якобианы и тому подобные штуки), основы теории вероятностей и методов оптимизации. Оставшаяся треть — описание «классических» подходов к машинному обучению, заканчивающееся описанием метода опорных векторов (SVM). Впечатление — довольно странное. Для начала, предполагается, что читатель владеет понятиями вроде «производная» и «интеграл», а «вектор» для него — это пара чисел, а не отрезок со стрелочкой на конце. Как утверждается в предисловии, это примерно программа high school — но у нас ВУЗы школам в изучении этих вещей не доверяют (и правильно делают!), поэтому вузовский курс математики начинается с основ анализа.

Если же вы с математикой не соприкасались со школьных времен — то довольно быстро столкнетесь с тем, что некоторые вещи, которые хорошо бы разъяснить, здесь считаются хорошо известными. Классический курс матанализа, хотя бы с изложением теории дифференцирования функций одной переменной, попросту необходим для чтения.

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

Вердикт — под видом датасаенса нам подсовывают замшелую линейную алгебру, протухший товар второго сорта! Заклеймить авторов позором за полное непонимание «практик будущего»! (Это я тут прочитал фейсбучную запись проректора ДВФУ Земцова и пытаюсь несмешно шутить)

Про учебники по C++

Прочитал недавно рецензию на учебник Столярова, где тот обозвали «плохой методичкой«. Ну да, я и сам согласен с тем, что оставлять студентов наедине с книгами Столярова нельзя — но при всех недостатках книжка по C++ (полностью вошедшая в четвертый том многотомника) более-менее подходит для того, чтобы понять основные принципы языка (всякие там rule of three, RAII и так далее). И кстати, не могу согласиться с тезисом о том, что автор не «сделал хоть что-нибудь положительно отличающее текст от бесконечного числа вузовских методичек, призванных помочь студенту сдать экзамен автору методички» — особенно когда перед этим в трех пунктах утверждается, что автор — ебанутый фанатик (в хорошем смысле). В конце концов, большая часть софта, которым мы все пользуемся, была сделана как раз ебанутыми.

А если говорить о dark side образования — ознакомился на днях с конспектом курса «С++ для математиков», который в TU D-stadt читают Dr. Alf Gerisch и Dr. Adrien Semin. Курс представляет собой какую-то смесь из странным образом подобранных элементов C++ и взятых из численных методов примеров.

Из положительного хочется отметить разве что довольно подробную лекцию о IEEE 754 с некоторыми примерами правильных вычислений с плавающей запятой (например, с решением «плохих» квадратных уравнений). А вот отрицательного, к сожалению, гораздо больше. Во-первых — разбираемое в лекциях подмножество C++, как бы это сказать… совершенно недостаточно для нормальной продуктивной работы. Это такой поверхностный обзор в стиле введения в «Язык программирования C++» Страуструпа — вот у нас есть классы, вот как выглядит наследование и полиморфизм (множественное наследование не разбирается), вот есть шаблоны (делаем класс Polynom), вот библиотека STL (в ней есть класс vector).

Во-вторых — вот за такое можно поймать лектора в темной подворотне и отпиздить, желательно ногами по голове (классы все здесь по размеру маленькие, максимум два числа и ссылка на функцию):

int main(void)
{
    // list of two base class pointers
    numInt1D** integrator = new numInt1D*[2];
    // fill with two pointers to derived class objects
    integrator[0] = new numInt1D_rectangleLeft(0.0, 1.0, &f);
    integrator[1] = new numInt1D_trapezoidal(0.0, 1.0, &f);
    // output numerical integral approximations
    std::cout << "Integral approximation using rectangle rule = "
        << integrator[0]->integrate() << std::endl;
    std::cout << "Integral approximation using trapezoidal rule = "
        << integrator[1]->integrate() << std::endl;
    // clean up
    delete integrator[0]; delete integrator[1];
    delete [] integrator;
    return 0;
}

Вообще, не раз наблюдал вот такую ничем не объяснимую любовь к new в C++ у быстро переученных на него джавистов.

Есть, конечно, одно обоснованное возражение - а зачем студентам-математикам учить C++ в каком-то приближенном к реальной жизни объеме, тем более, что для численных методов этого достаточно? Вот возьмем для примера мехмат МГУ - который, в отличие от факультета математики провинциального немецкого ВУЗа, все-таки пытается готовить профессиональных математиков (а пошедшие в программисты выпускники для факультета - третий сорт, после преподавателей этой самой математики). Что входит в "Практикум на ЭВМ" на втором курсе? Отнюдь не только численные методы, но еще и "тонкости" вроде "Десять способов неправильного описания прототипов методов сложения (operator+) и "увеличить на" (operator+=) и единственный правильный способ", да и совершенно "практические" вещи типа библиотеки Qt стороной не обошли. В курсе есть достаточно мест, где можно наступить на стандартные C++-ные грабли и навсегда их запомнить (а нормальное обучение C++ и должно строиться на том, что все эти многочисленные "грабли" надо собрать в процессе обучения самостоятельно и больше их не забывать).

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

PS PDFку с лекциями очень просили не распространять, если будут какие-то вопросы - пишите.

Немножко о позднесоветской микроэлектронике

Немножко угорев по советским VAX-ам, полистал книжку Б. М. Малашевича «50 лет советской микроэлектронике», где довольно подробно описана история создания микропроцессорных комплектов серий 1801 и 1839. В книжке, конечно, все написано в духе «сам себя не похвалишь — никто не похвалит» — впрочем, автор и сам прекрасно описывает эту практику:

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

Здесь речь идет о 1801 серии — которая была во всех отношениях довольно оригинальной. Малашевич, конечно, сильно сетует на то, что «оригинальную» систему команд «НЦ», изначально реализованную в этой серии, заменили системой команд PDP-11 — но он электронщик, его хлебом не корми, дай сделать что-то свое, ни с чем не совместимое — в то время как любому программисту понятно, что лучше ДВК с ОС ДЕМОС, чем с какой-то непонятной фигней :)

Впрочем, про историю ДВК и БК есть и у Малашевича, а мы сейчас пойдем чуть дальше — в 1985 году была начата ОКР «Электроника-32» по разработке процессора, совместимого с VAX (это следующая за PDP-11 архитектура процессоров фирмы DEC). Примерно одновременно с этим ГДРовские немцы срисовали выпущенный VAX микропроцессорный комплект microVAX II, и вроде бы эти микросхемы начали выпускать (а похоже — только корпусировать) в Воронеже на заводе «Процессор» под названием 1807 серии — но это совсем другая история.

1839 комплект

В «Ангстреме» срисовывать было западло, поэтому 1839 серия — полностью оригинальная. В интернете можно найти даже исходники (!) микрокода с забавными комментариями вроде «2500 И 2501 — TOЧKИ BXOДA ДЛЯ CБOEB HAYMEHKOBA И ГEPЫ». Разработка в основном была завершена в 1988 году, и по словам Малашевича «Комплект был существенно мощнее ЭВМ «micro-VAX-I» и несколько превосходил «micro-VAX-II», выпущенных примерно в то же время фирмой DEC». Здесь мы сталкиваемся как раз с описанным в процитированном выше абзаце «лукавством» — сопоставимые с К1839ВМ1 (время цикла 200 нс) microVAX (время цикла 250 нс) и microVAX II (200 нс) были выпущены в 1983 и 1985 году соответственно, а в конце 1987 вышла уже следующая серия, под названием CVAX — со временем цикла 80 или 90 нс, то есть почти в 2,5 раза более производительная. CVAX был снабжен забавной надписью прямо на чипе — американцы попытались перевести на русский фразу «CVAX: When you care enough to steal the very best» (получилось вот так: «СВАКС… Когда вы заботите (?) довольно воровать настоящий лучший»), но похоже, что адресаты ее так и не смогли оценить:

cvax

Кроме того, в момент выпуска 1839 серии «Ангстрем» с трудом осваивал двухмикронную технологию (с обычными осложнениями этого всего в виде позднесоветского раздолбайства на всех уровнях, очень рекомендую прочитать записанное социологом Белановским «производственное интервью» с рабочим «Ангстрема» — и осознать уровень творившегося там пиздеца) — а DEC вообще собственного полупроводникового производства не имел, но… Уже во время разработки первого microVAX в Штатах существовали компании по заказной разработке интегральных схем, и готовые сделать «что угодно» производители микросхем — что описано в «рекламной» статье DEC и фирмы Silicon Compilers (которая спроектировала топологию микросхемы). Intel в те же годы выпустил первые 386 процессоры с технологическими нормами 1,5 микрона. Представляете? Целое советское министерство оказывалось в догоняющем положении по отношению к одной из многих американских фирм — кроме DEC и Intel, проектированием 32-битных микропроцессоров баловались Motorola, SUN, кучка фирм поменьше — а некоторые занимались многими проектами параллельно, например, тот же Intel.

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

PS Книжку Малашевича стоит прочитать в том числе и ради «разоблачения» популярного нынче мифа о Филиппе Старосе (он же Альфред Сарант), который якобы спроектировал первый в СССР «персональный компьютер» и даже показал его Хрущеву.

Программирование: теоремы и задачи

Вот кстати, хочется рассказать о неплохой книжке по алгоритмам и структурам данных — «Программирование: теоремы и задачи» А. Х. Шеня (свободно распространяется в электронном виде, на бумаге несколько раз издавалась МЦНМО). Вот все знают книжки, скажем, Кнута (но мало кто их читал), Кормена (тут ситуация немного получше), Дасгупты или Скиены — а я хочу сказать, что эта брошюрка (320 страниц, на фоне среднего «айтишного» учебника в тысячу-полторы — это ни о чем) по глубине изложенного материала не уступает как минимум двум последним.

Особенность книжки — в изложении материала. Это не столько учебник/справочник, сколько задачник, построенный по логике «системы задач на листочках». Эта система применяется, скажем, во многих московских матшколах и состоит примерно в следующем — на каждую тему выдается список задач («листочек» — обычно они помещаются на лист формата A4), часть задач может иметь и самостоятельную ценность (как полноценные теоремы; иногда содержательные утверждения разбиваются на несколько подряд идущих задач). Сложность задач возрастает, для перехода к последующим листочкам надо либо решить текущий целиком, либо решить большую часть задач (в этом случае листочки могут содержать и нерешаемые задачи). Часть задач может разбираться «у доски» (прежде всего что-то основополагающее), остальные предназначены для самостоятельного решения.

В общем, получился такой сборник задач по алгоритмам для старших школьников или студентов-младшекурсников, не отягощенный излишней сложностью (как тот же Кормен), но и не скатывающийся в сюсюкание, как Бхаргава. Использовать как справочник проблематично, а как набор задач для самостоятельного понимания этого всего — в самый раз. В непонятных местах можно дополнить книжкой Дасгупты или Скиены.

PS Издание 90-х годов сопровождалось совершенно шикарным текстом — «Не покупайте эту книгу!» (кликабельно):

dont-buy-this-book

Про новую книгу Харари

А я правильно понимаю, что если механически заменить в ней все упоминания Трампа на упоминания Путина, ее смысл вовсе не изменится?

Game Engine Black Books

С удовольствием прочитал две книжки с подробными описаниями процесса разработки и технических решений Wolfenstein 3D и Doom:

http://fabiensanglard.net/gebb/index.html

Сочетание PC-шного и не очень (в частности, довольно подробно описывается NeXT, на котором разрабатывался Doom) «железа», разнообразных хитрых приемов для рендеринга графики, оригинальных алгоритмических решений и просто программистских трюков — это очень круто, рекомендую. Для полного удовольствия от книжек крайне желательно знать Си и иметь представление о том, что рассказывается в стандартном курсе по «алгоритмам» — иначе такие штуки, как BSP, просто пройдут мимо.

Русский перевод The Art of Electronics

Зашел тут на днях в книжный магазин и увидел красивое свежее издание Хоровица и Хилла. Взял полистать — на первый взгляд ничего, но наткнулся глазом на фразочку — «подробнее мы рассмотрим это в 12-й главе» — а было написано это уже в конце книги. Посмотрел оглавление — опа, а 12 главы нет, есть только 9 или 10! Решил уточнить вопрос — и оказалось, что «Бином» уже давно печатает «так называемое 7 русское издание» — урезанный вариант того, что переводилось еще издательством «Мир». Хорошо, что не купил!

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