Поиск по этому блогу

суббота, 22 апреля 2017 г.

Добавление штампов (stamps) в Tux Paint

При установке Tux Paint из штатных репозиториев некоторых дистрибутивов Linux (в частности, Fedora 25) или на Android (через F-Droid) не устанавливаются штампы (stamps).

А как без них жить? :)


Чтобы установить штампы нужно:
В Linux (Fedora 25):
  • Распаковать содержимое папки /TuxPaint/data/stamps/ из архива в папку /usr/share/tuxpaint/stamps/ чтобы получилось так:
/usr/share/tuxpaint/stamps/animals/amphibians/frog-1_desc_be.ogg
/usr/share/tuxpaint/stamps/animals/amphibians/frog-1_desc_bg.ogg
/usr/share/tuxpaint/stamps/animals/amphibians/frog-1_desc_ca.ogg
/usr/share/tuxpaint/stamps/animals/amphibians/frog-1_desc_da.ogg
/usr/share/tuxpaint/stamps/animals/amphibians/frog-1_desc_es.ogg
/usr/share/tuxpaint/stamps/animals/amphibians/frog-1_desc_fr.ogg
/usr/share/tuxpaint/stamps/animals/amphibians/frog-1_desc_ro.ogg
/usr/share/tuxpaint/stamps/animals/amphibians/frog-1_desc_ru.ogg
/usr/share/tuxpaint/stamps/animals/amphibians/frog-1.png
/usr/share/tuxpaint/stamps/animals/amphibians/frog-1.txt
...
В Android:
  • Распаковать содержимое папки /TuxPaint/data/stamps/ из архива в папку /mnt/sdcard/TuxPaint/ (на Samsung Galaxy Tab это папка /storage/emulated/0/TuxPaint/).
Теперь запускаем Tux Paint и наслаждаемся!

P.S. Чтобы уменьшить объем, который занимают файлы штампов, можно удалить "лишние" файлы с озвучкой на неиспользуемых языках - все файлы *_desc_*.ogg, кроме *_desc_ru.ogg.

    четверг, 25 февраля 2016 г.

    Как убрать лишние пробелы при выводе строковых полей в отчёте на СКД

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

    Код:
    Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; Настройки = КомпоновщикНастроек.ПолучитьНастройки(); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.НачатьВывод(); Пока Истина Цикл ЭлементРезультата = ПроцессорКомпоновки.Следующий(); Если ЭлементРезультата = Неопределено Тогда Прервать; КонецЕсли; Для Каждого ЗначПарам Из ЭлементРезультата.ЗначенияПараметров Цикл Если ТипЗнч(ЗначПарам.Значение) = Тип("Строка") И ЗначПарам.Значение <> СокрЛП(ЗначПарам.Значение) Тогда ЗначПарам.Значение = СокрЛП(ЗначПарам.Значение); // <--- обрезаем пробелы тут КонецЕсли; КонецЦикла; ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата); КонецЦикла; ДокументРезультат = ПроцессорВывода.ЗакончитьВывод(); КонецПроцедуры


    Данный текст доступен по лицензии Creative Commons Attribution (CC BY)

    вторник, 23 февраля 2016 г.

    Изменение порядка учётных записей в Thunderbird

    Изменить порядок учётных записей в Thunderbird можно и без использования дополнений.

    Вариант 1. Заходим в меню Правка / Настройки, закладка Основные, кнопка "Редактор настроек...". Обещаем, что будем осторожны, открывается редактор настроек. Ищем настройку mail.accountmanager.accounts. Её значение имеет вид account1,account2,account3. Это и есть порядок учётных записей. Например, если нужно чтобы последняя учётная запись стала первой, то необходимо изменить значение этой настройки на account3,account1,account2.

    Вариант 2. Выходим из Thunderbird, переходим в директорию с профайлом, находим там файл prefs.js, открываем его любым текстовым редактором, находим в этом файле строку вида:
    user_pref("mail.accountmanager.accounts", "account1,account2,account3");
    и меняем порядок следования account-ов на требуемый. Например, если нужно чтобы последняя учётная запись стала первой, то необходимо изменить эту строку на:
    user_pref("mail.accountmanager.accounts", "account3,account1,account2");
    Сайт Thunderbird: https://www.mozilla.org/en-US/thunderbird/

    Данный текст доступен по лицензии Creative Commons Attribution (CC BY)

    вторник, 22 декабря 2015 г.

    Как убедиться в том, что измененная типовая конфигурация 1С обновлена успешно?

    Как убедиться, что измененную типовую конфигурацию мы обновили успешно и ничего не отвалилилось?
    Итак, после обновления у нас есть 4 cf-ника:
    1. ПоставщикСтарая - старая конфигурация поставщика; 
    2. ПоставщикНовая - новая конфигурация поставщика - та, на которую обновляли; 
    3. ОсновнаяСтарая - измененная конфигурация, по сути это ПоставщикСтарая с нашими изменениями; 
    4. ОсновнаяНовая - то, что получилось после обновления ОсновнаяСтарая с помощью ПоставщикНовая. 
    Теперь в двух конфигураторах сравниваем попарно:
    1. ПоставщикСтарая и ПоставщикНовая; 
    2. ОсновнаяСтарая и ОсновнаяНовая. 
    Для каждого сравнения конфигураций формируем полный "Отчет о сравнении объектов..." (для всех объектов конфигурации) в формате "Подробно", с подчиненными объектами метаданных:
     

    и сохраняем эти отчеты в текстовые файлы. Эти два текстовых файла сравниваем с помощью любой сравнивалки текста (я использую WinMerge).
    Так вот - не считая технической информации, такой как номера строк с изменным/удаленным кодом и т.п., эти файлы НЕ ДОЛЖНЫ ОТЛИЧАТЬСЯ! Потому что оба отчёта показывают одно и то же - разницу, которую добавила в конфигурацию 1С.

    После этого сравниваем попарно:
    1. ПоставщикСтарая и ОсновнаяСтарая; 
    2. ПоставщикНовая и ОсновнаяНовая. 
    Аналогично сохраняем отчеты о сравнении в текстовые файлы и сравниваем эти текстовые файлы. Они тоже НЕ ДОЛЖНЫ ОТЛИЧАТЬСЯ! Потому что оба отчёта показывают одно и то же - разницу, которую добавили в конфигурацию мы.

    Если что-то отличается (помимо технической информации) - значит или не накатили какое-то изменение из типовой, или затерли какое-то своё изменение.

    P.S. Чтобы убрать из отчетов о сравнении неинформативный хлам (такой как номера строк с изменным/удаленным кодом и т.п.), можно выполнить в текстовых файлах с отчетами следующие замены по регекспам:
    1. Заменить:
    ^(\s*)Объект присутствует только в(.+) конфигурации: \d+ - \d+$
    на:
    $1Объект присутствует только в$2 конфигурации: N - N

    2. Заменить:
    ^(\s*)Изменено: \d+ - \d+$
    на:
    $1Изменено: N - N

    P.P.S. Эти замены можно выполнить с помощью следующего макроса для Notepad++ (добавить в %appdata%\Notepad++\shortcuts.xml в раздел <Macros>...</Macros>)
    <Macro name="&#x041E;&#x0431;&#x0440;&#x0430;&#x0431;&#x043E;&#x0442;&#x043A;&#x0430;&#x041E;&#x0442;&#x0447;&#x0435;&#x0442;&#x0430;&#x041E;&#x0421;&#x0440;&#x0430;&#x0432;&#x043D;&#x0435;&#x043D;&#x0438;&#x0438;" Ctrl="no" Alt="no" Shift="no" Key="0">
      <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
      <Action type="3" message="1601" wParam="0" lParam="0" sParam="^(\s*)&#x041E;&#x0431;&#x044A;&#x0435;&#x043A;&#x0442; &#x043F;&#x0440;&#x0438;&#x0441;&#x0443;&#x0442;&#x0441;&#x0442;&#x0432;&#x0443;&#x0435;&#x0442; &#x0442;&#x043E;&#x043B;&#x044C;&#x043A;&#x043E; &#x0432;(.+) &#x043A;&#x043E;&#x043D;&#x0444;&#x0438;&#x0433;&#x0443;&#x0440;&#x0430;&#x0446;&#x0438;&#x0438;: \d+ - \d+$" />
      <Action type="3" message="1625" wParam="0" lParam="2" sParam="" />
      <Action type="3" message="1602" wParam="0" lParam="0" sParam="$1&#x041E;&#x0431;&#x044A;&#x0435;&#x043A;&#x0442; &#x043F;&#x0440;&#x0438;&#x0441;&#x0443;&#x0442;&#x0441;&#x0442;&#x0432;&#x0443;&#x0435;&#x0442; &#x0442;&#x043E;&#x043B;&#x044C;&#x043A;&#x043E; &#x0432;$2 &#x043A;&#x043E;&#x043D;&#x0444;&#x0438;&#x0433;&#x0443;&#x0440;&#x0430;&#x0446;&#x0438;&#x0438;: N - N" />
      <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
      <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
      <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
      <Action type="3" message="1601" wParam="0" lParam="0" sParam="^(\s*)&#x0418;&#x0437;&#x043C;&#x0435;&#x043D;&#x0435;&#x043D;&#x043E;: \d+ - \d+$" />
      <Action type="3" message="1625" wParam="0" lParam="2" sParam="" />
      <Action type="3" message="1602" wParam="0" lParam="0" sParam="$1&#x0418;&#x0437;&#x043C;&#x0435;&#x043D;&#x0435;&#x043D;&#x043E;: N - N" />
      <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
      <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
    </Macro>
    

    четверг, 29 октября 2015 г.

    Вывод статуса задач BOINC в терминале Linux

    Чтобы контролировать ход вычислений в BOINC можно выполнить следующую команду в терминале:
    watch -n 5 "boinccmd --get_tasks | grep -e '\(fraction done:\)\|\(project URL:\)\|\(active_task_state\)\|\(estimated CPU\)\|\(current CPU time\)\|\(---\)'"
    При этом на экран будет выведена (и будет обновляться каждые 5 секунд) информация, подобная этой:
    1) -----------
       project URL: http://sat.isa.ru/pdsat/
       final CPU time: 0.000000
       active_task_state: EXECUTING
       checkpoint CPU time: 29928.380000
       current CPU time: 30554.660000
       fraction done: 0.833333
       estimated CPU time remaining: 3773.624642
    2) -----------
       project URL: http://sat.isa.ru/pdsat/
       final CPU time: 0.000000
       active_task_state: EXECUTING
       checkpoint CPU time: 14886.500000
       current CPU time: 15626.640000
       fraction done: 0.433333
       estimated CPU time remaining: 12963.986928
    3) -----------
       project URL: http://www.worldcommunitygrid.org/
       final CPU time: 0.000000
       active_task_state: UNINITIALIZED
       checkpoint CPU time: 0.000000
       current CPU time: 0.000000
       fraction done: 0.000000
       estimated CPU time remaining: 81226.112086
    Если BOINC запускается на отдельном сервере (или в отдельной виртуалке), то для автоматического запуска предыдущей команды можно добавить в .bashrc следующий код:
    if [ $(tty) == "/dev/tty1" ]; then
      watch -n 5 "boinccmd --get_tasks | grep -e '\(fraction done:\)\|\(project URL:\)\|\(active_task_state\)\|\(estimated CPU\)\|\(current CPU time\)\|\(---\)'"
    fi
    Сайт проекта BOINC: https://boinc.berkeley.edu/

    Данный текст доступен по лицензии Creative Commons Attribution (CC BY)

    среда, 26 августа 2015 г.

    Загрузка Tails с помощью Grub2 из iso-файла на жестком диске

    Проверялось на Tails 1.5 x86_64.
    Дописываем в /etc/grub.d/40_custom:
    menuentry "Tails 1.5 x86_64 ISO" --class tails --class gnu-linux --class gnu --class os {
     set isofile=var/download/tails-i386-1.5/tails-i386-1.5.iso
     loopback loop (hd0,2)/$isofile
     linux (loop)/live/vmlinuz2 boot=live config findiso=$isofile apparmor=1 security=apparmor nopersistent noprompt timezone=Etc/UTC block.events_dfl_poll_msecs=1000 splash noautologin module=Tails  noapic noapm nodma nomce nolapic nomodeset nosmp vga=normal
     initrd (loop)/live/initrd2.img
    }
    
    при этом заменяем "(hd0,2)" на номер диска и раздела, на котором лежит iso-образ Tails, а "var/download/tails-i386-1.5/tails-i386-1.5.iso" заменяем на путь к файлу образа относительно корня этого раздела (обратите внимание, что слэш "/" в начале пути НЕ УКАЗЫВАЕМ!). После этого выполняем
    в Ubuntu:
    $ sudo update-grub2
    в Fedora:
    $ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
    и перезагружаемся. В меню Grub2 должен появиться новый пункт "Tails 1.5 x86_64 ISO" для загрузки Tails.
    Примечания:
    • Параметры загрузки взяты из <tails-i386-1.5.iso>/isolinux/live.cfg (раздел "label live-amd64"). Там же можно посмотреть параметры для загрузки в 32-хразрядном режиме (раздел "label live").
    • Вместо опции findiso=$isofile можно указать опцию fromiso=/dev/disk/by-uuid/3cb868a1-260e-45d0-a1c9-b42d09ff2aa3/$isofile (или fromiso=/dev/sda2/$isofile), заменив UUID (или название) раздела диска на свой.
    P.S. Немного не в тему, но где-то надо было написать... Для запуска из iso-файла DoudouLinux 2.1 Hyperborea можно попробовать такой вариант (у меня работает только в виртуалке, а на десктопе зависает в процессе загрузки; впрочем, он зависает на этом же месте и при загрузке с usb-флешки, так что проблема скорее всего не параметрах загрузки, а в чём-то другом; разбираться пока времени нет):
    menuentry "DoudouLinux 2.1 ISO" --class doudoulinux --class gnu-linux --class gnu --class os {
     set isofile=var/download/doudoulinux-hyperborea-2.1-ru.iso
     loopback loop (hd0,2)/$isofile
     linux (loop)/live/vmlinuz findiso=$isofile boot=live config locales=ru_RU.UTF-8 keyboard-layouts=ru,us keyboard-variant=oss,, keyboard-options=grp:alt_shift_toggle,lv3:ralt_switch,compose:menu,terminate:ctrl_alt_bksp utc=no timezone=Europe/Moscow nox11autologin nomodeset video=uvesafb:mode_option=640x480-16,mtrr=3,scroll=ywrap username=tux hostname=doudoulinux
     initrd (loop)/live/initrd.img
    }
    
    Сайт Tails: https://tails.boum.org/
    Сайт DoudouLinux: http://www.doudoulinux.org/

    Данный текст доступен по лицензии Creative Commons Attribution (CC BY)

    вторник, 18 августа 2015 г.

    Выгрузка из 1С:Бухгалтерия декларации по НДС, содержащей ошибки

    Проверялось на: 1С:Бухгалтерия 2.0.64.31.
    1С:Бухгалтерия не даёт выгрузить декларацию по НДС, в которой есть ошибки. Чтобы обойти это справедливое, но не всегда нужное ограничение, можно воспользоваться описанным ниже способом.
    1. Читаем http://kb.mista.ru/article.php?id=105, создаем обработку Отладка.epf, в модуле которой пишем код: 
      Функция Присвоить(А, Б) Экспорт
        А = Б;
        Возврат А;
      КонецФункции
    2. Запускаем Конфигуратор, находим в дереве конфигурации отчет РегламентированныйОтчетНДС, открываем форму ФормаОтчета2015Кв1, переходим в текст модуля формы и ставим точку остановка в функции Функция ВыгрузкаВозможна(Параметры)  на последнем операторе "Возврат СтатусПроверки;".
    3. Запускаем 1С:Предприятие в режиме отладки, заходим в Регламентированную отчетность, запускаем выгрузку декларации по НДС. Срабатывает точка останова.
    4. Переходим в Конфигуратор, нажимаем Shift+F9 ("Вычислить выражение..."), в поле "Выражение" пишем (всё одна строка):
      ВнешниеОбработки.Создать("C:\Путь\Куда\Сохранили\Обработку\Отладка.epf").Присвоить(СтатусПроверки, Истина)
      и нажимаем кнопку "Рассчитать". После этого закрываем окно "Вычислить выражение..." и по кнопке F5 ("Продолжить отладку") продолжаем выполнение кода.
    5. Профит!
    Лучше один раз увидеть, чем сто раз услышать (скриншот):


    P.S. Если есть возможность вносить изменения в конфигурацию, то можно просто временно поменять "Возврат СтатусПроверки;" на "Возврат Истина;".

    Данный текст доступен по лицензии Creative Commons Attribution (CC BY)