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

К предыдущим двум записям

Еще одна часто игнорируемая область знаний “настоящего” программиста – умение оценивать необходимые для решения поставленной задачи вычислительные мощности. Ну да, нейросетка для MNIST на микроконтроллере за 7 $ на первый взгляд – это круто. Но с другой стороны – помните такие древние-древние наладонники Palm?

palm-pilot-1000

У них было поле для “рукописного” ввода букв и цифр – правда, с использованием упрощенного алфавита 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”:

https://rakhim.org/2018/09/you-are-a-data-point/

Ну и естественно, стоит задуматься, как все это сочетается с представлениями о приватности и безопасности.

Технический луддизм

luddism

Наткнулся на днях на статейку (прошлогоднюю, конечно, я же тормоз) про federated learning:

https://ai.googleblog.com/2017/04/federated-learning-collaborative.html

Если немного очистить ее от 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 тысяч рублей”.

Пруфлинк: https://temocenter.ru/deyatelnost/konkurs-sbg.html

Давить нищебродов!

О профессиональной этике

Полистал тут книжечку Modern Assembly Language Programming with the ARM Processor by Larry D. Pyeatt, в частности, главу про арифметику с фиксированной запятой. В этой главе упоминается про известный случай с заглючившей системой Patriot, а в одном из упражнений предлагается обсудить это, исходя из положений Software Engineering Code of Ethics And Professional Practice.

Интересно, а многие ли отечественные программисты слышали про такой документ?

Быдлоэлектронщики

make-me-unsee-it

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

- использование модулей типа Arduino, Blue Pill и им подобных в качестве составных частей изделия;
- закупка компонентов на Aliexpress;
- нежелание пользоваться системами “сквозного” проектирования схемы и печатной платы;
- кустарно изготовленные печатные платы;
- монтаж с применением припоя ПОС-61 и флюса ЛТИ-120.

Что еще добавить?

Еще кого-нибудь обосру – на очереди TU Darmstadt

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

http://www.ke.tu-darmstadt.de/lehre/archiv/ws0607/ai1/material/

Технический университет Дармштадта – это вам не кот чихнул, а, как подсказывает нам Педивикия, “один из наиболее известных технических университетов, является членом TU 9″. Вводный курс по “общей информатике” читает профессор Йоханн Фурнкранц – может, он действительно большой специалист по “искусственному интеллекту”, но преподавать не умеет от слова совсем.

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

Вопрос первый стоимостью 10 баллов – про память компьютера Commodore C64. Мгновенно отсекает студентов, не слышавших слова типа “шина адреса” и “шина данных” – ну или привыкших думать над вопросом, а не мгновенно переводить все встреченные числа в двоичный вид. Теоретически, ответ на этот вопрос можно найти в лекциях – на 6 слайде лекции про фон-Неймановскую архитектуру немножечко рассказывается о разрядности данных и адреса, но многие ли студенты будут в состоянии это запомнить, понять и применить на экзамене?

Второе задание на 12 баллов проверяет склонность к зубрежке и начетничеству, которую многие преподаватели путают с освоением предмета. Вопрос – “что такое дигитализация и почему это важно для современных компьютеров?” Прилежный студент-отличник должен встать по стойке “смирно” и бодро оттарабанить заученное: “Современные компьютеры – это цифровые компьютеры и вся информация, как то: символы, тексты, изображения, музыка, видео и так далее должна быть преобразована в цифровую форму, то есть представлена последовательностью из нулей и единиц!” Просто прекрасен вопрос о том, является ли Java интерпретируемым или компилируемым языком. Интересно, можно ли на экзамене сказать про JIT-компиляцию, или профессор выпадет в осадок?

Задание третье, 8 баллов – таблицы истинности. Ну тут сложно придумать что-то совсем нехорошее. Единственная претензия с моей стороны – вот такие обозначения для всяких там дизъюнкций и конъюнкций только запутывают. Одна и та же операция может обозначаться аж тремя способами (”как в математике”, буковками – OR, AND, NOT, и “как в Java” – &&, ||, !) – не многовато ли?

Задание четвертое аж на 15 баллов. Тут начинается “программирование”. О том, как оно изучается – надо сказать отдельно. Быть может, и неплохо вводный курс программирования начинать с “робота” типа того, который был в учебнике Кушниренко (вообще, “гонять робота по клетчатой доске” – прекрасный способ продемонстрировать “содержательное” программирование, не прибегая к математике типа метода Ньютона или даже квадратных уравнений), но “немецкий” Karel J. Robot – это что-то чудовищное.

Во-первых – может быть, многие уже забыли, но Си-подобный синтаксис – это полная дикость для человека, видящего его в первый раз. Хуже может быть только какой-нибудь APL (и то не факт). Немецкий “робот” – это довольно тонкая “обертка” над языком Java, соединенная с редкостно уебищной IDE. Вы удивитесь, но у живого человека возникают проблемы с тем, надо или не надо ставить точку с запятой после for(…) или if(…), где ставить и где не ставить какие скобки (их, напомню, в Си и других языках с похожим синтаксисом аж три сорта), ну и так далее. В любом редакторе кода для “кушниренковского” (в широком смысле – отношу сюда и разработанного в 57 школе “Робота“) эта проблема решалась тем, что все конструкции языка программирования вводились через контекстное меню (что-то типа Code Snippets во “взрослых” IDE) – здесь же не умеющих программировать студентов оставляют наедине с ущербным текстовым редактором (кажется, даже без подсветки синтаксиса). Зато полдесятка слайдов в лекции по работе с Karel J. Robot и задание в одной из контрольных посвящены всевозможным “орфографическим” ошибкам – что как бы намекает на основные сложности.

Впрочем – и это будет второй и главной претензией к содержанию курса – он вовсе не рассчитан на “не умеющих программировать”. Первый же пример кода в этом курсе появляется во второй лекции (слайд 21). Вы уже знаете, что такое переменная, массив, цикл? Тогда вам остается только покивать головой “Ja, Ja” в ответ на объяснения со следующего слайда. Не знаете? Это ваши проблемы. Я почти не шучу – “программирование” начнется в лекциях по Karel J. Robot и новые понятия будет появляться в бешеном темпе. Прекрасно, если вы что-то слышали про условный оператор и циклы в любом языке программирования. Не слышали? У вас есть три слайда, чтобы разобраться.

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

Столько же баллов “стоит” и задание номер 5 – элементарная задача по работе с массивами. Единственная сложность, видимо – “программирование на бумаге”.

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

Что же видим по итогам двух семестров (в техническом университете, хочу заметить)? Проверяемый уровень знаний соответствует примерно российскому ЕГЭ по “информатике”, да еще и отягощен бездумным изучением Java. В курсе не разбирается ни одного хоть сколько-то нетривиального алгоритма (видимо, из-за нехватки времени). Да что там говорить, когда в лекции “Что такое методы” примерно половина слайдов уделена вопросу, чем метод класса (то есть с ключевым словом static) отличается от метода объекта!

Теперь – маленькая вишенка на торте. Напомню, что этот курс читается всем специальностям, где предусмотрена “информатика”, в частности – магистрам по специальности “компьютерная лингвистика“. Два семестра из четырех отводится на этот лютый онанизм, предназначенный скорее для будущих “профессиональных программистов на Java” – и лишь в третьем семестра ВНЕЗАПНО в программе появляется Python с NLTK. Хочется спросить – а почему бы не начать с того же питона? Но нет, сначала надо вынести мозг при помощи Java, а затем немногим выжившим – показать их настоящий профессиональный инструмент.

UPD Первая лекция третьего семестра у компьютерных лингвистов начинается со сравнения Java и Python в духе “в Java ужас-ужас и непонятно, а в Python все очень легко и просто”:

java-vs-python

Вопрос о целесообразности изучения Java в течение двух первых семестров остается открытым.

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

Быдлохабр, часть очередная

https://habr.com/post/423889/

В комментариях перепись говнокодеров.

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

http://tonsky.me/blog/disenchantment/

Утро начинается не с кофе…

…а с легкого троллинга.

Может, стоит напомнить “Коучу Марии Колесниковой”, что книжки в pdf – это замечательно, но есть еще и глава 4 ГК РФ?

https://m.facebook.com/coach.maria.kolesnikoff/posts/476324389444162

Чтобы глупость каждого видна была

Вот, например, некий Михаил Плаксин, доцент из пермского филиала ВШЭ кидает понты в фейсбуке:

plaksin

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

https://www.hse.ru/org/persons/4200771#sci

Продираться через всякий ТРИЗ и прочую “ТРИЗформатику” малоинтересно – а вот получить представление, как большие специалисты по преподаванию информатики что-то рассказывают детям, удалось:

https://yadi.sk/i/gWwvY-h3HDKA0Q

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

Лицей НИУ ВШЭ, или со дна постучали

hse-lyceum

Да, если кто провел последние несколько дней в алкогольном коматозе и еще не знает, что это за Тони Роббинс такой – вот две ссылки:

https://medialeaks.ru/0209dalex-robbins/
https://esquire.ru/articles/63152-tony-robbins-moscow/

Kinder, Kuche, Kirche

oven-facepalm

Нет, не надо кидать в комменты боянистые фотографии девочек, держащих паяльник. Это еще простительно, а вот такой позор у плиты – уже нет.

Идея для стартапа

Как продать китайский модуль на ESP8266 (500 рублей в Москве, 100 – на Алиэкспрессе) за 150$:

https://shop.openbci.com/collections/frontpage/products/wifi-shield

Себестоимость устройства по ссылке – что-то около 10$. Ребята перекрыли свое предыдущее достижение.

Про валюты и криптовалюты

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

Про орфографию

Что происходит, когда белорусов, возмущающихся тем, что по-русски “Белоруссия” пишется через “о”, просят перестать писать “Масква” через “а”?

Взоржал

…победителем стала частная компания «ПрайсвотерхаусКуперс Раша Б. В.» Она представляет собой филиал другой компании, зарегистрированной в Нидерландах. Штат филиала насчитывает пять работников.

http://www.cnews.ru/news/top/2018-06-29_minobrnauki_zagubilo_informatsionnuyu_sistemu_za

По ссылке много жЫра.

Идея для стартапа

Обратил внимание на то, что идеи мошеннических и около того стартапов с легкостью перетекают в область всяких “телемагазинов” (точнее, их идейных наследников – “продающих лендингов” в интернете) и обратно. Отличный пример – пукалка-”кондиционер” Evapolar (и еще must read – https://olegart.livejournal.com/1485272.html, в комментариях гоняют ссаными тряпками “директора по маркетингу”) реинкарнировалась в виде безымянного китайского девайса, продающегося на многочисленных говносайтах под названием Arctic Air или типа того (цена в Москве – от 2 000 до 4 000 рублей, на Алиэкспрессе – около 1 400 – 1 600). Про “экономию на авторемонте” я недавно писал – в умах как простых потребителей, так и чуваков из всяких инвестфондов самый живой отклик находит идея “приструнить жадных автомехаников”.

В общем, если вы хотите получить денег от какой-нибудь ФРИИ – сначала включите телевизор и посмотрите “магазин на диване”. Естественно, придется добавить немного модных слов – но в целом метод понятен?

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

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

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

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

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

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

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

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

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

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

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

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

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