Skip to content

Instantly share code, notes, and snippets.

View denysdovhan's full-sized avatar
👨‍💻
Working for @wix

Denys Dovhan denysdovhan

👨‍💻
Working for @wix
View GitHub Profile
@denysdovhan
denysdovhan / codeguida-dotfiles.md
Created April 25, 2015 07:04
Філософія Dotfiles

Філософія Dotfiles

Привіт космонавти! Сьогодні горю бажанням розповісти вам про таке явище як Dotfiles (Примітка: дотфайли, файли з крапками). Якщо ви не читали мою попередню статтю про Bash, то наполегливо рекомендую вам її прочитати, адже там викладені базові поняття, без яких буде важко ґрунтовно розібратись в поняттях, про які далі піде мова. В цій статті я розповім про практичне застосування тієї теорії, яку я виклав в моєму конспекті.

Передісторія

Коли я прийшов в світ *nix-систем і відкрив для себе такий потужний інструмент як Bash, відразу прийшло бажання зробити щось, щоб полегшило моє життя. Тим більше яжпрограміст, а це означає, що я повинен лише думати, а програма повинна виконувати за мене чорну роботу. Сказано - зроблено. Кілька тижнів роздумів та чернеток в пісочниці і я почав писати свою надбудову над файлом ~/.bashrc, який в *nix-системах містить налаштування командної оболонки для користувача.

Поступово назбиралось достатньо велика амор

@denysdovhan
denysdovhan / sh_stats.sh
Last active August 29, 2015 14:21 — forked from A/sh_stats.sh
sh_stats () {
fc -l 1 | awk '{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n20
}
// Парсер Less вміє виконувати JavaScript-код, що зберігається в змінних.
// Тут невеликий приклад, як можна поєднувати less та js.
// Якийсь колір від балди, щоб продемонструвати інтерполяцію
@color: #dead00;
// Ще для одного прикладу інтерполяції
@foo: 10;

@-правила CSS

Переклад статті Джеффа Грема на CSS-Tricks від 12 травня 2015.

@-правила це оператори, що вказують CSS на інструкції щодо виконання та поводження. Кожен оператор починається символом @, що слідує перед одним із доступних ключових слів, які є ідентифікаторами того, що CSS слід робити. Такий загальний синтаксис, хоча кожне @-правило має свої варіації.

Регулярні правила

Регулярними є правила, які відповідають наступному синтаксису:

@denysdovhan
denysdovhan / bash-tutorial.md
Last active November 13, 2015 17:44
Конспект по Bash

Конспект по Bash

Якщо ви працюєте в ІТ, то як ніхто знаєте про ціну часу. Оптимізація робочого процесу - один з найважливіших аспектів роботи в ІТ. Так чи інакше, наша робота (будь то верстка сайту, написання модулів, чи тестування додатків) вимагає повторення одних і тих самих дій: швидкі скріншоти з завантаженням на сервер, обробка виділеного тексту, конвертація файлів, парсинг данних та багато іншого. Аби не робити зайвих дій, а сконцентруватись на ідеї та самій суті її реалізації, ще в 1978 році Стівен Борн розробив командну оболонку [sh][wiki-sh], яка згодом, в 1987 році була вдосконалена Браяном Фоксом і переросла в те, що ми знаємо сьогодні як [bash][wiki-bash] (Bourne again shell).

Цілком логічно, що з’являється запитання: "Для чого мені потрібне щось, що написали майже півстоліття тому?" Так от відповідь на нього проста: це "щось" дотепер є найпотужнішим інструментом автоматизації та, де-факто, стандартом для написання простих, але ефективних сценаріїв на всіх unix-based системах. Саме тому знати

@denysdovhan
denysdovhan / pr.md
Created March 13, 2016 12:33 — forked from piscisaureus/pr.md
Checkout github pull requests locally

Locate the section for your github remote in the .git/config file. It looks like this:

[remote "origin"]
	fetch = +refs/heads/*:refs/remotes/origin/*
	url = git@github.com:joyent/node.git

Now add the line fetch = +refs/pull/*/head:refs/remotes/origin/pr/* to this section. Obviously, change the github url to match your project's URL. It ends up looking like this:

@denysdovhan
denysdovhan / file.js
Last active March 26, 2016 15:08
JS Functions Container
console.log('This is test.js');
console.log(scope.passed);
@denysdovhan
denysdovhan / battery.zsh
Created February 1, 2016 09:31
ZSH Battery Prompt
###################################
# .zsh/functions/battery_percent
###################################
LAST_FULL_CAP=$(grep -h "last full capacity" /proc/acpi/battery/BAT?/*| sed 's/[^0-9]//g')
REMANING_CAP=$(grep -h "remaining capacity" /proc/acpi/battery/BAT?/*| sed 's/[^0-9]//g')
BATTERY_CHARGING=$(grep -h "charging state:" /proc/acpi/battery/BAT?/state|sed 's/.*:\s*//')
BATTERY_PERCENT=$((($REMANING_CAP*100)/$LAST_FULL_CAP))
if [[ "${BATTERY_PERCENT}" -lt 15 ]]; then
@denysdovhan
denysdovhan / package.json
Last active June 2, 2016 14:08
How do you organize your npm-scripts?
{
"...": "...",
"scripts": {
"...": "...",
"build": "cross-env NODE_ENV=production webpack --config internals/webpack/webpack.prod.babel.js --color -p",
"test": "cross-env NODE_ENV=test karma start internals/testing/karma.conf.js --single-run",
"test-node": "./node_modules/mocha/bin/mocha $(find api -name '*-test.js') --compilers js:babel-core/register",
"...": "..."
},
"...": "..."
@denysdovhan
denysdovhan / package.json
Created June 2, 2016 14:38
better-npm-run
{
"devDependencies": {
"better-npm-run": "~0.0.1"
},
"scripts": {
"build:dist": "better-npm-run build:dist",
"test": "better-npm-run test"
},
"betterScripts": {
"build:dist": {