жарт дня… ні, місяця!

і місяця ще не минуло — і тут таке… трапляється, звісно. але «природа» на щось натякає, можливо?

=D
цей простенький скрипт обирає і друкує один випадковий рядок з текстового файлу:



зручно використовувати разом з cowsay:

quote wisdom.txt | cowsay -f beavis.zen

залишилося зберегти збірку цитат (бажано дурнуватих) до wisdom.txt.


велика проблема з попереднім скриптом для стиснення pdf у тім, що imagemagick конвертує всю сторінку в jpeg (або інший графічний формат), і повністю втрачає текстову інформацію — інструменти пошуку та  копіювання тексту не працюватимуть в конвертованих файлах. тож я задумався…

…і накидав інший невеличкий скрипт, який використовує ghostscript замість imagemagick:



за замовчуванням скрипт намагається перекомпресувати усі файли pdf (*.pdf) у поточній теці, але приймає також маску (в лапках!) як єдиний параметр: gspdfs "file*.pdf".

випробував цей та попередній скрипти на кількох pdf'ах: текстовому, відсканованому (ч/б), графічному (кольорова плоска графіка) та фото — результати на знятку.
побачив на форумі manjaro питаннячко: як стиснути (точніше, перекомпресувати для зменшення розміру) велику кількість файлів pdf, не витрачаючи час на завантаження до онлайнового сервісу на кшталт ilovepdf?

таку магію робить утиліта comvert з пакету imagemagic:

convert -density 150x150 -quality 30 -compress jpeg input.pdf output.pdf

треба тільки «загорнути» цю команду в цикл і перебрати всі pdf'и в поточній теці:



цей скрипт намагається перекомпресувати всі файли pdf у поточній теці, але не перезаписує їх, а створює файли *_recompressed.pdf, інформуючи про хід справи.
невелика нотатка собі на згадку: однорядкова «запускалка» компіляції та виконання вправ з c#, що ми їх клепаємо десятками зараз в коледжі:

id=4.12 ; mcs exercice${id}.cs && (mono exercice${id}.exe ; rm exercice${id}.exe)

файли з вихідними текстами всі нумерую за розділом на номером, наприклад: розділ 4, вправа 12: exercice4.12.cs.

якщо набрати команду раз — згодом елементарно знайти в історії та повторити, змінивши тільки id. вправа компілюється (mcs), і якщо відкомпілювалася успішно — виконується (mono) і після завершення непотрібний мені файл exe видаляється (rm).