Бормидава.нет по-американски

Когда я учился в 57 школе, одним из ярких и незабываемых событий был сайт bormidava.net — «неофициальный» сайт школы. Бормидав — это Борис Михайлович Давидович, много лет проработавший завучем. Еще в начале 2016 года он рассказывал всякие интересные вещи «МК», а сейчас на всех связанных с 57-й ресурсах трудно найти даже упоминание когда-то приводившего школьников в ужас Бормидава. О методах его работы все, в принципе, ясно из статьи по ссылке — так что неудивительно, почему так назвали «антисистемный» сайт.

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

Так вот, нашел сегодня потрясающую историю «как это делается в Америке«. Некая девочка в 2007 году создала в соцсети MySpace страничку, на которой карикатурным образом изобразила собственного завуча:

Fourteen-year-old Hillary chuckled to herself as she drew a caricature of her vice principal, replete with her signature red hair and green pantsuit. As the school administrator had a reputation as a strict disciplinarian, Hillary added an armband with a swastika and some knee-high black boots. Then, to get a laugh from her friends, she created a profile for the vice principal on the social networking site MySpace, uploaded her drawing, and added a few facetious features: In the “What do you collect?” category, she wrote “Johnny Depp’s tighty whities,” and under “Favorite people,” she listed “Bob Barker and Satan.” She also included a disclaimer, proclaiming the page a joke.

Так как в Соединенных Штатах не изучают творческое наследие Макаренко, единственным педагогическим приемом, доступным завучу, является заявление в суд о харассменте. Завучиха так и поступила — и вместо того, чтобы отправить заявление по территориальной принадлежности (в мусорную корзину), суд приговорил девочку к 90-дневному заключению в «camp for delinquent girls».

Что особенно забавно — в Пенсильвании подобные дела рассматриваются в зверски упрощенном порядке, а основанием для отправки в этот самый «лагерь для малолетних преступников» может служить что угодно — в качестве «status offence» рассматриваются, например, «деяния, ненаказуемые для взрослых, но неприемлемые для ребёнка и подростка» (типа школьных прогулов, ухода из дома или употребления алкоголя). В общем, весело у них там.

Инфляция для чайников

Если немного подумать — то на картинке изображена инфляция доллара за последние 15 лет.

drugs-market

Напомню, что величина этой самой инфляции определяется простенькими табличками в Excel.

Еще чуть-чуть про «информатику»

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

Компьютер как универсальное устройство обработки информации. Основные компоненты компьютера и их функции. Программный принцип работы компьютера. Командное взаимодействие пользователя с компьютером, графический интерфейс пользователя. Программное обеспечение, его структура. Программное обеспечение общего назначения. Представление о программировании.

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

bosova

(перед этим присутствует еще фраза «Компьютер — универсальная машина для работы с информацией»)

Босова Л. Л., Босова А. Ю. Информатика: учебник для 5 класса.

Ненавязчиво «общее» определение компьютера подменяется частным определением персонального компьютера, непременно состоящего из системного блока, монитора и клавиатуры.

semakin

Семакин И. Г., Залогова Л. А, Русаков С .В., Шестакова Л. В. Информатика: учебник для 7 класса.

Зачем-то вплели «работу человека с информацией». Компьютер в составе какой-нибудь АСУ из этого определения выпадает. «Модель человека, работающего с информацией», на мой взгляд — это вообще какой-то ужас.

semakin10

Семакин И. Г., Хеннер Е. К., Шеина Т. Ю. Информатика. Базовый уровень: учебник для 10 класса.

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

А вот теперь — давайте сравним это с определением из советского еще учебника:

kushnirenko

Кушниренко А. Г., Лебедев Г. В., Сворень Р. А. Основы информатики и вычислительной техники: Пробный учебник для средних учебных заведений.

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

Пример, конечно, почти идиотский — но очень важный в том смысле, что «компьютер» — это не «ящик, к которому подключены монитор и клавиатура». И что еще важнее — учебник писался в конце 80-х. Не сказать, что МПСЗ была каким-то невероятным «хайтеком» (даже на ВАЗ-2108 их ставили с 1985 года), но в целом «бытовые» встраиваемые компьютеры тогда были редкостью (в том же учебнике Кушниренко число «встраиваемых, игровых, домашних компьютеров» в мире оценивалось в «десятки миллионов»). Сегодня же, по некоторым подсчетам, на одного жителя достаточно развитой страны приходится примерно 50 микропроцессоров — читай, «компьютеров», в основном — внутри всякой бытовой техники. Разница — на три порядка! Но почему-то ни один из «современных» учебников этого не замечает, фактически, обманывая учащихся. Я, конечно, не призываю рассказывать пятиклассникам об устройстве МПСЗ «восьмерки» — упаси Господи! — но такие «определения» сродни попыткам рассказать в младших классах о том, что Земля плоская и стоит на трех китах и черепахе.

Texas Instruments CC3220SF-LAUNCHXL

Приехала на днях демоплата от Texas Instruments. С микроконтроллером СС3200 я балуюсь достаточно давно, и узнав о появлении его новой версии CC3220 — практически при первой же возможности решил заказать отладочный набор. Но в апреле-мае это у меня не вышло — TI отказывался слать набор из своего магазина в Россию, ссылаясь на проблемы с таможенными органами, а в Чип-и-Дипе и Терраэлектронике эта же платка стоила неприлично дорого. Настолько неприлично, что я даже стал рассматривать варианты заказа в каком-нибудь Farnell или Mouser — по срокам то же, а по деньгам выходило дешевле. Останавливало одно — даже на коробке написаны слова WiFi и 256-bit encryption, на которые, по слухам, любят возбуждаться таможенники.

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

Кстати, обратите внимание на интернет-магазин Texas Instruments. Понятно, что заказывать оттуда отдельные детали — не совсем правильный путь, велик шанс, что посылку признают «коммерческой партией», а вот отладочные наборы — почему бы и нет? Тот же CC3220SF-LAUNCHXL стоит у TI 49,99$ + 6,99$ доставка (а при заказе от 150$ — доставка бесплатна) — итого что-то около 3300 рублей. Для сравнения — в Терраэлектронике этот же набор предлагается за 5684 рубля со сроком поставки три недели, в Чип-и-Дипе — был примерно за 6000 с аналогичным сроком поставки (по-моему, раздел «Позиции на заказ» у них повторяет каталог Farnell). При этом TI store доставляет экспресс-почтой FedEx, у меня от момента заказа до вручения посылки прошла всего лишь неделя (пять рабочих дней — по идее, заказав в понедельник, теоретически можно получить свой заказ уже в пятницу).

Комплект поставки — сама плата в антистатическом пакетике, шнурочек с MicroUSB и пара бумажек с адресами сайтов TI и Terms and Conditions. В общем, ничего особенного. Что же мы получаем за 3300 рублей? На демоплате имеется:

— микроконтроллер CC3200SF со всей необходимой «обвязкой»;
— подключенные по I2C датчик температуры и акселерометр;
— повторитель на ОУ для аналоговых входов;
— две кнопки, три светодиода;
— «гребенки», соединенные со свободными пинами МК;
— отладчик типа XDS110.

Разрабатывая демо-платы линейки LaunchPad, в TI явно посматривали в сторону ардуины. Во всяком случае, идея, что надо сделать универсальный разъем для дочерних плат с любой периферией (у TI они называются BoosterPack) — явно оттуда. В фирменном интернет-магазине встречаются такие платы со слотом для SD-карты, например, или с маленьким дисплейчиком, кнопками и джойстиком. Не знаю, кем надо быть, чтобы покупать BoosterPack со слотом для SD-карты, а затем героически дорабатывать его напильником, когда примерно то же самое можно сделать, имея в хозяйстве адаптер для MicroSD и разъем типа BLD-20 — но давайте не будем смеяться.

Главное здесь, конечно — это микроконтролер CC3220SF. Заявленные характеристики звучат весьма многообещающе:

— ядро Cortex-M4 с тактовой частотой 80 МГц;
— 256 кБ SRAM (в версиях без встроенной флеш-памяти пользователю доступно около 240 Кб);
— 1 МБ флеш-памяти процессора (в версии SF);
— 2xUART;
— SPI;
— I2C;
— SD-host;
— 4 таймера с ШИМ;
— watchdog;
— 4 канала АЦП с разрядностью 12 бит;
— McASP;
— интерфейс камеры (parallel camera interface module);
— до 27 линий ввода-вывода.

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

Естественно, нельзя забывать и об основной фишке серии CC32xx — встроенном отдельном процессорном ядре, отвечающем за работу с WiFi. Это вам не ESP8266 с китайской прошивкой, управляемой AT-командами, а полноценный сетевой процессор (еще одно ядро ARM Cortex-M, судя по тому, что встречаетсчя в других микроконтролерах этой серии — M0, под управлением специальной прошивки в ПЗУ). Он отвечает за подключение к WiFi, сетевые соединения (интерфейс в стиле BSD socket — так что никаких особых сложностей в программировании не возникает), а для полного счастья в нем реализованы еще и несколько сетевых приложений — HTTP-сервер, DHCP-сервер, ping и DNS-клиент. В новом семействе увеличено количество ресурсов, доступных сетевому процессору — теперь в режиме точки доступа к устройству может быть подключен не 1, а 4 клиента, а количество одновременно доступных сокетов увеличилось с 8 до 16.

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

Описание Цена розничная в TI Store, $ Цена оптовая (1 ku) в TI Store, $ Цена в Терраэлектронике, р
CC3200 Микроконтролер 9,07 4,90 923-727
CC3200MOD Модуль 13,50 7,99 1491-1258
CC3220R Микроконтролер 11,08 5,14
CC3220S Микроконтролер с защитой данных 12,41 5,76 1021-736
CC3220SF Микроконтролер с защитой данных и 1 Мб флеш-памяти 12,66 6,79 1204-868
CC3220MODS Модуль, МК с защитой данных 17,52 9,39 1498-1262
CC3220MODSF Модуль, МК с защитой данных и 1 Мб флеш-памяти 19,76 10,59
CC3220MODAS Модуль, МК с защитой данных, встроенная антенна 19,57 10,49
CC3220MODASF Модуль, МК с защитой данных и 1 Мб флеш-памяти, встроенная антенна 21,81 11,69

Сравнивать эти модули с какими-нибудь ESP стоимостью три копейки за пучок, конечно, в целом бессмысленно — но не стоит забывать, что тут у нас имеется вполне неплохой микропроцессор на ядре Cortex-M4 c офигенным объемом памяти, сравнимый с теми же STM32 F1 и F3.

Но… В случае с CC3200 поджидает довольно неприятная засада — ядро Cortex-M4 не очень эффективно работает, когда исполняемый код находится в SRAM, каждая команда выполняется не за один, а за два такта. Скажу сразу, что я возлагал довольно большие надежды на CC3220SF, увидев в даташите слова про «1-Mb XIP Flash» — так что первым делом, скачав SDK, я решил… нет, не поморгать светодиодиком, а прогнать парочку бенчмарков.

Для встраиваемых микропроцессоров принято использовать писькомерки Dhrystone и CoreMark. Первая — довольно древняя, но по ее поводу имеется Application Note от ARM, регламентирующий использование оптимизаций компилятора (если коротко — запрещено все). Второй бенчмарк местами превращается в соревнование «кто круче расставит флаги оптимизаций», и его результаты крайне желательно приводить вместе с параметрами компилятора. Итак, первая табличка — Dhrystone и CoreMark на СС3200 и CC3220SF (код выполняется из флеш-памяти), компилятор IAR 8.10.1, параметры оптимизации для CoreMark приведены в заголовке.

Dhrystone, DMIPS CoreMark, -Ol CoreMark, -Om CoreMark, -Ohs
CC3200 46,8 71,05 87,95 135,69
CC3220SF, код в флеш-памяти 27,4 47,14 57,50 86,88

Ничего себе! — сказал я и офигел от результатов. Спрашивается, за что платили? Зачем мне огромная, по меркам младших Cortex, память, когда производительность процессора падает в три раза относительно «номинальной»? Cortex-M4 теоретически должен выдавать около 1,25 DMIPS/MHz и около 3 CoreMark/MHz (в зависимости от компилятора). Результаты CC3200 предсказуемые, но еще более-менее терпимые. Что же касается CC3220SF — то освободив SRAM для данных, мы получаем проигрыш в производительности в полтора раза. Зачем такая радость?

Я прогнал еще один вариант бенчмарка — на этот раз без использования флешки. Результат оказался аналогичен CC3200 — вот еще одна строчка в таблицу выше:

Dhrystone, DMIPS CoreMark, -Ol CoreMark, -Om CoreMark, -Ohs
CC3220SF, код в SRAM 46,5 71,02 87,76 135,50

В такой конфигурации, разумеется, CC3220SF теряет все преимущества перед своими «младшими» версиями без флеш-памяти. А теперь давайте вернемся к табличке с ценами и зададим себе вопрос — «А если нет разницы, зачем платить больше»? Мегабайт медленной флеш-памяти, в целом не особо нужной, стоит 1,5$.

Короче говоря, я ожидал большего.

UPD На данный момент придерживаюсь мнения, что флеш-память в CC3220SF неправильно сконфигурирована — так как в микроконтролерах серии MSP432 она устроена похожим образом, и буферизацию чтения необходимо включать «вручную».