среда, 21 декабря 2011 г.

Создание виртуального хоста

cd /etc/apache2/sites-available/
sudo cp default site.local
sudo gedit site.local

<VirtualHost *:80>
  DocumentRoot "/home/amey/htdocs/
site.local/public"
  ServerName
site.local
  SetEnv APPLICATION_ENV development
  <Directory "/home/amey/htdocs/
site.local/public">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>


добавляем в /etc/hosts:
127.0.0.1 site.local

Включаем хост и рестартим апач:
sudo a2ensite site.local
sudo /etc/init.d/apache2 restart

вторник, 20 декабря 2011 г.

svn merge: приклад використання


Є проект. Назвемо його myproject. В якійсь момент ми форкнули його і створити гілку myproject_unstable. Це нестабільна гілка для усіляких експериментів, хардкорного рефакторинга та іншого.
Після того як дописали багато коду і протестили, нам потрібно всі нові фічі перенести з myproject_unstable в myproject.

Робиться це так:
$ cd workspace/myproject
$ svn merge -r
XXXX:HEAD http://svn.example.com/myproject_unstable --accept theirs-full

XXXX - ревізія, коли була зроблений
гілка
http://svn.example.com/myproject_unstable - гілка, з якої зливаються зміни

Можуть бути конфлікти, svn буде питати, що робити. Можна додати ключ - accept theirs-full, тоді питати не буде, а буде автоматично вирішувати конфлікти на користь входять змін. Тобто конфлікти в даному випадку вирішуватися на
користь гілки myproject_unstable.

понедельник, 19 декабря 2011 г.

Установка Sphinx


Уже должен стоять mysql сервер и клиент.

1) Ubuntu: Качаем пакеты
    sudo apt-get install sphinxsearch

Debian:
    1. устанавливаем все необходимое :
    sudo apt-get install libmysql++-dev libmysqlclient15-dev checkinstall (для поддержки pgsql нужны будут библиотеки devel для pgsql)

    2. далее тянем себе исходники
    wget "http://sphinxsearch.com/downloads/sphinx-0.9.9.tar.gz"

    3. распаковываем и переходим
    tar zxvf sphinx-0.9.9.tar.gz && cd sphinx-0.9.9

    4. собираем :
    ./configure -with-mysql -without-pgsql (я подключил возможность использования mysql и отключил возможность использования pgsql)
    make

    5. теперь будем создавать deb пакет :

    делаем checkinstall в папке с собранными исходниками ( в процессе нужно будет ответить на ряд вопросов)

    после сборки пакета ставим его через dpkg -i

    PS indexer и остальные нужные скрипты находятся в папке – /usr/local/bin


2) Редактируем конфиг /etc/sphinxsearch/sphinx.conf
# Источник данных для поиска
source users_source
{
    # Тип данных
    # Доступные типы: mysql, pgsql, mssql, xmlpipe, xmlpipe2, odbc
    type            = mysql

    # Необходимые параметры для подключения к базе данных
    sql_host        = localhost
    sql_user        = root
    sql_pass        = pass
    sql_db            =dbname
    sql_port        = 3306    # опциональный, по умолчанию 3306

    # пред-запрос, выполняется перед выполнением основного запроса на получение данных из базы
    # В нашей базе данные хранятся в UTF-8, чтобы поиск по русским символам работал успешно выполним соответсвующий запрос
    sql_query_pre        = SET NAMES utf8

    # запрос, который получает данные документов для поиска
    # первым полем обязательно должен идти уникальный положительный ID документа
    sql_query        = \
        SELECT user_id, user_id AS u_id, email, firstname, middlename, lastname \
        FROM user                 

        # поля, по которым может идти группировка, фильтрация и сортировка
        sql_attr_uint    = u_id


    # document info query, ONLY for CLI search (ie. testing and debugging)
    # optional, default is empty
    # must contain $id macro and must fetch the document by that id
    sql_query_info        = SELECT * FROM user WHERE user_id=$id
}

# индекс каталога товаров для поиска
index users_index
{
     # Источник данных для индексирования
    source            = users_source

    docinfo           = extern

    # Адрес, где будут хранится данные индекса
    path        = /var/lib/sphinxsearch/data/users

    # Индекс с учетом морфологии
    morphology        = stem_enru

    # Минимальная длина слова для индексации
    min_word_len        = 1

    # Кодировка
    charset_type        = utf-8
}

# поисковый демон (служба)
searchd
{
    # какой порт и какой протокол "слушает" служба
    port          = 9312

    # файл с логами
    log                 = /var/log/sphinxsearch/searchd.log

    # файл с логами поисковых запросов
    query_log        = /var/log/sphinxsearch/query.log

    # PID file, searchd process ID file name
    # mandatory
    pid_file        = /var/run/searchd.pid
}

3) Запускаем индексацию нашей базы
sudo indexer --all

4) Запускаем демона sphinx
searchd

5) Проба поиска
search Andrew

6) Переиндексация
sudo indexer --all --rotate

понедельник, 12 декабря 2011 г.

Заметочки по CLI командам mysql

Заметочки по CLI командам mysql

експорт дампа:
mysqldump -u USER -p PASSWORD DATABASE > filename.sql

импорт дампа:
mysql -p -u USER DATABASE < filename.sql

среда, 7 декабря 2011 г.

How to install PHPUnit


sudo pear update-channels
sudo pear upgrade-all
sudo pear channel-discover pear.phpunit.de 
sudo pear channel-discover components.ez.no
sudo pear channel-discover pear.symfony-project.com

sudo pear install phpunit/PHPUnit 



вторник, 6 декабря 2011 г.

XDebug на Ubuntu 11.10

Установка XDebug на Ubuntu 11.10

sudo apt-get install php-pear php5-dev 
sudo pecl install xdebug
sudo mkdir /var/tmp/xdebug
sudo chmod a+rwx -R /var/tmp/xdebug


sudo gedit /etc/php5/apache2/php.ini



Дописать в конец:
;xDebug Configuration starts
zend_extension="/usr/lib/php5/20090626/xdebug.so" ;
xdebug.remote_enable=1
xdebug.profiler_output_dir = "/var/tmp/xdebug" ;здесь директория для сохранения результатов профилировщика
xdebug.profiler_enable = On
xdebug.remote_enable=On
xdebug.remote_host="localhost"
xdebug.remote_port=10000
xdebug.remote_handler="dbgp"
;xDebug Configuration ends 


sudo /etc/init.d/apache2 restart

Установка LAMP на Ubuntu

 Установка LAMP на Ubuntu
sudo apt-get install apache2 php5 libapache2-mod-php5 mysql-server libapache2-mod-auth-mysql php5-mysql phpmyadmin

воскресенье, 4 декабря 2011 г.

Заметки из Эванса "DDD"

Заметки из Эванса "DDD"

Роль и выбор модели
  1. Модель и архитектура программы взаимно определяют друг друга.
  2. Модель лежит в основе языка, на котором говорят все члены группы разработчиков.
  3. Модель это дистиллированное знание.
Составляющие эффективного моделирования
  1. Установить связь между моделью и ее реализацией.
  2. Ввести в обиход ЯЗЫК, основанный на модели.
     Разработать информоемкую модель.
  3. Дистиллировать модель.
  4. Эксперименты и мозговые штурмы.
Многоуровневая архитектура
  • Интерфейс пользователя
  • Операционный слой
    Слой предметной области
  • Инфраструктурный слой


суббота, 3 декабря 2011 г.

У меня Netbeans 7 умолчанию язык поставился русский.
Чтобы поменять язык интерфейса, нужно отредактировать файл
<netbeans install dir>/etc/netbeans.conf
добавить строчку:

netbeans_default_options="--locale en_US"
и перезапустить IDE.