Відео про Org-Mode українською (20 хв):
Зберігання паролів у Emacs
Ми реєструємось на безлічі Інтернетних ресурсів, і бажано на кожному із них використовувати відмінний від инших пароль. Тут ми опишемо як можна організувати зручну й незалежну від вебної переглядалки базу з паролями в простому текстовому файлі, зашифрованому через GPG, і зручно користуватись нею в Emacs.
Для цього треба:
- Мати або створити власну пару ключів GPG;
- Створити файл налаштування forms-mode
- Написати функції, які б дозволили легко здійснювати пошук у базі і додавати до неї записи.
WordPress: грати всі долучення
Нещодавно мені закортіло написати короткий код (shortcode) для вставляння програвача з переліком всіх долучених до публікації аудіофрагментів.
Тобто, я хочу до даної публікації доліпити кілька mp3 файлів, підписати їх і у публікації використати якийсь короткий код… Словом, нижче.
У файлі functions.php дописуємо таке:
function get_player( $post ) { $urls = array(); $titles = array(); $artists = array(); $attachments = get_children( array('post_parent' => $post->ID, 'post_type' => 'attachment', 'post_mime_type' => 'audio/mpeg', 'order_by' => 'menu_order', 'order' => 'ASC')); if( $attachments ) { foreach ( $attachments as $att_id => $att ) { // allow non-latin chars in file names: $url = wp_get_attachment_url($att_id); $url = preg_replace('#(.*/)([^/]*)$#e', "'\\1'.rawurlencode('\\2')", $url); $url = rawurlencode( $url ); $urls[] = $url; $title = rawurlencode( str_replace(",", ":", $att->post_title) ); $titles[] = $title; } $player_id = 'audioplayer-' . $post->ID; $player = '<p class="audioplayer_container"><div class="np-audioplayer" id="'. $player_id .'">(No Adobe Flash Player?..)</div></p>' . "\n" . '<script type="text/javascript">' . "\n" . ' AudioPlayer.embed("' . $player_id . "\", {\n" . ' soundFile: "' . implode(",", $urls) . "\" // ,\n" . ' titles: "' . implode(",", $titles) . "\"\n" . " });\n" . "</script>\n"; return $player; } return false; } function playall( $atts ) { global $post; return get_player($post); } add_shortcode( "playall", "playall" );
Після цього ми можемо у тілі повідомлення написати [playall]. Ось тут — невеличка демонстрація.
Чому двічі rawurlencode? Не знаю
До речі, у налаштуваннях вордпресівського Audio Player’а треба вимкнути «криптування» посилань.
bc як конвертор основи
Утиліту bc (an arbitrary precision calculator language) можна досить зручно використовувати для конвертування чисел між основами, в тому числі у скриптах:
$ echo "ibase=16; obase=2; 5F" | bc 1011111 $ echo "ibase=16; obase=8; 32" | bc 62 $ echo "ibase=10; obase=4; 12" | bc 30
Може, комусь і згодиться.
Календар нашвидкуруч
- Запускаємо inkscape. Розгортаємо на весь екран, натискаємо п’ятірку («вписати документ у вікно»).
- Додатки –> Відтворити –> Календар
- На закладці «Локалізація» вписуємо назви місяців, днів тижня; на закладці «Кольори» можемо експериментувати з кольорами. Вибираєте системне кодування:

- Натискаєте «Застосувати». Як бачите, вікно налаштувань не ховається; при цьому на календарі можна клацнути (виділити його), щоб редагувати, посунути, видалити тощо:

- Тобто, зараз календар можна видалити, змінити налаштування і знов натиснути «Застосувати».
О, до речі, у «Налаштуваннях» вибираємо понеділок як перший день тижня.
Blender: озеро
Хтось (Jonathan Esquivel) зробив дуже гарний, при тому не задовгий (12хв) швидкоплин (timelapse) створення озера у Blender:
Джерело: blendernation.com
ffmpeg: стрибки у входовому файлі
Якщо ви, так само як і я чи цей користувач, скориставшись параметром -ss у ffmpeg, довго чекаєте, поки програма стрибне у потрібне місце, або при тому отримуєте від неї помилки (чи навіть, як у мене, вона в певний момент перелазить через оперативку й помирає), поставте -ss перед -i.
Помилка-індикатор:
Buffering several frames is not supported. Please consume all available frames before adding a new one.
LilyPond: Нотоносець без ліній
У LilyPond є можливість друкувати ноти на невидимому нотному стані. Таке може стати в пригоді, наприклад, в навчальному процесі чи алеаторичній музиці. Ось як це робиться:
\override Staff.StaffSymbol #'transparent = ##t
Цю команду слід додати прямо перед нотами. Якщо ж Вам потрібно щоб невидимими стали й тактові риски, можете скористатись додатково ще такою командою:
\override Staff.BarLine #'transparent = ##t
Щоб відключити показ номерів тактів, слід додати блок
\layout {
\context {
\Score
\remove "Bar_number_engraver"
}
}
поза будь-якими блоками \score, або у якомусь із них, якщо потрібно це застосувати лише до одного розділу твору.
Більше про приховання окремих об’єктів читайте тут (англ.).
Запис екранного відео зі звуком з мікрофона (Gnu/Linux)
Нарешті знайшов придатний спосіб писати екранні відео. Якщо й у вашому дистрибутиві gtk-recordmydesktop та istanbul не працюють через якісь неузгодження з libtheora, цей допис може стати в пригоді. Що вам в такому випадку потрібно:
- екран, на якому працює X11;
- програми ffmpeg та arecord (ця, мабуть, вже є у вашій системі);
- текстовий редактор;
- термінал.
tcpdump: відсіювання HTTP GET
Уявимо себе адміністратором сервера, що перебуває під атакою–відплатою за EX.ua (одразу зауважу, що я не є таким адміністратором, у мене просто гарна уява).
У першу чергу, нам було би цікаво, що саме летить на нас, що саме «валить» наш сайт «із ніг».
Щоб довідатися, є різні способи — скажімо, дивитися журнал веб-сервера, дивитися трафік на сервері утилітою tcpdump чи подібною; можна на проміжному комутаторі відгалужувати трафік і дивитися його tcpdump’ом десь на іншому комп’ютері… Але, так чи інакше, завжди цікаво знайти найбільш універсальний інструмент.
На мій погляд, найбільш універсальним інструментом є саме tcpdump.
Одразу зауважу, що ми можемо «попрохати» tcpdump писати трафік у файл, кожні N секунд закривати файл і починати новий, а на щойно закритому виконувати певну дію (запускати скрипт) — таким чином ми можемо не лише збирати, а й у режимі «майже реального» часу аналізувати інформацію і виконувати певні дії. Це все вміє сам tcpdump, ми маємо лише все продумати і написати скрипти .)
Наприклад, може бути зручним використання утиліти fail2ban; але цей скрипт працює на одному ядрі і на гарно навантаженому сервері (яким, імовірно, є кожен сервер під атакою) почувається невпевнено. Але ми можемо суттєво полегшити йому життя, якщо не змушуватимемо читати журнал веб-сервера, а «згодовуватимемо» вже добре проаналізовану інформацію. Наприклад, із зібраної tcpdump’ом інформації відбирати адреси, з яких надходить більше X [кіло]запитів за одиницю часу.
Отже, tcpdump виглядить («має вигляд» — «виглядить», а не «виглядає»!) досить зручним інструментом. Тож спробуємо з його допомогою ловити лише HTTP GET пакети.
А тепер зазирнемо у нутрощі пакетів »