vitus_wagner: My photo 2005 (Default)
vitus_wagner ([personal profile] vitus_wagner) wrote2017-01-22 05:58 pm

О больших архивах

Попробовал тут разгрести описанным в предыдущем посте скриптом архив либрусэка завалявшийся с 2009 года.

Получилось - из менее чем 200000 книг 2176 попросту not well-formed XML. В основном от того что народ использует знаки больше-меньше (даже не сдвоенные) в вместо кавычек-елочек, а какие-то распространенные тулзы генерации FB2 это не отслеживают и не заменяют встретившийся в тексте зна < на соответствующий entity. Аналогичные проблемы возникают с амперсэндами.

Ну и плюс к тому куча пробелов, неразрывных пробелов, кавычек, скобочек в полях "имя автора". В принципе можно скрипт пофиксить, чтобы все символы, не участвующие в сортировке по библиографическим правилам, резал.

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

А то и пройтись по всему тексту и правильно оформить тэгами разбиение на главы.
brmail: (Default)

[personal profile] brmail 2017-01-22 06:16 pm (UTC)(link)
а чем не устроил freelib который идет в комплекте к либрусеку для скачивания?
не то чтоб это была совершенная программа, но искать - ищет, критериев поиска довольно много. Индексы свои поддерживает, не тормозит.
brmail: (Default)

[personal profile] brmail 2017-01-22 07:11 pm (UTC)(link)
ну если речь по прежнему о файлохранилище либрусека, то он оно решает кучу проблем. Во первых библиотека хранится в архиве, а не набором файлов. сейчас это порядка 100 архивов, более 170 гиг. Если их распаковать получится реальная куча файлов 2 миллиона, может больше, занимающая кучу места на диске. А когда речь идет на такие цифры, то для нормального поиска это все надо индексировать и класть в sql базу.
Файловая система неплоха когда файлов тысячи. А поиск по паре миллионов - увольте.

brmail: (Default)

[personal profile] brmail 2017-01-22 08:55 pm (UTC)(link)
бедненький сценарий поиска вы предложили. В реальности будет так: "помнится была книжка из серии фантастика или научная фантастика. Автора не помню. Вроде в названии было что-то про звезды. Как бы мне ее найти?" Все, у тебя после этого перебор 2-х миллионов файлов навсегда. И никакая иерархия твою файловую систему не спасет. И никакие гигабайты памяти. Собственно к памяти этот процесс поиска вообще не имеет отношения. Так как тормозить будет процесс перебора файлов, открытия их и чтения тегов из каждого.
Альтернатива одна - Строим индексы, кладем их в базу разница в скорости поиска будет не в разы, в десятки, если не сотни раз.
А как оно там хранится в самих архивах в принципе вообще все равно. По хорошему можно вообще все тексты в базу загнать чтобы дать пользователю и по тексту искать, но это уже напряг для базы - полнотекстовый поиск. Хотя все равно будет быстрее чем открывать пофайлово

[personal profile] anonim_legion 2017-01-22 09:41 pm (UTC)(link)
>напряг для базы - полнотекстовый поиск

Для специализированной базы - не напряг. Их уже уйму понаписали. Да и в постгресе полнотекстовый поиск хорошо работает, насколько я помню к движку БД что-то специализированно-поисковое прикрутили разработчики Авито.
brmail: (Default)

[personal profile] brmail 2017-01-23 07:16 am (UTC)(link)
нет, естественно оправдание собственному желанию продолжать трахаться и трахаться с открытым кодом доводя тупиковую идею до совершенства, а потом прикручивая к нему базу, так как все равно без нее работать не будет ... Не нужны никому стандартные средства работы, универсальные api и прочие базвордс. Пользователю нужна база от либрусека на 170+ Gb, готовый каталогизатор, и возможность скачать через год не новые 170 и все что набежало за год, а только добавку и индекс. И плевать пользователю что там ssl не свежая. И то что программа не обновляется часто - так же плевать ибо работает. Ну а тому кому шашечки, а не ехать - те велком в мир тех самых открытых стандартов итд по списку

[identity profile] tzirechnoy [lj.rossia.org] 2017-01-23 10:31 am (UTC)(link)
>напряг для базы - полнотекстовый поиск.

Если это один человек со средним современным десктопом наперевес и пол-тэрабайта текстов -- то не сказать чтобы и напряг.

[personal profile] legolegs 2017-01-23 07:43 am (UTC)(link)
>нескольких тысяч вариантов, но современные файловые системы с таким вполне справляются.

Они и с миллионами файлов в директории справляются. Только гуёвые файловые менеджеры плохо работают и ls тормозит. Конечно, это всё не про fat.
brmail: (Default)

[personal profile] brmail 2017-01-22 07:15 pm (UTC)(link)
здесь принцип "самое последнее значит самое хорошее" не вполне работает. здесь надо придерживаться другого принципа: "работает, не трогай". Ну а для перфекционистов у которых есть лишнее время, никто не запрещает переписать. Кстати, либрусек отдает и какой то второй каталогизатор MyHomeLib кажется.
А Калибри как каталогизатор я не рассматривал, но это худший файл-конвертер который я когда либо видел.
brmail: (Default)

[personal profile] brmail 2017-01-22 08:47 pm (UTC)(link)
оно не требует инсталляции. Работает из фолдера куда положили. Какая дыра в безопасности может быть, для софта который пускается раз в неделю на пять минут чтобы забрать из библиотеки книжку и закинуть ее в фолдер на диск. При этом системные библиотеки как были нормальной версии, так и есть. А приложение подгрузило дырявую библиотеку, воспользовалось ей (не факт что пользуется вообще пока ты используешь локальную базу) и выгрузило. Доступа извне к этой программе никто не имеет. Доступа ее фолдеру с дырявой библиотекой тем более.
brmail: (Default)

[personal profile] brmail 2017-01-23 07:22 am (UTC)(link)
Уверяю тебя, что троянов в интернете разбросано не так много как бинарников. Опять же, что мешает любознательному пользователю просто пойти на virustotal и разом проверить бинарник сразу 40 антивирусами? Для файлов с датой более месяца оно там вероятнее уже просто есть.
И трудно сказать как оно (32 bit) работает, но win 7 64bit его пускает прекрасно. Как видимо проблема с вашей стороны. А то, что софт ходит на внешний http - так это не бага а фича, так сказать дополнительная функциональность которой просто не стоит пользоваться. Да и собственно зачем, если локально уже все скачено, и все проиндексировано.

[personal profile] legolegs 2017-01-23 10:51 am (UTC)(link)
>Для файлов с датой более месяца оно там вероятнее уже просто есть.
sergey_cheban: (Default)

[personal profile] sergey_cheban 2017-01-23 11:21 am (UTC)(link)
Virustotal - вообще не аргумент. Вот, например, старые версии acrobat reader - дырявы по самое немогу: https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=adobe+acrobat. Все об этом прекрасно знают. А теперь покажи мне антивирус, который предупредит пользователя об опасности.
Кроме того, создатель malware всегда может модифицировать его до тех пор, пока оно не перестанет детектироваться антивирусами. Да, завтра антивирусы научатся детектировать и новую версию, но ущерб уже будет нанесён.

> Уверяю тебя, что троянов в интернете разбросано не так много как
> бинарников.
Но при установке на компьютер N бинарников вероятность остаться чистым падает экспоненциально. Как в русской рулетке.

[identity profile] tzirechnoy [lj.rossia.org] 2017-01-23 10:56 am (UTC)(link)
Случай openssl особенно хорош ещё тем, что при некоторых условиях не надо будет ломать тот сайт. Достаточно получить контроль над каким-нибудь промежуточным роутером, иногда дажэ его не взламывая, чтобы воткнуться в дырявую реализацыю TLS.

[identity profile] tzirechnoy [lj.rossia.org] 2017-01-23 10:55 am (UTC)(link)
>Какая дыра в безопасности может быть

Большая.

Насколько я понимаю, конкретно эта версия не подвержэна уязвимости heartbleed, но как пример того, чем можэт закончиться использование openssl с известными багами эта уязвимость хорошо подходит.
livelight: (Default)

[personal profile] livelight 2017-01-22 08:56 pm (UTC)(link)
Имхо, если из огромной файлопомойки, скачанной 8 лет назад, всего 1/1000 файлов оказалась корявого формата - это очень повезло
livelight: (Default)

[personal profile] livelight 2017-01-23 09:25 am (UTC)(link)
А, пардон, обсчитался. 2К из 200К. Но всё, равно, имхо, для файлопомоек это очень хороший показатель.