Малюємо коммитами на Гітхабі

[П'ятничне]
Завжди хотів зробити свій графік активності профілю користувача на Гітхабі. Наприклад, викладати коміти кожен день так, щоб через рік цей графік перетворився в якусь картинку, нехай і з обмеженням за розмірами в 52×7 квадратиків-пікселів (52 тижні в році × 7 днів у тижні).
Проблема була в тому, що навіть при повній автоматизації процесу все одно чекати цілий рік. А тут я почитав документацію Гитхаба і зрозумів, що завдання вирішується простіше і більш того — за один раз. А значить, треба робити не відкладаючи. Зазвичай назви проектів придумувати складно, але тут воно прийшло саме. Кай малював крижинками, а Герда малює коммитами!
Графік комітів на Гітхабі у вигляді картинки
Читати далі →

Маловідомі Git-команди



У Git є суворі зобов'язання щодо зворотної сумісності: багато просунуті можливості приховані за різноманітними опціями, а не застосовуються як поведінка за замовчуванням. На щастя, Git також підтримує і аліаси, так що ви можете створювати свої власні команди, які роблять всю характерну для Git магію. Під катом — добірка корисних (або як мінімум забавних) аліасів, визначених у моєму .gitconfig.

Читати далі →

Цікава математика командного рядка

Якщо ви користувач Linux, Free/Open BSD або іншої вільної ОС, є ймовірність, що інтерфейс командного рядка вам не чужий. У такому випадку можна використовувати командну оболонку для простих арифметичних дій. Для цього не потрібно встановлювати додаткових програм, все вже є в базовому наборі операційної системи. Вони дозволяють якісно замінити звичний калькулятор на столику рахівника.

Читати далі →

Як допомогти силам добра боротися зі спамом або DMARC на вашому сервері

В останні кілька років в Інтернет йде активне впровадження технології DMARC в якості інструменту для ефективної боротьби зі спамом.

Якщо не вдаватися в технічні деталі, з якими краще ознайомитися на спеціалізованих ресурсах, наприклад dmarc.org або з статей на Habrahabr, суть DMARC полягає в можливості, по-перше, грунтуючись на результатах перевірки SPF і DKIM повідомити сервера-одержувачу про дії, які слід вжити в разі виявлення проблем при їх перевірці, а, по-друге, отримати статистику і оперативні звіт про джерела надсилання повідомлень для даного домену.

Виходячи з вищевикладеного, завдання впровадження підтримки DMARC на конкретному сервері полягає у забезпеченні реалізації політики домену відправника на локальному рівні та відправлення аналітичних звітів в якості внеску в глобальний процес боротьби зі спамом.

Читати далі →

Yum, шпаргалка



Шпаргалка по роботі з пакетним менеджером Yum (Yellowdog Updater, Modified), який використовується в популярних Linux дистрибутиви: RedHat, CentOS, Scientific Linux (і інших). В цілях економії місця висновок команд не представлений.

Зміст
Команди
Опції Yum
Пакет Yum-Utils
Конфігураційні файли
Плагіни
Робота через проксі

Читати далі →

Паралельне виконання завдань і синхронізація з умовними змінними shell

Як синхронізувати паралельні шелл-процеси, використовуючи named pipes (FIFO-файли) в якості умовних змінних. Як виконати паралельно залежні завдань в топологічному порядку з мінімумом засобів: POSIX shell, mkfifo, POSIX kernel. Як паралельний запуск прискорює завантаження вбудованих систем і *BSD (rc-етап FreeBSD з 27 до 7 секунд) або старт додатків у спеціальних контейнерах Docker, LXC і jail. Це підвищує аптайм у відмовостійких кластерів Jet9.
Читати далі →

Unix shell: перші кроки

Навіщо і для кого стаття?
Спочатку це була пам'ятка для студентів, які починають працювати з unix-подібними системами. Іншими словами, стаття розрахована на тих, хто не має попереднього досвіду роботи в unix-овою командному рядку, але з тих чи інших причин хоче або повинен навчитися ефективно з нею взаємодіяти.

Тут не буде переказу манів (документації), і стаття ніяк не відміняє і не замінює їх читання. Замість цього я розповім про головних речах (командах, прийоми та принципи), які треба усвідомити з самого початку роботи в unix shell-е, щоб робота відбувалася ефективно і приємно.

Стаття стосується повноцінних unix-подібних середовищ, з повнофункціональним шеллом (переважно zsh або bash)і досить широким набором стандартних програм.


Читати далі →

Взаимодейтсвие Java і Shell-скриптів в Android

Так склалося, що в моєму поточному проекті необхідно було реалізувати виконання shell-скриптів прямо з коду.

Для того, щоб увійти в курс справи, раджу вам прочитати цю статтю: Shell-скриптінг в середовищі Android

У ній дуже добре описані можливості мови Shell, однак мені крім самих скриптів потрібно було виконувати методи Java.

Читати далі →

Створення додатки розширеним модулями - легко з допомогою фреймворку Orchestra

додаток, розширюване плагінамиДля того, щоб створити програму на C#, функціональність якого можна легко розширити за допомогою плагінів, потрібно багато знань, таких як композиція з допомогою контейнерів Mef, Unity або інших контейнерів, технології обміну даними між програмами, підібрати зручну структуру і приправити це зручної логікою взаємодії між програмою і плагінами, і між плагінами один з одним.
Щоб сильно полегшити собі роботу по створенню розширюваного програми і самих плагінів для нього, ознайомтеся і скористайтеся безкоштовним фреймворком з відкритим вихідним кодом, який називається Orchestra і перебуває за цією адресою.
image
Якщо порівнювати організацію програми з тим, як це організовано в живому організмі, то маємо центральну частину (оболонка Shell в Orchestra, мозок у організму) і підключаються модулі (плагіни в Orchestra; юшки, ноги, вуха, очі організму). Звичайно юшки, ноги, очі не так просто відключити від організму як плагіни від програми, але наприклад до мозку мавпи підключали механічну руку і вона їй успішно управляла, але це так наприклад що це порівняння має право на життя.

Читати далі →

Fucky new year!

Вибачте за мат в заголовку, це натяк на розвагу, початок якому дав мову «Брейнфак» — написати на якій-небудь мові код, який виконує щось розумне, не використовуючи букв і цифр. Ми вже бачили JSFuck, PHPFuck, тепер я вам хочу представити Bashfuck:

__=${_##*/};____=<(:);___=${__#???};_____=$((${#___}<<${#___}))
__=${__::-${#___}}${____:$_____:${#___}}
__=$__$((${#__}|$_____))$((${#__}));___=$___${__:${#___}:${#___}};____=$($__<<<$_____|$__)
_____=${____:$((${#__}-${#___})):${#?}};___=$___$_____$_____;____=$($__<<<$____|$__|$__)
___=$___${____:$((${#?}+${#__})):${#?}};___=$___' '${____:$((${#___}+${#___})):${#?}}
___=$___${__:$((${#____}/${#___}-${#?})):${#?}};___=$___${____:$((${#____}#$_____-${#___})):${#?}}
___=$___\ ${____:$((${#__}+${#?})):${#?}}${__:$((${#__}>>${#?})):${#?}}${__:${#_____}:${#?}}
___=$___${____:$((${#___}-${#?}-${#?})):${#?}};___=${___,,}
____=${____:$((${#___}+${#__}-${#?})):$((${#?}+${#?}))}
____=${____::${#?}}${__:${#_____}:${#?}}${____:${#?}};${____,,}<<<${___^}

Для запуску потрібно «Баш» четвертою версії. Нічого шкідливого скрипт не робить сміливо запускайте з-під «рута», просто виведе напис «Happy new year».

Читати далі →