Поток под каждую строку создавать никакого смысла нет, они всё равно на экран выводить смогут только по очереди. А с поиском - полнотекстовый поиск в MyISAM базе, на мой взгляд, будет быстрее, чем чтение из файла и поиск в памяти.
Потому, что одноразовое действие можно представить как многоразовое со следующими атрибутами:
Частота повторений: один раз
Количество повторений: одно
День окончания = дню начала
Список дней недели - пустой
Сразу упрощается логика работы с базой.
Нормализация же базы - не самоцель, а одно из средств поддержания структурной целостности базы. Она не должна возводиться в абсолют и использоваться в ущерб остальному.
Я говорю не про Цели и Действия, а про Действия и Расписание. Если у каждого Действия может быть одно и только одно Расписание, то не надо создавать лишние сущности.
У Вас негибкая схема получается. Какие-то действия могут быть завязаны не только на день недели, но и на время, например посещение курсов. Действие при этом одно и то же, а вот время может быть разным, скажем пн, ср 18:00 и пт 17:30. По вашей схеме придётся создавать два действия, по моей - одно действие и два привязанных к нему расписания.
Попробовал на нескольких принтерах. Серый муар есть везде, его вид зависит от модели принтера, его настроек и программы, из которой печатать.
Проверил сканирование типографской страницы на Samsung SCX-4833FR, и в JPG и в TIFF такие же серые разводы, похоже что проблема не в печати, а в сканировании.
Проверил через tiffinfo - Compression Scheme: JPEG.
Проверил ваш скан - Compression Scheme: LZW.
Для проверки напечатал текст через PDW-writer в TIFF-файл, сравните как должен выглядеть настоящий TIFF (сверху), и как он выглядит на вашем скане (снизу). https://www.dropbox.com/s/ntbqocmpeqo2l5i/tiff.tif
@LAG_LAGbI4 По сканам очень похоже на низкий dpi в настройках принтера. При выключенной диффузии ошибки глубина серого имитируется примерно такой же регулярной матрицей.
> Поправьте если это не так, но весь голос должен идти через него.
Поправляю, если у обоих пользователей задано canreinvite=yes, то после дозвонки asterisk предложит клиентам общаться напрямую.