воскресенье, 31 октября 2010 г.

Жизнь «сегодняшним днем» и запас прочности. Елена Горелкина

Миф о сверхоборотах ресторанного бизнеса, о его высокой эффективности с момента открытия повлиял на отношение к нему предпринимателей. Открыть, снять сливки, продать, двигаться дальше – вот схема работы, которую выбирают многие начинающие рестораторы. Это сказывается и на подходе к оснащению точки: никто не рассчитывает, что она проработает всю жизнь, вполне достаточно 1–5 лет работы без проблем. Преодолеть эту тенденцию в В2В до сих пор было достаточно трудно, поскольку жизненный цикл предприятия питания действительно небольшой: заведений, продержавшихся в одном формате и при одном и том же собственнике больше семи – десяти лет, не так уж много. (Другая история – с отелями, но их и значительно меньше.) С одной стороны, этот подход к бизнесу как явлению временному помогал продажам недорогого ассортимента оборудования, с другой – мешал внедрению высоконадежных и элитных моделей техники, которые работают в странах Европы более чем по десять лет.

Однако теперь ситуация меняется: идет развитие сетей, укрепление сегмента массового питания при учреждениях, расширение возможностей кейтеринга – все это дает возможность распространения высоких технологий. Большие игроки рынка своим развитием создают некую историю отрасли, формируют показательные примеры. На смену рекламы низких цен приходит именно реклама качества, реклама глубоко продуманных технологий. Так рынок созревает, переходит к работе на перспективу. Одна из положительных тенденций: становится больше компаний, которые хотят оборудование – с запасом прочности, систему автоматизации – с возможностью расширения и дополнения новыми функциями.

«До сих пор рестораны могли оснащаться системами, которые главным образом автоматизируют товародвижение. Мы же начинаем позиционировать наш программный комплекс “Домино” как ERP-систему для ресторана: появились руководители, которых интересует аналитика, бюджетирование, качественный прогноз на будущее», – говорит Роман Нетяга, директор компании «Бизнес-класс».

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


Панель инструментов изображений. Александр Климов

Отключение Панели инструментов изображений

В Internet Explorer при наведении указателя мыши на рисунок, который требуется сохранить, в уголке рисунка появляется панель инструментов изображений.



Эта панель позволяет быстро осуществить разные операции: сохранить, печатать, послать по почте, открыть папку Мои рисунки

Для отключения данной панели инструментов изображений создайте ключ типа DWORD ·MyPics_Hoverbar· в разделе

HKCU\Software\Policies\Microsoft\Internet Explorer\PhotoSupport

со значением 1

Существует еще альтернативный вариант. Создайте строковый параметр ·Enable_MyPics_Hoverbar· в разделе

HKCU\Software\Microsoft\Internet Explorer\main

и присвойте ему значение yes (включить) или no (выключить)


Размер картинки

Панель инструментов изображений появляется не для всех рисунков. Для использования панели инструментов размер рисунка должен быть не менее 130 x 130 пикселей. Если вы хотите изменить данное значение, то создайте параметр DWORD ·Image_Filter· в разделе

HKCU\Software\Microsoft\Internet Explorer\main

и присвойте ему нужное значение


Смещение Панели относительно изображения

По умолчанию Панель инструментов изображений появляется смещенной на 10 пикселей от верхнего и левого сторон изображения. Для изменения этой настройки создайте параметр DWORD ·Offset· в разделе

HKCU\Software\Microsoft\Internet Explorer\main

и присвойте ему нужное значение


четверг, 28 октября 2010 г.

Роман Клименко / Настройка возможностей Проводника

После способов ограничения отображения элементов Проводника рассмотрим некоторые возможности по настройке его работы.

Отображение эскизов страниц

Отображение эскизов страниц можно ограничить с помощью параметров REG_DWORD-типа ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer:

• DisableThumbnails – если значение данного параметра равно 1, то в локальных папках не будут отображаться эскизы страниц;

• DisableThumbnailsOnNetworkFolders – при установке значения этого параметра равным 1 в сетевых папках не будут отображаться эскизы страниц;

• NoThumbnailCache – если значение данного параметра равно 1, то не будет выполняться кэширование эскизов страниц (создание файлов thumbs.db, содержащих эскизы страниц всех файлов в папке).

Общий кэш эскизов страниц

В операционной системе Windows Vista была расширена и доработана реализация возможностей отображения значков. Например, теперь любой значок поддерживает различные размеры отображения вплоть до 256 пикселов. При этом операционная система создает сразу несколько копий значков разных размеров, храня их в различных общих кэшах значков. Настройки использования данных кэшей значков содержатся в ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ThumbnailCache. Если не сказано иначе, параметры имеют тип REG_DWORD.

• Location – этот параметр строкового типа определяет путь к каталогу, содержащему общие кэши значков (файлы thumbcache_32.db, thumbcache_96.db, thumbcache_256.db, thumbcache_1024.db, thumbcache_idx.db и thumbcache_sr.db). По умолчанию общие кэши значков хранятся в каталоге %userprofile%\AppData\Local\Microsoft\Windows\Explorer.

• MaxCacheFileSize32 – задает максимальный размер файла thumbcache_32.

• MaxCacheFileSize96 – определяет максимальный размер файла кэша эскизов страниц thumbcache_96.

• MaxCacheFileSize256 – указывает максимальный размер файла thumbcache_256.

• MaxCacheFileSize1024 – задает максимальный размер файла thumbcache_1024.

Вид значков папок Проводника

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

По умолчанию операционная система может сохранить отдельные настройки вида значков в папке максимум для 5000 локальных папок и 5000 сетевых папок. Вы можете изменить эти установки. Для этого применяются параметры REG_DWORD-типа BagMRU Size, расположенные в ветвях HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell (для локальных папок) и HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam (для сетевых папок).

Экземпляры процессов Проводника

По умолчанию в операционной системе Windows Vista всегда присутствует только один экземпляр Проводника (файл explorer.exe). Он содержит данные и оболочки операционной системы и открытых в данный момент окон Проводника. Что касается быстродействия, то это правильное решение (так как использование общего процесса уменьшает количество оперативной памяти, требуемой Проводнику). Однако если возникнет ошибка в работе окна Проводника или оболочки, то все окна Проводника закроются и оболочка перезагрузится.

Существует возможность настройки операционной системы на использование двух экземпляров Проводника. В этом случае в первом экземпляре будет выполняться оболочка операционной системы, а во втором – все открытые в данный момент окна.

Для этого достаточно присвоить параметру REG_DWORD-типа SeparateProcess значение 1. Он расположен в ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer.

Изменения вступят в силу после перезагрузки.

Отображение образцов и фильтров

С помощью области Задачи, расположенной на вкладке Вид окна Свойства папки, можно определить, будут ли в Проводнике отображаться образцы и фильтры (по умолчанию отображаются).

Существует возможность блокирования доступа к области Задачи. Для этого достаточно присвоить значение 1 параметру REG_DWORD-типа NoWebView. Параметр расположен в ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer.

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

Рис. 2.9. Область Задачи заблокирована


Изменения вступят в силу после перезагрузки компьютера.


45, В. М. Феоклистова

В начале сражения при Камбре британский Танковый корпус бригадного генерала Хью Эллиса (три бригады по три батальона в каждой) помог пехотным дивизиям III и IV корпусов 3-й армии генерал-лейтенанта сэра Джулиана Бинга прорвать оборону немцев на участке «группы Кодри» (XIII корпуса 2-й германской армии генерала кавалерии Георга фон дер Марвица). Накануне наступательной операции англичан в их Танковом корпусе числилось 476 танков, в том числе 378 «боевых» и 98 «административных» (последние предназначались для перевозки артиллерийских орудий, понтонных материалов и телефонного кабеля, а также для ведения беспроволочной связи и уборки колючей проволоки). Благодаря умелому взаимодействию пехоты, танков и артиллерии британские войска в первый день своего наступления, 20 ноября 1917 г., овладели тремя укрепленными позициями противника и, продвинувшись за день на 8 км (на фронте в 9,5 км), захватили 4200 пленных. Сами они потеряли убитыми, ранеными и пропавшими без вести немногим более 4000 человек, но при этом Танковый корпус недосчитался 179 боевых машин из 374, принявших участие в атаке (65 танков были уничтожены огнем немецкой артиллерии, 71 вышел из строя по техническим причинам и 43 застряли в канавах или воронках). В дальнейшем боевые действия снова приняли позиционный характер, а 30 ноября — 3 декабря немцы, подтянув резервы, нанесли контрудар, в результате которого британцам к 7 декабря 1917 г. пришлось оставить большую часть захваченной ими территории. Британские потери за всю операцию под Камбре составили 44 207 человек (в том числе около 9000 пленными), германские — примерно 45 000 (из них более 11 000 пленными).

(обратно)

Д. Солнышков. Функция mq_close

В листинге 5.20 приведен текст нашей функции mq_close.

Листинг 5.20. Функция mq_close

//my_pxmsg_mmap/mq_close.с

1  #include "unpipc.h"

2  #include "mqueue.h"


3  int

4  mymq_close(mymqd_t mqd)

5  {

6   long msgsize, filesize:

7   struct mymq_hdr *mqhdr;

8   struct mymq_attr *attr;

9   struct mymq_info *mqinfo;

10  mqinfo = mqd;

11  if (mqinfo->mqi_magic != MQI_MAGIC) {

12   errno = EBADF;

13   return(-1);

14  }

15  mqhdr = mqinfo->mqi_hdr;

16  attr = &mqhdr->mqh_attr;

17  if (mymq_notify(mqd, NULL) != 0) /* снятие вызвавшего процесса с регистрации */

18   return(-1);

19  msgsize = MSGSIZE(attr->mq_msgsize);

20  filesize = sizeof(struct mymq_hdr) + (attr->mq_maxmsg *

21   (sizeof(struct mymsg_hdr) + msgsize));

22  if (munmap(mqinfo->mqi_hdr, filesize) == –1)

23   return(-1);

24  mqinfo->mqi_magic = 0; /* на всякий случай */

25  free(mqinfo);

26  return(0);

27 }

Получение указателей на структуры

10-16 Проверяется правильность переданных аргументов, после чего получаются указатели на область, занятую отображенным в память файлом (mqhdr), и атрибуты (в структуре mq_hdr).

Сброс регистрации вызвавшего процесса

17-18 Для сброса регистрации на уведомление вызвавшего процесса мы вызываем mq_notify. Если процесс был зарегистрирован, он будет снят с уведомления, но если нет — ошибка не возвращается.

Отключение отображения файла и освобождение памяти

19-25 Мы вычисляем размер файла для вызова munmap и освобождаем память, используемую структурой mqinfo. На случай, если вызвавший процесс будет продолжать использовать дескриптор очереди сообщений, до того как область памяти будет вновь задействована вызовом malloc, мы устанавливаем значение mq_magiс в ноль, чтобы наши функции для работы с очередью сообщений обнаруживали ошибку.

Обратите внимание, что если процесс завершает работу без вызова mq_close, эти же операции выполняются автоматически: отключается отображение в память, а память освобождается.


понедельник, 25 октября 2010 г.

Е. М. Миркес - Интерпретатор ответа

Как было показано в главе «Описание нейронных сетей», ответ, выдаваемый нейронной сетью, как правило, является числом, из диапазона [a,b]. Если ответ выдается несколькими нейронами, то на выходе сети мы имеем вектор, каждый компонент которого лежит в интервале [a,b]. Если в качестве ответа требуется число из этого диапазона, то мы можем его получить. Однако, в большинстве случаев это не так. Достаточно часто требуемая в качестве ответа величина лежит в другом диапазоне. Например, при предсказании температуры воздуха 25 июня в Красноярске ответ должен лежать в интервале от 5 до 35 градусов Цельсия. Сеть не может дать на выходе такого сигнала. Значит, прежде чем обучать сеть необходимо решить в каком виде будем требовать ответ. В данном случае ответ можно требовать в виде ?=(b-a)(T-Tmin)/(Tmax-Tmin)+a, где T — требуемая температура, Tmin и Tmax — минимальная и максимальная температуры, ? — ответ, который будем требовать от сети. При интерпретации ответа необходимо проделать обратное преобразование. Если сеть выдала сигнал ?, то ответом является величина T=(?-a)(T-Tmin)/(b-a)+Tmin. Таким образом, можно интерпретировать выдаваемый сетью сигнал, как величину из любого, наперед заданного диапазона.

Если при составлении обучающего множества ответ на примеры определялся с некоторой погрешностью, то от сети следует требовать не точного воспроизведения ответа, а попадания в интервал заданной ширины. В этом случае интерпретатор ответа может выдать сообщение о правильности (попадании в интервал) ответа.

Другим, часто встречающимся случаем, является предсказание сетью принадлежности входного вектора одному из заданных классов. Такие задачи называют задачами классификации, а решающие их сети — классификаторами. В простейшем случае задача классификации ставится следующим образом: пусть задано N классов. Тогда нейросеть выдает вектор из N сигналов. Однако, нет единого универсального правила интерпретации этого вектора. Наиболее часто используется интерпретация по максимуму: номер нейрона, выдавшего максимальный по величине сигнал, является номером класса, к которому относится предъявленный сети входной вектор. Такие интерпретаторы ответа называются интерпретаторами, кодирующими ответ номером канала (номер нейрона — номер класса). Все интерпретаторы, использующие кодирование номером канала, имеют один большой недостаток — для классификации на N классов требуется N выходных нейронов. При большом N требуется много выходных нейронов для получения ответа. Однако существуют и другие виды интерпретаторов.

Двоичный интерпретатор. Основная идея двоичного интерпретатора — получение на выходе нейронной сети двоичного кода номера класса. Это достигается двухэтапной интерпретацией:

1. Каждый выходной сигнал нейронной сети интерпретируется как 1, если он больше (a+b)/2, и как 0 в противном случае.

2. Полученная последовательность нулей и единиц интерпретируется как двоичное число.

Двоичный интерпретатор позволяет интерпретировать N выходных сигналов нейронной сети как номер одного из 2N классов.

Порядковый интерпретатор. Порядковый интерпретатор кодирует номер класса подстановкой. Отсортируем вектор выходных сигналов по возрастанию. Вектор, составленный из номеров нейронов последовательно расположенных в отсортированном векторе выходных сигналов, будет подстановкой. Если каждой подстановке приписать номер класса, то такой интерпретатор может закодировать N! классов используя N выходных сигналов.


Соединение с базой данных в Visual Studio 2005 - А. Г. Сивак

Итак, база данных Cars создана, и вы можете установить соединение с этой базой данных из Visual Studio 2005. Это позволит просматривать и редактировать различные объекты базы данных в среде разработки Visual Studio 2005. Используя меню View, откройте окно Server Explorer (Обозреватель серверов). Затем щелкните правой кнопкой мыши на узле Data Connections (Связь с данными) и выберите Add Connection (Добавить соединение) из контекстного меню. В появившемся диалоговом окне выберите в качестве источника данных Microsoft SQL Server. В следующем диалоговом окне выберите имя своей машины из раскрывающегося списка Server Name (Имя сервера) или просто укажите localhost а также укажите правильную информацию для входа в систему. Наконец, выберите базу данных Cars из раскрывающегося списка Select or enter a database name (Выбрать или ввести имя базы данных), рис. 22.5.

Рис. 22.5. Соединение с базой данных Cars в Visual Studio 2005

После завершения описанной процедуры, в рамках поддерева Data Connections должен появиться узел для Cars. Обратите внимание на то. что здесь же можно увидеть и записи любой таблицы, если щелкнуть на ее имени правой кнопкой мыши и выбрать Show Table Data (Показать данные таблицы) из появившегося контекстного меню (рис. 22.6).

Рис. 22.6. Просмотр данных таблицы