Ненавижу хохлов

Селюковское самомнение в сочетании с ахромными (по меркам нищей, в целом, Украины) доходами тамошних “айтишников” – термоядерная смесь.

Хуже индусов, честное слово.

Клавиатура для общения в интернетиках

fuuuukeyboard

Набор клавиш для переключателей Cherry MX (и совместимых) продают за 50 долларов.

Социокультурные последствия цифровой трансформации

Увидел сегодня рекламу некоего курса “Интернет вещей: философия цифровых технологий“. За скромную сумму в 14 000 рублей преподаватели философского факультета МГУ перескажут вам свои представления об основных трендах в развитии IoT, философские теории и концепты, лежащие в основе этих разработок, а также поделятся своими взглядами на “онтологические, аксиологические и гносеологические аспекты цифровой культуры”. По окончании курса выдается красивая бумажка – но хочу вас немного огорчить, годится она лишь для удовлетворения самолюбия.

А все почему? “Развитие цифровых технологий” в виде МГУшной же системы “Истина” позволяет ознакомиться хотя бы с основными направлениями деятельности этих философов от IoT – в частности, совершенно шикарны даже названия этих докладов:

Аналоговое / цифровое: (новое) фундаментальное различие
Ненадежность цифрового: ошибки и сбои

Некоторые философские труды напоминают вывод систем “генерации бреда” типа Яндекс.Рефератов:

Цифровой порт: от машины к произведению

В общем, благодаря самоотверженному труду “Лаборатории 404″ НИИ механики МГУ можно, не вставая с дивана, сделать исчерпывающие выводы о “Философии цифровых технологий” – вот вам, господа философы, и “социокультурные последствия цифровой трансформации”.

Зашел на хабр

Прочитал про “Киберпанк и зеркальные очки” и тут же побежал тратить деньги на zennioptical.com. Чую, что во всем виноват хабр, но обосновать не могу.

Задача по математике

Думаю, экс-матшкольникам будет интересно. Все те же “Пятьдесят лет в строю” Игнатьева, описание вступительных экзаменов в Академию Генерального штаба (1899 год):

Я попал сперва к Шарнгорсту. Не удовлетворившись решенной мною задачей по извлечению корня третьей степени, он помучил меня еще и такими вопросами из теории чисел, на которые я отвечал больше по догадке, чем по знанию. Я понял, что программы для этого маленького человека имеют второстепенное значение.

— Переходите к геометрии. Что у вас там? Круг? Вот и отлично.— И вместо столь знакомых мне теорем по учебнику Семашко, на которых зиждилось все преподавание геометрии в корпусе, маленький генерал велел начертить просто круг, потом другой, побольше, и предложил определить центры всех третьих кругов, касающихся первых двух.

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

Доска стала уже сероватой, мундир мой покрылся мелом, горькая обида туманила сознание, а мой мучитель изредка только подходил и приговаривал: «А есть еще случай, вами неразобранный…»

http://militera.lib.ru/memo/russian/ignatyev_aa/07.html

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

Программа вступительных экзаменов по математике не предусматривала даже аналитической геометрии…

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

UPD Учебник Франца Ивановича Симашко “Начальная геометрия и конические сечения” (использовавшийся в кадетских корпусах) удалось найти в электронном виде:

http://resolver.gpntb.ru/purl?docushare/dsweb/Get/Resource-4472/Simashko_F_Nachalnaya_geometriya_i_konicheskie_secheniya.pdf

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

Ну и еще про банки

100% признак грядущего “экономического кризиса” – банки начинают яростно впаривать кредиты. Вот все тот же Сбер настойчиво предлагает оформить кредит на ближайшие пять лет под 13,9% годовых.

Скажите, где в их веб-интерфейсе поставить галочку “Я не дебил”?

Ебучие пидорасы из Сбербанка

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

Стартаперу на заметку

Граф Алексей Алексеевич Игнатьев – о тонкостях elevator pitch:

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

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

Если же, наконец, вы решались обратиться к настоящему серьезному банкиру, которым являлся в ту пору Париж, то вам следовало для верности заехать сперва в Брюссель и заручиться там хотя бы только принципиальным одобрением какого-нибудь бельгийца. Появившись с ним во французском банке, вам не следовало открывать всех ваших карт, запугивать «нулями», сулить крупные барыши через десять лет, а просто запросить только первую необходимую для начала сумму и доказать возможность заработать хоть какие-нибудь гроши, но в кратчайший срок. Раз французский капиталист дал первые франки, он будет не в силах считать их потерянными — il courra après son argent (он побежит за своими деньгами) и никогда не даст вам погибнуть. Мнение бельгийца как тяжеловатого на подъем, но серьезного дельца послужит вам лучшей рекомендацией.

http://militera.lib.ru/memo/russian/ignatyev_aa/35.html

fossil

А кто-нибудь в здравом уме (за исключением [info]vitus_wagner) пользовался системой контроля версий fossil?

https://www.fossil-scm.org/

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

Сокращение

БДСМ – база данных системы мониторинга.

А. В. Столяров, “Программирование: введение в профессию”

Посмотрел на свежие “краудфандинговые” книги А. В. Столярова:

http://stolyarov.info/books/programming_intro

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

Можно ли с чисто педагогической точки зрения яростно обличать “стандартизаторов” языков C и C++? Возможно, не все, что они делают – правильно, но стоит ли осуждать в учебнике (!) современные стандарты? Сам автор книги давно ушел из большого секса, но те, кто по этой книге учится сейчас – будут профессионально заниматься программированием через 4-5 лет. Местами есть относительно разумные объяснения, какими возможностями из новых стандартов пользоваться не стоит – но в целом “вместе с водой выплеснули и ребенка”, и, скажем, о существовании того же stdint.h вообще не упоминается. Можно ли сейчас считать компетентным программиста на C, не знающего о существовании этого заголовочного файла – вопрос риторический.

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

Как тебе такое, Элон Маск?

Пишут, что среди работников завода “Теслы” нашли саботажника:

https://www.cnbc.com/2018/06/18/elon-musk-email-employee-conducted-extensive-and-damaging-sabotage.html

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

https://www.carscoops.com/2018/06/fired-tesla-employee-says-hes-whistleblower-not-saboteur/

Все бы было неплохо – но на ВАЗе такое делали аж 35 лет назад:

https://habr.com/company/ua-hosting/blog/277487/

Интернет вещей, комменты

iot-comments

Поддерживает ли ваша система умного дома непринужденное общение между экономичной лампочкой и унитазом с замашками тролля?

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

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

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

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

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

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

Показывайте этот ролик всякому, кто заводит разговор о 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.

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