Visual Paradigm
Неплохой инструмент для рисования UML диаграмм, схем БД, моделирования процессов.
Имеется бесплатная Community Edition версия для некоммерческого использования.
рубрики: Soft | Комментарии (283)
Неплохой инструмент для рисования UML диаграмм, схем БД, моделирования процессов.
Имеется бесплатная Community Edition версия для некоммерческого использования.
рубрики: Soft | Комментарии (283)
Столкнулся с необходимостью поднять на домашнем сервере виртуальную машинку под управлением Linux.
Простой поиск по http://www.torrents.ru сразу же принес результаты...
1) Скачиваем дистриб VMWare Server 2.0:
http://torrents.ru/forum/viewtopic.php?t=1321787
2) Скачиваем образ виртуальной машины с установленой и настроеной системой:
http://torrents.ru/forum/viewtopic.php?t=1351795
3) Пока качается виртуалкаUbuntu - устанавливаем VMWare сервер
4) Распаковываем образ виртуалки (около 8Гб)
5) Запускаем машинку!
Весь процесс включая скачивание и установку через Remote Desktop занял у меня не более 30 минут.
рубрики: Soft | Комментарии (246)
При переходе от Zend Studio 5 к Zend Studio 6 многие разработчики сталкиваются с проблемой несоответствия сочетаний горячих клавиш для выполнения тех или иных действий. Это обусловлено тем, что Zend Studio использует комбинации клавиш принятые в среде Eclipse.
Но, немногие из тех, кто прежде с Eclipse дела не имел знают, что существует возможность в процессе работы выводить на экран подсказку по возможным сочетаниям: Ctrl + Shft + L
рубрики: Web Dev. | Комментарии (327)
Предположим, у нас есть несколько классов, одинаковых по интерфейсу, но с различной реализацией методов (например это может быть классы для работы с БД для разных типов СУБД).
/path/default/class.php - класс CClassDefault
/path/other/class.php - класс CClassOther
Интересный прием для написания общего класса обертки - подмена $this:
class CClass
{
function CClass( $aParams, $sType='default' )
{
require_once( '/path/' . $sType . '/CClass.php');
$sClassName = 'CClass' . ucfirst( $sType );
$this = new $sClassName( $aParams );
}
}// end class CClass
Теперь мы можем вызывать классы вот так:
$oNewClass = new CClass( $aParams, 'default' ); // реально это будет объект CClassDefault $oNewClass = new CClass( $aParams, 'other' ); // реально это будет объект CClassOther
рубрики: PHP, Программирование | Комментарии (309)
Поганец IE любит кэшировать результат выполнения AJAX запросов. Для того чтобы этого избежать, помогает вставка следующих строчек на стороне бэкенда:
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
рубрики: PHP | Комментарии (276)
Недавнее нововведение на работе натолкнуло на мысль создать для своих проектов удобный профилировщик скриптов и SQL запросов. Чтобы не нарушать никаких копирайтов заведомо стал делать код с нуля.
Смысл профилировщика в том, чтобы, путем отметки контрольных точек в коде, подсчитать насколько долго выполняется участок кода между контрольными точками. Для профилирования скорости выполнения запросов контрольные точки ставятся до и после запроса.
Создал два файла:
autostart.php и autofinish.php
подключил в php.ini:
auto_prepend_file = "/путь до файла/autostart.php"
auto_append_file = "/путь до файла/autofinish.php"
Очень удобные, надо заметить, для таких случаев опции.
В файле autostart.php прописал несколько функций для расстановки контрольных точек и отображения результатов. Там же ставится первая контрольная точка, символизирующая начало загрузки файла.
В файле autofinish.php идет установка концевой контрольной точки и вывод результата.
Функции отрабатывают только в том случае, если внутри проекта выставляется константа PROJECT_DEBUG_MODE = true
рубрики: PHP, Программирование | Комментарии (315)
Второй день был несколько слабее первого.
Очень неудачно сдвинулось расписание некоторых секций на 20 минут, из-за чего стало невозможным вовремя перемещаться между докладами из секции в секцию.
Итоги конкурса Хакфест "Стартап за 24 часа" прошли на удивление смазанно и неинформативно.
Порадовал "" - стартапперы лицом к лицу с инвесторами.
Так же весьма неплох был доклад Ольги Самагиной "Постановка задач на разработку веб-систем".
Полный зал собрал доклад о кризисах в компании. Очень интересно рассказывает. На пятёрку
Ну и Agile. Все так же интересно и полезно. Последнему докладчику секции Agile Russia пришлось затянуть выступление минут на 20 чтобы ответить на многочисленные вопросы.
Кстати, обеды во второй день были заметно вкуснее чем в первый. Однако не расчитали с напитками. Они моментально кончились. Майкрософт все так же угощало всех желающих халявным кофе и печенюшками... На кофебрейках желающие нагружались помятого вида пироженками.
рубрики: Web Dev., Поездки | Комментарии (508)
Вот и закончилась конференция.
Что я могу про нее сказать: было достаточно много докладов. Доклады все разные - были как интересные и затягивающие, так и однозначно провальные. Как правило неахти выступали разработчики, управленцы же радовали хорошо поставленной речью, занимательными слайдами и здоровой долей юмора в докладах.
Немножко о докладах, на которых мне довелось присутствовать...
рубрики: Web Dev., Поездки | Комментарии (78)
Вот так, в целях оптимизации скорости выполнения скрипта, бывает полезно разбить один сложный запрос на два чуть менее сложных.
// Совмещенный запрос $sQL = "SELECT DISTINCT(DATE_FORMAT(orders.date, '%Y-%m')) AS cdate, order_items.id FROM order_items, orders, catalog, catalog_group WHERE orders.id = order_items.order_id AND catalog.catalog_id = order_items.catalog_id AND catalog_group.group_id = catalog.group_id AND order_items.apayed = 0 AND orders.STATUS = '2' AND ( ( order_items.auid = 0 AND сatalog_items.auid = 1 ) OR order_items.auid = 1 )"; $oCDateListAll = $oDB->Execute( $sQL ); // Время выполнения ~7 секунд
Скрипт, где данный запрос выполнялся в цикле с 500 элементами, работал более часа.
рубрики: MySQL | Комментарии (270)
| Пн | Вт | Ср | Чт | Пт | Сб | Вс |
|---|---|---|---|---|---|---|
| « Фев | ||||||
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 | |||