PostgreSQL
coub
css
express.js
freeware
git
jquery
laravel
links
linux
macos
mysql
node.js
php
python
task1
ubuntu
vim
virtualbox
анекдот
игры
интересно
музыка
стихи
цитаты
macos
vim
php
mysql
vim
git
Как ассоциировать файлы с macvim?
October 16, 2013
В случае если macvim установлен через brew например, то нельзя просто взять и в файндере обычным способом ассоциировать с ним файлы. Его просто нет в папке /Applications потому что он ставится куда-то в дебри /usr/local/Cellar/macvim
Если кто-то ещё не догадался то нужно просто сделать ссылку на него в приложениях
После этой процедуры macvim будет виден как обычное приложение.
Если кто-то ещё не догадался то нужно просто сделать ссылку на него в приложениях
ln /usr/local/Cellar/macvim/7.4-70/MacVim.app /Applications/MacVim.appСсылку мы делаем жесткую в этом случае, любознательные граждане могут полистать man ln
После этой процедуры macvim будет виден как обычное приложение.
Настройка PhpStorm + Xdebug
October 03, 2013
Вообще по-старинке я предпочитаю var_dump но бывает что сапортишь что-то такое что.. словом и xdebug бывает полезен.
-
Ставим сам xdebug (углубляться не буду в операционки, суть не в этом)
# ubuntu/debian sudo apt-get install php5-xdebug
-
После установки убедимся что его видно, все тип-топ
php -m | grep xdebug
- Смотрим phpinfo() и ищем там секцию xdebug. Если все хорошо, то она там должна быть, если не хорошо - пробуем перезагрузить веб-сервер или php-fpm, смотря что у вас установлено. Если все равно не хорошо (sic!) - идем гуглить как вообще xdebug устанавливать. В секции xdebug ищем директиву xdebug.remote_port это порт на который будет стучать отладчик по умолчанию (с сервера на клиент отладчика, у нас клиент - это шторм). Его можно понятное дело изменить на ваше усмотрение, поправив значение в конфиге. По умолчанию это порт 9000. Едем дальше.
-
В php.ini нужно добавить от такие инструкции и убедиться что их видно через браузер (тоже самое: если нужно - перезагружаем сервер)
xdebug.remote_enable=true xdebug.remote_port=9000 xdebug.profiler_enable=1 xdebug.profiler_output_dir=/tmp
-
Теперь веб-сервер будет пытаться законнектиться на порт клиента который мы указали в настройках (xdebug.remote_port) при каждой загрузке страницы. Теперь надо поднастроить наш проект в шторме под отладчик. Для этого нужно добавить в проект конфигурацию веб-приложения и удаленной отладки. Ниже скриншоты раскрывающие суть этой магии.
Открываем конфигурацию проекта
Добавляем конфигурацию веб-приложения
Правим её
Если нужно добавляем и правим сервер (хост смотрит на хост нашего проекта)
Правим свойства удаленной отладки (после того как добавили конфиг конечно см. скриншот выше) -
Теперь осталось включить в шторме прослушку порта для отладчика. Для этого ищем кнопку на панели инструментов с телефонной трубкой как на скриншоте (или идем в меню Run и ищем там пункт "Start Listen PHP Debug Connections")
- Теоретически все должно работать на данный момент. Итого мы имеем установленный на сервере xdebug который при каждом запросе страницы отправляет клиенту запрос на порт xdebug.remote_port (из настроек сервера) и клиент отладчика в виде шторма с готовым для подключения отладчика портом. Теперь можно ставить брейкпойнты в любом месте приложения и вызывать выбранный юзкейз в браузере. По достижению брейкпоинта шторм должен всплыть и станут доступны все фичи отладчика. Ссылка на официальную доку.
-
Ещё маленькая деталь, отладчик в шторме должен быть настроен на тот же порт что и xdebug.remote_port. То есть на сервере прописываем куда будем стучать, а в шторме - где будем ловить подключение отладчика. Изменить номер порта в шторме можно в настройках проекта
MySql: восстановить дамп бд из .gz файла
September 27, 2013
Бывает удобно распаковывать .gz файл прямо в бой вот так
gunzip -c db_dump_file.sql.gz | mysql -u root -p db_name
Vim: форматирование json
September 20, 2013
Бывает что надо серверный ответ в json отформатировать чтобы просто было удобнее читать. В vim (при установленном python) это можно сделать вот так например:
Оригинал заметки тут.
:%!python -m json.toolПонятное дело можно забросить это в .vimrc как команду, например вот так
command FormatJson execute "%!python -m json.tool"В результате вызов будет простым и запоминающимся :FormatJson
Оригинал заметки тут.
Git: Подмодули
August 13, 2013
У git есть интересная возможность включать в репозиторий проекта подмодули из других репозиториев. Например у нас есть некий проект, некая система состоящая из н-ного количества модулей. Какие-то модули могут быть опциональными и разрабатываться отдельными командами. Таким образом при очередной поставке продукта под конкретный проект можно подключать опциональные модули из других репозиториев и поддерживать их в актуальном состоянии.
Например есть три разделенных репозитория, каждый живет своей жизнью, поддерживается разными людьми
Добавление подмодуля выглядит примерно так
Например есть три разделенных репозитория, каждый живет своей жизнью, поддерживается разными людьми
- Ядровая часть (A)
- Модуль 1 (B1)
- Модуль 2 (B2)
Добавление подмодуля выглядит примерно так
# заходим в репозиторий проекта cd ~/my/repo/name # добавляем подмодуль и кладем его по относительному пути git submodule add git://github.com/chneukirchen/rack.git ./modules/rack git commit -am 'add submodule rack' git pushОперации для всех подмодулей могут выглядеть например вот так (см. git help submodule)
git submodule foreach git checkout master git submodule foreach git pullПри клонировании репозитория с такими подмодулями, подмодули нужно будет инициализировать и обновить
mkdir new_folder cd new_folder git clone git://github.com/some/repo-name.git . git submodule init git submodule updateСписок подмодулей можно посмотреть так
git submoduleЖивой пример использования подмодулей можно посмотреть вот здесь, надеюсь ссылка выживет.