Category: it

Category was added automatically. Read all entries about "it".

неизменяемость прошлого

Если вам мешает отсутствие delete/update в ClickHouse, подумайте, может вам можно немного изменить подход к данным, и тогда это одновременно решит две головные боли.
Какую еще проблему дают delete и update? В аналитике эти операции - это изменение прошлого. И результат, который вы получили за какой-то период до апдейта уже будет невоспроизводим (хотя многие не понимают, насколько это плохо).
Вместо delete/update можно версионировать изменения - просто добавлять в таблицу еще одну колонку с временем, с которого данные изменились. Например, для страны юзера сохранять в таблицу также время, когда он поменял страну. И если за год 20% массово мигрируют в другую страну, у вас не окажется неконсистентной, глючной аналитики.
И это всего лишь усложнит однократную настройку экспорта из OLTP.

Рецепт, кстати, подходит к большому числу других задач - и к пакетированию софта или конфигураций, и к тренировке ML моделей. Тотальное версионирование и блокчейн.

NVIDIA vs Intel для deep learning, резюме

NVIDIA GPU лучше по производительности для тренировки DL-моделей, Intel CPU лучше по скорости для инференса, когда задержки на передачу данных в GPU и обратно становятся важны.

почему докер не любят

Последние несколько недель активно работаю с докером. Вот сегодня у меня просто завис докеровский демон (заблокировался на каком-то мьютексе). Ubuntu 18.04.1 LTS, Docker version 18.06.1-ce. А может быть это и Go виноват, он же делает многопоточность безопасной. И я все-равно считаю, что докером можно и нужно пользоваться. Только без докера.

Kill all descendants of a process using POSIX shell and /proc

Нужно было уже столетназад, но только сейчас стало совсем не обойтись - скрипт для поиска и мягкой остановки всех потомков процесса. Примерно то, что делает SIGINT для процессов в терминале, но это годится для фоновых процессов тоже. POSIX shell, Linux /proc. Вроде бы должно легко доработаться и для FreeBSD.

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

https://github.com/kvechera/kill_descendants

open source license scanning

Сейчас занимаемся open source license compliance для нескольких сотен программ. Если коротко, то нужно определить по какой лицензии даются исходники и отнести к нескольким группам - в зависимости от строгости.

Открываются бездны. То, что про лицензию в описаниях deb и rpm пишут, или в метаданных на гитхабе - это лишь малая часть правды. В зависимостях, в забандленных библиотеках, в копипастнутых хедерах столько всего разного. Я теперь понимаю, почему есть компании, которые за это берут деньги.

Перепробовал кучу софта. Нормально работать можно только с fossology. При этом даже для минимальной работы из командной строки - просканировать файлы, оно требует рабочего постгреса.

Дебиановский licensecheck - не имеет смысла, не смого определить, например, лицензию llvm и lua.

ninka - тоже мало находит.

scancode-toolkit - ищет и находит хорошо, и для небольших случаев подходит лучше, чем fossology. Но медленный. Поэтому на больших объемах лучше все-таки использовать fossology.

CRI-O и Docker в Kubernetes

Все идет к тому, что Docker в Kubernetes будет использоваться все меньше и меньше. Докер уже давно выделил runc в отдельный продукт. А RedHat теперь усиленно продвигает CRI-O вместо докера для скачивания и управления образом контейнера.

RedHat против докера давно плетет козни, и раньше это было, действительно, на уровне поливания помоями. Но теперь есть реально большая веростность, что CRI-O вытеснит Docker из Kubernetes и вообще из многосерверных и многосервисных production систем.

А для докера (т.е. пакета docker) в итоге останется его первоначальная ниша - пакетирование приложений и окружений для разработчика, тестирование и мелкие инсталляции. Где он будет соревноваться и побеждать только LXC и чуть-чуть rkt.

https://www.redhat.com/en/blog/introducing-cri-o-10

Machine Learning стеки

А вот какую штуку мы сделали и скоро откроем в публичный доступ - сборка, интеграция и деплой Machine Learning стеков.

Что в ней еще интересного - любой неспециалист может получить готовую среду для deep learning и сразу же начать с ней работать. Инженеры, бизнес-аналитики, студенты, любители и даже дети. Для них еще планируем готовить учебные аплайнсы - с рабочей средой, примерами и учебным материалом.

http://jetware.io/machine_learning?us=lj_sply

mruby

Бинарник mruby для x64, собранный без гемов, с -Os и другими уменьшающими флагами, занимает 355K. Имеет зависимости только на libc. При запуске hello world в памяти занимает чуть большее 1 Mb.

При этом имеет нормальные хэши, списки и работу со строками (без regexp). Надо брать.

MyRocks

Вот мы собрали Фейсбуковский форк MySQL с RocksDB вместо InnoDB и погоняли его с реальными приложениями, Drupal, Wordpress, Redmine.

Это офигенная штука. При низкой нагрузке выигрыш маленький, десятки процентов. Зато при высокой нагрузке выигрыш в разы. Когда RocksDB добавят в стабильный релиз в MariaDB, уверен, что в течение полугода половина народа перейдет с InnoDB на RocksDB. Особенно для небольших сайтов.

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


Что в нем такого хорошего? Намного меньше дисковых операций вообще и линейная запись. То есть транзакции меньша занимают очередь и пишутся намного быстрее.

https://news.ycombinator.com/edit?id=13385420 https://www.reddit.com/r/programming/comments/5nlkkq/redmine_on_mysql_with_rocksdb_myrocks_is_20_to_3/