Firebird profiler

| рубрика: Испытания | автор: st
Метки:

Мы отдали в публичный домен утилиту для трассировки и профилирования приложений, работающих с СУБД Firebird версии 2.5 и выше (т.к. соответствующая служба и API появились только в версии 2.5).

Сайт проекта на sourceforge

Конечно, до лидера в этой области - Microsoft SQL Server Profiler - далеко, но базовый функционал …

Эпоха (бес)полезных программ

| рубрика: История | автор: st
Метки:

Если в 1950-60-е годы были заложены основы всего, что ныне используется в отрасли, то через несколько десятилетий историки будут вспоминать начало 21 века в информатике, как время неудачных и потому практически бесполезных программ.

Освежим память. Итак, за 20 лет:

  • Основные архитектуры ЭВМ (гарвардская и принстонская) и быстрый переход от реле …

Ещё о моделированнии бухгалтерии

| рубрика: Проектирование | автор: st
Метки:

Много лет назад в рамках разработки корпоративных информационных систем, основой которых был механизм проводок, мы долго дискутировали, включая заочную переписку на форумах и эхоконференциях, о двух основных видах реализации такого механизма:

  • "классический" подход (принцип двойной записи), дебетование или кредитование счета всегда сопровождается противоположной операцией по другому счету или счетам
  • "технический …

Техническое вредительство и прочее предательство

| рубрика: Заметки | автор: st
Метки: ,

М.Туровская в "Зубах дракона" пишет об интересном феномене, известном, как "а меня-то за что?" Принято считать, что репрессивная машина 1930-х была направлена прежде всего на коллег по партии и являлась средством внутривластных разборок. Но в реальности это не так. Первыми под пресс попадают именно технические специалисты, эксперты, инженеры.

Эта …

Таблицы имен при рекурсивном спуске с возвратами

| рубрика: Программирование | автор: st
Метки:

В заметке "Пишем транслятор" я сетовал на ситуации, когда грамматику не впихнуть в LL(n). В частности, это оборачивается необходимостью поддерживать транзакционность (!) добавления имен в таблицы имен.

Например, есть правило типа

p1 -> condition ; statement1
p1 -> condition ; statement11 statement2

statement1 -> statement EOL
statement11 -> statement ;
statement2 -> statement EOL

где EOL - конец строки …

Графический интерфейс: эволюция описаний

| рубрика: Заметки | автор: st
Метки: ,

Взглянем на простые примеры, как методы и языки описаний графического интерфейса пользователя эволюционировали (или деградировали, это зависит от угла рассмотрения) за 15-20 лет.

Чтобы описать примитивную форму:

1996: Delphi 2

object Form1: TForm1
  Left = 0
  Top = 0
  Caption = 'Test form'
  ClientHeight = 131
  ClientWidth = 292
  Color = clBtnFace
  object Label1: TLabel
    Left …

Отличия системного программиста от прикладного

| рубрика: Заметки | автор: st
Метки:

Отличий и на самом деле много. Приведу несколько. Вот, например, самое короткое.

Системный программист отличается от прикладного тем, что при переходе улицы с односторонним движением он смотрит в обе стороны.

Или другое.

Системный программист гарантирует, что не сломается. Прикладной программист гарантирует, что починит.

А вот подлиннее, в виде притчи.

Четыре …

Головоломка «Вавилонская башня»

| рубрика: Заметки | автор: st
Метки:

Оригинальная головоломка «Вавилонская башня» 1981 года венгерского производства пополнила мою небольшую коллекцию.

Отличий от советского варианта, называвшегося в обиходе «огурцом» или «щипалкой» за неприятные ощущения при попадании подушечек пальцев в промежутки между этажами, небольшие.

Фото «щипалки» с сайта gamer.ru

Во-первых, в венгерской башне внизу имеется канал, помеченный двумя симметричными …

Языки программирования и методы трансляции. С. Свердлов

| рубрика: Библиотечка | автор: st
Метки: ,

Зачем вообще понадобилось читать книгу о языках и компиляторах?

Когда спустя много лет вновь разрабатываешь транслятор, то возникает желание свериться с рекомендациями из других источников кроме собственного вузовского багажа и опыта. Помочь в этом могут книги.

Вот мой небольшой список, в который я с удовольствием включаю и монографию Сергея Свердлова …

Тест скорости: array vs TList vs dynamic array

| рубрика: Испытания | автор: st
Метки: ,

Проведем небольшой замер скорости случайного и последовательного доступа, используя:

  • статический массив (array, должен размещаться на стеке)
  • класс-контейнер TList (размещается в куче)
  • динамический массив (тоже размещается в куче)

Используем массив из 10 миллионов элементов имеющих типы данных integer и varaint. При необходимости вы можете легко изменить тип в соответствующей секции программы …