В качестве возможности провести свободное время, расскажу свой опыт настройки сервера gitolite на Linux машине и организовать работу клиента на Mac OS :)
На старте у нас имеется сервер под управлением CentOS, который будет выступать хостингом репозиториев; и клиент на Mac OS Yosemite, который будет с ним работать.
Для самого начала нам потребуются ssh ключи. На любой машине генерим приватный и публичный ключ командой
ssh-keygen -t rsa
После этого будет создана пара ключей
~/.ssh/id_rsa.pub
и
~/.ssh/id_rsa
Эти ключи будут использоваться для администратора gitolite, но их так же можно использовать и для себя в качестве клиента, поэтому можно создавать их и на клиентской машине. Далее я буду рассматривать ситуацию когда эти ключи используются как для админа так и для клиента, поэтому приватный ключ должен оказаться на клиентской машине, например в файле ~/.ssh/git, а публичный - на сервере в файле /tmp/git.pub.
Важное замечание, если вы генерите non-openssh public keys, например, при помощи PuTTY gen, то для использования в gitolite публичный ключ придется конвертировать командой
ssh-keygen -i -f /tmp/ssh2/YourName.ppk > /tmp/openssh/YourName.pub
Это типичная проблема при использовании, например, TurtoiseGit на windows, когда для того чтоб он принял ключ он должен быть в формате *.ppk, а на сервере - в фомате openssh.
В продолжение темы про установку Oracle Client на Windows расскажу про свой опыт установки аналогичной связки для Mac OS.
На старте имеем Mac OS X 10.10 Yosemite в которой уже работает штатный web сервер apache и php 5.4. Цель первая - получить рабочий Oracle Client, иметь возможность работать с Oracle через Toad (да да, для мака есть тоад, и он бесплатный). Цель вторая - иметь возможность работать с Oracle из PHP.
Для начала качаем Oracle Instant Client для Mac OS с сайта oracle.com (там нужно регистрироваться):
* я для себя выбрал 11-ю версию для того чтоб иметь возможность работы со старыми БД, например 9-й версии.
Распаковываем содержимое архивов в удобное место, для меня это /Library/Oracle. Возможны и другие варианты, но для меня более логично показалось так, далее все описания будут производиться относительно этого пути.
В результате получаем вот такую структуру папок:
/Library/Oracle/instantclient_11_2
/Library/Oracle/instantclient_11_2/sdk (если решили с SDK)
Далее создаем линки:
cd /Library/Oracle/instantclient_11_2
ln -s libclntsh.dylib.11.1 libclntsh.dylib
ln -s libocci.dylib.11.1 libocci.dylib.dylib
Этот пост является очень краткой выжимкой из оригинальной статьи, которая оказалась полезна исключительно для меня.
Выжимка эта подразумевает, что читатель уже хорошо знаком с MySQL и понимает что такое индексы и зачем они нужны, если нет - то читайте оригинальную статью, там все по полочкам разложено с самого начала.
Таблица для примера:
id | name | age | gender
1 | Den | 29 | male
2 | Alyona | 15 | female
3 | Putin | 89 | tsar
4 | Petro | 12 | male
значения составного индекса будут такими:
age_gender
12male
15female
29male
89tsar
Очередность колонок в индексе играет большую роль. Обычно колонки, которые используются в условиях WHERE, следует ставить в начало индекса. Колонки из ORDER BY — в конец.
Не так давно заметил что при клике правой кнопкой на любой папке или файле стал частенько закрываться с ошибкой проводник windows.
Для поиска виновника отлично подошла утилита ShellExView которая показывает все расширения оболочки. Отсортировав список по столбцу type и изучив то, что относится к контекстному меню появилось несколько кандидатов. Поочередно отключая которые выяснилось что виновник - это плагин от Miranda NG.
Файл | shlext.dll версия 2.2.0.3 |
Описание | Интеграция Miranda NG в контекстное меню оболочки ОС. |
Уникальный ID на всякий случай | {7993ab24-1fda-428c-a89b-be377a10be3a} |
Отключив его в ShellExView и в миранде проблема ушла. Надеюсь рано или поздно разработчики этого плагина поправят проблему, а пока мой способ кому-то поможет :)