Pull to refresh
78
0
Алексей Виноградов @klirichek

User

Send message

Прямо неделя постов про immich ).

Хорошая штука, на самом деле. Поднял на 4-й "малинке" по мануалу с сайта, в docker compose. Залил одним махом 26 гиг медиа с телефона. Впечатлил тем, что на железе малинки "прожевал" их всего за пару часов. Со всеми плюшками вроде распознавания лиц и умного поиска (в последнем поменял в настройках модель на XLM-Roberta-Large-Vit-B-16Plus - теперь он и по-русски понимает тоже).

Следующим этапом было положить его через обратный прокси, чтобы ходить снаружи. Мне хватило nginx + ssl на роутере.

Ну и когда всё проиндексировалось - читаем внимательно тему про бэкапы. Там в общем-то ничего сложного (база постгрес + три папки с файлами). Последние я склеил в единый tar и положил оба на я-диск.

  • Звать вручную make, make install - это, конечно, дело вкуса... Особенно если только-только из автотулзов перешёл на cmake...
    но если вместо make вы позовёте `cmake --build .` - это чуть больше букв печатать, зато нет привязки к make. cmake сам позовёт нужную тулзу (это может быть ninja, а под виндой вообще msbuild). А вам не нужно помнить детали.
    То же самое про установку. Это всего лишь одна из целей. `cmake --build . --target install`, возможно с sudo (если ставите в системные пути). И ещё это обычно можно делать без предварительной сборки (поскольку эта одна из целей проекта - она сама подтянет сборку перед установкой как зависимость).

  • Использовать glob в cmake для добавления исходников в общем случае не стоит. Один-два раза собрать пойдёт, но лучше в конце концов заменить на явное перечисление файлов. Причину расскажет любой поисковик по фразе "cmake glob evil"

  • Вы всего лишь использовали cmake как систему сборки; он остался сугубо внутренней деталью (так же это мог быть обычный makefile или какой-нибудь meson). Нынче под "библиотекой с cmake" подразумевается чуть другое: это библиотека, вместе с которой идёт модуль Cmake для её использования в других проектах. Т.е. скачали исходники библиотеки, добавили к себе через add_subdirectory - и вуаля, у вас появился таргет yourlib::yourlib. Который я могу прилинковать к себе, и всё просто заработает. Ключевая фраза для гугла "cmake export".

Есть два способа рассматривания.

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

А есть параллельная пара. Там нужно как бы глядеть сквозь картинки вдаль, за них. При этом они тоже визуально сливаются, но в обратном порядке. Так кажется даже более естественно, но большой базы не достигнуть, глаза сильно устают.

При перекрёстном просмотре картинки из статьи дают правильное ощущение. А при параллельном - обратное. Т.е. гора превращается в яму, а луна вообще висит на переднем плане.

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

А я как раз бывал на противоположной стороне. Как заселился в квартиру - там был электросчётчик старого образца, который не прошёл поверку, и поэтому платили по нормативу. Потом когда началась реформа с нормативами и задиранием цен - поставил новый счётчик. И заодно обрезал левый провод, который был накинут на мою сеть ПОСЛЕ счётчика. И уходил куда-то на техэтаж.

Спустя почти год(!) в дверь позвонил грустный дяденька в спецовке МТС - восстанавливать тот самый провод (восстановил уже на общую фазу, до счётчиков). Но факт, что несколько лет они висели и кушали сколько-то с квартиры был.

Паспорт вы показываете пограничнику, а не таможеннику.
Ну и хотя бы в Минск - вообще без проблем. Никаких отметок, никаких загранов, просто взял и полетел/поехал в любой момент.

В редакции одной газеты всё ещё в деле обычные трёхдюймовки. Со старым-старым компьютером до-пентиумных времён, который журналисты используют как печатную машинку. А на дискетах потом переносят материалы верстальщикам. Особый переполох однажды причинил один из этих древних компьютеров, который отказался загружаться. По банальной, но уже порядком забытой причине - дискете в дисководе (она в порядке загрузки как первый)

Так дизайн приложения проще. Отмапил файл - и всё, он как будто загружен. Не все сидят на 64-ядерных процессорах в сотню потоков на raid из десятка топовых SSD.

В коллекцию - https://habr.com/ru/articles/820591/ (к ней есть отсылка в начале Вашей статьи. А такие узкотематические материалы мало кто ценит и комментирует)

Вот обратная сторона медали - https://habr.com/ru/articles/820591/

Наверное, вы всё же имели в виду mmap а не mlock.
Последний уж слишком суров, и привилегий требует, и OOM-киллер может позвать. Ну и просто не сработает, если реальной оперативки маловато. (ммапу по дефолту достаточно 5 страничек на линуксах, т.е. 20кб)

Насчёт ммапинга - таки лучше снять розовые очки. То, что в юзерспейсе оно выглядит очень простым - совсем не значит, что оно такое же "под капотом". Отдельно выделенный поток ядра будет "там" считывать файл кусками, класть его в кэш и создавать иллюзию целостной бесшовной работы. Разные madvise может и помогут - но всё равно прямого доступа нет, есть опосредованный через кэш. Т.е. данные ВСË РАВНО аллоцируются, пусть и не в рамках процесса, а в ядре.
Статья по запросу "Are You Sure You Want to Use MMAP in Your Database Management System" ещё больше развеет веру в маппинг.
Вкратце - он не про быстродействие, а про простоту кода в юзерспейсе.

Октет - это таки 8 бит. Ансамбль из 8 музыкантов называют так же. И в сетях передачи тоже используют вместо байта - чтобы подчеркнуть, что речь именно о 8-битовых символах. А 4 бита - ну, пусть будет "квартет".

через UTM можно запустить линукс (debian) в ARM варианте (без жёсткой виртуализации), и в него же пробрасывается розетта с хоста, чтобы запускать бинари от x64)

Благодарю за конструктивный ответ!
(у меня года три назад начальник в ответ на фразу "тут ~1000 коммитов. Прогон на "годный/не-годный" занимает 5 минут. Значит, бисектом мы где-то за час справимся (из них 10 минут на сктипт-автоматизацию).). На что осталось ощущение, что он тупо не знает, что такое бисект. Годы прошли, оказалось, что так и есть, увы...

MSDN тоже не без соринки.

Подозреваю, тут немного эффект "Плюшкина".

Запись в разных оцифровках >48kHz и 24бит вполне уместна в качестве исходника. Который мы потом будем прогонять через фильтры, усиливать, может быть растягивать и т.д. Ясно, что технически ">48kHz" - проще сделать, удваивая частоту (а не настраивая какой-нибудь хитрый генератор, скажем на 60kHz). Если я захочу растянуть её вдвое, я всё ещё получу частоту дискретизации, перекрывающую возможности человеческого уха с учётом теоремы Котельникова.

То же касается и динамического диапазона. 24-битный вариант позволяет накосячить с громкостью аж в 256 раз, и всё ещё попасть в финальный 16-битный звук без излишнего переквантования. В обратную сторону (поставил уровень достаточно высоко, а там орнули так, что ушли в клиппинг) есть backup-дорожки во многих рекордерах. Где вместе с основной записью второй АЦП параллельно делает вторую, на 20дБ тише.

И вот когда есть весь этот арсенал - можно из видосика в 8К60fps в HDR со звуком 96/24 соорудить нормальный клип в FullHD со звуком 48/16.

А "эффект Плюшкина"... Ну как же, терять драгоценные биты... камера же старалась, матрица изнашивалась... рекордер тоже... Сохраним на всякий случай в максимально-оригинальном качестве, это же круто!

У нас внутренние тесты не проходятся на arm (на мак M1/2 и на малинке).
Потому что косинус возвращает разные младшие разряды на arm vs intel.
В одном из тестов на geodist расхождение получается целый метр.

Именно, что одно другому не мешает. Когда тест хорош и содержанием, и формой - в выигрыше все!

1
23 ...

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Date of birth
Registered
Activity