суббота, апреля 13, 2019

Почитаем…

Когда-то довольно уже давно скачал архив библиотеки Lib.rus.ec – больше 100 Гб данных и клиент для доставания книжек из архивов и для обновления самих архивов. Несколько месяцев назад клиент почему-то перестал обновлять базу, а из существующей базы книжки доставал тоже как-то не очень уверенно.
Потыкался, потыкался, выяснилось, что можно и руками книжки доставать, но в архивах они имеют имена наподобие 12345678.fb2, что не очень радостно. Полез на трекеры - а там архив для скачивания уже больше 250 Гб. Провёл ревизию компьютеров - у меня и места-то столько нет, чтоб это всё хозяйство развернуть.
При более внимательном рассмотрении выяснилось, что к имеющимся у меня архивам можно скачать дополнительные файлы и получить более или менее актуальный архив библиотеки. С клиентом оказалось хуже - его автор бросает поддержку, отдаёт исходники, ковыряйтесь сами.
Решил пойти своим путём.
Соорудил WPF-программку, которая потрошит zip-архивы, достаёт оттуда fb2-файлы, фильтрует их по языкам и жанрам, переименовывает по названию книжки и раскладывает по системе папок типа \жанр\автор\язык.  Для экономии места используются жёсткие ссылки (когда книга имеет несколько жанров) и упаковка в zip-архивы (читалки, выяснилось, поддерживают книжки в таком формате).
Скачал все доступные на трекере (http://trec.to/viewforum.php?f=52)  обновления архива (получилось примерно 130 файлов с суммарным объёмом около 200 Гб). "Распаковка" заняла примерно неделю, по ходу дела потребовалось раз 20 модифицировать программку (из-за несоблюдения стандартов fb2 в файлах библиотеки и для учёта и исправления ошибок в данных, которых быть не должно бы, но пользователь у нас пытливый). Программку даже переделал под другую платформу - вместо .NET 4.7 использовал .NET Core 3. Из любопытства в основном.
Дальше уже чисто вручную, при помощи ФАРа. Выкинуть чепуху типа "Наука-политика" и т.п. жанры и выкинуть мелочи в отдельных жанрах. Думаю, за неделю потихоньку справлюсь и запущу на облака куда-нибудь.
Пускай теперь родимое государствие блокирует что угодно - книжек мне хватит лет на 500, даже если читать только известных мне авторов. ‍

понедельник, января 14, 2019

Windows 10 и антиквариат

Есть у меня пенсионного возраста Laptop-tablet на процессоре Intel Atom Z2760, заброшенный всеми – Intel, Samsung, Microsoft.  Объясняют отсутствием видеодрайвера, но ведь новые железки тоже продавать надо. Пару лет назад его (и другие устройства на таком же процессоре) объявили устаревшим и запретили установщику Windows 10 обновлять его до версий старше 1607 AU.
Какое-то время назад попробовал установить начисто версию 1803 – фокус удался, но работала машинка ужасно. Программы, для которых требовалась какая-никакая графика, использовать было невозможно. Даже плитки на стартовом экране отрисовывались почти никак. На этом успокоился и жил себе на разрешённой версии 1607, многого от устройства не требовал, хотя иногда многого не хватало и вообще тоскливо 😕.
Недавно один весьма шустрый вьюнош сообщил на комсомольском форуме, что установил знакомому на планшет версию 1809 и под ней всё работает. Правда, в дальнейшем выяснилось, что планшет быстренько отдан владельцу и узнать, что там и как работает, возможности нет. Правильно, по-комсомольски – прокукарекал, а там хоть не рассветай.
Выяснилось, что и вправду при «чистой» установке сборки 17763.107 x86 (получена при помощи MCT) с последующей установкой всех драйверов от Samsung (все почти от 2013 года для Windows 8.1) можно получить устойчиво работающую систему без явных глюков по вине видео.
После всевозможных усилий по настройке железа в сухом остатке (в том смысле, что можно потереть сухой тряпочкой и спокойно убрать подальше) осталась "док-станция". После подключения к планшету клавиатура и тачпад работают, но наполовину: иногда клавиши не так работают, как надо, иногда "мышиный" курсор не нажимается и т.д. Но при острой необходимости напечатать большой текст, например, или поставить планшет на стол для просмотра фильма, клавиатурой-доком вполне можно пользоваться.
Остальное железо – Wi-Fi, Bluetooth, Сотовая связь (для этой даже своих драйверов устанавливать не потребовалось, подключилась ещё на этапе установки), звук, разные сенсоры – функционирует нормально (BT-мышка отвалилась всего пару раз, что вполне нормально в режиме интенсивного тестирования). Жить можно, можно приступать к тестированию программ.
Программы для "общения" заработали практически без усилий - Telegram, WhatsApp, Edge с нужными расширениями.
"Системные" утилиты тоже работают – Far Manager, MetroCommander, Torrex.
В Проводнике при попытке переименования файла/папки (и при создании новых) не всплывает виртуальная клавиатура. Приходится запускать её пальцем из трея. Соответственно, убирать нужно тоже нужно пальцем. Та же история с клавиатурой в Хроме, кроме того, там и подсказок при печати не выводится. Наверное, когда благодетели сами перейдут на Хромиум, тогда и подсказки будут.
В Telegram тоже приходится пальцем вызывать, да ещё и откреплять от низа экрана – не сдвигается Телеграм кверху, как все прочие программы.
"Медийные" средства – тоже на месте: Shazam, TuneIn, FS Клиент, Data for Last.FM и др.
В игрушки особенно не играюсь, но вот пасьянс порадовал – почти не моргает (иногда пытается) и не заваливается, как на 1607 было.
Потерь среди ранее использовавшихся программ не так и много, но они досадные.
Очень плохо работает (точнее, вовсе не работает – открывается только главная страница, при попытке открыть функциональную страницу программа падает) HealthVault – программа для хранения разных данных о здоровье, клиент одноименного сервиса Microsoft. Досадно, но ладно – быстрее собственную версию доделаю.
Из Магазина, как оказалось, удалили насовсем Яндекс.Погоду, даже в "моей библиотеке" там её нет. Зачем так делать, понять нельзя – установленная ранее, вполне исправно работает, и часто правильнее "системной" Weather. Видимо, это такой особый россиянский "свой путь".
Раздражает некоторая задумчивость системы при реакции на кнопку "Старт", при выводе виртуальной клавиатуры (особенно, на экране входа для ввода пин-кода), но что уж ожидать от машинки возрастом в 7 лет… ‍
С другой стороны, лучше-то в смысле сочетания разных возможностей с разумной ценой практически никто и не сделал за последнее время.



Поживём пока какое-то время – антивирь обновляется исправно, да и очередной второй вторник благополучно прошёл, ничего не отвалилось.

четверг, августа 16, 2018

Игрушечка–12 или flac’и

Случился в системе какой-то смешной дефект: не может она прочитать метаданные из flac-файла - название, исполнитель и т.д. При этом Groove Music файл  проигрывает, но в библиотеку не включает. Моя программка тоже эти данные не читает.
И дело не в файлах - другие проигрыватели их воспроизводят и данные достают, проигрыватели на других машинах (в т.ч. и Groove) - тоже. Что-то в конкретной системе произошло... ‍
Как лечить - ХЗ, не переустанавливать же Windows начисто! Попробовал сверху поставить последнюю инсайдерку 17723 - почти никакого эффекта. Моя программка какие-то отрывки строк прочитывает, но это же хрень получается – откуда знать, что это только отрывок...
Посмотрел в FeedbackHub – там тоже народ жалуется. И никакого решения нигде не видно. В итоге нашёл на GitHub библиотеку для работы с метаданными flac-файлов и приделал её к своей программке. Теперь можно постить на Last.fm и эти данные…

понедельник, июня 26, 2017

Windows 10 и ремонт-2

В самом начале работы по модификации программки при попытке запустить отладку в Студии получил странное сообщение о невозможности разместить программу на компьютере:
Error : DEP0700 : Registration of the app failed. Another user has already installed a packaged version of this app. An unpackaged version cannot replace this.

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

Выясняется, что на такое наталкиваются уже давно и существует несколько рецептов исправить ситуацию с помощью PowerShell. Чуть дальше выясняется, что для Windows 10 рецепты не работают и нужно ремонтировать базу пакетов, где зависает запись об установке. Попробовал использовать китайский чудо-пакет Dism++, он эту неведомую запись увидел, но удалить не сумел.

Пришлось действовать руками, т.е. при помощи менеджера Фар. База с гнилой записью называется C:\ProgramData\Microsoft\Windows\AppRepository\StateRepository-Machine.srd, запись находится в таблице Package. С помощью плагина “Редактор баз данных SQLite” удалось (ну да, надо исхитряться) локализовать и удалить злополучную запись. Попутно пришлось дать по зубам системе, которая выпендривалась и не желала поставить на место отредактированную базу – по-простому объявил себя владельцем этого файла…

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

Игрушечка-11 и Windows 10

Давно, собственно, чесались руки переделать программку для “ручного” скробблинга (вернее, её “универсальный” вариант) под UWP, которую сильно пропагандируют с появлением Windows 10. Но всё как-то было недосуг, да и особой нужды не возникало – версия под 8.1 нормально работала и на десктопной, и на телефонной десятке, а средства для изготовления UWP-программ были слабосильны и малочисленны.

Но в конце 2016-го появилась Visual Studio 2017 в более или менее рабочем состоянии и стали появляться разные пакеты для разработки программ. К тому же, потребовалось внести изменения в существующую программу, а для этого пришлось доставать из пыльного чулана Visual Studio 2015 (VS-2017 напрочь отказывается работать с проектами для Windows 8.1). Изменения-то внёс, но потом выяснилось, что на телефоне с десяткой не заработало. Разбираться не хотелось (на телефоне с 8.1 программка вполне работает), проще было написать версию  под десятку.

Проще, естественно, не было, было долго и нудно – пришлось переделать не только весь интерфейс, но и заметную часть “функционального” кода. По ходу дела пришлось выколачивать исправления из индийского производителя бесплатного пакета контролов, прикручивать разные расширения к пакету Microsoft.Toolkit.UWP, продираться через заросли колючек глюков в SDK, компиляторах и Nuget-пакетах. В конце пришлось даже немного поплясать вокруг системы лицензирования программ в магазине.

Но итог даже самому понравился, как на десктопе, так и на телефоне. Главное – получилось и вправду сделать один код под обе платформы (целью были десктоп и телефон, а в магазине уже приписали про голографию), нигде нет никаких кодов условной компиляции, как было раньше, и даже функция проверки, в телефоне ли дело происходит, использовалась практически только для генерации ссылок на мобильные версии веб-страниц.