Архив августа 2020

А есть ли среди нас знатоки GDPR?

Разговаривал с товарищами из одного немецкого стартапа, и имел неосторожность предложить написать парсер сообщений на каком-то сайте – чтобы на собранном материале обучить какую-нибудь там нейросеточку. Реакция? Ну представьте себе, если бы я вам вот тут предложил тайком ночью подломить ларек. Начал разбираться – и оказывается, немцы считают, что всякий веб-кроулер нарушает GDPR – ведь в текстах, которые он собирает, могут быть святые Персональные Данные, обладатели которых не давали согласия на такую обработку.

IMG_20200831_123120_218

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

Знаете, это даже круче нашего бабайки из Роскомнадзора – если от бабайки можно защититься громким криком “Кручу-верчу, персональные данные обработать хочу!” – то тут тебя сожрут независимо от твоих действий. Или это просто страшилки?

PS Являются ли циферки 4608 134075 и буковки “Василий Иванович Чапаев” персональными данными?

Патриотическое и правое сознание

patriotic-right-conscience

Увидел новость и непроизвольно зиганул.

В продолжение темы про гомоморфизмы

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

Методика довольно проста – возьмем “модельный регион” – например, Тверскую область. Высшее образование в Калинине в советские времена было представлено тремя, а потом – и четырьмя вариантами:

Ума нет – иди в пед,
Стыда нет – иди в мед,
А нет ни тех, ни тех –
Поступай в политех,
(и since 1971)
А всякий отброс
Идет в сельхоз

С переименованием Калинина в Тверь тамошние ВУЗы несколько прибавили в значимости – пединститут превратился в Тверской государственный университет, мед стал Тверским государственным медицинским университетом, а политех заделался Тверским государственным техническим университетом. На сайтах ТвГУ и ТвГТУ можно найти сведения о количестве студентов по каждой из специальностей:

https://www.tversu.ru/sveden/education/study/
http://www.tstu.tver.ru/sveden/education#pills-eduChislen

Пресловутый “гомоморфизм” наверняка услышат студенты-математики и физики из ТвГУ (специальности 01.03.01, 01.03.02, 03.03.02 и 03.03.03), и скорее всего – “информатики” (02.03.01 и 02.03.02). Их коллеги из ТвГТУ, обучающиеся на специальностях, связанных с информатикой (тут список более однородный: 09.03.01, 09.03.02, 09.03.03, 09.03.04) – наверное, тоже (во всяком случае, в учебных планах есть места, где было бы правильным впихнуть это). Чтобы никому не было обидно – предлагаю учитывать “информатиков” с коэффициентом 1/2. Складываем циферки, делим на 4 (это все бакалавриат, они учатся 4 года) – получаем, что ежегодно тверские вузы выпускают где-то около 150 человек, удовлетворяющих нашему критерию. В принципе, есть основания думать, что примерно такие же по порядку числа были и в советское время, только вместо “информатики” были какие-нибудь приматы, а набор в пед мог быть чуть больше.

Будем считать, что выпускник хорошего ВУЗа живет после этого долго и счастливо 50 лет – итого в Тверской области можно обнаружить 7500 человек, когда-то изучавших математику в нужном объеме. При населении в 1,26 миллиона человек – это целых полпроцента.

Примерно такой же расклад получится, наверное, и по другим субьектам федерации; сложности с подсчетом возникнут разве что в Москве, где вузов много, и если очевидные мехмат с физтехом учесть просто – то “приматов” из технических вузов посчитать, пожалуй, нереально (а программа у них может отличаться кардинально – скажем, вполне можно представить курс с упором в программирование и специфические численные методы, но с очень рудиментарной алгеброй). Пожалуй, можно сказать, что “слово “гомоморфизм” слышали в своей жизни от 0,5 до 1 процента населения России – разумеется, все уже давно всё забыли, но повод для сдержанного оптимизма найти тоже можно.

Отвертка

Дома валяется похожая, но год, скорее 1991, с пластиковой ручкой и надписью “ц. 3 р.” :)

Шотландская мова

Пишут, что “почти все” статьи Википедии на англо-шотландском написаны одним человеком, и даже не шотландцем:

https://habr.com/ru/news/t/516606/

Вам смешно? А покойный Константин Крылов писал об этой нехитрой технологии еще в 2005 году:

https://krylov.livejournal.com/1081580.html

Пойду вискарика накачу за свободу Шотландии и кино про Уильяма Уоллеса по кличке Braveheart гляну.

Бесит, сука

Очередные талантливые программисты не осилили пересчет из int16 во что-то более им подходящее. В следующий раз сделаю вывод данных в формате binary coded decimal, а то достали.

Хотя нет – напишут что-то вроде Float(x.toString(16)) и будут считать себя неибаццо гениями. Подскажите, в каком формате выводить числа, чтобы на той стороне с гарантией охуели?

DEC is dead, long live DEC

Читаю книжку, где разбираются организационные принципы Digital Equipment Corporation – от “матричной иерархии” до довольно интересной внутренней культуры. Автор – Эдгар Шейн, основатель организационной психологии и вообще – признанный живой классик этого научного направления. И вроде бы все гладко и логично получается – одни и те же принципы помогли DEC стать второй (после IBM) “компьютерной” компанией, и они же привели ее “на дно” – то есть к поглощению Compaq, а потом и HP.

Но с другой стороны – уж как-то старательно обходится стороной долгая история взаимодействия DEC с одной стороны и Пентагона с DARPA – с другой. Есть только небольшие намеки на то, что продукция DEC очень нравилась “инженерам и ученым” – а что это за инженеры и ученые, у которых есть деньги на DEC’овское оборудование? :) Есть, конечно, и байка про то, как Special Systems Group очень оперативно соорудило модульную версию PDP-8, которую можно было протащить в люки подводной лодки – но это всего лишь один эпизод.

Так вот, на фоне всего этого возникает логичный вопрос – а не связаны ли успехи DEC до “начала 90-х” и позорное его падение в 90-е с тем, что ВНЕЗАПНО иссяк источник финансирования для многих из его клиентов? И если связаны – то какое отношение имеет к этому “организационная психология”, и не выдает ли Эдгар Шейн совершенно случайные факторы за приведшие к успеху?

Про Лифшица

В этой новости прекрасна каждая строчка:

https://polit.ru/news/2020/08/25/lifshic/

Кстати, это тот самый Лифшиц, что написал письмо Медведеву от имени несуществующего подразделения “Сколково”:

https://www.cnews.ru/news/top/2019-12-02_gosudarstvo_zadumalos_o

Про схожесть Thinkpad и ГАЗ-3102

Несколько месяцев назад начала парить мозг петля крышки на моем T420. Что делает нормальный человек, когда у него начинает разваливаться восьмилетний ноутбук? Правильно, идет в магазин и покупает новый. Что делает владелец Lenovo Thinkpad?

  • Смотрю по диагонали Hardware Maintenance Manual, выписываю номера FRU и понимаю, что можно совместить замену петли с очередной профилактической чисткой кулера;
  • Покупаю где-то на разборке две петли, левую и правую, потому что чего бы не купить две?
  • В замечательный воскресный день решаю, что все-таки пора бы что-то сделать;
  • Ноутбук раскидывается на детали, выясняется, что петля не ослабла, а там срезало одну из заклепок – но…
  • …оказывается еще, что рассохся клей, держащий в пластиковой крышке ноутбука латунные бонки, на которых крепится петля;
  • Выясняется, что “Момент” не очень хорош для специфического Thinkpad-овского пластика;
  • Приходится топать в ближайший подходящий магазин за циакриновым клеем, по пути беру пару пива;
  • Вклеиваю бонки, собираю крышку, собираю ноутбук, … пью пиво.

Итого потрачено полдня, 700 рублей на петли, 50 рублей на клей и сотка на пиво. Ноутбук собран, лишних деталей вроде не обнаружилось. Да еще – старая петля признана ремонтопригодной (высверлить остатки заклепки, нарезать резьбу, вкрутить винтик) и брошена в коробку с барахлом.

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

Этот фейсбук сломался, несите новый

new-facebook

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

Про русских физиков и голландские компании

Увидел в – о боже! – Яндекс.Дзене пересказ вот этой статейки с Хабра:

https://habr.com/ru/company/dcmiran/blog/490682/

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

Программисты не нужны

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

https://habr.com/ru/company/lingualeo/blog/515530/

Краткий пересказ: в LinguaLeo взяли Chief Technical Officer-ом некоего чувака, хорошо знавшего PostgreSQL – даже слишком хорошо, настолько, что он переписал на хранимые процедуры существенную часть бекенда. Результаты, например, по одной из задач говорят сами за себя:

Было Стало
Строк кода 10 000 300
Запросов к БД 12 1
Время выполнения, мс 600 20

Попутно были выставлены на мороз все веб-макаки, поддерживавшие то поделие:

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

Читатели почуяли, что их ценный навык переписывания JSON-ов на PHP стремительно теряет ценность и начали кидаться на автора, мол, ни черта он не понимает в разработке уеб-приложений. Обязательно зайдите в комменты, там феерично.

Кстати, про гомоморфизмы

Как выяснилось, что такое гомоморфизм знает только узкий круг ограниченных лиц.

el-gamal-vote

Придется объяснять, а то будете хихикать, как идиоты :)

И к международным новостям

Истеричный австралиец Dave Jones открыл идеальную закуску к портвейну “777″ – кильку в томате “555″:

555-sardines

Яндекс.Херня

Сегодня в Москве Яндекс.Такси протаранило Форд Мустанг из Яндекс.Драйва – а на заднем плане за этим наблюдает курьер Яндекс.Еды.

yandex-mustang

Не удивлюсь, если все причастные залипали в яндексовское “суперприложение“:

yandex-superapp

А Мустанг жалко.

Мода времен ковида

covid-fashion

Отвратительно.

Практическое пособие по государственным переворотам

Забавно, что те, кто орет про “организованные протесты по госдеповской методичке”, обычно имеют в виду список Джина Шарпа, в целом довольно бессмысленный – ну разве что если вы не скучающие жидомасоны в тайном мировом правительстве, тогда он может пригодиться для забавной игры – выбираете случайный пункт и устраиваете его в подопечной стране. А есть и куда более полезная книжка – “Государственный переворот: Практическое пособие” Эдуарда Люттвака:

http://publisher.usdp.ru/catalog/887.html

Крайне рекомендую диванным революционерам-любителям.

Язык Си образца 70-х годов

Есть одна статейка, описывающая портирование Unix с PDP-11 на VAX (кстати, вопреки обычно озвучиваемому мнению о легкой переносимости Unix между разными архитектурами, именно продукция фирмы Digital долгое время была основной и практически единственной “платформой” для Unix):

https://www.bell-labs.com/usr/dmr/www/otherports/32v.pdf

На последней страничке приведены пожелания для доработки компилятора, очень интересны пункты 2 и 3:

Based on our experience, we strongly recommend that the C language and its compilers be enhanced so that:
<…>
2. The ’->’ operator is checked to insure that the structure element on the right is a member of a structure to which the pointer on the left may point.
3. A structure element may be declared with any name as long as the name is unique within the immediately surrounding structure. (The current requirement that a structure element name must uniquely correspond to an offset from the beginning of the structure, across all structures in a compilation, creates naming problems and frequently leads to errors of the type noted in item 2 above.)

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

struct A {
    int first;
    int second;
};

struct B {
    int first; /* Так нельзя - имена членов структур должны быть уникальны, first уже есть в struct A, см. пункт 3 */
    int second;
};

struct C {
    char c_first;
    int c_second;
};

struct C c;
c.second = 123; /* Компилятор съест и не подавится, но запишет это 123 совсем не туда, куда хотелось бы, см. пункт 2 */
/* То же самое с точки зрения современного Си: */
((struct *A) &c)->second = 123; /* Ты сам себе злобный Буратино */

При этом это поведение, странное с точки зрения “высокоуровневого” программиста и абсолютно нормальное – с точки зрения “низкоуровневой”, когда мы думаем о байтиках в памяти, использовалось в коде Unix сплошь и рядом, как подсказывает нам статья, и явно привело к немалому количеству сюрпризов при переходе с 16 бит на 32.

Кстати, посмотрел на выходных на Django

В очередной раз возникла идея одного веб-приложения – ну и на выходных нашел часочек для прохождения Django tutorial. Выводов для себя сделал три:

- лепить веб-приложения с функциональностью CRUD может даже дрессированная мартышка;
- даже мартышке приходится слишком много делать руками;
- научившись делать руками несколько стандартных телодвижений, мартышка может считать себя неибаццо программистом.

Про Python, программистов и математиков…

…или зачем математикам программирование, или программистам – математика.

Посмотрел краем глаза на один прожект, где слепили обработку загружаемых пользователем аудиофайлов на Python, разумеется, с использованием SciPy (на это ума хватило). “Обработка” – громко сказано, на самом деле все сводится к обычной линейной алгебре. Беда в том, что файлы немаленькие – скажем, два канала с частотой дискретизации 44,1 кГц и разрядностью в 16 бит. Часовая запись – это уже 600 Мб, которые для использования SciPy надо полностью загрузить в память. Заодно там надо как-то хранить и промежуточные результаты вычислений – и в результате объем сожранной питоном памяти растет просто катастрофически.

Впрочем, память сейчас кажется дешевой, а подход “закидать проблему железом” – работающим. Так вот, при желании почти всю “обработку”, которая есть в этом проекте, можно было бы сделать практически “в режиме онлайн”, со скоростью загрузки или чтения файла с данными, а заодно – с в разы меньшим потреблением памяти. Нечто подобное я как-то делал даже для микроконтроллеров класса “за 2$ на алиэкспресс”, с каким-нибудь ядром наподобие Cortex-M3, а лучше M4, и десятком-другим килобайт ОЗУ.

Беда в том, что условные “математики”, сделавшие первую демонстрацию алгоритмов на SciPy (это модно и “научно”), не хотят лезть в программирование, а программисты не понимают примерно ничего из написанного на SciPy (ну например, хотя бы того, что делает функция numpy.dot).

С другой стороны, конечно, никакая оптимизация тому проекту не поможет – при 1 пользователе эта демонстрашка работает, при 10 придется докинуть памяти, при 100 пользователях может возникнуть проблема – компьютеры с потребным количеством памяти делает разве что IBM; другое дело, что 100 пользователей у того проекта никогда не будет.