Вспомнил тут одну историю, рассказываю на правах кулстори, не называя имен и названий. Дело было в одной страховой компании, страхующей космические запуски.
Параметры контракта для очередного пуска рассчитывала одна из многочисленных «девочек»-аналитиков. Рассчитывала — громкое слово, так как в компании для этого существует установленная методика и табличка в Excel. Но что-то пошло не так — запуск оказался неудачным, и вместо того, чтобы положить страховую премию себе в карман, компания была вынуждена платить.
Кого там назначил виноватым Роскосмос — уже и не припомню, а вот девочку премии все равно лишили.
Как утверждает авторша, идея родилась у нее во время работы над «проектом по предмету Экономика инноваций в Университете» (явно имеется в виду МГУ). Курс под названием «Экономика инноваций» читается зачем-то студентам-экономистам — а в результате получаем вот примерно это. В учебнике, конечно, написано, что
По словам директор бизнес-акселератора 500 Стартапов (из Силиконовой Долины) Дейва МакКлюра, ключевым преимуществом любого стартапа является не бизнес-идея, а именно команда, где человеческий ресурс имеет принципиальное значение.
— но кто из экономистов это читает? На выходе имеем совершенно наивную и непроработанную идею (я такие могу пачками под пиво рожать), отсутствие всякого представления о ее реализации, но зато — написанный по «правильному» шаблону бизнес-план, который, к сожалению, не находит никакого отклика даже в жюри конкурса «УМНИК».
На выходе, разумеется, ноль без палочки и горькая обида на членов жюри, которые якобы «воруют идеи заявочников».
Купил тут в Чип-и-Дипе «всякой твари по паре» — точнее, разнообразных кнопок для одного сравнительного теста. Среди прочего барахла взял китайских «аркадных кнопок» — и обнаружил, что внутри них стоят переключатели «типа Alps» (как их обозначают в среде клавиатурных маньяков):
Внутреннее устройство переключателя — почти стандартное для китайских и тайваньских клонов Alps, разве что подвижный контакт тут почему-то состоит из двух деталей (на Deskthority такой вариант не встречается):
Очень похожие кнопки продаются на Aliexpress по цене что-то около 30-50 рублей за штуку (в зависимости от количества): https://ru.aliexpress.com/item/30/32886768751.html. Если вам зачем-то могут понадобиться китайские «клоны Alps» — то вроде бы годный вариант.
Да, стоит, наверное, предупредить, что надписи 16А/250V в прайсе ЧиДа верить не надо.
В моем личном хит-параде криворуких уебанов обновление — установщиков автосигнализаций потеснили на второе место установщики автомобильных же GPS-трекеров.
Чуваки ставили какой-то «телематический терминал» (GPS-трекер с передачей данных по GPRS, тысячи их) на банальную ГАЗель. Казалось бы, что может быть проще, чем подключить этот терминал к питанию и проложить провод к антенне? Не надо подключать даже датчик уровня топлива или что-то в этом роде. Достаточно найти провод, на котором появляется +12 В после включения зажигания и «массу». Тем более — это предстояло сделать в простой, как три копейки, карбюраторной ГАЗели выпуска 2001 года.
Но фантазия долбоебов не знает границ! Эти товарищи попытались найти «массу» в колодке замка зажигания, видимо, взяв тестер и прозванивая провода на предмет контакта с «массой». Первым делом им попался провод, идущий к реле стартера. Ну что сказать — молодцы, мультиметром в режиме прозвонки пользоваться умеют. Собирают, накидывают на аккумулятор клемму…
…результат немного предсказуем — проскакивает громадная искра, ГАЗель начинает весело вертеть стартером. «Установщикам» несказанно повезло, что машина не стояла на передаче. Следующая попытка найти массу была более успешной — за массу приняли провод, включающий бензонасос и прочую такую фигню. Терминал вроде бы работает, только вот не обнаруживает включение зажигания, да и бензонасос жужжит постоянно — но это посчитали «не проблемой».
А теперь вишенка на торте — даже в растиражированной в интернете цветной электросхеме ГАЗели «для тупых», с картинками (специально для электриков с IQ ниже 70), довольно легко можно понять, что в колодке замка зажигания «массы» в принципе нет. Картинка кликабельна.
И как водится — «история … вскрыла такие глубины, о которых многие и не подозревали, став из истории о технике историей о людях» — на хабре написали уже три с лишним сотни комментариев, многие из которых — живые иллюстрации к основным тезисам из поста.
Обратите внимание, как лихо математику и статистику задвинули в графу Ignore, заменив «искусственным интеллектом» и «машинным обучением» и каким-то непонятным data science («наука о данных»?). Потырено не с помойки, а аж из Harvard Business Review:
В комментарии понабежали всякого рода «федеральные тьюторы по робототехнике», демонстрирующие полную некомпетентность в обсуждаемом вопросе, а заодно — Тимур Бергалиев, «генеральный директор Bitronics Lab» вместе со своим научным руководителем — Юрием Аммосовым. И вот что я хочу по этому поводу сказать.
Отечественная (подозреваю, что не только она) околообразовательная тусовка поражена какой-то нездоровой любовью к «студенческим стартапам». Масса народа ездит студентам и выпускникам по ушам, заманивая их во всевозможные «стартап-акселераторы», братские могилы стартапов вроде Сколково и прочие сомнительные места. К услугам выпускников, поддавшимся на пропаганду всей этой стартапщины — всевозможные гранты, фонд Бортника и еще масса организаций разной степени сомнительности. Получить какие-то ништяки от того же Сколково или Бортника можно фактически под неплохую дипломную работу.
С другой стороны — наверное, не стоит говорить о том, что «на выходе» в любом ВУЗе получается в лучшем случае «личинка специалиста», к самостоятельной работе по специальности толком не подготовленная. «Лечится» это обычно попаданием в нормальные «рабочие» условия, отеческими пиздюлями от старших товарищей, ну и прочим жизненным опытом. Но юный стартапер выше всего этого! Он не желает работать на раздающего пиздюли дядю, а желает, как рассказали в вузовском спецкурсе по «технологическому предпринимательству» (краткий пересказ биографий Стива Джобса, Элона Маска и Элизабет Холмс), создать свой стартап и облагодетельствовать человечество в меру своего понимания.
Результат? Собственно, он перед вами — «генеральный директор» Bitronics Lab публично демонстрирует полную некомпетентность как в технических, так и в бизнес-вопросах.
PS Любителям же «студенческих стартапов» очень советую прочитать и осознать статью по ссылке:
При непосредственном участии РОЦИТ, НИУ ВШЭ, АСИ и прочих ДЛБ целая команда методологов соорудила тест «цифровой грамотности» для школьников. Авторы так гордятся своей работой, что предлагают оценить ее всем желающим. Давайте тоже не будем оставаться в стороне — благо они сами об этом просят. Тест будет идти до 24 октября включительно и доступен по адресу http://dl.worldskills.ru/. Копирую инструкцию:
Тест бесплатный. Только требует регистрации. Надо ввести свой e-mail и после активации ссылки из письма заполнить данные — регион, город, дату рождения, школу класс. Потом в разделе Конкурсы появится наш тест. Когда тест проходят взрослые, я рекомендую писать «вне конкурса» в поле «учебное заведение». Чтобы как-то потом в статистике это можно было отдельно отфильтровать.
Да, важное предупреждение — не пейте и не ешьте во время прохождения теста, можно подавиться от смеха на некоторых вопросах.
Что-то мне в последнее время полюбился тег «запретите им» — так что продолжу.
Я не прошу оценивать соответствие этого поделия IEC 60601 — но покажите мне в этом устройстве гальваноразвязку, а заодно — скажите, кто будет отвечать, когда подключенный к ардуине «пользователь» схватится рукой за батарею.
Еще одна часто игнорируемая область знаний «настоящего» программиста — умение оценивать необходимые для решения поставленной задачи вычислительные мощности. Ну да, нейросетка для MNIST на микроконтроллере за 7 $ на первый взгляд — это круто. Но с другой стороны — помните такие древние-древние наладонники Palm?
У них было поле для «рукописного» ввода букв и цифр — правда, с использованием упрощенного алфавита Graffiti, но как минимум цифры там были довольно похожи на «настоящие». При этом распознавание рукописного ввода с тачскрина прекрасно жило даже на самых дохлых Palm с 128 кБ ОЗУ и 512 кБ ПЗУ (в которых помещалась операционная система и кучка необходимых приложений). Тактовая частота процессора составляла всего лишь 16 МГц. Согласитесь, что то же самое распознавание цифр на микроконтроллере с тактовой частотой под 100 МГц, 320 кБ ОЗУ и 1,5 Мб Flash уже не выглядит невероятным прорывом?
А модное нынче распознавание речи? В один голос Google, Amazon и Яндекс рассказывают нам о невероятной сложности их «голосовых помощников» — мол, «Чтобы обработать речь, нужно сделать много расчетов, поэтому то, что вы говорите, передается на серверы Яндекса и распознается там.» При этом внутри «умной колонки» стоит неслабый процессор (неназванный Quad-core ARM Cortex-A53 @ 1 GHz (12000 MIPS)), 1 Гб ОЗУ и 8 Гб ПЗУ. Неслабо так, да? А тем временем, роясь в куче хлама, я недавно нашел пиратский диск конца 90-х с кучкой программ для распознавания речи — и я точно помню, что что-то оттуда работало на моем тогдашнем Pentium 120 МГц с 16 Мб ОЗУ и Windows 95, и вполне неплохо.
Вот вроде бы кажется, что «большие данные», «нейросети» и все такое — это невероятно сложно и доступно только «технологическим гигантам» — но с другой стороны, посмотрите на исследования в области искусственного интеллекта и машинного обучения конца 80-х. Результаты могут быть довольно впечатляющими даже по нынешним временам, а бюджеты и вычислительные мощности даже в самых продвинутых проектах — смешные. Поневоле задумаешься — а вдруг всякие «умные колонки», голосовые помощники, система Android и так далее — это просто инструменты для сбора данных? Во всяком случае, это укладывается в логику статьи «For Google, you’re neither the consumer nor the product. You’re a data point»:
Штука прикольная — пусть и на «топовых», но все-таки на недорогих и довольно доступных микроконтроллерах позволяет, например, распознавать рукописный ввод:
Ну, со специалистами по «обычному» машинному обучению все вроде бы понятно — трехмесячные курсы и вперед, можно даже других учить (я почти не шучу — во всяком случае, очень похоже, что вот такие популярные «курсы для начинающих» этими вот «трехмесячными специалистами» и сделаны). Но если задуматься — а что нужно, с точки зрения фундаментального образования, чтобы более-менее понимать каждый из элементов этой системы?
Ну, для начала — математика. Для понимания хотя бы MIT’овского учебника по Deep Learning желательно иметь представление о линейной алгебре, теории вероятностей, возможно, о каких-то началах функционального анализа. Да, некоторые отрывочные сведения из этих дисциплин приведены в первой части этого учебника (так часто делают в американских учебниках — так как нет гарантий, что слушатели курса по машинному обучению перед этим действительно прослушали несколько курсов по математике) — но их явно недостаточно. Если ориентироваться на программу мехмата, например — это 2-3 курс, если безжалостно ужимать — то все равно необходимо 3-4 семестра одной только математики.
Программирование тут не менее суровое. Даже если предположить, что с Python (в объеме, необходимом для TensorFlow) человек, умеющий немного программировать на C, сможет разобраться самостоятельно — все равно здесь, как и в любом проекте с использованием микроконтроллеров, требуется отличное знание C и даже немного — C++ (даже если говорить о нем, как о C with classes — все же нужно понимать «цену» тех или иных возможностей C++). Не знаю, стоит ли в обязательные общие требования к программисту включать знания классических алгоритмов — но в целом в критичных к производительности задачах это оказывается само собой разумеющимся требованием. Тут у нас нет многоядерного процессора и гигабайтов оперативки. В «профессиональном обучении» программиста это где-то год.
Дальше — микроконтроллерная специфика. Да, «входной порог» в программирование для микроконтроллеров сейчас (благодаря все той же ARM mbed) сводится «до уровня базовых знаний C/C++ и электроники в масштабе «подключить светодиод в нужной полярности»» (c) — но для понимания штук типа CMSIS-NN желательно уже иметь представление об архитектуре ARM, всякого рода оптимизациях, DSP-инструкциях (зря что ли мы берем Cortex-M4?) и прочей такой вот низкоуровневой ерунде — возможно, вплоть до программирования на ассемблере. Электроника, нужная для такого проекта, разумеется, тоже довольно далеко ушла от «подключить светодиод в нужной полярности».
В общем, если представить учебники по каждой из дисциплин — тут «вырисовывается» книжная полка с десятком книжек страниц по 300 каждая (это минимум — некоторые особенно «хорошие» учебники по некоторым разделам computer science приближаются к полутора тысячам страниц). Можно, конечно, возразить с аргументами в духе разделения труда — мол, не обязательно специалисту по deep learning знать нюансы архитектуры ARM, да и математика ему не особо нужна, и вместо одного «универсала» тут можно взять трех-четырех выпускников трехмесячных курсов. Но с другой стороны — над ними все равно должен быть какой-то руководитель — который должен иметь представление не только о технических аспектах, но еще и направлять процесс разработки.
И заметьте — все это только для того, чтобы можно было пальчиком провести по тачскрину, а на дисплее отобразилась бы введенная цифра. Но, конечно, всегда есть и более простой путь — «еще три года назад Антон был простым раздолбаем, а сегодня он Senior Developer в Luxoft» (c). Сеньер-формошлепом, наверное, быть неплохо :)
Если немного очистить ее от AI-шной шелухи и заявлений о том, как Google улучшает User Experience — то содержание сводится примерно к следующему: приложение Gboard (стандартная андроидовская клавиатура) анализирует все (или практически все) сообщения, пересылаемые между пользователями, немного их обрабатывает (вот для чего «бюджетным» устройством на Android считается смартфон с четырехядерным процессором и минимум 2 Гб оперативной памяти), и результаты обработки пересылаются в Google (вот кто жрет ваш трафик) — чтобы там могли немного улучшить качество «подсказок» Gboard. Говоря еще проще — в Google читают всю вашу переписку :)
А как от всего этого счастья отказаться, не уходя жить в тайгу к староверам?
Разбирая непрочитанные закладки в браузере, наткнулся на «заложенную» статью о Progressive Web Applications. Я некоторое время назад задумался о простеньком веб-приложении, умеющем работать в «оффлайне» — точнее, способном сохранить введенные в форму данные и затем синхронизировать их с сервером, так что краем глаза увидев «рекламу» концепции Progressive Web Application, подумал — это как раз то, что нужно! Вот сегодня наконец-то руки дошли до погуглить, что это такое и как они делаются — и если честно, я немного офигел.
Идея, если подумать — очень простая. Немалая часть «приложений» для Android или iOS — это несложные обертки над каким-нибудь API, работающим поверх обычного HTTP. Некоторые вообще не парятся и отрисовывают весь пользовательский интерфейс в WebView или как он там называется, и даже реализуют «содержательную» часть приложения на браузерном JavaScript. Так вот, зачем плодить такого рода «приложения», если можно сохранить на устройстве «главную страницу» сайта (или «приложения») вместе с необходимым JavaScript и прочими ресурсами (CSS, картинки и так далее)? PWA — это небольшой набор средств, позволяющих добавить специально оформленную веб-страничку в список «приложений» на устройстве с Android или iOS. К этому добавляется возможность зарегистрировать в системе некоторый код на JavaScript для фонового выполнения — эта штука называется ServiceWorker — и готово!
Примерно тот же набор фактов вперемешку с основными принципами разработки «прогрессивных веб-приложений» излагается обычно на паре страниц мелким текстом, засоренных «птичьим языком» про «rich mobile experience», «new level of quality» и тому подобную ерунду. В худшем случае все сводится к этой самой ерунде, а технические детали опускаются совсем.
Вот мне интересно — в других, отличных от веба разделах того, что обычно называют «информационными технологиями», отношение количества вот такого буллшита к техническим деталям обычно немного ниже. А почему?
Департамент образования города Москвы проводит среди учителей олимпиаду по трем предметам: математике, физике и химии. Среди требований к участникам — «Ежемесячная заработная плата (сентябрь — декабрь) не менее 100 тысяч рублей».
Arduino тупиковая ветвь учёбы. Счётные палочки мейкерства. Есть чуваки, умудряющиеся этими палочками пейзажи рисовать, зажав коленом, но такой фанатизм не для всех.