Списки фигур

Добавлено Дата: 21 December, 2010 категория: Алгоритмы, Игры

Чтобы генерировать перемещения для некоторой позиции, нужно, прежде всего, найти свои фигуры. Каждый раз сканировать весь массив доски не­эффективно. Кроме того, фигуры лучше брать в определенной последова­тельности, например:

1)   король;

Читать »

Создание отчета с несколькими колонками

Добавлено Дата: 21 December, 2010 категория: XSLT

Задача

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

Решение

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

Читать »

Объединение документов с различными схемами

Добавлено Дата: 20 December, 2010 категория: XSLT

Задача

Имеется несколько документов с разной структурой, а требуется объединить их в один.

Решение

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

Читать »

Описание Web Services на языке WSDL

Добавлено Дата: 20 December, 2010 категория: Java, Web, XML

В главе 2 мы говорили о том, что после создания Web-службы на сервере в виде сервлета, страницы JSP, JWS-файла, компонента EJB или другого объекта, следует описать состав и возможности Web-службы на языке, не зависящем от платформы, операционной системы, системы программирования, использованной при создании Web-службы. Это описание регистрируется в общедоступном месте Интернета, например, реестре UDDI или ebXML, или хранится на сервере Web-службы. Описание должно содержать полную и точную информацию обо всех услугах, предоставляемых Web-службой, способы получения услуг, содержимое запроса на получение услуги, формат предоставляемой информации.

Читать »

"Горячие" команды формы

Добавлено Дата: 20 December, 2010 категория: C#, Компоненты

Метод AddCommand сервиса I Menu Commands е г vice позволяет создавать обработчики "горячих" команд, как показано в листинге 7.5. Обратите внимание, что перед тем как добавить пункт меню, его надо удалить, чтобы избежать дублирования. Конкретная команда назначается с помощью класса MenuCommands или standardcommands. Эти команды не являются напрямую отражением клавиатурных комбинаций, это именно набор команд (листинг 7.6). Например, LockCommand или Brii tF r,v iro нс ЯИЛЯЮ1СЯ кодлми кгтииш

Читать »

Дизайнер формы

Добавлено Дата: 20 December, 2010 категория: C#, Компоненты

(form designer) имеет три маркера для изменения размера формы. С их помощью можно увеличить или уменьшить размер формы по высоте и ширине или одновременно по обоим параметрам, пропорционально (рис. 2.2).

Если на форме выбрать какой-нибудь элемент, то редактор показывает маркеры изменения размеров и положения этого элемента (glyph). Причем, как видно на рис. 2.3, маркеры меняются в зависимости от реальной возможности изменять размеры. Так, компонент Button можно менять по веем параметрам (во всех направлениях), а для компонента CheckBox доступно только изменение положения компонента на форме. Соответственно, компонент Button имеет восемь маркеров, а компонент checkBox только один.

Читать »

Работа с электронными таблицами в формате Excel XML

Добавлено Дата: 20 December, 2010 категория: XSLT

Задача

Требуется экспортировать данные из Excel в XML, но не в том формате, кото­рый предлагает Microsoft.

Решение XSLT 1.0

Пусть есть такая электронная таблица Excel:

Date                      Price                                  Volume

Читать »

Преобразование имеющейся заготовки SVG

Добавлено Дата: 20 December, 2010 категория: XSLT

Задача

Требуется графически отобразить данные, заполнив ими имеющийся SVG- шаблон.

Решение XSLT 1.0

Пусть требуется вывести данные в виде столбчатой диаграммы. Можно представить себе XSLT-преобразование, которое конструирует SVG-пред- ставление такой диаграммы с нуля (см. рецепт 11.2). Однако человеку, кото­рой не очень уверенно владеет графическими манипуляциями, эта задача мо­жет показаться пугающе сложной. Но иногда нужно лишь вывести данные в нескольких фиксированных точках. В таком случае проще заранее создать в SVG-редакторе изображение, которое будет служить шаблоном, в который мы подставим конкретные данные с помощью XSLT. При таком подходе задача существенно упрощается.

Читать »

SOAP-послание с дополнениями

Добавлено Дата: 20 December, 2010 категория: Java, Web, XML

Компоненты распределенного приложения часто должны обмениваться не только текстовыми SOAP-посланиями, но и графическими документами: изображениями, схемами, чертежами, рукописями. Такие документы обычно оформляются в бинарных форматах GIF, JPEG, PDF. Метод POST протокола HTTP может передавать не только текстовую, но и самую разнообразную информацию, определяемую MIME-типами text, image, audio, video, application, multipart, message. Остается только совместить передачу SOAP-посланий и бинарной информации. Для этого удобен М1МЕ-тип multipart, введенный рекомендацией RFC 2046.

Читать »

Хеш-таблицы одним из самых мощных способов повышения про­изводительности компьютера

Добавлено Дата: 19 December, 2010 категория: Игры, Структуры данных, Теория

Хеширование является одним из самых мощных способов повышения про­изводительности компьютера. Не знаю, кому как, а мне хеширование всегда не очень нравилось из-за своей половинчатости, приблизительности, если можно так сказать. Хеширование не является точным методом. Тем не ме­нее альтернативы ему нет, и если мы хотим получить высокие скоростные показатели, хеширование нам потребуется.

Читать »

Создание клиента JAX-RPC

Добавлено Дата: 19 December, 2010 категория: Java, Web, XML

Система JAX-RPC позволяет создавать клиентские приложения трех типов. Проще всего использовать в приложении заранее созданные заглушки (generated stubs). Их создает старый компилятор хгрсс с флагом -client, например, так:

$ хгрсс -client -d bookclient config.xml

Читать »

Метаинформация, отражение и атрибуты

Добавлено Дата: 19 December, 2010 категория: C#, Компоненты

Взаимодействие частей программ между собой подразумевает наличие информации о предоставляемых ими возможностях. Например, к библиотеке DLL прилагается заголовочный файл, описывающий экспортируемые данные, процедуры и структуру типов. Для СОМ-компонента описание хранится в idl-файле или в виде библиотеки типов.

Читать »

Генерация кода из UML-моделей, описанных на языке XMI

Добавлено Дата: 19 December, 2010 категория: XSLT

Задача

Требуется сгенерировать код по спецификациям на языке Unified Modeling Language (UML), но результат, который выдает генератор, встроенный в инст­рументальную программу для работы с UML, вам по каким-то причинам не нра­вится.

ПАТТЕРН ПРОЕКТИРОВАНИЯ «СОСТОЯНИЕ»

Читать »

Вычисление юлианского и абсолютного дня, соответствующих заданной дате

Добавлено Дата: 18 December, 2010 категория: XSLT

Задача

Зная дату, требуется найти соответствующий ей юлианский или абсолютный номер дня.

ЮЛИАНСКИЙ ДЕНЬ И ДАТА ПО ЮЛИАНСКОМУ КАЛЕНДАРЮ

Не путайте юлианский день с юлианским календарем. Джозеф Дж. Скали- гер (Joseph J. Scaliger) изобрел юлианский период, так чтобы каждому году можно было сопоставить целое положительное число, не заботясь о том, по какую сторону от начала новой эры он находится. Период начинается 1 января 4713 года до н.э. и длится 7980 лет. В астрономии юлианский период применяет­ся для того, чтобы ассоциировать с каждым днем, начиная с 1 января 4713 года до н.э. уникальное число, которое и называется юлианским днем. Эту главу я начал писать в юлианский день с номером 2 452 376. Любознательный читатель может воспользоваться приведенным рецептом, чтобы узнать соответствующую ему дату. Другую схему абсолютной нумерации дней применили Н. Дершовиц и Э. Рей­нгольд в своих календарных алгоритмах. В ней точкой отсчета является 1 янва­ря 1 года н.э. Номер дня в их системе я называю абсолютным номером дня. Абсолютный день 1 соответствует юлианскому дню 1 721 426.

Читать »

Прямая обработка очереди сообщений

Добавлено Дата: 18 December, 2010 категория: C#, Компоненты

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

Читать »