Book

А вот вопрос по математике

Мы можем определить окружность на плоскости с помощью 3 параметров (x, y, r). Но воспользовавшись тем что R^3 изоморфно R, мы можем определить и с помощью одного параметра.

Вопрос, можно ли придумать какое-то определение для "степеней свободы", чтобы у окружности их получилось 3, но нельзя было использовать трюки в стиле Гильбертовского отеля.

Например, верно ли, что из окружностей на плоскости нельзя построить векторное пространство размерностью 2. Ну то есть определить линейную комбинацию так, чтобы любая окружность была линейной комбинацией 2 окружностей. Размерностью 3 точно можно - берем обычные 3д-вектора (x, y, r).
Book

Телевизионный художественный фильм

Нашёл тут полезные тестовые видеоматериалы.

1. На нетфликсе есть сериал под названием Test Patterns. По нему можно настроить телек чтобы не было ореолов вокруг маленьких цифирек (артефактов перешарпливания). Интересно что в моём такой пресет есть называется pelicula ("фильм"), хез почему, но в принципе понятно - estandar (стандартный) - это не sRGB без постпроцессинга для большинства людей, а "дефолтовый"). Ну а контент весь надо шарпить до вырвиглазности, иначе люди не поймут и уйдут к конкурентам так как у них "картинка чётче". Ну а для нердов есть нердорежим. В прошлом телеке, который я ковырял был даже калиброванный режим, который действительно калиброванный, я писал.

С помощью этой таблицы,

а. Понятно, сколько пикселей у нас реально есть - там линеечка есть однопиксельная

б. Понятно с какого расстояния какие штуки мы видим. Например на 46" уже с 2 метров 4к нифига не видно. Ну то есть линеечка как бы видна, но наклонные линии уже хуй сливаются в кашу. С того места, откуда типично смотрим, я ничего выше 2k/HD не вижу (но у нас ещё экран по-дебильному высоко повешен - мне кажется это желание вешать нижний край экрана выше уровня глаз стоящего человека сродни моде на перешарпливание и пересвет)

в. Понятно есть ли артефакты перешарпливания. Ещё есть лже-мира из говна, чтобы примерно понять, есть ли зависимость артефактов от направления и муар.

2. https://www.youtube.com/watch?v=7zCywLzJJs8 - эталонное видео 60 fps без перешарпливания,
и с относительно привычными объектами. Люди на 60+ FPS реагируют по-разному но как правило не понимают, что это. Собственно если nerd stats показывает @60 и вы видите пластиковых людей и неестественную пыль - то тест удался. Я уже почти не вижу, ибо привык.
Book

Прогресс по починке опенсорсного гнилья-7

Вчера пиcал большой пост, но он пропал™, так что реконструирую по памяти

Все матрицы пока зелёные. По официально выпущенному Danga::Socket 1.62 багов не посыпалось. Товарищ наконец передал мне репу на гитхабе, так что я больше не его форк:

https://github.com/nponeccop/libdanga-socket-perl

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

Нашёл способ слать зелёные репорты (встроенный в cpanp репортер шлёт только неудачные попытки установки) - через отдельную тулзу CPANPLUS::YACSmoke, которая умеет не только мониторить свежие пекеджи и тестировать всё подряд, но и просто тестировать что указано в коммандлайне. Но репорты внезапно почему-то не доходят до цели, хотя пишет что успешно отправлено, надо разбираться.

Gearman-Server, тестовая зависимость моего AnyEvent-Gearman, использует модуль Test::Tester, который есть в двух библиотеках. Ну и cpanp ставит не ту библиотеку, которая нужна. Ебался полчаса пока разобрался.

Кроме того в процессе разбирательств нашёл чувака, который собрал уязвимости пакетов на CPAN, и написал тулзу аналогичную npm audit, дабы смотреть не стоит ли чего уязвимого. Но попытка запустить это на винде привела к подвисанию гостя и менеджмент-сервиса Hyper-V, хотя хост и другие гости продолжали работать нормально. В-общем опять надо разбираться. А как заработает - пускать это на проде. Со Strawberry Perl идёт в комплекте куча всякого говна, которое я не обновляю, так как либо и так работаю, либо не использую. Но уязвимости хорошо бы пропатчить, хоть они все и "липовые" (низкий импакт).

Как я понял, базу он заполнял почти единолично, но читил - мониторит адвисорисы крупных дистров, и если там что-то промелькивает перловое, добавляет энтри. Также нашёл его же код с промисами на перле, который хотел показать для устрашения. Но ссылка тоже пропала.

Upd: внезапно "зависшая" гостевая винда оказалось что нормально захибернейтилась. То есть после перезагрузки хоста гость восстановился на том месте, на котором зависло, но "развис". Оказалось что говнотулза аудита ищет перловые файлы где попало, ну и у меня стоит пакет Alien::MSYS который внутри себя держит маленький MSYS ака цигвин c "вложенным" перлом 5.8 очень древним, где понятно одни дыры ака 7 адвисорисов. В-общем дебильный алгоритм тулзы, с поиском по всей ФС, оказался даже полезным. Решение теперь попробовать переставить этот модуль (нахуй снести не представляется возможным) в надежде что он поставит вложенный перл посвежее, где всё пропатчено. Но это конечно уже театр абсурда.
Book

Прогресс по починке опенсорсного гнилья-6

Матрицу создаёт, как оказалось, всего человек 5. Поэтому отписал главному перлотестеру по винде, и он таки протестировал мой бранч пакета Proc::Guard на винде:

http://fast-matrix.cpantesters.org/?dist=Proc-Guard%200.07_02-TRIAL;os=mswin32;reports=1

Помимо этого Danga::Socket, единственный, на который я выбил права комейнтейнера, можно считать что протестирован:

http://fast-matrix.cpantesters.org/?dist=Danga-Socket%201.62_03-TRIAL

Только одна незелёная клеточка и та полузелёная - то есть либо гейзенбаг, либо баг в зависимости от конфигурации, и на netbsd, которая не самая популярная платформа. Короче надо релизить и смотреть на более обширный поток тестеров. Вдобавок, если тест официального релиза зелёный, начнут тестировать обратные зависимости, которых у пакета овердохуя, и слать доселе не известные баги.

По другому проекту решил, что план с переходом на последние версии зависимостей провалился, и надо пробовать починить малой кровью - собрать node 0.10 на последнем арче, то есть с новым gcc и новыми glibc и т. д., после чего собрать в этой ноде старые прибитые версии зависимостей, и ничего - ни socketstream, ни everyauth, не чинить.

Кроме этого, внезапно вернулся в бой наш товарищ по дотнеткору, так что наша замороженная на время эпопея с Akka.Net надеюсь что разморозится.

Upd: внезапно официальные бинарники ноды запускаются на арче, как для 0.10, так и для 0.12 - да, это ДРЕВНИЕ версии, а не опечатка. Так что если сборка с AUR не завершится успешно - можно пробовать их опять же как shortcut. Но у нас в зависимостях есть модули с сишным кодом, которые вполне могут отказаться собираться на новых gcc и systemd.

Upd2: по дотнеткору есть претензия к отсутствию поддержки systemd - ну то есть структурное логирование ILogger не идёт в атрибуты journald. Есть какие-то поделки для systemd, но думаю их придётся перекрашивать

Upd3: AUR таки предсказуемо не собрался. То есть, надо либо патчить скрипт сборки, либо пробовать собирать более свежие версии (более свежие в смысле последние из 0.10.х). То есть, вариант заюзать апстримовские бинарники выглядит сейчас более привлекательным.

Upd4: таки зарелизил Danga::Socket 1.62: https://metacpan.org/changes/distribution/Danga-Socket. Интересно что релизы зеленеют (ну или краснеют, но у меня пока тьфу-тьфу - http://fast-matrix.cpantesters.org/?dist=Danga-Socket%201.62) очень быстро, быстрее чем пробные версии. Ну то есть больше народу их тестируют. Интересно также, что некоторые отчёты говорят, что тестирование производилось с Test::TCP какой-то дремучей версии. Ну это даже к лучшему - видно что совместимость в Test::TCP не поломали.
Book

Прогресс по починке опенсорсного гнилья-5

К утру свежая матрица по AnyEvent-Gearman просралась, так что теперь можно созерцать их все на одной странице:

http://fast-matrix.cpantesters.org/?author=NML

Как и ожидалось, замена билд-системы помогла: теперь всё зелёное. Нет ни ворнингов о разных версиях, ни падений.

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

В-общем пора писать в спортлото.

В философском плане это всё тот же технический долг. Поэтому ответы в стиле "не использовать Перл" все неправильные, можно цитировать Карманова.

---
Если что-то не работает в дистрибутиве X – то это неправильный дистрибутив, надо просто докупить правильный дистрибутив Y. Так как дистрибутивов в линуксе как у дурака фантиков, то процесс ограничен вторым законом термодинамики и возрастом Галактики. Разбираться в проблеме не нужно, т.к. в линуксе всё идеально и само работает – надо просто неправильное заменить на правильное.
---

Ну только заменить дистрибутив на язык. Ну и вот это тоже актуально:

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

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

То есть все эти истории про переписывание с нуля нам давно и хорошо известны.
Book

Прогресс по починке опенсорсного гнилья-4

Замена билд-системы вылилась в 1 строчку: minil migrate. Сам minil я собрал для других целей, так что он уже был.

С виду всё заменилось, но всплыла другая проблема: часть тестов пропускается, так как не стоят опциональные зависимости. Ну и в обязательных зависимостях опциональных зависимостей обнаружился Compiler::Lexer, который погнил.

https://github.com/goccy/p5-Compiler-Lexer/issues/79 - баг с 2018 висит

Ещё одну матрицу лепить теперь. Когда только проект писать?
Book

Прогресс по починке опенсорсного гнилья-3

Запилил недостающие матрицы:

- http://fast-matrix.cpantesters.org/?dist=Danga-Socket%201.62_03-TRIAL (новая; замержил патчи которые были в трекере)
- http://fast-matrix.cpantesters.org/?dist=AnyEvent-Gearman%200.11_01-TRIAL
- http://fast-matrix.cpantesters.org/?dist=Test-TCP%202.22_01-TRIAL

Легко видеть, что AnyEvent-Gearman теперь падает на винде на 5.24 и более старых.

Падает он своеобразно, но причина теперь в том, что половину Test::TCP я не включаю, зато включаю половину Test::Simple. Это пакет-монстр не смотря на то что исторически simple. Ну и он не работает, если половины разных версий, а в новых версиях даже ругается.

Решение видимо заменить нахуй билд-систему - Module::Install на Module::Build.
Book

Прогресс по починке опенсорсного гнилья-2

Написал Фитцпатрику длинное письмо (с ссылками на PR и матрицу) с сабжектом

Danga::Socket PAUSE permissions

и первой строкой

TLDR: I want CPAN permissions to release a new version of Danga-Socket. My handle is NML.

Он ответил в течение часа:

You're now a co-maintainer. Thanks!

Запилил в результате http://matrix.cpantesters.org/?dist=Danga-Socket+1.62_03-TRIAL, жду матрицу.