1. Автоматизация letsencrypt.sh
/usr/local/etc/letsencrypt.sh/domains.txt список MX доменов, через пробел.
/usr/local/etc/letsencrypt.sh/config.sh добавляем вызов внешнего скрипта:
HOOK=${BASEDIR}/hook.sh
Даем права на выполнения скрипта:
root# chmod 750 /usr/local/etc/letsencrypt.sh/hook.sh
Правим функцию deploy_cert в файле /usr/local/etc/letsencrypt.sh/hook.sh:
function deploy_cert {
local DOMAIN="${1}" KEYFILE="${2}" CERTFILE="${3}" FULLCHAINFILE="${4}" CHAINFILE="${5}" TIMESTAMP="${6}"
TLS_DHPARAMS="/usr/local/etc/letsencrypt.sh/dhparams.pem"
if test ! -f $TLS_DHPARAMS
then
/usr/bin/openssl dhparam -outform PEM 4096 > "$TLS_DHPARAMS"
fi
cat "${FULLCHAINFILE}" "${KEYFILE}" "$TLS_DHPARAMS" > "/usr/local/etc/letsencrypt.sh/certs/${DOMAIN}/combined.pem"
}
Обновляемся:
root# /usr/local/bin/letsencrypt.sh -c
2. Настройка courier-imap
Правим конфигурационные фалы связанные с ssl:
/usr/local/etc/courier-imap/imapd-ssl
/usr/local/etc/courier-imap/pop3d-ssl
TLS_CERTFILE=/usr/local/etc/letsencrypt.sh/certs/mx/combined.pem
TLS_DHPARAMS=/usr/local/etc/letsencrypt.sh/dhparams.pem
3. Настройка postfix
Правим конфигурационный файл:
/usr/local/etc/postfix/main.cf
smtpd_tls_cert_file= /usr/local/etc/letsencrypt.sh/certs/mx/cert.pem
smtpd_tls_key_file= /usr/local/etc/letsencrypt.sh/certs/mx/privkey.pem
4. Перегружаем демоны
root# /usr/local/etc/rc.d/courier-imap-imapd-ssl restart
root# /usr/local/etc/rc.d/courier-imap-pop3d-ssl restart
root# /usr/local/etc/rc.d/postfix restart
Поломали демоны сохранение экрана. Старый рецепт в виде патча не работает.
--- lib/tty/tty-ncurses.c.orig<>2016-05-07 15:42:52 UTC
+++ lib/tty/tty-ncurses.c
@@ -233,7 +233,7 @@ tty_shutdown (void)
void
tty_enter_ca_mode (void)
{
- if (mc_global.tty.xterm_flag && smcup != NULL)
+ if (mc_global.tty.xterm_flag)
{
fprintf (stdout, /* ESC_STR ")0" */ ESC_STR "7" ESC_STR "[?47h");
fflush (stdout);
@@ -245,7 +245,7 @@ tty_enter_ca_mode (void)
void
tty_exit_ca_mode (void)
{
- if (mc_global.tty.xterm_flag && rmcup != NULL)
+ if (mc_global.tty.xterm_flag)
{
fprintf (stdout, ESC_STR "[?47l" ESC_STR "8" ESC_STR "[m");
fflush (stdout);
Вариант 1
Самое простое лечение для админа /etc/termcap:
3010 # This is the only entry which you should have to customize, since "xterm"
3011 # is widely used for a variety of incompatible terminal emulations including
3012 # color_xterm and rxvt.
3013 xterm|X11 terminal emulator:\
3014 <------>:te=\E[?1049l:ti=\E[?1049h:\
3015 <------>:tc=xterm-new:
3016 #<----->:tc=xterm-r6:
Добавляем строчку 3014 и перестраиваем базу.
root# cap_mkdb -f /usr/share/misc/termcap /etc/termcap
Вариант 2
Меняем в клиенте тип терминала, на примере putty:

на:
xterm-clear
Для исправление проблем с клавиатурой, в настройках Midnight Commander /usr/local/share/mc/mc.lib добавляем:
...
[terminal:xterm-clear]
copy=xterm
server {
...
if ($time_iso8601 ~ "^(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})")
{
access_log /var/log/www/https.$year-$month.access.log main_format;
}
...
}
При сборке ядра получил ошибку
buildkernel config: illegal option — I
Лекарство:
cd /usr/src&&/usr/bin/make kernel-toolchain
Вот давно уже казалось прошла пора руссификаторов и отсутствие кириллицы в наборе символов, а нет, так только кажется.
Решил провести эксперимент с выводом русского текста на китайский текстовый LCD.
В голову сразу пришло несколько идей.
Ограничимся выводом прописных букв без ъ и ё.
Вот тестовая панграмма:
В ЧАЩАХ ЮГА ЖИЛ БЫ ЦИТРУС? ДА, НО ФАЛЬШИВЫЙ ЭКЗЕМПЛЯР!
1) Исходная панграмма
2) Транслировать использовать транслитерацию;
3) Использовать МТК2 кодировку;
4) Использовать ассоциативные буквы;
5) Комбинация 2-го и 4-го пункта;
6) Модифицированный вариант пункта 2;
7) Представьте, что человек какие-то буквы не выговаривает, а потом мы это кодируем как в 6-ом пункте.
1. В ЧАЩАХ ЮГА ЖИЛ БЫ ЦИТРУС? ДА, НО ФАЛЬШИВЫЙ ЭКЗЕМПЛЯР!
2. V CHASHAH YUGA ZHIL BY CITRUS? DA, NO FAL'SHIVY' EKZEMPLYAR!
3. W 4AGAH JGA VIL BY CITRUS? DA, NO FALXGIWYJ FKZEMPLQR!
4. B 4AWAX OTA RUA 6B QUTPYC? DA, HO OAABWUBBU JK3EMOAZP!
5. B 4AWAX UGA JIL BY CUTPYC? DA, HO FAL'WUBIY EK3EMPLAP!
6. V 4AWAH UGA JIL BY CITRUS? DA, NO FAL'WIVIY EK3EMPLAR!
7. V 4AHAH UGA JIL BY CITRUS? DA, NO FAL'HIVIY EK3EMPLAR!
Вообще склоняюсь к тому, что если есть поддержка несколько языков на устройстве, добавьте еще один, русский в транслитерации, и будет вам счастье.
Решил проверить экран. Подключил, горит синим и на нем ничего не появляется. Попробовал разные приложения, результат 0.
Давай разбираться, а дело оказалось в простой экономии на резисторах. Среднее положение регулятора контрастности на плате не давало даже намека на индикацию.
Да, да, именно тесто.
Опишу 5 видов замеса, основных 3 — традиционный или короткий, интенсивный и улучшенный.
1. Традиционный или короткий – это замес при минимальных энергозатратах на минимальной скорости, имитирующий старинный ручной замес, когда было очень трудно или почти невозможно ввиду отсутствия чрезмерной физической силы хорошо развить глютен. Поэтому для завершения этого процесса, применяли еще и длительное брожение.
Количество дрожжей в тесте минимальное, глютен плохо развит и чтобы это исправить необходимо сделать во время последующего брожения 2-4 опускания. Тесто замешивать достаточно мягкой консистенции. Традиционный замес очень мало окисляет хлебную массу, из-за чего мякиш получается ярко выраженного кремового цвета, клеточная структуру мякиша остается открытой и нерегулярной.
2. Интенсивный замес — длительный интенсивный замес на второй скорости с коротким интервалом брожения. При интенсивном замесе все составляющие вводятся на 1-ой скорости, а оптимальное развитие масса получает уже на 2-ой скорости. Длительный замес настолько насыщает тесто кислородом, что такое окисление доводит цвет мякиша до неправдоподобного белого цвета. Хлеб, сделанный по этой технике, не обладает богатым вкусом, да и черствеет он гораздо быстрее.
3. Замес улучшенный — с одной стороны, решает задачу изготовления как можно больше хлеба, а с другой стороны, позволяет добиться — улучшить вкусовые качества.
Все составляющие вносят на 1-ой скорости и, собственно замес, уже производят на 2-ой скорости, но не до полного развития глютена, а только на 3/4. Затем тесто хорошо выбраживают.
Из-за относительно небольшого времени замеса, получает мякиш красивого кремового цвета с открытой структурой, благодаря длительному брожению — насыщенный вкус и неплохие сроки хранения.
4. Замес с аутолизом — сперва смешивают два основных компонента т.е. воду и муку в течение 4…5 мин и затем оставляют массу в покое на 15…60 мин, после чего добавляют остальные составляющие и замешивают тесто на второй (быстрой) скорости в течение 12…15 мин. Такой метод избирают чаще всего в том случае, если хотят заметно улучшить показатели муки.
5. Замес двойной гидратации — с большим процентом воды по отношению к муке. При двойной гидратации — часть воды (примерно 60%) вводится в начале замеса и замешивается тесто средней консистенции до хорошего развития глютена. Затем, точнее в конце процесса, вводится оставшаяся водa небольшими порциями.
Ну и напоследок, при механическом замесе теста необходимо обращать внимание на базовую температуру. Но про это как нибудь в другой раз.
При обзвоне случайным образом переставал проигрываться звуковой файл. В консоль выдавалось предупреждение о том, что невозможно подобрать нужный кодек.
В ходе отладки выяснилось, что структура в стеке не была инициализирована в коде.
Лечится просто, нужно отключить оптимизацию кода.
--- build_tools/cflags.xml.orign 2014-04-11 05:33:03.000000000 +0400
+++ build_tools/cflags.xml 2015-08-05 13:50:56.000000000 +0300
@@ -1,5 +1,6 @@
<category name="MENUSELECT_CFLAGS" displayname="Compiler Flags" positive_output="yes" remove_on_change=".lastclean">
<member name="DONT_OPTIMIZE" displayname="Disable Optimizations by the Compiler">
+ <defaultenabled>no</defaultenabled>
<support_level>core</support_level>
</member> <member name="DEBUG_THREADS" displayname="Enable Thread Debugging">
Случайным образом на Asteriskе пропадает звук. Симптомы простые, отправляется только один, первый rtp пакет, а дальше тишина.
Лечится перезапуском приложения.
Причину удалось локализовать случайно, переставал работать DAHDI таймер.
Проверяется командой:
timing test
Пришлось отказаться от его использования.
Как-то очень давно разбирался с mc который почему-то после обновления перестал выводить на консоль результат выполнения скриптов после Ctrl+o.
Дело оказалось в escape последовательности управления терминала, в mc изменили команды сохранения и восстановления данных. Через пару месяцев пропатчили порты и все забылось.
Прошло два года и всплыли те-же грабли, кто знает, когда мы опять на них наступим.