Сегодня пессимизм в настроении :(

Поэтому будем о плохом.

Наверное надо перечитать документацию (концепции и прочее по Oracle 11g), может что изменилось, и гуру, приближенные к исходникам базы рекомендуют писать код иначе.
Итак, начнем.

Кто научил писать в PL/SQL так:

select count(*)
into cnt
from <таблица / список таблиц>
where <различные условия>;

if cnt > 0
then
…..
else
…..
end if;

Ведь есть курсоры. Всего дополнительно 3-4 строчки, но, блин, полный контроль и управление над ситуацией. Нет необходимости отлавливать исключения, я так понимаю из-за этого здесь используют count(*). Есть возможность передавать параметры в запрос, и т.д.
Можно ведь:

declare
cursor c_sel is
select 1
from <таблица / список таблиц>
where <различные условия>;
tmp_n number;
begin
Open c_sel;
Fetch c_sel into tmp_n;
if c_sel%Found
then
Close c_sel;
....
else
Close c_sel;
....
end if;
end;

И зачем нам число строк, если надо только признак есть-нет записи.
Можно ведь использовать и exists. Зачем всю таблицу перебирать; а если там миллионы строк, а не пару сотен тестовых 🙂

Потом получается

почему у меня формирование документа идет 2-3 минуты, вместо 10 секунд

обработка данных занимает 20 минут

ну и в том же духе…

Произведен upgrade в аквариуме, поскольку испортился старый нагреватель.
Вот новый выбор: AQUAEL EasyHeater 150W
Обогреватель в пластиковом корпусе мощностью 150 Вт.

Что пишет производитель о товаре
Обогреватель для аквариума с терморегулировкой

  • небьющийся корпус
  • широкий температурный диапазон (от 18 до 36)
  • полностью погружаемый (стандарт IP68)
  • очень маленькие габариты (длина 21 см, толщина всего 9 мм)
  • крепления с двух сторон
  • безопасный для рыб и других животных, не обжигает тело животных
  • встроенная зашита от перегрева
  • лёгкий монтаж и уход

Плавное распределение тепла и пластиковый корпус – гарантия безопасности ваших рыб или рептилий.
Стильный вид нагревателя и уникальная плоская форма не имеют аналогов на рынке обогревателей для аквариумов.

Рекомендуют для аквариумов от 90 до 150 л.

Теперь ощущения

Классная штука. Забываешь о том, что при чистке надо очень осторожно быть около него, ведь пластмассу не разбить. А до него каждый раз думал, как бы не треснуть нагреватель.

Странно, но сомы под него перестали лазить, нашли более удобные места.

Про размеры – действительно узенький, вообще незаметный за термометром-наклейкой.

Phoca Gallery, watermarks

Для отображения фотографий пока остановился на Phoca Gallery. Очень гибкая возможность использовать вывод галерей.

Настройка watermark

Будем использовать одинаковые водяные знаки для всех галерей

Подготавливаем два файла (watermark-large.png, watermark-medium.png)

Переносим в папку /images/phocagallery/

Разрешаем использование водяных знаков в параметрах

Разрешаем watermarks

Проверяем параметры создания thumbnail

Переходим к списку Images

Выбираем все и пересоздаем thumbnails

Пересоздаем thumbnails

Наслаждаемся результатами

Реестр под 64-разрядной Windows

Реестр 64-разрядных версий Windows подразделяется на 32- и 64-разрядные разделы.

Большинство 32-разрядных разделов имеют те же имена, что и их аналоги в 64-разрядном разделе, и наоборот.

В 32-разрядной Windows приложения обращаются к ключам реестра

HKEY_LOCAL_MACHINE\SOFTWARE\<company>\<product>

В 64-разрядной Windows когда 32-разрядные приложения обращаются к реестру

HKEY_LOCAL_MACHINE\SOFTWARE\<company>\<product>

они на самом деле обращаются к ветке

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\<company>\<product>

По умолчанию в 64-разрядных версиях Windows используется отображение (“registry reflector”) 32-разрядных разделов в узле WOW6432Node. Процесс отображения прозрачен для 32-разрядных приложений, т.е. они могут получать доступ к разделам реестра так, как будто бы они работали в 32-битном окружении несмотря на то, что данные хранятся в другом месте.

Наблюдалась особенность отражения в 64-разрядный ключ: если очищалось значение ключа в 32-разрядной ветке, по какой-то причине не происходил автоматический сброс этого значения в 64-разрядной ветке.

Создание документов с помощью шаблонов (.dot) в MS Office 2007 и MS Office 2010

В самых первых проектах формирование MS Word документов было организовано с использованием OLE-технологии (использовался Office XP).

Это удобно: создаем шаблон (.dot), а дальше программно создаем документ на основании этого шаблона и подставляем в него необходимые данные.

Соответственно, шаблоны хранятся на сети, в определенной папке.

При переходе на MS Office 2007 возникла проблема: не формировался документ на основании шаблона. Было выяснено, что виной всему было наличие в вызове полного пути к шаблону.

Решилась данная проблема настройкой самого MS Word, для этого в настройках MS Word переопределяем путь к шаблонам (где на сети лежат .dot-файлы)

  • Открываем MS Word
  • Создаем пустой документ
  • Нажимаем кнопку “Office”
  • Выбираем «Параметры Word»
  • Выбираем «Дополнительно»
  • Нажимаем кнопку «Расположение файлов…»
  • Изменяем путь к общим шаблонам
  • Успешно выходим
  • Если будет выводиться ошибка о невозможности прочитать/записать шаблон Normal.dotm, то надо указать/изменить на локальную папку путь для пользовательских шаблонов (C:\Documents and Settings\…\My Documents)
  • Возможно, надо будет запустить MS Word и выйти из него, при этом шаблон Normal.dotm автоматически создастся в текущей папке пользовательских шаблонов.

После чего при вызове убираем путь к шаблону.

В MS Office 2010:

  • Открываем MS Word
  • Создаем пустой документ
  • Переходим на закладку «Файл»
  • Выбираем «Параметры»
  • Выбираем «Дополнительно»
  • далее как описано выше