Почитал тут про кашрут

Имею два вопроса:

- кошерна ли свинья, которой перед забоем дали пожевать дирол или орбит?
- кошерно ли варить соевое мясо в соевом молоке?

О профессиях будущего

В известном “Атласе новых профессий“, изданном Агентством Стратегических Инициатив и Московской школой управления “Сколково”, профессии сквиртолога не обнаружено. Видимо, появится в новой редакции.

Уберизация как она есть

Показывайте этот ролик всякому, кто заводит разговор о sharing economy и прочих disruptive innovations.

Nils Patrik Johansson – Evil Deluxe

Экс-вокалист полюбившейся мне Civil War выпустил сольный альбом – в духе предыдущей своей группы, но, как мне показалось, поинтереснее их последнего альбома.

По-моему, вполне годно.

Про пенсионный возраст

Начну с задачки, приведенной в “Сборнике задач противоалкогольного содержания”, изданном в 1914 году:

alko-sber

Какую сумму мог бы скопить русский в действительности пьющий взрослый (см. предыдущую задачу) за 25 лет, если, отказавшись от своей пагубной привычки, он стал бы класть употребляемые на пропой деньги в Государственную Сберегательную Кассу, где у него бы за это время наросло бы еще процентов?

“Действительно пьющий взрослый”, по приведенной в предыдущей задаче статистике, выпивал в год 1 ведро и 16 бутылок водки, 1 ведро и 10 бутылок пива и 9 бутылок виноградного вина. Стоимость этого всего приводилась в предыдущей задаче, процентные ставки должны были быть известны читателю – а вот что произойдет с вкладом в Государственной Сберегательной Кассе уже в самое ближайшее время, не знал никто.

Так вот, приведу простой вопрос, на который может ответить каждый, не прогуливавший в школе историю:

Назовите период протяженностью 35 лет в новой или новейшей истории России, в течение которого не происходило войн, революций, гиперинфляции, конфискационных денежных реформ, экономических кризисов и прочей подобной херни.

PS Правильный ответ на оба вопроса: деньги лучше пропить.

Таймеры здорового человека (не на ардуине)

Если вы еще не видели очередного ардуиносрача на хабре – читать тут:

https://habr.com/post/413779/

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

Вот, скажем, в комментариях автор с гордостью заявляет – мол,

типовое время задержки в системе составляет 10 мс (но пиковые задержки могут быть значительно больше и не нормируются)

- и более того,

на реальных задачах это особой роли не играет потому, что 99,(9) процентов времени в системе остаются типовые задержки

Вы примерно представляете себе, что такое 10 мс? Это примерно до хрена, если речь идет о несложной, в общем-то (но абсолютно реальной) задаче типа управления инжекторным двигателем – целый оборот коленвала при 6000 оборотах в минуту. За это время надо:

- открыть форсунки;
- закрыть форсунки (выдержав требуемое время впрыска);
- в нужный (с точностью до десятков микросекунд) момент жахнуть искрой в нужную пару цилиндров;
- прикрыть или приоткрыть регулятор холостого хода;
- сделать еще кучку полезных дел – например, считать показания десятка аналоговых датчиков (ну ладно, в конкретном цикле – можно обойтись и двумя, ДМРВ и ДПДЗ) и пересчитать параметры работы двигателя (время впрыска, опережение зажигания и так далее);

И это не какие-то там нереальные космические нанотехнологии, это в каждом сраном Жигуле стоит и надежно работает (на убогом SAF C509). Не знаю, конечно, как оно сделано в том же Январе или Микасе, а вот исходники MegaSquirtAVR вполне доступны для изучения (после минимальной гуглежки) и там ничего ужасного нет – в общих чертах, кстати говоря, это повторяет материал обсуждаемой лекции (где-то с 1:16:46). В системе поддерживается очередь событий (типа “открыть группу форсунок такую-то”, “закрыть группу форсунок такую-то” и так далее), в нужный момент (скажем, в верхней мертвой точке – она определяется по датчику положения коленвала, или при определенном угле поворота того же коленвала) очередная пачка событий со временами их срабатывания добавляется в очередь. Один из таймеров, “тикающий” с периодом в 4 микросекунды, начинает отсчет до ближайшего события, а при срабатывании прерывания, во-первых, выполняется связанный с событием код (довольно элементарный – “дернуть” одной из ножек микроконтролера), и во-вторых – начинается отсчет времени до следующего события из очереди. Все это работает на AtMega128 – и по отзывам, работает вполне неплохо.

Скажете, не всем надо управлять инжекторными двигателями? Хорошо, расскажу тогда про мой первый проект на микроконтролере – идейно, кстати говоря, очень похожий. Сделан он был, правда, не на AVR, а вовсе на PIC, и представлял собой PPM-кодер для аппаратуры радиоуправления. PPM – или Pulse Position Modulation – это распространенный стандарт, позволяющий “упаковать” сигналы для нескольких (до 8) сервомашинок в одну “посылку” длительностью около 20 мс. Принцип формирования (точнее, декодирования) PPM-сигнала показан на рисунке:

ppm-decode

Декодер, кстати говоря, делается на одной микросхеме CD4017 – схема есть тут (оттуда же я уволок и картинку выше):

http://rconline.ru/modules/smartsection/item.php?itemid=49

Длительность “посылки” составляет 20 мс, пауза между импульсами каждого из каналов – 0,3 мс, а длина каждого из “канальных” импульсов – от 1 до 2 мс (считая вместе с паузой). Для восьмиканальной (максимально доступное количество каналов в PPM-аппаратуре) длина синхроимпульса составит 4 мс. Кстати, теперь понятно, почему сервомашинки управляются таким, на первый взгляд, странным образом?

Так вот, имея “в активе” PIC16F72 с АЦП и прочитанные пару глав из самоучителя Корабельникова (не смейтесь – но 11 лет назад в жанре “введение в микроконтролеры для чайников” выбор был между слегка упоротым Корабельниковым и полностью шизофреническим 123avr) я соорудил вполне приличный кодер для PPM-сигнала, поддерживающий до 8 каналов с 8-битным разрешением (для аппаратуры радиоуправления 8 бит – уже неплохая разрядность, в самой дорогой аппаратуре можно встретить 10-битные АЦП). Опять же, все очень просто – запускаем таймер с частотой 10 МГц (для удобства счета), и радостно пользуемся тем фактом, что один отсчет этого таймера – это в точности 0,1 микросекунды. При срабатывании прерывания таймера – просто загружаем в него либо значение, соответствующее длительности паузы, либо заранее вычисленную длительность “сигнального” импульса. Немного сложнее, чем генерация обычного ШИМ на том же таймере – но принцип примерно тот же.

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

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

А где приличные корпуса для всякой электроники искать?

Есть девайс, внутри устроенный примерно так:

shield-lcd

Хочется выпустить небольшую – скажем, из 10-20 устройств “серию”, и хочется подобрать под это дело корпус приличного вида – что-то, например, в таком духе:

alpha-driver-display

Ну или даже таком:

blunik-ii

В общем, хочется нормальный пластиковый корпус размером где-то 85×50x25 мм с окошком для ЖК-индикатора – и вот тут сразу возникает вопрос – а где такие искать? Продукция фирмы Gainta, в изобилии имеющаяся в Чип-и-Дипе, выглядит убого, а заодно требует доработки напильником. Вдобавок, ни в каталоге Чип-и-Дипа, ни в каталоге самой Gainta нет минимально приличного параметрического поиска (последний вообще сегодня сдох). Вот не поверю я, что негде взять приличную “мыльницу” с заранее проделанным отверстием для “стандартного” ЖК-дисплея, типа какого-нибудь Winstar 1602B.

Общественность что-нибудь подскажет?

RFC по английской грамматике

Наверное, каждый, кто изучал английский, помнит, что модальные глаголы (всякие там can, should, must и так далее) обозначают какую-то неведомую хрень, типа “возможность, но не как физическое состояние, а как разрешение” или “долженствование с оттенком вынужденности” – попробуйте понять это хотя бы на русском! Оказывается, что вся эта чушь изложена в одном из RFC в предельно лаконичной форме – пользуйтесь:

http://www.ietf.org/rfc/rfc2119.txt

2018 год

…а люди все еще с удивлением обнаруживают, что внутри ардуины стоит атмега, и что эту атмегу можно программировать на ассемблере:

https://movaxbx.ru/2018/06/05/как-программировать-arduino-на-ассемблере/

The next stop is Casino!

В преддверии ЧМа по ногомячу в подмосковных электричках добавили объявления на “английском” языке. Теперь на станции Выхино на чистейшем английском звучит объявление:

The next stop is Casino!

Лас-Вегаса из окна электрички, к сожалению, разглядеть не удалось.

Зашел на Хабр поржать

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

coworking-cafe

Итого – лимонад 130-170 рублей, смузи 150 (или 200 за “шепот травы мятный” – похоже, без Марь Иванны тут не обошлось), разного рода “фреши” – от 80 за морковный до 160 за сельдереевый, чай по 130 рублей и кофе от 70 до 150. Обещанных “бизнес-ланчей” не видно вообще, но что сука характерно, цены мало отличаются от какой-нибудь “Шоколадницы”.

#сказочноебали

dublin-paris-bali

Что-то пельменей захотелось

Не пойму, кому продал?

TI Store

Посмотрел я цены в московских магазинах на некоторые детальки производства Texas Instruments и стало мне немного печально. Возьмем, к примеру, какой-нибудь модуль с WiFi – да хоть CC3200MOD.

Чип-и-Дип готов привезти под заказ за 3-4 недели и хочет за это 1380 рублей.

Компэл/Терраэлектроника/Электронщик – тут вариантов несколько больше. Например, 1520 рублей за одну штуку и отгрузку на следующий день. Если берете три штуки или согласны подождать две недели – то цена падает до 1300-1350 рублей. Если же вы – человек серьезный и собираетесь использовать эти модули в серийном устройстве – то партия от 15 штук обойдется вам в 700 рублей за штуку.

Примерно такая же картина – и на eFind, розница в Москве хочет 1300-1500 рублей (отдельные барыги задирают цену и до 2000), оптовая цена не опустится ниже 650-700 рублей, как в Терре.

А что же “у них”? Оказывается, в TI Store – магазине на сайте Texas Instruments – есть не только разнообразные отладочные платы, но и множество деталей производства все того же Texas Instruments. CC3200MOD стоит там в розницу (до 10 штук) всего 11,88 $ – по текущему курсу это 738 рублей.

Оптовая цена там опускается до 8-10 долларов – но не забывайте, что оптовую партию надо еще и растаможить, так что разница с Компэлом практически неощутима. Интереснее подход к “рознице”. TI Store осуществляет доставку Fedex-ом, причем стоимость доставки International Economy указана, как 0,0 $ (и это действительно так). Итого, заказав в понедельник для проверки парочку CC3200MOD, я получу их уже в следующий вторник по цене 738 рублей/штука – наверное, недостижимый вариант для московской розницы. Неплохо, да?

Я, конечно, в такую щедрость TI не особо верю – так что в заключение хотел бы спросить – а какие тут скрыты подвохи?

UPD Согласно таможенной декларации, стоимость посылки составляет не 23,76 $, а что-то около 18 $. Соответственно, стоимость доставки – около 6 $. Возможно, у TI какой-то хитрый контракт с Fedex – потому что по калькулятору на федексовском сайте, стоимость одной только доставки из Далласа в Москву переваливает за сотню баксов.

UPD2 Получил свой заказ – и даже не во вторник, как прогнозировал Fedex, а вовсе в понедельник. Итого – могу рекомендовать, вполне подходит для небольших и “разовых” заказов.

Хабр продолжает радовать

ohm-law

Отсюда: https://habr.com/post/412749/.

Ну и заодно – деревенский кружок любителей электроники в исполнении “Яндекса”:

https://habr.com/company/jugru/blog/358378/

Напомню, что тот же самый “Яндекс” недавно искал офигенно крутого электронщика.

Эталонный индус на форуме по электронике

Дилип Кумар Джаякумар пишет (я попытался передать орфографию и пунктуацию оригинала в переводе):

Привет, Мы стартап, создающий IoT-устройства для Умного Дома и Мониторинга Окружающей Среды. У нас нет инженера или со-основателя который знает разработку и или инженерию электроники. У нас только есть идея продукта и мы думаем, что WiFi система-на-чипе TI – это хороший выбор процессора для продукта. Я хотел бы поговорить с экспертом по продукту из TI, чтобы я мог объяснить больше про продукт и идею. Спасибо!

По-моему, таких наглых товарищей не было даже в яцуткинской библиотеке.

Чтобы не забыть

Столкнулся с интересным поведением Linux при попытке изобразить TCP-соединение с помощью “сырых” сокетов (raw sockets), точнее, чего-то на них похожего. Как только на не открытый “явно” (с помощью bind() и listen()) TCP-порт прилетал какой-либо пакет, что-то в составе операционной системы кидало в ответ пакет с флагом RST. Лечится такое поведение двумя способами – можно либо “недосоздать” сокет (вызвать bind(), listen() и не вызывать accept()), либо добавить правило в iptables, не позволяющее отправлять пакеты с RST – что-нибудь в таком роде:

iptables -I OUTPUT -p tcp --tcp-flags RST RST -j DROP

А вот еще посмеяться

Я тут в очередной раз откопал стюардессу Intel Edison и случайно наткнулся на статейку на хабре:

https://habr.com/company/intel/blog/260943/

Если коротко – чуваки организовали на этом самом Edison опрос “электрокардиографа” с Bluetooth (электрокардиограф я пишу в кавычках, потому что вряд ли это устройство сертифицировано, как медицинское). Задача практически тривиальная – тем более, они там сами и пишут:

…работать с 6 одновременными потоками ЭКГ с частотой дискретизации 500Гц

Не знаю, какая разрядность у тамошнего АЦП – предположим, что 24 бита, с хорошим запасом (на самом деле в “электрофизиологии” редко нужна разрядность свыше 10 бит, тем более, если речь идет об ЭКГ, но специализированные АЦП для физиологических измерений выпускают с разрядностью до 24 бит). Итого “6 одновременных потоков ЭКГ с частотой дискретизации 500 Гц” превращаются в смешные 72000 бит/с – не так уж и много данных, не правда ли?

Но держитесь крепче – чуваки не зря взяли Intel Edison, весьма неслабый микрокомпьютер с двухядерным Intel Atom, работающим на частоте 500 МГц, 1 Гб оперативной памяти и Linux в качестве операционной системой – ведь обработкой ЭКГ они занялись на node.js, и при таких вводных…

Объем занимаемой памяти процессом редко превышает 100 МБ.

Следующий абзац, пожалуй, стоит привести целиком (орфография и пунктуация оригинала сохранены):

Тут наверное нужно немного отвлечься и отметить, что сенсоры можно разделить на 2 больших категории: те, которые передают некоторое измеренное число, к примеру вес или артериальное давление и те, с которых поступает непрерывный сигнал, такие как электрокардиограмма и пульсовая волна с пульсоксиметра. И если в первом случае применение производительных платформ не сильно оправдано, там по большому счету не требуются особые вычислительные ресурсы, то во втором случае простого контроллера уже не достаточно.

Не знаю, конечно, справится ли с “обсчетом” (обычно требуется какая-то фильтрация данных, “классика” здесь – фильтр Баттерворта или что-то подобное) шестиканальной ЭКГ какой-нибудь AVR – но, скажем, на ARM Cortex-M4 (который стоит на порядок дешевле Edison) можно справиться и с на порядок большим объемом данных без каких-либо проблем.

Про китайские налоги

Прочитал про интересную китайскую придумку – своего рода гибрид счета-фактуры (который применяется у нас для вычисления НДС) и лотерейного билета:

fapiao-used

https://www.bunniestudios.com/blog/?p=2269

Называется эта штука “фапьяо” (fapiao), и в том варианте, который применяется в розничной торговле, ресторанах и гостиницах, работает следующим образом:

- заведение заранее приобретает необходимое количество таких талончиков, их стоимость равна ставке налога (например – при НДС 18% fapiao номиналом 100 рублей юаней будет стоить 18 юаней);
- при оплате счета вместе с чеком клиент получает фапьяо на оплаченную сумму;
- а чтобы эти фапьяо не забывали брать, они участвуют в розыгрыше лотереи – присмотритесь к чеку на картинке – в правой части под стираемым слоем напечатан номер лотерейного билета.

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

При расчетах между организациями тоже используются документы с тем же названием – но по сути это обычный счет-фактура для учета НДС.