Bertsekas, Gallager, Data Networks

Есть на всяких околоайтишных специальностях в вузах предмет под названием «Сети передачи данных» или как-то типа того, где про модель OSI рассказывают, TCP/IP всякое, маршрутизацию и тому подобные вопросы. Есть по нему масса учебников — Олиферы всякие, Таненбаум книжку написал, Куроуз-Росс, Горальски, Стивенс — в общем, на любой вкус, айтишники любят. Содержание в целом более-менее стандартное — вот вам модель OSI, вот вам кучка протоколов с каждого из уровней, вот так работает маршрутизация… — разница в нюансах, где-то больше теории, где-то добавляется практика какая-то. В целом, конечно, это в основном беллетристика и перечисление готовых сетевых протоколов, которые кем-то придуманы — а понимать, почему это все работает — это не вашего айтишного ума дело.

А есть старая (1993 год! а первое издание даже издательство «Мир» в 1989 году перевело) книжка Бертсекаса и Галлагера: http://web.mit.edu/dimitrib/www/datanets.html. Чем она отличается? На первый взгляд, все начинается довольно культурно — модель OSI в первой главе с описанием ее уровней, дальше — немного про всякие протоколы (в основном представляющие собой чисто исторический интерес, из более-менее актуального во второй главе можно назвать только TCP) — но вот в третьей и четвертой главе начинается самое веселье! Внезапно плотность формул на страницу текста становится запредельной, возникает «тяжелая» математика — прежде всего тервер и слупы, но мало не покажется.

К чему это я? Поучаствовал на днях в одном мини-сраче по поводу «высшего айтишного образования», в духе «стоит ли идти на физтех, когда в любом говновузе научат тому же». Так вот, разница между выпускником условного мехмата/физтеха/ВМК и выпускником «айтишной» специальности состоит в том, что первый поймет и книжку Бертсекаса и Галлагера, и «беллетристику» Таненбаума или Курроуза, весь необходимый математический аппарат для этого у него есть. «Айтишник» же, зубривший Олиферов — омерзительный на самом деле учебник, где авторы пытаются трескучими формулировками показать свое «превосходство» над читателем — попросту не сможет осознать проблемы, которые у Бертсекаса разбираются.

Нет, многим, возможно, никогда не потребуется лепить управление очередями, алгоритмы множественного доступа или маршрутизации — но когда за это пытаются браться «чистые айтишники», получается крайне печально. Скажем, посмотрел на днях на Meshtastic — протокол организации mesh-сетей на основе «физики» LoRa. Мало того, что сам по себе протокол толком не документирован — так еще и реализация производит впечатление «слышали звон, да не знают, где он». Элементарнейший пример — используемый алгоритм конкурентного доступа явно сделан «по мотивам» используемой в WiFi distributed coordination function, которая неплохо обоснована с теоретической точки зрения — но упрощен настолько, что утрачена вся суть исходного алгоритма. Да, он выглядит довольно просто — но за этой простотой стоит довольно строгий анализ, и «лишнего» в нем нет. Вишенка на торте — этот важнейший элемент протокола нигде толком не документирован, и для того, чтобы понять, как он работает, приходится лезть в исходники.

В качестве картинки для привлечения внимания — семиуровневая модель взаимодействия открытых систем из русского издания.

А вот интересно мне

Читаю тут «Капитальный ремонт» Соболева, и стало мне интересно — к какому же типу относится линкор «Генералиссимус граф Суворов-Рымникский»? Вроде бы на протяжении нескольких глав лейтенант Левитин героически режет ацетиленом «решетчатые мачты» — а стало быть, под «Генералиссимусом» надо понимать один из линкоров типа «Андрей Первозванный»?

А с другой стороны — встречаем там два таких описания:

«Генералиссимус граф Суворов-Рымникский» вдавился в нее тяжко и грузно, и казалось, что серо-голубая броня его бортов отлита одним куском с серо-голубой водой. Он огромен, молчалив и недвижен. Палуба широка и просторна, как соборная паперть. Четыре орудийные башни одна за другой встали в ряд с кормы до носу; их длинные стволы вытянулись из амбразур в стремительном поиске врага и так и застыли над палубой. От простора палубы башни кажутся небольшими и броня их — невесомой. Но броня тяжела: она одела башни и рубки толстой двенадцатидюймовой коркой, она перекрыла корабль вдоль и поперек тяжкими листами и окружила борта тысячепудовым поясом. Броня так тяжела, что громадный корабль, раздавливая воду, утонул в ней двумя третями своего корпуса, оставив над поверхностью воды только низкий борт и палубу, как отдыхающий на воде пловец оставляет над водой один рот — только чтоб не захлебнуться.

«Четыре орудийные башни одна за другой» — разве это не тип «Севастополь»? Да и вот этот абзац больше похож на описание «Севастополя»:

Нет людей на этом острове плавающей стали. Сталь любит числа. Она родилась на заводах в числах градусов, в числах атмосфер, в числах тонн. Сквозь числа формул и числа чертежей она прошла великий машинный путь и вновь обрела числа:
26000 тонн водоизмещения;
42000 лошадиных сил в турбинах;
592 фута длины;
40000000 рублей затрат;
12 двенадцатидюймовых орудий;
1186648 заклепок;
1186 матросов;
39 офицеров;
1 командир — это только числа, обыкновенные числа, без которых сталь не могла бы жить — то есть передвигаться по воде и бросать из стальных труб стальные цилиндры, чтобы поразить другую сталь, в которой 2000000 заклепок и 1306 матросов.

С другой стороны, «Суворов» по состоянию на 1914 год уже в строю, а не спешно достраивается, как «Севастополь» и его систершипы.

Остается только предположить, что описывается каким-то чудом оказавшийся на Балтике «американец» (хотя тут сложно сочетать четыре башни и 12 орудий) :)

И еще вопрос

Раз уж устроил сегодня вечер ностальгических воспоминаний — скажите, а Умберто Эко еще как-то актуален? А то вот нашел его «Как написать дипломную работу» и думаю студентам подсовывать с нехорошими целями.

Управление проектами, людьми и собой

В комментах ЖЖ [info]mindfactor кинул ссылку на главу книжки Николая Товеровского «Управление проектами, людьми и собой»:

https://ksoftware.livejournal.com/202173.html

Глава написана бодренько, еще немного материалов есть в демо-версии книжки на сайте — включая и отличную игрушку:

https://bureau.ru/books/fff/demo/17

В общем, потратил 1200 рублей и купил «подписку» на книжку (оцените, кстати, изящество решения — не книжку, а лишь подписку на нее!). Так вот, не повторяйте мою ошибку, лучше было бы эти деньги пропить. Почему? Просто эта книжка — вовсе не про управление проектами, а про методы работы, принятые в «Бюро Артема Горбунова». Может, тоже неплохо, может, очень полезно молодым сотрудникам этого дизайн-бюро — но в основном все можно разделить на три части:

— пересказывание популярной литературы (Форстер, Прохоров и тому подобное);
— специфика бюро Горбунова («осьминожки», система уровней и т. п.);
— немного сведений общего характера (правда, в защиту автора хочу сказать, что изложено все опять же довольно живо, с метафорами вроде «прибить гусеницу гвоздями»).

Нельзя сказать, что все совсем бесполезно — но в целом это «учебник для исполнителей», местами учащий того же исполнителя исправлять проебы руководства. Например, в той же главе про «что значит сделано» ничего не говорится про «definition of done», хотя казалось бы — нужно, а предполагается, что исполнитель окажется настолько предусмотрителен, что это «definition of done» выяснит сам. Впрочем, занятно, и позволяет понять, какими принципами руководствуются у Горбунова.

Но вот что я понять совсем не могу — так это того, что по этой книжке регулярно продаются еще и «курсы» (пересказ книги для неумеющих читать, сдобренный еще и дополнительными байками)! Она прекрасно смотрится, как «руководство для молодого дизайнера в студии Горбунова», учащее его принципам вроде «дизайнер отвечает за все» или «подхода FFF», более-менее сносно смотрится в формате «детской книжки с картинками» (и пересказом популярных баек) — но вот представить, что кто-то добровольно отдает 39 000 за то, чтобы Товеровский травил байки, мне лично сложно.

Еще раз повторю, 1200 рублей лучше пропить. Бесплатной части книги и записей в блоге Товеровского вполне достаточно.

Introduction to Embedded Systems — A Cyber-Physical Systems Approach

Прекрасная, просто замечательная книжка.

Во введении и первой главе наивного читателя заманивают рассказами про «интернет вещей», «киберфизические системы», «индустрию 4.0» и прочий набор стандартных баззвордов. Читатель уже ждет, когда же ему расскажут про то, как на Ардуине и Распберри сделать очередной умный дом — но тут же в главе 2 ему выкатывают второй закон Ньютона, на пальцах объясняют кусочки термеха, пишут всякие дифференциальные уравнения, а немногих выживших добивают преобразованием Лапласа. Дальше, конечно, становится немного полегче, всякая там дискретная математика и конечные автоматы особого полета фантазии не требуют, а местами даже предлагают написать немного кода на Си. Перевернуть свое представление о встраиваемых системах можно по ссылке:

https://ptolemy.berkeley.edu/books/leeseshia/

А если серьезно, без смехуечков — это прекрасный пример, чему надо учить магистров «околокомпьютерных» специальностей — не «рукоделию» (это бакалавр должен уметь собрать из двух ардуин и распберри подобие работающей системы), а тому, как обосновать, что эти две ардуины с засунутой туда FreeRTOS работают правильно.

И еще сказочка про выборы и ленивого программиста

Люблю я истории про O(N²), ничего не могу с собой поделать. Так как в этот раз все пока что держится на слухах — пусть это будет сказочка про республику Анчурия, где-то в Латинской Америке.

Анчурия — республика демократическая, в ней есть аж четыре партии — Пиратов, Жуликов, Воров и Коммунистов, и даже иногда проводятся выборы в парламент. Более того, Анчурия не чужда высоким технологиям и решила применить на очередных выборах модную новинку — электронную голосовалку на блокчейне, скачав ее прямо с гитхаба.

Одного не знали бедные любители высоких технологий из Анчурии — писал ту голосовалку не очень образованный программист Вася, и время подсчета результатов в той голосовалке зависело от количества избирателей квадаратично. Но Министерство Информационных Технологий Анчурии — люди прошаренные, и даже провели тестовое голосование — выбирали, что лучше, леденцы с ментолом или менты с леденцами. В голосовании приняли участие самые прошаренные граждане Анчурии, коих набралось аж 10 000, результаты подсчитались достаточно быстро — и систему решили внедрить на будущих парламентских выборах с десятью миллионами избирателей.

И вот поздно вечером в воскресенье закрылись электронные избирательные участки, и сам Министр Информационных Технологий нажал на самом мощном компьютере Анчурии кнопочку Enter, запустив процедуру подсчета. Долго ли ждать результатов? Ну полчаса-час, ответил министр — и все решили подождать. Сначала два часа ждали, потом четыре, восемь… — в общем, и к утру не дождались. Зато проснулись коммунисты и с криком «Дурят капиталисты нашего брата!» собрали митинг на Главной площади. К вечеру собрался уже не митинг, а целый майдан, кто-то обозвал цифрового министра пiдрахуем (не обошлось без украинского следа), пираты подрались с коммунистами, жулики с ворами — но все вместе пошли от Главной площади по Главной улице к Президентскому дворцу (география столицы Анчурии проста и понятна).

Ну дальше как всегда — Эль Президенте почуял, что пахнет жареным, и сбежал, в Анчурии случилась маленькая гражданская война, к власти пришла военная хунта и от греха подальше запретила все выборы, компьютеры и на всякий случай — украинский язык. Жуликов посадили, воров постреляли, пиратов развесили на реях, коммунистов отправили в тайные тюрьмы ЦРУ. Говорят, что где-то в начале гражданской войны бывший министр даже вылез из своего дата-центра в подземном бункере со словами «Мы все посчитали!» — но всем это было настолько безразлично, что никто про него и не вспомнил.

Так вот, господа программисты, вся беда случилась из-за того, что случайно найденная на гитхабе голосовалка имела сложность подсчета голосов O(N²) — то есть если для подсчета 10 000 бюллетеней требовалась всего 1 секунда — то подсчет 10 000 000 бюллетеней занял не 1 000 секунд, как надеялся цифровой министр, а гораздо больше — 1 000 000 секунд, или целых 11 дней — как раз хватит на то, чтобы не дождавшиеся итогов выборов анчурийцы начали гражданскую войну. O(N²) — очень «хорошая» оценка сложности, она, с одной стороны, достаточно мала, чтобы успешно проходить тесты на небольших наборах данных (это вам не перебор всех подмножеств, и даже не какие-нибудь числа Белла) — а с другой стороны, очень плохо ведет себя, когда данных становится много.

А чтобы не спровоцировать гражданскую войну в латиноамериканской стране — не делайте алгоритмы со сложностью O(N²), а читайте книжки Скиены, Седжвика, Дасгупты и Кормена, можно еще поставить на полочку многотомник Кнута.

Панчулу не показывайте

На кикстартере собирают (точнее уже собрали) деньги на книжку-игрушку с демонстрацией работы логических элементов:

https://www.kickstarter.com/projects/babyengineering/computer-engineering-for-babies

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

У покойного Константина Крылова на 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 почему-то попадается только в экзотических гидроусилителях рулевого управления.