Category Archives: Без рубрики

Авторизация по IP И по паролю

Удобно сделать авторизацию знакомых пользователей по IP, а авторизацию всех остальных – по паролю. К счастью nginx позволяет это легко сделать:
1) Задаем пароль админа
# htpasswd -c /etc/nginx/htpasswd admin

2) Прописываем в конфиг nginx

satisfy any;
allow 127.0.0.1;
allow 10.112.0.1;

auth_basic "Restricted";
auth_basic_user_file /etc/nginx/htpasswd;

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

Если Macbook перестал при подключении наушников переключать вывод звука на них и продолжает играть через колонки не спешите его выбрасывать

sudo mv /Library/Preferences/Audio/* /tmp/
sudo reboot

И все опять заработает!

macbook не подключать HDD при старте

После установки на Macbook 2011 SSD вместо внутреннего винта и переноса винта в оптибей на место CDROM настало счастье. Но счастье оказалось подпорчено маленьким нюансом: стало слышно как из-под клавиатуры выходит воздух. В шумных помещениях не страшно, но вот в тихих БЕСИТ!

Долго гуглил, искал солюшены-решения. В момент когда я понял что eject останавливает диск и наступила тишина ощущения были… сродни оршгазму как-будто свою любимую группу я до этого слушал через компьютерные колоночки и наконец услышал на HI END системе. Назад пути уже не было.

К сожалению диск однозначно и точно затыкается только если его отмонтировать через diskUtil. Запускать каждый раз приложения для этого оказалось невыносимым, гугл молчал и пришло время экспериментов!

1) Menu -> Other -> Automator.app
2) Find Run Shell Script
3) перетягиваем сам Run Shell Script в правое окно
4) пишем команду «diskutil unmountDisk /dev/disk1 && diskutil eject /dev/disk1″
5) Нажимаем Ctrl+S и сохраняем в Applications/Unmout.sh

Теперь у нас есть скрипт который делает тишину. Осталось сделать так что б он запускался автоматически.
А вот с этим у нас и факапчик. Я нашел как сделать так что бы программа запускалась при первом старте:
1) System Preferences -> User & Groups & Login Items
2) «+»
Но это работает только при первом старте. На вход/выход из слипа это, к сожалению, не влияет.

Есть чудесный демон называемый sleepwatcher.
Копируем его в нужные папки как у них указано к readme и запускаем:

$ /usr/local/sbin/sleepwatcher -d --wakeup ~/unmount.sh

Закрываем-открываем крышку и вуаля!
Осталось сделать так что бы демон сидел в памяти, для этого нам понадобится разобраться с LaunchD

Настроить hg для работы с bitbucket без пароля

В папке где тебе нужен будет проект

$ hg clone https://username@bitbucket.org/project .

После этого пропиши в .hg/hgrc:

[paths]
default = https://username@bitbucket.org/project

[auth]
bit.prefix = bitbucket.org
bit.username = username
bit.password = pwd

[hostfingerprints]
bitbucket.org = 24:9c:45:8b:9c:aa:ba:55:4e:01:6d:58:ff:e4:28:7d:2a:14:ae:3b

Все!

Сочетания клавиш NetBeans под Mac OS

Регулярно нахожу и теряю список полезных сочетаний клавиш для натбинза под мак. Настало время их записать:
Переход по коду:

Cmd + Shift + F - поиск во всех проетках
Ctrl + Shift + O - перейти по маске к файлу
Cmd + O - перейти к переменной/функции
Cmd + B - перейти к объявлению переменной
Cmd + [ или ] - к открывающей или закрывающей скобке
Ctrl + Q - перейти к последнему месту где правили код
Ctrl + Up/Down - к предыдущему/следующему использованию этой переменной

Подсказки

Cmd + P - подсказка о атрибутах функции
Cmd + Shift + P - документация о функции
Cmd + \ - показать автодополнение кода

Форматирование

Cmd + Shift + V - вставить, одновременно отформатировав код
Сtrl + Shift + J - выделить текущее слово и стать в конец
Ctrl + Shift + ./, - выделять по блокам вверх/вниз
Ctrl + Shift + Left/Right - увеличить/уменьшить отступ
Cmd + Enter - добавить строку внизу, курсор не трогать

Окна

Cmd + 1/2/3 - окно файл, проекты, избранное
Shift + Esc - развернуть текущее окно на весь экран

Рекурсивно удалить .svn

Частенько после миграций проектов хочется удалить рекурсивно папки .svn. Очень просто сделать это командой:

$ rm -rf `find . -type d -name .svn`

SSH-agent и с чем его едят

Настроив SSH как положено я думал что все у меня прекрасно, пока не столкнулся с ssh-agent. Параметр изменил мою жизнь, прописываем скорее в конец ~/.ssh/config

Host *
ForwardAgent yes

Все! После этого мы можем:

~ $ ssh one.com
[alex@one.com ~]$ ssh two.com
alex@two.com:~$

То есть, теперь при коннекте с одного сервера на другой не надо создавать на первом сервере приватный ключ и пихать его публичный ключ в разрешенные на втором сервере.
Для сверки ключей третий сервер просто сходит к вам на комп.

Немного вредно в безопасном плане: рут первого сервера может при желании найти наш сокет и ходить на все те сервера, на которые у нас есть ключи. Но и это решаемо

Кохана, ошибки при запуске

Если при запуске Kohana бормочет что-то невнятное на тему «не могу писать в эксепшен так как класса нет» – надо выключить ей модный вывод ошибок, пусть кидает ошибки через голый HTML:

-bash-4.1$ vim ./kohana/core.php
public static $errors = false;

После этого станет понятно что в конфигурации ей не нравится. Например, сюрприз, права на папки.

Слово про FreeBSD

Обновить все порты:

# portsnap fetch update
# pkgdb -F
# portsdb -Uu

Обновить один пакет:

# portupgrade perl

Если пакет не обновляется надо читать в чем дело, возможно надо будет сначала снести старый пакет либо установить какой-то, не найденый по зависимостям

Поместить ssh свой ключ на другой сервер

Иногда бывает нужно поместить свой ключ на удаленный сервер.
Танцев с vim, cat, chmod можно избежать и выполнить все одной командой:

$ ssh hostname "umask 077; cat >> .ssh/authorized_keys" < ~/.ssh/id_dsa.pub