Приснилось тут антиутопическое аниме

В деталях приснился многослойный сюжет про то, как немецкий политолог, бывший АдГшник Альберт Шпер (то ли гордившийся тем, что его фамилия отличается на одну букву от фамилии известного архитектора, то ли наоборот, стыдившийся этого) написал сценарий антиутопического аниме.

Подробностей сюжета этого аниме не помню, но изображенный там мир сводился примерно к следующему — на обратной стороне Луны построены принадлежащие всяким Амазоногуглояндексам темные фабрики с 3д-принтерами и дарккитчены, на которых все делает поехавший искуственный интеллект, по недосмотру создателей воспитанный на шуточках про печку для 6 миллионов пирожков и анекдотах про Штирлица. Несмотря на то, что этот искуственный интеллект пытаются удаленно держать под контролем рептилоиды из бункеров в Антарктиде, он мало-помалу сходит с ума и объявляет себя космическим фюрером. Земля превращена в ядерную пустыню и поделена между враждующими группировками (теми самыми Амазоногуглами), которым еду и продукцию этих фабрик (каждому свое) доставляют сбрасываемые с орбитальных бомбардировщиков беспилотники.

Дальше этого политолога (понаехавшего, понятное дело, в Москву, у нас таких любят) предлагали то наградить литературной премией от портала «аффтар.сегодня», то наоборот, посадить за пропаганду всего — ну а завершалось все объявлением о том, что Гугл и Яндекс начинают новую космическую гонку для строительства датацентров в космосе.

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

Книжек надо прикупить

Как же мне нравится раздел с print-on-demand на Озоне, можно прикупить бестселлеров 20-х годов — от «Евгеники» до «Химии отравляющих веществ» (а к химии, не отходя от кассы — еще и всего необходимого для синтеза какого-нибудь иприта).

Тверь против Нового Орлеана

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

Трент тяжело поднялся с глубокого кресла — разыгравшийся радикулит снова полоснул его, точно ножом. Он медленно добрел до окна, выходившего на черепичные крыши Французского квартала (как теперь его называли, Vieux Carre, возродив старое имя), оглядел Джексон-сквер и шпили церкви, блестевшие под солнцем. За площадью несла свои мутные, неспокойные воды Миссисипи; по всему ее фарватеру выстроились в линию суда, бросившие здесь якорь в ожидании, когда можно будет подойти к причалу.

Джексон-сквер, Французский квартал — казалось бы, все ясно и понятно? Но там просто негде поместиться многоэтажной гостинице на несколько сот номеров, описанной у Хейли! Потыкал наугад в окружающие кварталы на гуглопанорамах — и увидел в основном совершенно ужасно выглядящую «одноэтажную Америку»:

https://maps.app.goo.gl/BJhbXoA1NEXedb6H9

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

https://yandex.ru/maps/-/CDdxIPoE

В общем, объясните, куда в этом вашем Новом Орлеане тыкать, чтобы увидеть что-то принципиально недоступное простым рашкованам :)

UPD И все же в первом абзаце я наврал, гостиничный вор у Хейли пользовался чуть более сложными методами.

А разъясните мне про ФКН ВШЭ

Попалась на глаза книжка «Arduino Uno и Raspberry Pi 4: От электроники к интернету вещей«, написанная аж целым преподавателем ФКН ВШЭ С. Л. Макаровым. В отличие от других новинок издательства ДМК, это — типичный пример говнолитературы по встраиваемым системам, где 90% примеров работы с ардуиной представляют собой тупой «линейный» код (без единого намека на то, что можно сделать что-то интересное, написав буковки if), а Android Things на Raspberry Pi — сборник рецептов в духе «скопипастим эту громадную простыню кода и поморгаем лампочкой».

Впрочем, осуждать доцента Макарова сегодня будем не за это — в конце концов, не он единственный автор такой макулатуры. Я вот интереса ради решил заглянуть на его страничку на ВШЭшном сайте и посмотреть, что он преподает, и там увидел нечто на самом деле ужасное — список тем дипломных работ, выполненных под его руководством: «Комплекс веб-сервисов для дистанционного мониторинга пациентов», «Ориентированные на персонал приложения системы управления заказами для кафе и ресторанов», «Мобильное приложение «GPF» для поиска игровых партнеров для компьютерных игр», «Мобильный дневник самоконтроля диабетика», «Андроид-приложение «Комбинаторные задачи»» — там еще много, это только первые пять названий.

Но скажите, есть ли в этом «компьютерные науки»? Может ли аккуратно выполненная работа по специальности 09.02.03 быть принята к защите, как магистерская диссертация по специальности 09.04.04? Мне кажется, что нет — но при этом такие работы, описывающие реализацию простых и типовых оперденей, защищаются на 9 баллов из 10:

https://www.hse.ru/edu/vkr/835939664

И вот что на самом деле ужасно — так это то, что при отборе на ФКН «как в космонавты» и проходном балле 305 баллов по 3 ЕГЭ, там внутри имеем Ардуину с тривиальными задачами на 3 курсе и безыдейные типовые опердени в качестве дипломных работ. Скажите, а может, есть там что-то хорошее, может, не все так страшно?

Кто-то в лесу сдох

Издательство ДМК внезапно выпустило две более-менее вменяемых книги про встраиваемые системы. Во-первых, сначала я наткнулся на «Реверс-инжиниринг встраиваемых систем» Алексея Усанова. Не сказал бы, что раскрыты какие-то глубины этого процесса — но если рассматривать книгу, как каталог ссылок на всякие полезные материалы — то сойдет. В целом — нормальное дополнение к какому-нибудь учебному курсу по программированию встраиваемых систем — «как на ваше устройство смотрит недоброжелатель :)».

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

На фоне того, что издают по программированию для разного мелкого embedded на русском языке (всякие там «77 бесполезных проектов на ардуине») — внезапно уровень очень неплох. Прямо даже задаешься вопросом — что же случилось (и кажется, логотип YADRO на обложке второй книги намекает, кому это может быть нужно).

The Leprechauns of Software Engineering

Вообще, троллинг программистов — это легко и приятно. Вот вчерашний, например, был снова пойман на очередной глупости — сначала начал рассуждать, что goto пользоваться никак нельзя, а потом, после прямо заданного вопроса «а break, continue, try-catch ты используешь?» начал громко орать, что это совсем другое и никак нельзя эти конструкции сравнивать. Самое смешное — вроде бы в подтверждение своих слов он притащил известную статью Дейкстры, про «Go To Statement Considered Harmful«, и на этом стало понятно, что он ее не читал, от слова совсем.

Если совсем коротко ее пересказать — то дело в том, что процесс выполнения «структурной» программы (где используются только условные операторы и циклы) описывается крайне просто — фактически лишь номером строки исходного кода, инвариантами циклов и условиями выхода из тех же циклов. Это очень сильно упрощает формальные методы анализа, за которые топил Дейкстра, и которые при желании можно показать семиклассникам (собственно, «через Дейкстру» они в школьную программу и попали). Применение же goto делает такой простой анализ практически невозможным, описать состояние программы, написанной с использованием goto, получится лишь перебором всех возможных путей выполнения. Если подумать — то всевозможные break, continue, обработка исключений, наконец, точно так же усложняют рассуждения о выполнении программы. Попробуйте написать инвариант несложного цикла, в котором может быть выкинуто исключение! А если это исключение еще и обрабатывается «на уровень выше»?

Но люди думать не хотят, люди хотят пользоваться своими заблуждениями, при необходимости подкрепляя их ссылками на «научную» литературу, которой даже толком не читали. Примерно о том же — и книга Leprechauns of Software Engineering, посвященная разбору популярных — настолько популярных, что их массово тиражируют даже в учебных курсах — утверждений о процессе разработки ПО, которые по факту оказываются либо слабо обоснованными, либо вообще «о противоположном». Сколько раз вы слышали, скажем, о «методологии водопада»? А ведь это такое удобное чучелко для битья, когда рассказывают про всякий Agile! Но если полезть копаться в литературе — то окажется, что «водопад» — в том виде, в каком он был описан впервые, в статье 1970 года — это совсем не то, что вы себе представляете.

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

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

Унижаем программистов

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

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

Джефф Сазерленд. SCRUM. Революционный метод управления проектами

Решил тут прочитать книжку про Scrum — и в общем нисколько не разочарован! Автор, как и положено, рассказывает больше про себя, чем про управление проектами, а биография у него прямо интересная, тут тебе и Вест-Поинт, и разработка софта для ФБР, и сын-журналист на площади Тахрир во время «Арабской весны». Прямо бинго какое-то, внутренний конспиролог несказанно радуется.

PS Еще один штрих к портрету автора — манера приводить примеры из командных видов спорта (собственно, сам термин scrum взят из американского футбола), свойственная, по рассказам, американским преподавателям физкультуры.

Пишу про попаданцев

Обсуждали в одном чатике любовь американцев к аббревиатурам типа REST и SOLID — которые складываются в осмысленные слова. Сказал, что знаю на русском лишь один такой пример — Плеханов, Игнатов, Засулич, Дейч, Аксельрод, на что был обрадован аналогом (думаю, тематика чата будет сразу понятна): Cormen, Ullman, Neumann, Turing. Сразу же родился сюжет романа про попаданцев:

Наш современник-сисадмин попадает в США времен маккартизма и подает в ЦРУ этот список; аналитики-советологи, сопоставив ПИЗДА и CUNT, решают запретить кибернетику, а обладателей перечисленных фамилий ликвидируют физически; в это же время в Союзе принимают план по развитию вычислительной техники Окно-95.

Думаю, целевой аудитории сисадминов, поддрачивающих на кибернетику и прочий ОГАС, прямо зайдет!

О прикладной антропологии

Известный американский антрополог левого толка Дэвид Грэбер в своей книге «Утопия правил. О технологиях, глупости и тайном обаянии бюрократии» описывает бюрократическую технологию «спихивания» и строит вокруг нее целую теорию о «мертвых зонах воображения». Ознакомиться с трудами антрополога-анархиста было бы интересно в более мирное время, а сейчас порекомендую прочитать «Справочник пехотинца: для тех, кому в армию, и не только» А. В. Маркина, где описано три (!) направления «спихивания» — вниз (именно это единственное направление описано у Грэбера), вверх и вбок, буквально на одной страничке, но намного полезнее!

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