пятница, 16 июня 2017 г.

Программисты, зачем вы так?

Или это я чего-то не понимаю, или таки в консерватории что-то не так. Но я в любом случае не понимаю.

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

Ну так вот, установил я на домашний комп программу Homebank. Для Linux, версия 4.5.5. Занёс туда свои доходы/расходы. А на следующий день поставил эту программку ещё и на работе, чтобы сразу же, оперативно заносить туда данные, дабы не забыть ничего. Файл данных синхронизируется через Dropbox, всё хорошо. Казалось бы.

А сегодня вечером мне домашняя версия Homebank и говорит человеческим голосом, что не может открыть файл данных, так как он создан в более новой версии программы. Опаньки? Опаньки. Оказывается, версия для Windows имеет номер уже 5.1.5 и формат данных там как бы другой, несовместимый со старым. И в ЧаВо (в оригинале FAQ) написано, что если вы не хотите иметь проблем, то имейте везде новейшую версию программы. Не, я не против, только где ж её взять для моей Убунточки, новейшую-то? Разве что из исходников собрать, но это как-то фу.

Но самое забавное выяснилось вот буквально только что. Оказывается, что данные сохраняются в XML-формате. Это почти обычный текстовый файл, но с дополнительной разметкой. В общем, его может прочитать и понять не только программа, но и человек. И там в самом начале написано про версию программы буквально следующее: <homebank v="1.2" d="050105">

А в старом, который я уже создал с горя, думая, что придётся снова всё заполнять, написано так: <homebank v="0.69999999999999996">

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

четверг, 8 июня 2017 г.

Автоматический костыль для Thunderbird

Вообще почтовыми клиентами я пользуюсь исключительно на работе. По разным причинам. Одна из причин - есть у меня маленький, но гордый локальный почтовый сервер, который нужен, чтобы разные скрипты могли отправлять мне уведомления о результатах своей работы. В качестве клиента использую известный многим Mozilla Thunderbird. И вот с этим Thunderbird-ом стали происходить какие-то странные вещи. Иногда бывает, что хочешь удалить письмо, а оно не удаляется! Как так?! Оказывается, по непонятным причинам пропадает файл Trash, в котором, собственно, и должны храниться удалённые сообщения. Ну вот пропадает и всё тут. В принципе, достаточно закрыть Thunderbird, создать в нужном месте этот файл и снова запустить почтовик. Но это же каждый раз нужно руками найти этот нужный каталог, создать там файл... В общем, я написал скрипт, который делает это всё сам, по расписанию в планировщике. Утром, за пару минут до начала рабочего дня, планировщик запускает мой скриптик, который проверяет существование файла Trash, при необходимости - создаёт.


@ECHO OFF

IF NOT EXIST "d:\home\user\Thunderbird\Profiles\kpya8y83.default\Mail\mail.mydomain.ru\Trash" (
   TYPE nul > "d:\home\user\Thunderbird\Profiles\kpya8y83.default\Mail\mail.mydomain.ru\Trash"
   ECHO =====================================  >> %~dp0\create_trash.log
   ECHO File "Trash" successfully created at >> %~dp0\create_trash.log
   DATE /t  >> %~dp0\create_trash.log
   TIME /t  >> %~dp0\create_trash.log
   )

IF "%1" == "" GOTO END

START "" "C:\Program Files (x86)\Mozilla Thunderbird\thunderbird.exe"
   
:END

Но если вдруг случилось так, что "Удалённые" пропадут в процессе работы, то можно запустить скрипт вручную (у меня есть средство для быстрого запуска нужных программ, долго искать не придётся), с параметром START (на самом деле - просто с параметром), тогда после создания файла Trash снова запустится Thunderbird, и можно будет продолжить работу.

Я чёртов гений! :-)