четверг, 17 октября 2013 г.
вторник, 30 июля 2013 г.
Xhprof на Ubuntu 10.04
Возникла необходимость поднять профайлинг для проекта на локальном серевере под Ubuntu 10.04
Выбор само собой пал на Xhprof. Конечной целью было получение графическое отображения графа вызовов функций.
Что было сделано для этого?
Выбор само собой пал на Xhprof. Конечной целью было получение графическое отображения графа вызовов функций.
Что было сделано для этого?
Ярлыки:
профилирование,
graphviz,
location,
nginx,
pecl,
php5-fpm,
server,
Ubuntu 10.04,
xhprof,
xhprof-0.9.3
вторник, 2 июля 2013 г.
Настройка двух мониторов в Ubuntu
Попробую описать пошагово процесс настройки двух мониторов на Ubuntu на своем примере, который, возможно, пригодится и другим.
понедельник, 1 апреля 2013 г.
Lazarus. Простой код запроса к Firebird DB для Grid
Подключившись к базе данных, требуется реализовать запросы к ней.
Опишу простой пример кода для этого.
Опишу простой пример кода для этого.
Ярлыки:
запрос,
параметризированный запрос,
плэйсхолдеры,
add,
close,
commit,
execSQL,
Firebird,
Lazarus,
open,
ParamByName,
Params,
placeholders,
SQL,
TSQLQuery,
TSQLTransaction
воскресенье, 24 марта 2013 г.
Lazarus. Подключение к Firebird DB
Для работы с Firebird DB в IDE Lazarus есть уже готовые компоненты. Используя их, можно успешно проводить sql-транзакции, отображать результат на стандартных визуальных компонентах.
Ярлыки:
база данных,
Firebird,
Lazarus,
SQLdb,
TDAtasource,
TDBGrid,
TIBConnection,
TSQLQuery,
TSQLTransaction
среда, 13 марта 2013 г.
TDD with PhpStorm. Class 'PHPUnit_TextUI_ResultPrinter' not found
Обновившись на новую версию PhpStorm обнаружил, что мои unittest отваливаются с ошибкой
PHP Fatal error: Class 'PHPUnit_TextUI_ResultPrinter' not foundПерерыв Интернеты в поисках решения, в итоге нашел следующие команды, которые помогли:
pear channel-discover pear.symfony.comВполне возможно, достаточно последней команды:)
pear install pear.symfony.com/Yaml
pear install --alldeps pear.phpunit.de/PHPUnit
понедельник, 11 марта 2013 г.
GIT. Создание ветки
В своей работе при создании очередной ветки в GIT использую простой bash-скрипт:
#!/bin/bash
if [ $# -lt 1 ] || [ $# -gt 2 ]; then
echo 1>&2 Usage: $0 [-c] branch_name
exit 127
fi
if [ $# -eq 2 ] && [ $1 == "-c" ]; then
BNAME='HEAD'
NAME=$2
else
BNAME='master'
NAME=$1
fi
git pull
git push origin ${BNAME}:refs/heads/$NAME
git fetch origin
git checkout --track -b $NAME origin/$NAME
Ярлыки:
создание бранча,
создание ветки,
bash,
checkout,
create branch,
fetch,
git,
heads,
origin,
pull,
push,
refs,
track
воскресенье, 10 марта 2013 г.
Firebird DB: создание простого primary key auto increment
Проблема
В Firebird по-умолчанию невозможен автоинкремент первичных ключей, как это, например, возможно в MySQL.Для реализации auto increment для первичного ключа будем использовать триггеры.
Ярлыки:
автоинкремент,
первичный ключ,
alter,
auto increment,
create table,
create trigger,
Firebird,
generator,
primary key,
SQL,
trigger
вторник, 5 марта 2013 г.
Javascript. Остановка setTimeout в рекурсивных функциях
Задача
Порой, для отслеживания каких-либо операций или событий по таймауту (например, содержимого тектового поля, которое, как известно, можно изменить в обход нативных обработчиков событий), применяют рекурсивные функции, вызываемые с помощью setTimeout (setInterval не подходит, так как технология использования setTimeout гарантированно позволяет выполнять определенные действия через равные промежутки времени, в то время, как setInterval не гарантирует равную величину временных промежутков. Подробнее.)
Ярлыки:
анонимная функция,
замыкание,
рекурсия,
clearTimeout,
closure,
javascript,
setInterval,
setTimeout
среда, 27 февраля 2013 г.
Git постоянно требует ввести passphrase?
Так уж повелось, что при работе с git (с консоли на Ubuntu 10.04) любое мое более ли менее серьезное телодвижение (pull, push,...) начинается с ввода passphrase.
вторник, 26 февраля 2013 г.
воскресенье, 24 февраля 2013 г.
Javascript. Установка и чтение данных в многомерных хэшах
Задача: имеем хэш в js. Требуется установить значение по любой цепочке вложенности, используя вызов всего одной функции. И, используя вызов одной функции, прочесть значение.
Подписаться на:
Сообщения (Atom)