БДСМ — база данных системы мониторинга.
Месяц: Июнь 2018
А. В. Столяров, «Программирование: введение в профессию»
Посмотрел на свежие «краудфандинговые» книги А. В. Столярова:
http://stolyarov.info/books/programming_intro
Лишний раз убедился, что фанатизм несовместим с преподавательской деятельностью — пусть заведомо ложные утверждения частично убраны, использовать эти книги в качестве учебника (и, стоит полагать, слушать лекции автора) категорически нельзя.
Можно ли с чисто педагогической точки зрения яростно обличать «стандартизаторов» языков C и C++? Возможно, не все, что они делают — правильно, но стоит ли осуждать в учебнике (!) современные стандарты? Сам автор книги давно ушел из большого секса, но те, кто по этой книге учится сейчас — будут профессионально заниматься программированием через 4-5 лет. Местами есть относительно разумные объяснения, какими возможностями из новых стандартов пользоваться не стоит — но в целом «вместе с водой выплеснули и ребенка», и, скажем, о существовании того же stdint.h вообще не упоминается. Можно ли сейчас считать компетентным программиста на C, не знающего о существовании этого заголовочного файла — вопрос риторический.
В общем, местами книги можно считать хорошими, местами — приемлемыми, а кое-что вообще следовало бы вычеркнуть. Явно не подходит для «введения в профессию» — а вот как элементарный справочник по программированию в Unix-подобной среде использовать можно, если грамотно отделять тараканов автора от фактического материала.
Как тебе такое, Элон Маск?
Пишут, что среди работников завода «Теслы» нашли саботажника:
Немного подробнее, с оправданиями мужика, где он утверждает, что безвинно пострадал за правду, а со слов представителей «Теслы» — он намеренно гадил в компьютерных системах на производстве:
https://www.carscoops.com/2018/06/fired-tesla-employee-says-hes-whistleblower-not-saboteur/
Все бы было неплохо — но на ВАЗе такое делали аж 35 лет назад:
Интернет вещей, комменты
Почитал тут про кашрут
Имею два вопроса:
— кошерна ли свинья, которой перед забоем дали пожевать дирол или орбит?
— кошерно ли варить соевое мясо в соевом молоке?
О профессиях будущего
В известном «Атласе новых профессий«, изданном Агентством Стратегических Инициатив и Московской школой управления «Сколково», профессии сквиртолога не обнаружено. Видимо, появится в новой редакции.
Уберизация как она есть
Показывайте этот ролик всякому, кто заводит разговор о sharing economy и прочих disruptive innovations.
Nils Patrik Johansson — Evil Deluxe
Экс-вокалист полюбившейся мне Civil War выпустил сольный альбом — в духе предыдущей своей группы, но, как мне показалось, поинтереснее их последнего альбома.
По-моему, вполне годно.
Про пенсионный возраст
Начну с задачки, приведенной в «Сборнике задач противоалкогольного содержания», изданном в 1914 году:
Какую сумму мог бы скопить русский в действительности пьющий взрослый (см. предыдущую задачу) за 25 лет, если, отказавшись от своей пагубной привычки, он стал бы класть употребляемые на пропой деньги в Государственную Сберегательную Кассу, где у него бы за это время наросло бы еще процентов?
«Действительно пьющий взрослый», по приведенной в предыдущей задаче статистике, выпивал в год 1 ведро и 16 бутылок водки, 1 ведро и 10 бутылок пива и 9 бутылок виноградного вина. Стоимость этого всего приводилась в предыдущей задаче, процентные ставки должны были быть известны читателю — а вот что произойдет с вкладом в Государственной Сберегательной Кассе уже в самое ближайшее время, не знал никто.
Так вот, приведу простой вопрос, на который может ответить каждый, не прогуливавший в школе историю:
Назовите период протяженностью 35 лет в новой или новейшей истории России, в течение которого не происходило войн, революций, гиперинфляции, конфискационных денежных реформ, экономических кризисов и прочей подобной херни.
PS Правильный ответ на оба вопроса: деньги лучше пропить.
Таймеры здорового человека (не на ардуине)
Если вы еще не видели очередного ардуиносрача на хабре — читать тут:
Собственно, автора можно показывать студентам-медикам в курсе общей психопатологии как наглядный пример «бреда изобретательства» — но странное впечатление производят поддерживающие его комментаторы. Кажется, что они заперлись в своем маленьком ардуино-мирке и активно не хотят признавать, что их «проблемы» (те же таймеры, например, или многозадачность) решены много лет назад.
Вот, скажем, в комментариях автор с гордостью заявляет — мол,
типовое время задержки в системе составляет 10 мс (но пиковые задержки могут быть значительно больше и не нормируются)
— и более того,
на реальных задачах это особой роли не играет потому, что 99,(9) процентов времени в системе остаются типовые задержки
Вы примерно представляете себе, что такое 10 мс? Это примерно до хрена, если речь идет о несложной, в общем-то (но абсолютно реальной) задаче типа управления инжекторным двигателем — целый оборот коленвала при 6000 оборотах в минуту. За это время надо:
— открыть форсунки;
— закрыть форсунки (выдержав требуемое время впрыска);
— в нужный (с точностью до десятков микросекунд) момент жахнуть искрой в нужную пару цилиндров;
— прикрыть или приоткрыть регулятор холостого хода;
— сделать еще кучку полезных дел — например, считать показания десятка аналоговых датчиков (ну ладно, в конкретном цикле — можно обойтись и двумя, ДМРВ и ДПДЗ) и пересчитать параметры работы двигателя (время впрыска, опережение зажигания и так далее);
И это не какие-то там нереальные космические нанотехнологии, это в каждом сраном Жигуле стоит и надежно работает (на убогом SAF C509). Не знаю, конечно, как оно сделано в том же Январе или Микасе, а вот исходники MegaSquirtAVR вполне доступны для изучения (после минимальной гуглежки) и там ничего ужасного нет — в общих чертах, кстати говоря, это повторяет материал обсуждаемой лекции (где-то с 1:16:46). В системе поддерживается очередь событий (типа «открыть группу форсунок такую-то», «закрыть группу форсунок такую-то» и так далее), в нужный момент (скажем, в верхней мертвой точке — она определяется по датчику положения коленвала, или при определенном угле поворота того же коленвала) очередная пачка событий со временами их срабатывания добавляется в очередь. Один из таймеров, «тикающий» с периодом в 4 микросекунды, начинает отсчет до ближайшего события, а при срабатывании прерывания, во-первых, выполняется связанный с событием код (довольно элементарный — «дернуть» одной из ножек микроконтролера), и во-вторых — начинается отсчет времени до следующего события из очереди. Все это работает на AtMega128 — и по отзывам, работает вполне неплохо.
Скажете, не всем надо управлять инжекторными двигателями? Хорошо, расскажу тогда про мой первый проект на микроконтролере — идейно, кстати говоря, очень похожий. Сделан он был, правда, не на AVR, а вовсе на PIC, и представлял собой PPM-кодер для аппаратуры радиоуправления. PPM — или Pulse Position Modulation — это распространенный стандарт, позволяющий «упаковать» сигналы для нескольких (до 8) сервомашинок в одну «посылку» длительностью около 20 мс. Принцип формирования (точнее, декодирования) PPM-сигнала показан на рисунке:
Декодер, кстати говоря, делается на одной микросхеме 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 считается в среде ардуинщиков каким-то «высшим пилотажем», а заодно и не работает на некоторых платформах).
А где приличные корпуса для всякой электроники искать?
Есть девайс, внутри устроенный примерно так:
Хочется выпустить небольшую — скажем, из 10-20 устройств «серию», и хочется подобрать под это дело корпус приличного вида — что-то, например, в таком духе:
Ну или даже таком:
В общем, хочется нормальный пластиковый корпус размером где-то 85x50x25 мм с окошком для ЖК-индикатора — и вот тут сразу возникает вопрос — а где такие искать? Продукция фирмы Gainta, в изобилии имеющаяся в Чип-и-Дипе, выглядит убого, а заодно требует доработки напильником. Вдобавок, ни в каталоге Чип-и-Дипа, ни в каталоге самой Gainta нет минимально приличного параметрического поиска (последний вообще сегодня сдох). Вот не поверю я, что негде взять приличную «мыльницу» с заранее проделанным отверстием для «стандартного» ЖК-дисплея, типа какого-нибудь Winstar 1602B.
Общественность что-нибудь подскажет?
RFC по английской грамматике
Наверное, каждый, кто изучал английский, помнит, что модальные глаголы (всякие там can, should, must и так далее) обозначают какую-то неведомую хрень, типа «возможность, но не как физическое состояние, а как разрешение» или «долженствование с оттенком вынужденности» — попробуйте понять это хотя бы на русском! Оказывается, что вся эта чушь изложена в одном из RFC в предельно лаконичной форме — пользуйтесь:
2018 год
…а люди все еще с удивлением обнаруживают, что внутри ардуины стоит атмега, и что эту атмегу можно программировать на ассемблере:
https://movaxbx.ru/2018/06/05/как-программировать-arduino-на-ассемблере/
The next stop is Casino!
В преддверии ЧМа по ногомячу в подмосковных электричках добавили объявления на «английском» языке. Теперь на станции Выхино на чистейшем английском звучит объявление:
The next stop is Casino!
Лас-Вегаса из окна электрички, к сожалению, разглядеть не удалось.
Зашел на Хабр поржать
Ожидания оправдались — моментально нашел рекламу некоего «коворкинга», который, среди прочих плюшек, предлагал возможность «перекусить в небольшом кафе» прямо там, на территории. Фотография кафе — в большом разрешении, достаточном, чтобы разглядеть тамошние цены (фото кликабельно):
Итого — лимонад 130-170 рублей, смузи 150 (или 200 за «шепот травы мятный» — похоже, без Марь Иванны тут не обошлось), разного рода «фреши» — от 80 за морковный до 160 за сельдереевый, чай по 130 рублей и кофе от 70 до 150. Обещанных «бизнес-ланчей» не видно вообще, но что сука характерно, цены мало отличаются от какой-нибудь «Шоколадницы».
#сказочноебали
Что-то пельменей захотелось
Не пойму, кому продал?
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, а вовсе в понедельник. Итого — могу рекомендовать, вполне подходит для небольших и «разовых» заказов.








