Тег ‘запретите им’

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

Когда я учился в 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 микропроцессоров – читай, “компьютеров”, в основном – внутри всякой бытовой техники. Разница – на три порядка! Но почему-то ни один из “современных” учебников этого не замечает, фактически, обманывая учащихся. Я, конечно, не призываю рассказывать пятиклассникам об устройстве МПСЗ “восьмерки” – упаси Господи! – но такие “определения” сродни попыткам рассказать в младших классах о том, что Земля плоская и стоит на трех китах и черепахе.

Жукоделы плачут

«пиксели» второго поколения постоянно будут прослушивать происходящее вокруг и распознавать песни, как это делают приложения вроде Shazam

http://4pda.ru/2017/09/26/346999/

И ведь не пришьешь Гуглу статью 138.1 УК РФ :(

Какой-то у вас неправильный физтех

mfti

Такую вот мне рекламу показывают.

Облачные технологии и интернет вещей

Как только слышу эти два слова рядом – хочется отвезти автора за 400 километров от Москвы и утопить в озере с прекрасным названием Ламерское.

Адов колхоз

Вопрос к электронщикам: чем надо бить по голове монтажника?

trip-kolhoz

Прибор, если че, предназначен для использования в спортивных автомобилях, и стоит, мягко говоря, дохрена.

Власти скрывают

А можно не писать про “выборы, о которых власти молчат”? Ей-богу, нельзя зайти не в фейсбук, ни в твиттер, ни даже во вконтакт. В одноклассниках, что ли, зарегистрироваться?

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

Если зачекиниться на станции МЦК Хохловка – заблокируют ли в Фейсбуке?

Ф топку!

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

icc-plan

Особенно весело читается описание этого здания на профильных архитектурных сайтах, например, здесь:

https://archi.ru/russia/73552/dk-im-innovacii

Замечательно смотрятся абзацы вроде таких:

Второй вход со стороны города – по переулку, который был выделен городской администрацией для подъезда к новому комплексу. Архитекторы планируют превратить его в полноценный проход-проезд, новую городскую ось, ориентированную на вход в ИКЦ.

“Новая городская ось” выглядит примерно так:

new-city-axis

Впрочем, все становится практически ясно уже после этих строчек:

С одного конца оно начинается современным танцевальным залом, за которым следуют фойе, лекционный, конференц-залы и помещения под лаборатории, а у другого – заканчивается муфельной печью (здесь непроизвольно зиганул). Иными словами, сама структура центра невольно повторяет траекторию развития идеи Инновационных культурных центров (ИКЦ) за последние несколько лет.

В переводе на падонкаффский – ф топку!

Вы делаете это неправильно

По-моему, почти в каждый курс программирования входит задачка вроде “напишите программу, решающую квадратные уравнения”. Обычно это второе или третье задание после “Hello, world!” – считается, что это хороший способ продемонстрировать нетривиальные инструкции ветвления. “Хорошее” решение сводится к вычислению дискриминанта и в случае, если он неотрицательный – вычислению корней квадратного трехчлена ax2+bx+c по формуле, известной из курса алгебры за седьмой, что ли, класс:

square1

Вот такой вариант решения обычно считается более-менее приемлемым (хотя его можно/нужно обвешать еще несколькими проверками – например, не равен ли коэффициент a нулю?):

int solve(double a, double b, double c, double *x1, double *x2){
	double d = b*b - 4.*a*c;
	if( d >= 0 ){
		d = sqrt(d);
		*x1 = (-b + d)/(2.*a);
		*x2 = (-b - d)/(2.*a);
		return 0;
	}
	return -1;
}

В чем проблема? На первый взгляд все более-менее хорошо, но… Давайте для тестирования будем подсовывать уравнения с известными корнями – используя для этого теорему Виета. А именно, зафиксируем коэффициент a=1, тогда уравнение с корнями x1 и x2 будет иметь коээффициенты b=-(x1+x2) и c=x1x2. Сравнивая корни, полученные при решении уравнения, с известными нам, оценим “качество” решения.

Если корни “нормальные” – те, с которыми справится шестиклассник – то все хорошо. Но что будет, если взять два “нехороших” корня – к примеру, x1=1, x2=10-14 (это для double; если вы пользуетесь float – то возьмите второй корень, равный 10-5)? Проверьте – не забыв включить вывод максимально возможного количества значащих цифр (в printf лучше всего использовать форматный спецификатор %g, при использовании вывода в стиле C++, через iostream, такой вывод включен по умолчанию). Ошибка при вычислении второго корня возникнет уже в четвертой значащей цифре, это, на самом деле, уже довольно неприлично.

В чем дело? Если обратить внимание на “обычную” формулу для вычисления корней квадратного уравнения, то мы увидим, что при вычислении меньшего корня корень из дискриминанта вычитается из b – а так как они в этом случае очень близки, то возникающая при этом вычислительная ошибка оказывается слишком большой.

Метод, разумеется, можно улучшить. Для начала – можно вспомнить о существовании еще одной формулы для корней квадратного уравнения:

square2

Выводится она абсолютно аналогичным образом, от “классической” отличается тем, что “не работает” при c=0.

Если переписать программу, чтобы она использовала эту формулу – то меньший корень “нехорошего” уравнения будет вычисляться точно, а проблемы возникнут с большим корнем. Причина та же самая – вычитание двух близких по величине чисел. Но ведь если вычислять больший корень по первой формуле, а меньший – по второй, то эта проблема исчезнет! Поэтому более правильный метод решения квадратного уравнения должен выглядеть так:

- вычисляем дискриминант D=b2-4ac
- если дискриминант неотрицателен, то вычисляем

q

- корни уравнения равны q/a и c/q.

Как реализовать это в программе – довольно очевидно, это особо ее не усложнит.

Какая здесь мораль? Численные методы и программирование – это две совершенно разных области человеческого знания. Математические задачки – вроде решения квадратного уравнения – могут показаться интересными с точки зрения обучения программированию, но это “чужая территория”, и можно столкнуться с совершенно непредсказуемыми вещами. Признайтесь, многие ли слышали о сложностях, возникающих при решении на компьютере квадратных уравнений – хотя казалось бы, что может быть проще?

Цитатка

Популярно о блокчейн: блоки с траназкциями собираются в цепочку с помошью хешей, или своего рода “хештегов” известных нам по твиттеру

Орфография и пунктуация оригинала сохранены.

Автомобильный линукс, или буллшит-бинго

Сколько знакомых названий вы можете насчитать в этом абзаце?

Эталонный дистрибутив AGL основан на наработках проектов Tizen, GENIVI и Yocto. Графическое окружение базируется на Qt, Wayland и композитном сервере Weston IVI Shell. Для создания приложений применяются технологии HTML5 и Qt. Развивается набор прототипов типовых приложений, среди которых реализация домашнего экрана, web-браузер, приборная панель, навигационная система, климат-контроль, мультимедийный проигрыватель с поддержкой DLNA, интерфейс для настройки звуковой подсистемы, программы для чтения новостей, средства голосового управления, поиска информации, взаимодействия со смартфоном по Bluetooth и подключения к CAN-сети для доступа к датчикам и передачи данных между узлами автомобиля. Исходные тексты наработок проекта доступны под свободными лицензиями через Git.

http://citforum.ru/news/37415/

И второй вопрос – а вам не страшно?

Детективное про Eclipse IDE

Перетаскивал свои прожекты для CC3200 из Code Composer Studio (это Eclipse IDE, немного дополненная Texas Instruments) в IAR Embedded Workbench. В процессе возник вопрос – почему любой проект, который делается в Eclipse, превращается в помойку? Я сталкивался с этим, когда мигрировал с Eclipse+ADT на Android Studio, видел ужасы, так что скорее всего, это не связано с языком программирования.

И кажется, я нашел ответ. Практически в любой более-менее “взрослой” IDE есть поддержка двухуровневой организации проектов. В Visual Studio, например, отдельные проекты (Project) объединяются в решение (Solution). В Android Studio проект (Project) состоит из модулей (Module), в IAR “рабочее пространство” (Workspace) содержит проекты (Project). Нечто подобное формально существует и в Eclipse – там терминология аналогична IARовской, Workspace и Project.

IDE Верхний уровень Нижний уровень
Visual Studio Solution Project
Android Studio Project Module
IAR Embedded Workbench Workspace Project
Eclipse IDE Workspace Project

Вроде бы все по-человечески? Но есть одно маленькое отличие – Eclipse предполагает, что workspace существует в единственном экземпляре, особенно подчеркивая это вот эти окошечком при запуске:

eclipse_install_launch

Поставьте галочку и не парьтесь выбором :) А к чему приводит работа в одном-единственном workspace? В случае с CC3200 и Code Composer Studio для какой-либо осмысленной работы в workspace должны быть включены несколько проектов из SDK, что уже само по себе “замусоривает” его и усложняет переключение на другой workspace. У меня в том же workspace поселилась библиотека CMSIS-DSP вместе с парой тестовых проектов, примеры из SDK и два “боевых” проекта – итого на 2 реальных проекта пришлось десяток “мусорных”. Неплохо, а?

Ватники против Маска

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

https://www.atraining.ru/trainers/karmanov/south-australia-eco-blackout/

Так вот, обратил внимание на одну вещь. Если чел по жизни топит за хохлов – то он не менее яростно будет поддерживать и любые проекты Маска, уверяя всех, что еще немного – и “Рашка все”, никому не будут нужны ни нефть, ни “Союзы” с “Протонами”, ни даже автоматы Калашникова. Настоящий же ватник, наоборот, просто обязан над любыми начинаниями Маска как минимум смеяться. Интересно, а это идет “пакетным предложением”? Можно ли а) топить за хохлов и сомневаться в будущем электромобилей, альтернативной энергетики и многоразовых ракет или б) быть ватником и при этом рассуждать, как многоразовые теслы поедут по гиперлупу прямо на Марс? Пока я таких примеров не видел.

Кластерная инициатива, тройная спираль и метод концентрирующей интеграции

Обогатил свой словарный запас тремя модными терминами.

cluster-initiative

Кластерная инициатива – мусорное ведро.

Тройная спираль – все всем всячески мешают (обратите внимание, что шестеренки на рисунке вращаться не могут).

И еще – “метод концентрирующей интеграции” – это когда спирт воруют.

Это цирк или дурдом?

Задача [зарабатывать] особо не ставилась. Мы приходили к этому вопросу, но находились разные инвесторы. Да и невозможно заниматься сразу двумя вещами — и зарабатывать деньги, и эффективно развивать наше направление. Надо было на чем-то одном сфокусироваться

Yaliny неоднократно пыталась привлечь крупного инвестора, который был бы готов сразу дать большую сумму на развитие технологии и подождать 5-7 лет, прежде чем идея «выстрелит». Такого человека найти не удалось

А в конце 2015 года, когда Тепляков не смог привлечь крупного инвестора, предприниматель стал брать деньги в долг у сотрудников.

Тепляков аргументировал свою позицию тем, что у одного из основателей Google «в какой-то момент в подчинении было 180 инженеров, и он справлялся»

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

в корпоративной культуре компании было много заимствований из западной стартап-среды. Например, руководство раздавало сотрудникам книги, которые нужно было прочесть и принять участие в коллективном обсуждении. Также в офисе были бесплатные чай, кофе, печенье и фрукты, а кроме того, компания планировала нанять массажиста по примеру Apple и Google, однако Теплякова отговорили от этой идеи.

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

Когда нет денег, нужно на чём-то экономить. Раз ты сегодня сэкономил, компания у тебя выживет, а уже завтра всё наладится, всё получится. Одна из вещей, на которых приходилось экономить — оплата налогов.

Больше ада – по ссылке:

https://vc.ru/p/yaliny-reboot

Простите, но будет матом

Мне кажется, что это полный пиздец:

https://www.piter.com/collection/arduino/product/programmiruem-arduino-professionalnaya-rabota-so-sketchami

Если вы все еще сомневаетесь – полистайте главу под названием “Цифровая обработка сигналов“.

UPD Не менее шедевральна книга того же автора “для начинающих”:

https://www.piter.com/collection/arduino/product/programmiruem-arduino-osnovy-raboty-so-sketchami-2-e-izd

Как вы думаете, что написано в разделе про цифровые выходы? “Если потыкать мультиметром в вывод с единичкой, то мультиметр покажит циферку 5; если в вывод с ноликом – то мультиметр покажет циферку 0. Это все, что можно рассказать о цифровых выходах”.

Это все, что я хотел сказать о войне во Вьетнаме.

Гнать индусов поганой метлой!

Продолжаю изучать Texas Instruments CC3200. Хорошая штука, но… Я уже научился при взгляде на код определять, писали ли его настоящие 100% ковбои в перерывах между пальбой из Смит-Вессонов или низкооплачиваемые индусы, работающие по визе H1B, а при визитах на форум техподдержки – с недоверием относиться к ответам всяких Раджей и Кумаров.

Не могу не поприветствовать инициативы нового американского президента разобраться с погаными индусами, портящими имидж американской промышленности:

http://www.cnews.ru/news/top/2017-01-30_tramp_nachinaet_zakryvat_ameriku_dlya_inostrannyh

Блядей (перечислены по ссылке) уже корежит:

http://www.zerohedge.com/news/2017-01-30/why-cold-war-between-tech-ceos-and-trump-about-go-nuclear

Вот еще бы Сатью Наделлу на мороз выгнали – было бы вообще зашибись.

Скажите, а с ARM все действительно так плохо?

В одном прожекте возникла необходимость беспроводной передачи неприличного количества данных с АЦП. Даже в самых оптимистичных сценариях получалось, что придется гнать без проводов поток данных порядка 150 кбит/с. Немного? Но при таком потоке “затыкаются” все легкодоступные радиоудлинители UART – неважно, какой там у них радиоинтерфейс – WiFi, Bluetooth, или что-то еще. Более того, большинству из них недоступна скорость выше 115200 бод, что “отсекает” их еще на этапе ознакомления с ТТХ.

В поисках какого-то более подходящего решения набрел на микроконтролер CC3200 производства Texas Instruments. Что мне понравилось? По пунктам:

- ядро Cortex-M4 (хотелось бы, конечно, Cortex-M4F, но и это сойдет);
- встроенный WiFi, по отзывам – действительно быстрый;
- встроенные раздельные модули SPI и SD-host (я сначала думал, изучая примеры, что обмен с SD-картой будет идти с использованием модуля SPI, судя по назначению выводов – но нет, они там никак не связаны);
- возможность переназначать выводы утилитой Pinmux – хочешь, заводи SD-карту на эту сторону микрухи, хочешь – на другую, в общем, все офигенно.

Ну, где у нас АЦП – там хорошо бы и обработать сигнал? Благо в ядре Cortex-M4, в отличие от распространенного Cortex-M3, присутствуют команды, упрощающие цифровую обработку сигналов – например, реализацию всевозможных цифровых фильтров. Но на этом этапе начались какие-то дикие танцы с бубнами :)

Для начала – есть библиотека CMSIS, унифицированная для всех ARM реализация некоторых часто используемых функций. Особенно мне была интересна CMSIS-DSP, часть библиотеки с реализацией функций для цифровой обработки сигнала. Да, я могу написать реализацию какого-нибудь там фильтра Баттерворта или быстрого преобразования Фурье – но оптимизировать его для ARM я вряд ли буду, да и зачем это делать, когда есть готовое общепринятое решение?

Но для использования этого готового решения требуется некоторая поддержка от производителя микроконтролера – и здесь все становится просто ужасно. У Texas Instruments используется своя среда разработки (на основе Eclipse) и свой же компилятор. Может, имей я больше опыта программирования под ARM, я бы настроил что-то более распространенное, но для начала я просто следовал пунктам из Quick Start Guide.

Так вот, основное преимущество Cortex-M4 над Cortex-M3 – поддержка “DSP instruction set” – вообще никак не афишируется производителем в случае CC3200. Да, есть “патч” для одной из относительно старых версий CMSIS, выпущенный Texas Instruments несколько лет назад – но применимость его в случае CC3200 не озвучивается (и действительно, если “втупую” применить этот “патч”, ничего не выйдет). На просторах ютуба нашлось вот такое видео:

Через 15 секунд просмотра уже хочется восславить Кришну, а через минуту так и ждешь, что все начнут петь и плясать. Если серьезно – пахнет индусятиной в худшем смысле этого слова. Из озвученных в видео шагов один – фундаментально неправильный, а еще нескольким я не смог найти внятного объяснения.

В конечном итоге CMSIS-DSP я собрал (откомпилированная библиотека из дистрибутива с компилятором TI не очень дружит) – хотя, конечно, некоторые вопросы остались. И главный из них – в заголовке. Неужели любой шаг в сторону от любовно подобранных примеров из SDK превращается в вот такой забег по граблям под руководством индусов?