Архив октября 2017

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

Когда я учился в 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.

Реклама диктофонов Sony, 1978 год

sony-pressman

Картинка намекает – всего за 43800 йен можно почувствовать себя почти что Джеймсом Бондом.

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

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

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

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

bosova

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

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

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

semakin

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

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

semakin10

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

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

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

kushnirenko

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

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

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

Девочка и Subaru

Знатоки утверждают, что нежно накрытый одеялком диск – оригинальное субаровское литье. Врут или как?

drunk-subarist-girl

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 она устроена похожим образом, и буферизацию чтения необходимо включать “вручную”.