понедельник, 25 июля 2011 г.

И побеждает... git

Что в общем закономерно и справедливо.

При рассмотрении популярности систем управления исходными текстами, разработчики, вне зависимости от типа используемой операционной системы, поставили на первое место Git (30.7% Windows, 65.4% Linux и 78.3% Mac OS X). При этом популярность Git за год заметно выросла. После Git работающие в Windows разработчики выбирают Subversion (23.9%), Mercurial (20.7%) и TFS (Microsoft Team Foundation Server, 20.6%). Работающие в Linux, кроме Git, активно используют Mercurial (15.4%) и Subversion (12.3%). При этом популярность Mercurial со временем падает (с 25% до 20.7%), а Subversion растет (рост с 8.8% до 12.3%). Доля пользователей Bazaar (3.7%) и TFS (0.6%) среди опрошенных незначительная.  

http://www.opennet.ru/opennews/art.shtml?num=31215

пятница, 20 мая 2011 г.

Список ключевых слов Firebird 2.5

Понадобился на днях, найти готового не смог. Вытащил из исходников - keywords.cpp

UPD:
Оно же, только официально - http://www.firebirdsql.org/refdocs/langrefupd25-reskeywords-full.html

четверг, 19 мая 2011 г.

Практическое применение SSD

Все больше и больше хороших отзывов об их производительности, так и хочется вынести базы на такие винты. Но вот встретился отзыв о практическом опыте работы на SSD - http://www.codinghorror.com/blog/2011/05/the-hot-crazy-solid-state-drive-scale.html

Если кратко -
  • Super Talent 32 GB SSD, failed after 137 days
  • OCZ Vertex 1 250 GB SSD, failed after 512 days
  • G.Skill 64 GB SSD, failed after 251 days
  • G.Skill 64 GB SSD, failed after 276 days
  • Crucial 64 GB SSD, failed after 350 days
  • OCZ Agility 60 GB SSD, failed after 72 days
  • Intel X25-M 80 GB SSD, failed after 15 days
  • Intel X25-M 80 GB SSD, failed after 206 days
Т.е. в среднем живет винт около 12  месяцев. Билдовый и тестовы сервак на таком поднять самое то (шутка ли - 500Мб/с), а вот базу уже как-то жалко :)

Хотя автор статьи и говорит, что даже при такой статистике от ssd не откажется - слишком уж комфортной становится работа.

среда, 18 мая 2011 г.

Когда начинать кодировать?

Уже как-то писал, что ТЗ дает возможность дешево "проиграть" проект - без реализации.
Встретилось еще одно подтверждение мысли:
  • Статистика говорит о том, что более 50% дефектов вносится в программу до кодирования.
  • Статистика говорит о том, что кодирование, как правило, является самым дорогим участком.

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

Побывал на AgileBaseCamp

Или я потоки себе неудачно подобрал, или знать стал больше, но в этом году основной смысл мероприятия, для меня, оказался в общении.Ну и еще в 50% скидке на AgileEE, полученной в лотерее анкет :-D


Очень приятно было видеть людей, с которыми знаком только по подобным мероприятиям :)

Презентации со всех потоков:
http://www.slideshare.net/event/agile-base-camp-kiev/slideshows

среда, 16 марта 2011 г.

Предварительные данные по Firebird 3

Основные цели
- честная поддержка многопоточной мультипроцессорности с разделяемым кешем
- рефакторинг архитектуры для последующих версий

Гарантированно будет масштабируемый кеш страниц с межпоточными и межпроцессными блокировками

Поддержка разных версий ODS - в плагинах. А процесс лиснера уже будет подгружать нужную для базы реализацию движка.

Изменения в одс - флаг наличия мусора на странице, что ускорит его сборку.

Более подробный формат вывода плана выполнения запроса.
Стоимостной оптимизатор - гистограмма распределения данных, возможность автоматического сбора статистики, подробная информация по таблицам и индексам (кол-во записей страниц и т.п.)

SQL
  • Внешние процедуры функции и триггеры
  • PSQL функции
  • Пакеты аля Оракл
  • DDL триггеры
  • Оконные(аналитические) функции
  • Двунаправленные курсоры в PSQL
  • Парметризированные исключения
Безопасность
  • Аутентификация во внешних плагинах
  • Шифрование траффика
  • Юзеры в базе
  • Шифрование на уровне страниц
  • Группы пользователей
  • Права на DDL
Публичная альфа FB3 - в третьем квартале 2011 года

четверг, 24 февраля 2011 г.

Ограничение на количество генераторов в Firebird

24.02.2011 12:30, Vadim Mescheryakov пишет:
>
> Все работает норм. Конечно новые генераторы не создаются с той же частотой
> что и документы вводятся,
> Но по каждому виду дока, по каждому субъекту хозяйствования, раз в месяц
> создаются (нумерация в пределах месяца).
> Работает.
 
После создания 32К генераторов система может встать, там внутренний ID -
SMALLINT. И бекап-рестор не поможет, IIRC.
 
--
Дмитрий Еманов

пятница, 18 февраля 2011 г.

Файловый кеш Win64 и Firebird

На одном из наших серверов, после перехода на Win 2008 R2 64, стала забиваться память, на 100%, файловым кешем. Молча и стремительно. Топик обсуждения нашей ситуации.

Решилась проблема  помещением в автозапуск арийской утилитки
http://www.uwe-sieber.de/ntcacheset_e.html, которая просто дергает системную фукнцию, которая задает граничный размер кеша.

Но проблема это была не только наша, проскочило вот вчера в новостях (Firebird slow? Well, maybe it is Windows fault.) решение от самой MS http://support.microsoft.com/kb/976618/en-us

Понять логику того, почему это ограничение не устанавливается самой OS, пока не получилось.

понедельник, 14 февраля 2011 г.

От чего зависит скорость сетевой карты?

Выходит что чаще всего - от драйверов. И ведь можно на голову стать, пытаясь выяснять в чем проблема, при настройке системы...

http://blog.not-a-kernel-guy.com/2011/02/13/990
...
Пропускная способность выросла до 17 MByte/sec при полной загрузке процессора.
...
Приходящие пакеты отдавались NDIS-у не в том порядке, в каком они были приняты. С точки зрения TCP/IP это выглядело как потери пакетов. Драйвер протокола постоянно запрашивал повторную передачу «потерянных» пакетов, генерируя больший, чем нужно, траффик и сужая ширину TCP окна до минимума. Стоило поменять порядок пакетов в списке (три строчки в коде), скорость одного соединения выросла свыше 30 MByte/sec.

воскресенье, 13 февраля 2011 г.

У Delphi будет новый VCL?

Встретилась в блоге Ника Ходжеса интересная новость - разработчик http://www.ksdev.com/ вместе со своими наработками (VGScene, DXScene, or ImageFX) переходит в Embarcadero.

Похоже, после стольких лет, у Delphi наконец появится какой-то вариант векторного UI фреймворка.

пятница, 21 января 2011 г.

Как правильно заблокировать окно от перерисовки

Иногда это может понадобиться, если что-то активно добавляется, открывается и т.п.
Типичный способ, рекомендуемый первым, это вызов LockWindowUpdate. Что есть в корне неверно - в Майкрософт не очень удобно выбрали название функции.
http://www.transl-gunsmoker.ru/2010/12/lockwindowupdate_29.html
http://msdn.microsoft.com/en-us/library/dd145034%28v=vs.85%29.aspx

Правильный пример:
procedure SetWindowLock(AHandle: THandle);
begin
  SendMessage(AHandle, WM_SETREDRAW, 0, 0);
end;

procedure EndWindowLock(AHandle: THandle);
begin
  SendMessage(AHandle, WM_SETREDRAW, 1, 0);
  RedrawWindow(AHandle, nil, 0, RDW_ERASE or RDW_FRAME or
    RDW_INVALIDATE or RDW_ALLCHILDREN);
end;

Хитрость в том, что работает только RedrawWindow, а Invalidate нет.

UPD
На практике оказало не все так весело - окно просто прячется, а не перестает отрисовываться. У нас решилось точечным применением, только к изменяемым элементам - панелям, таб сетам и т.п.

среда, 19 января 2011 г.

Шифрация базы в Firebird и конкурентах

Вопросы о возможности каким-то образом защитить базу, когда ценность представляют данные в ней, звучат в конференциях Firebird достаточно часто.

И обычно ответы сделаны как под копирку - что мол 100%, надежного способа это обеспечить, если база доступна физически нет. Но вот что встретилось в firebird-architect:

Alex Peshkoff, Nov 10, 2010:
I've already mentioned - we have plans to implement line encryption in FB3.0 and may be page level encryption too. We have already decided that we provide interface for users' plugins to perform actual crypt operations.

Как я упоминал ранее в планах есть реализация линейного(?) шифрования в 3.0. Вероятно также шифрование на уровне страниц. Было решено, что реализовано это будет посредством плагинов с возможностью их самостоятельной реализации.


И краткий обзор, что есть у конкурентов:


MySQL
  • нет шифрования файла
  • есть защищенное соединение
http://dev.mysql.com/doc/refman/5.0/en/secure-connections.html

PostgreSQL
  • нет шифрования файла 
  • есть защищенное соединение

http://www.postgresql.org/docs/8.1/static/ssl-tcp.html
http://www.postgresql.org/docs/9.0/static/pgcrypto.html

MSSQL
  • есть шифрование файла
  • есть защищенное соединение
http://msdn.microsoft.com/en-us/library/bb934049%28v=SQL.100%29.aspx
http://msdn.microsoft.com/en-us/library/ms189067%28v=SQL.90%29.aspx

DB2
  • есть шифрование файла
  • есть защищенное соединение

http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/index.jsp?topic=/com.ibm.db2.luw.admin.sec.doc/doc/c0005815.html

Oracle
  • есть шифрование файла 
  • есть шифрование полей
  • есть защищенное соединение
http://www.oracle.com/technetwork/database/options/advanced-security/index.html

вторник, 4 января 2011 г.

DDL триггеры будут в FB3

По сути теперь можно вешать события и всяческие проверки(в том числе и стиля!) на изменение метаданных.

create trigger trig_ddl_sp before create procedure
as
begin
    if (rdb$get_context('DDL_TRIGGER', 'OBJECT_NAME') not starting 'SP_') then
        exception e_invalid_sp_name;
end

Подробнее:
http://firebird.svn.sourceforge.net/viewvc/firebird/firebird/trunk/doc/sql.extensions/README.ddl_triggers.txt?revision=51203

Памятка по вопросам на собеседование

Когда-то делал нечто похожее, тем более под каждое собеседование свой набор вопросов. Но в общем случае может пригодится.
http://nmihouse.com/?p=31

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