Алкогольные хроники + бонус

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

Я перешел с бордосского на бургундское (Шабли, Chablis). Что из этого вышло - на фото ниже.

Кроме вкусовых достоинств, у Шабли есть важная особенность. Даже после приема примерно 0,5-1 литра по прошествии 2-4 часов голова становится такой же ясной, как и до возлияний. Ни о каком "утреннем похмелье" речи идти …

Сколько места занимают таблицы?

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

Информация о дисковом пространстве, используемом таблицами текущей базы данных.

DECLARE @TableInfo TABLE (
    table_name sysname,
    row_count int,
    reserved_size_kb nvarchar(50),
    data_size_kb nvarchar(50),
    index_size_kb nvarchar(50),
    unused_size_kb nvarchar(50)
)

INSERT INTO @TableInfo
EXEC sp_MSforeachtable 'sp_spaceused ''?'''

UPDATE @TableInfo
SET
    data_size_kb     = replace(data_size_kb, 'KB', ''),
    reserved_size_kb = replace(reserved_size_kb, 'KB', ''),
    index_size_kb    = replace(index_size_kb, 'KB', ''),
    unused_size_kb …

Delphi. Строку в файл и обратно.

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

В связи с переходом на unicode "по умолчанию" в Delphi 2009, функцию записи содержимого строки в файл необходимо немного изменить.

procedure SaveStrToFile(SrcStr: string; FileName: string);
var
  FS: TFileStream;
begin
  FS := TFileStream.Create(FileName, fmCreate);
  try
    FS.WriteBuffer(SrcStr[1], Length(SrcStr) * SizeOf(SrcStr[1]));
  finally
    FS.Free;
  end;
end …

Уровни изоляции транзакций в SQL. Шпаргалка

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

Материал этой статьи послужил основой для одного из параграфов главы "Транзакции, изоляция и блокировки", входящей в книгу "СУБД для программиста. Базы данных изнутри". Для более глубокого понимания механизмов см. параграфы "Уровни SQL-92", "Блокировки", "Взаимные блокировки процессов (deadlock)", "Версии данных", "Проявления эффектов изоляции" и "Толстые транзакции".

Статья также была опубликована в …

Жизненный цикл программиста

| рубрика: История | автор: chief_editor

Статья известного российского системного программиста, зав. лабораторией Института системного анализа РАН, члена Российской академии интернета, автора шахматной программы «КАИССА» (первого чемпиона мира среди шахматных программ), президента компьютерной фирмы ДИСКо, лауреата всех профессиональных опросов «Top-100 Российского компьютерного бизнеса», Михаила Донского.

У каждой профессии есть свой романтический период и есть период, когда …

Delphi. Массив байтов в строку шестнадцатеричных значений.

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

Иногда бывает нужно посмотреть значение массива байтов в понятном человеку виде, чаще всего в виде пар шестнадцатеричных цифр. Задача может быть решена простой функцией, на примере которой мы увидим три подхода к работе со строками в Delphi и Паскале.

Паскалевские строки: наглядно и просто

Предлагаемый ниже способ хотя и не …

Упорядоченный список с повторяющимися значениями (Sorted multilist)

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

При разработке пользовательских интерфейсов периодически требуется к элементу управления (control) типа списка/выпадающего списка (ListBox, DropDownList) пристыковать (data bind) коллекцию (список) объектов в качестве источника данных. Дружественный интерфейс предполагает, что данные в списке отсортированы. Но если в списке имеются повторяющиеся значения, то использование стандартных классов типа SortedList или Dictionary становится …

Морской бой

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

Делу -- время, потехе -- час. Французский филиал Microsoft попросил разработать сетевой вариант игры "Морской бой" с клиентом в виде Excel 2007. Цель, разумеется, в продвижении новой версии офиса.

В результате получилась вот такая системка. Описание и снимки экрана ниже.

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

SPM (SQL Programming Macroprocessor): создайте свой предметный язык

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

Пример использования технологии представлен в статье "SQL и модульное тестирование".

Назначение

Разработка серверного кода на процедурном расширении SQL имеет свои особенности. Во-первых, SQL - декларативный язык, и потому обычная для традиционного программирования функциональная декомпозиция зачастую является неэффективной. Во-вторых, SQL - специализированный язык манипуляции данными, и достичь наглядности и читаемости прикладного кода бывает …