 |
01.11.2008  13:53
|
|
|
|
В который раз радуюсь, что пересел на Мак. Просто слов нет, чтобы передать, насколько он удобнее PC (не только для разработчика). Одна только нативная консоль чего стоит.
|
|
|
|
|
|
|
|
|
01.11.2008  01:34
|
|
|
|
Вот такая крошка. 4100, 54 см. Бегемотик :)
|
|
|
|
|
|
|
|
|
09.10.2008  17:43
|
|
|
|
...почему, когда человеку нечем гордиться, он начинает гордиться свой национальностью?
|
|
|
|
|
|
|
|
|
28.09.2008  14:41
|
|
|
|
На блозі www.smashingmagazine.com зявилася дуже корисна стаття по jQuery і JavaScript. Рекомендую для прочитання усім хто використовує JavaScript. Стаття англійською, проте вона написана легко, тому щоб зрозуміти її зміст не потрібно буде сильно напрягатися. Або ж скористайтеся моїм перекладом. При привильному використанні, jQuery може допомогти вашим сайтам стати більше інтерактивним, цікавішим і захоплючим. Ця стаття поділиться деякими прикладами використання популярного нині Javascript фреймворку, як створювати ненав'язливі, DOM доступні скриптові ефекти. 1. Чому jQuery? jQuery це хороша бібліотека, тому що за її допомогою можна створювати захоплюючі анімації і інтерактивність. jQuery легкий для розуміння і використання, що значить, що крива навчання дуже мала, а можливості практично необмежені.Читать дальше... Переклав Аleksandro - тобто я.
|
|
|
|
|
|
|
|
|
23.09.2008  12:58
|
|
|
|
Понедельник – настолько хреновый день, что его последствия приходится разгребать еще аж сегодня :(
|
|
|
|
|
|
|
|
|
22.09.2008  19:17
|
|
|
|
|
|
|
|
|
|
06.07.2008  12:45
|
|
|
|
|
|
|
|
|
|
22.06.2008  22:02
|
|
|
|
Почему меня напрягает футбольный фанатизм?
Почему я считаю всех, кто ночью кричит "УРААААА!!! МЫ ПОБЕДИЛИ!!!!" тупыми и ущербными идиотами?
Наверное, потому что такие события не стоят тех эмоций, которые демонстрируют вышеупомянутые имбецилы. Это все равно, что кричать "УРААААА! Я СЕГОДНЯ ОФИГЕННО СХОДИЛ В ТУАЛЕТ!!!" и бесноваться по этому поводу. Ну забили там пару голов. И что? Сие событие заслуживает максимум "а, ну, молодцы" за разговором. Но уж никак не всеобщей истерии с размахиванием флагами.
|
|
|
|
|
|
|
|
|
14.06.2008  00:55
|
|
|
|
Скажите мне ваши ИНН и номер карты ПБ и распрощайтесь со своими деньгами.
Ждем миграции работников отделов кадров в теплые страны на ПМЖ...
UPD: Картинка на закусочку (история операций, оплата в интернете суммы 41.85 USD).

|
|
|
|
|
|
|
|
|
30.05.2008  10:10
|
|
|
|
Странное дело. Все это время я не мог с работы зайти на ХайБлоггер.
Сначала отвалились поддомены. dig ANY "*.hiblogger.net" говорил "понятия не имею". Первые дни с трудом читал по ссылкам вида hiblogger.net/styx. Потом отвалился и dig ANY hiblogger.net. Причем, только из внутренней сети. Дома все работало, но я прихожу домой уставший + дома жена с крошкой в животике :) в-общем, не до ХБ было.
Вчера все магическим образом заработало... мистика :)
|
|
|
|
|
|
|
|
|
28.05.2008  15:04
|
Настроение : Отличное!
|
|
|
На днях пришлось изучать возможность перехода наших сервисов на более быстрые веб-сервера под управлением nginx. Да, да, да... и мне иногда приходится делать грязную работу системного администратора :(. Процесс установки шел не совсем гладко, но все было поставлено.
Установил я значит все, и думаю, что-то не так, ну "не прет" меня от такого :), ну какой смысл от сервера без нагрузки? как от курицы, которая не несет золотые яйца :)
Решил исправить ситуацию и сделать испытание, устроил ему DOS-атаку (Denial of Service - «отказ в обслуживании»). Стресс-тест позволяющий проверить производительность и устойчивость серверов под искусственно сгенерированными "пользователями" сайта. Или в другой интерпретации - это разновидность атаки злоумышленника на компьютерные системы. Целью этой атаки является создание таких условий, при которых настоящие пользователи системы не могут получить доступ к предоставляемым системой ресурсам, либо этот доступ затруднен.
Помощи в организации попросил у моих друзей из КПИ, которые сидят на высокоскоростном интернете. Для этой цели установил бесплатную CMS от WikiPedia на нашем сервере, а в качестве программы, которая генерирует пользователей на сайте использовали продукт под названием Webserver Stress Tool. Вначале запустили небольшую нагрузку, но сервер даже не заметил что его «клюют». Потом решили «вжарить по полной». Запустили на 2-х компьютерах подключенных к каналу 100 МБ/сек (UA-IX) 250 лже-пользователей с интервалом нажатия на ссылки и заходом на сайт 0 сек, тем самым, сымитировав ситуацию, как будто на сайте сидят 250 пользователей и непрерывно (в реальности такого просто быть не может) давят на все ссылки в течение 180 секунд. Сервер наконец-то понял, что к нему идут обращения, индикатор загрузки показывал отметку 55%. При этом, на сайт можно было зайти с небольшой задержкой с любого компьютера. В общем, как мы не старались, выше 60% так и не вышло «завалить» сервер.
Оценки конечно субъективные, и не понятно как будет вести себя реальный сайт с его сложными запросами под реальной нагрузкой, но даже такой небольшой тест несет в себе позитивные эмоции и надежды что в скором будущем наши сервисы окончательно перестанут тормозить :) !!!
Одним словом: МЫ ПЕРЕХОДИМ на nginx!
Пользуясь случаем, хочу выразить благодарность Игорю Сысоеву, который является разработчиком данного веб-сервера nginx.
Спасибо за внимание! :)
|
|
|
|
Метки:
стресс, dos-атака, стресс-тест, stress, stress-test, nginx, web-server, веб, веб-сервер, проверка, производительность
|
|
|

|
25.04.2008  23:41
|
|
|
|
Сегодня обнаружили очень неприятный баг в PHP.
Коротко: при создании файла сессии PHP не проверяет на наличие уже существующего файла с таким именем :(
Длинно:
При открытии сессии PHP:
1. генерит "уникальное" имя сессии, например sess_01234567890abcdef и сохраняет файлик в папку сессий, указанных в php.ini, например в /tmp
2. пишет браузеру куку с именем PHPSESSID и значением "0123456789abcdef".
3. при приходе браузера с кукой PHPSESSID - из нее берется идентификатор сессии ("0123456789abcdef") и сопоставляется с файликом на сервере (sess_0123456789abcdef)
Наверняка, все знают идеологическую дыру в этой системе: если я утяну куку PHPSESSID с чужого браузера и подсуну в свой - сервер будет сопоставлять оба браузера с одним файлом сессии.
Так вот. Сегодня обнаружилось, что при создании сессии PHP совсем не задается вопросом "а есть ли уже сессия с таким идентификатором?". В итоге, PHP может создать сессию (и послать браузеру куку PHPSESSID) с уже имеющимся идентификатором. Немного непонятно, как так получается, по заверениям разработчиков генерируемый SESSID должен быть уникальным. Однако даже md5(microtime(true)) - всего лишь псевдоуникальность, обусловленная спецификой алгоритма хэширования...
К чему это приводит в итоге, догадаться несложно. От мелких шалостей, типа написания сообщений на форумах от чужого имени, до вполне реального воровства чужих денежных средств.
Как решается эта проблема? На самом деле, очень просто:
Мы вообще отказываемся от механизма сессий в PHP, и используем свой. Генерируем SESSID путем хэширования (лучше sha1) некоторых данных пользователя (user_id вполне подойдет) и случайных данных (например, /dev/urandom). Хранить сессии можно в файлах (обязательно проверяем созданный SESSID на уникальность ;) ), а можно - в БД. Табличка с TYPE=MEMORY вполне сойдет. Попутно можно хранить некую специфическую информацию, связанную с сессией, например, User-agent, IP и т.д. для улучшения персонализации.
|
|
|
|
|
|
|
|

|
20.04.2008  12:30
|
|
|
|
Меня не перестает поражать количество глюков в каждой новой версии осла (IE), которые разработчики с гордостью называют "фичами".
Меня не перестает поражать ослинное отношение к HTML, CSS и вообще к стандартам.
Как насчет моратория? Представьте, если посетители Вашего сайта увидят "Этот сайт можно смотреть в нормальных браузерах, а Ваш ........... IE к таковым не относится" :)
Понятно, что это все мечты, ибо такое действие должно быть массовым... А пока - выполняем страшные прыжки с переподвыподвертами в коде...
Эх...
|
|
|
|
|
|
|
|
|
22.03.2008  20:21
|
|
|
|
Собственно, продаю. Состояние отличное. Возраст - пару месяцев. Карточка на гиг и наушники (ни разу не юзал) в комплекте, равно как и книжечки с дровами и шнурочками. Причина продажи - апгрейд до iPhone ;) Описание девайса можно найти тут Цена договорная.
|
|
|
|
|
|
|
|
|
22.03.2008  14:46
|
|
|
|
Уф... С этой работой вообще выпал из жизни. Чуть позже все расскажу ;) А вот такую бесовскую книгу продают в одном из магазинов Киева :)
|
|
|
|
|
|
|
|
|
25.02.2008  16:12
|
|
|
|
Вспомнился, почему-то, известный вопрос с БОРа:
int i=5;
int x = ++i + ++i;
Чему равно x?
Долго не угорали споры, одни твердили "13", другие "14".
А все-таки?
C++: 14
PHP: 13
А давайте немножко перепишем.
int i=5;
int a=++i;
int b=++i;
int x = a + b;
В итоге, С++ даст 13, как и PHP.
Но все же, кто прав? :)
|
|
|
|
|
|
|
|
|
22.02.2008  14:00
|
Музыка : BloodHoundGang - I hope you die
|
|
|
Очень хорошо описано у Джоэла Спольского вот тут
Приходится частенько показывать начальству, благо оно (начальство) продвинутое и воспринимает правильно ;)
|
|
|
|
|
|
|
|
|
22.02.2008  12:05
|
Музыка : Dream Theater - Stream of Consciousness
|
|
|
|
|
|
|
|
|
21.02.2008  20:48
|
|
|
|
siege http://www.privatbank.ua:8085/info/index1.stm
** SIEGE 2.66
** Preparing 15 concurrent users for battle.
The server is now under siege...
...
Lifting the server siege... done. Transactions: 65 hits
Availability: 100.00 %
Elapsed time: 32.52 secs
Data transferred: 4.83 MB
Response time: 6.21 secs
Transaction rate: 2.00 trans/sec
Throughput: 0.15 MB/sec
Concurrency: 12.42
Successful transactions: 65
Failed transactions: 0 Longest transaction: 11.18
Shortest transaction: 2.21
Не все еще гладко с этим у ПБ. А если запустить не 1, а 10, с разных серверов, и не на 30 секунд, а на часы...
|
|
|
|
|
|
|
|
|
21.02.2008  15:15
|
Музыка : Hoobastank - Out Of Control
|
|
|
Начитался я всяких страхов, как в Приватбанке деньги воруют и т.д. на всяких блогах и форумах...
По мере ознакомления с душещипательными историями не раз проскакивала мысль "как хорошо, что у меня все хорошо"...
5 минут назад, во время перекура, решил зайти в П24. Так, без всяких определенных целей.
"Выписки"... оппа! На счету гривневой карты на 3000 меньше, чем было час-полтора назад. Обновил статистику (что, обычно, безрезультатно) - картина та же. Хм... деньги я не снимал, SMS-ки не было. Конечно, деньги могла снять жена по дополнительной карте, подключенной к тому же счету, но SMS-то не было...
Чем черт не шутит, зашел в историю... ага, полуторанедельной давности... понятно, проехали.
Звоню жене: "Да, снимала". От сердца отлегло, не надо меня вычеркивать из списков "мы-те-у-кого-с-приватом-все-ок" :)
Причины отсутствия SMS выясняются. Подозреваю, что как обычно "что-то глюкнуло, попробуйте еще раз" :)
|
|
|
|
|
|
|
|
|
21.02.2008  12:08
|
Музыка : Hoobastank - Hello Again
|
|
|
Приветствую всех, кто будет сюда забредать ;)
Надеюсь, что отсутствие у меня литературного дара не отпугнет вас. Зато вы сможете почитать про нелегкую (а порой — забавную) жизнь программистов ;)
|
|
|
|
|
|
|
|
|
04.02.2008  08:13
|
|
|
|
Консорциум W3С (The World Wide Web Consortium) обнародовал первую версию стандарта разметки гипертекста HTML5. За последние 10 лет это крупнейшее внесение изменений в стандарт.

Как ожидается, финальная версия будет принята в 2010 году, дабы все браузеры включили поддержку новой спецификации. Тем временем, Mozilla Firefox уже поддерживает HTML5, а компании Microsoft, Apple и Opera, также разрабатывающие собственные движки Интернет-браузеров, являются активными членами консорциума.
На текущий момент официально принятой является версия HTML4, которая датируется 18 декабря 1997 года.
Изменения, в стандарте HTML большей частью касаются мультимедийных возможностей. Так, в стандарт будет включен интерфейс прикладного программирования, позволяющий создавать двумерную графику средствами языка HTML, а также воспроизводить аудио и видео. Также более мощной станет система исправления и обнаружения ошибок в HTML-коде.
Как заявляет сопредседатель рабочей группы W3C HTML Ден Конноли, в HTML5 работа с видео и звуком станет не сложнее аналогичной работы с изображениями. На данный момент в сети существует множество технологий работы с мультимедиа-контентом, несовместимых между собой. Стандарт HTML5 стандартизирует эти технологии и сделает их применение максимально простым для веб-мастера.
HTML5 будет поддерживать модульную структуру построения сайта, как, например, это реализовано в языках программирования. Теперь повторяющиеся элементы, такие как заголовок или меню можно будет описать один раз использовать там, где это необходимо.
Adobe Flash будет добавлен непосредственно в стандарт HTML5. Еще одно новшество, которое сейчас доступно только при использовании языков программирования для Web, например, PHP или ASP – возможность редактирования веб-страниц непосредственно на сервере.
Как запланировано, последняя предварительная версия будет доступна к концу 2009 года, а финальный релиз увидит свет к осени 2010 года.
|
|
|
|
|
|
|
|

|
25.11.2007  12:17
|
|
|
|
Вероотступник Geronimo: Использование интегрированных пакетов: Woodstox от Codehaus
|
Майкл Галпин, инженер по программному обеспечению, Vitria Technology
21.11.2007
Парсер (parser - программа синтаксического анализа, парсинга) для XML часто является ключевым элементом в обеспечении устойчивости и производительности приложения. К традиционным методам парсинга XML относятся - Document Object Model (DOM) и Simple API для XML (SAX). Сейчас появился инновационный метод, названный Streaming API for XML (StAX), и уже оказался настолько полезным, что его интегрировали в спецификацию платформы Java Platform, Enterprise Edition (Java EE) 5. Apache Geronimo 2.0, и теперь полная реализация Java EE 5 включает StAX-парсер Woodstox от компании Codehaus. В данной статье мы научим вас использовать преимущества парсера StAX, а также расскажем, почему команда Geronimo выбрала Woodstox в качестве своего StAX-парсера.
Значение XML
XML был создан в 1996 г. (авторы Тим Брэй и Майкл Сперберг-Макквин). Его перспективы сразу получили положительную оценку, но тогда никто не мог и предполагать, насколько важной технологией XML станет в будущем. Java-разработчики используют XML для конфигурирования в качестве хранилища данных, а еще чаще - как формат для обмена данными. Он стал основой для Web-сервисов и SOAP, а следовательно, и для конструктивных шаблонов современной сервис-ориентированной архитектуры (Service-Oriented Architecture - SOA). Но этим возможности XML не исчерпываются. В Ajax (Asynchronous JavaScript + XML) он представлен буквой X и играет ключевую роль в создании более функционально насыщенных, чем когда-либо, интерфейсов, присущих современным Web-приложениям.
Конечно, XML не всесилен и имеет свою слабую сторону. Как правило, XML-документы объемны. Для них имеется общая структура дерева каталогов, но расширяемость приводит к тому, что возможны огромные расхождения между схемами для документов. Эти аспекты представляют трудности для эффективного парсинга XML. Имеются два традиционных метода решения проблем с XML-парсингом: DOM и SAX.
Обработка XML: DOM и SAX
DOM и SAX - два классических подхода к XML-парсингу. Во многом они расходятся. DOM предоставляет для XML-документов простую объектную модель. DOM-парсер превращает XML-документ в несложный объект, который представляет все данные из XML-документа. Но за такое точное представление приходится расплачиваться: DOM-парсинг очень требователен к ресурсам памяти.
Для SAX проблема с памятью отсутствует. SAX-парсеры производят серию событий анализа. Обработчик (handler) может регистрировать обратные вызовы (callbacks) для этих событий и затем применять определенную логику к данным, связанным с этими событиями. Это работает быстро и эффективно, но нуждается в сложной программной модели.
Легче всего рассмотреть различия в использовании DOM и SAX, а следовательно, предпосылки и преимущества StAX, на конкретном примере.
Пример парсинга с использованием Flickr
Пример XML-файла для парсинга найти нетрудно. Сейчас большинство Web-сайтов предлагают какие-либо Web-сервисы на основе XML. Flickr - популярный сайт по обмену фотографиями (владелец - компания Yahoo), оснащенный мощным и гибким API. Посмотрим на какой-нибудь простой код для доступа к "интересным" фотографиям на этом сайте. (См. раздел Загрузка - там дается полный исходный код, использованный в данной статье, и обязательно либо поместите Woodstox в свой путь класса, либо используйте JDK 1.6.) Этот код показан в листинге 1.
Листинг 1. Использование API-интерфейса Flickr
String apiKey = "c4579586f41a90372f762cb65c78be5d";
String urlStr = "http://api.flickr.com/services/rest/?" +
"method=flickr.interestingness.getList&per_page=20&api_key="+apiKey;
URL request = new URL(urlStr);
InputStream input = request.openStream();
|
В данном коде используется API Flickr: Representational State Transfer (REST) . (См. раздел Ресурсы, в котором имеется дополнительная информация об API Flickr и о формате REST.) Пример вывода из данного вызова показан в листинге 2.
Листинг 2. XML от Flickr
<rsp stat="ok">
<photos page="1" pages="25" per_page="20" total="500">
<photo id="469774979" owner="35373726@N00" secret="c8a1be2012" server="183"
farm="1" title="Where will it lead me......?" ispublic="1" isfriend="0"
isfamily="0" />
<photo id="470281793" owner="73955226@N00" secret="49612a2794" server="212"
farm="1" title="Island Beauty" ispublic="1" isfriend="0" isfamily="0" />
<photo id="469808244" owner="43568064@N00" secret="26b71544a3" server="227"
farm="1" title="" ispublic="1" isfriend="0" isfamily="0" />
</photos>
</rsp>
|
Обратите внимание на то, что в листинге 2 показаны только три фото. Вызов API вывел бы все 20 (значение параметра per_page в строке с адресом URL.) Результат вполне объяснимый, поэтому посмотрим, как можно выполнить парсинг этого XML-файла. В данном примере анализируется заглавие каждой фотографии и ее идентификационный номер (ID). Этот ID можно использовать для создания адреса URL для этого фото, поэтому легко придумать Web-приложение (например, mashup), которому будет достаточно только этой информации. Вначале надо применить DOM для извлечения этих данных.
Пример использования DOM
Для использования DOM производится парсинг документа в объект документа. Это находящаяся в оперативной памяти (in-memory) структура дерева, представляющая проанализированный XML-документ. Потом надо найти в папках этого DOM-дерева название и ID для каждой фотографии. Объедините их на одной карте. В листинге 3 приведен код для такой операции.
Листинг 3. Парсинг с помощью DOM
DOM популярен, поскольку его очень легко использовать. Просто введите данные в парсер, и вы получите объект document. Теперь можно пройтись по дочерним узлам и найти узел с фотографией. Каждый узел с фото (photo node) является дочерним узлом узла с фотографиями, поэтому надо смотреть в каждом узле с фото. Затем мы получаем доступ к атрибутам title и id каждого узла с фото и сохраняем его в свою карту.
Однако при работе с DOM есть и некоторые недостатки. Приходится сохранять большое количество ненужной информации, например, о владельцах фотографий. Кроме того, всю информацию приходится считывать дважды: сначала в объект документа, а во второй раз - при просмотре объекта документа. Традиционно этой излишней работы избегали при помощи SAX.
Пример использования SAX
SAX-парсер не возвращает такого же понятного объекта document, какой выдавал DOM-парсер. Вместо этого он выдает серию событий по ходу анализа XML-документа. Для этих событий придется создать обработчик, либо реализуя интерфейс, либо расширяя класс DefaultHandler и игнорируя его методы, где это необходимо. В листинге 4 показан SAX-парсинг для XML-документа Flickr.
Листинг 4. Парсинг с помощью SAX
SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
DefaultHandler handler = new DefaultHandler(){
@Override
public void startElement(String uri, String localName,
String qName, Attributes attributes) throws SAXException {
if (qName.equalsIgnoreCase("photo")){
String title = attributes.getValue("title");
String id = attributes.getValue("id");
// карта статична, поэтому можно получить к ней доступ здесь
map.put(id, title);
}
}
};
parser.parse(input, handler);
|
Очевидно, что код, показанный в листинге 4, немного труднее для понимания, чем тот DOM-код, который вы видели в листинге 3. Для обработки SAX-событий нам потребовался ContentHandler, поэтому мы и создали DefaultHandler и игнорировали его метод startElement обратного вызова (callback). Вы удостоверились, что это - элемент фото, а затем получили доступ к его атрибутам title и id.
Здесь код довольно краток и эффективен в работе. Он сохраняет только те данные, которые вам нужны, а анализ документа происходит всего один раз. Расширение класса для регистрации подписчика на события требуется, когда код оказывается значительно сложнее. Было бы хорошо, если бы можно было применить эффективный парсинг XML, но с помощью более интуитивной программной модели. Для этого и предназначен StAX.
Альтернатива StAX
Сложность в SAX возникает из-за конструктивного шаблона Observer, который она реализует. Это пассивная модель (push model), то есть парсер передает модели наблюдателям, которые в дальнейшем действуют в зависимости от происшедших событий. Модель StAX похожа на SAX. Она направляет данные и события из XML-документа, что делает её быстрой и эффективной, как SAX. Серьезная разница заключается в том, что здесь используется активная модель (pull model). При этом код приложения выталкивает события из парсера.
Разница не выглядит критической, но при этом становится возможной значительно более простая программная модель. Посмотрите в листинге 5, как действует StAX.
Листинг 5. Парсинг при помощи StAX
Во-первых, не пришлось расширять не один из классов, потому что не потребовалась регистрация событий. При помощи SAX можно контролировать поток событий, потому что они выталкиваются из парсера. Можно использовать знакомый итерационный синтаксис для поиска внутри документа нужных вам данных. И опять-таки сохраняются только нужные вам данные, а разбор XML-документа производится только один раз. Эффективность такая же, как при использовании SAX, но код стал гораздо понятнее.
Woodstox как поставщик StAX Geronimo
Теперь вы убедились в преимуществах StAX-парсинга. Все признают, что он улучшил XML-технологии. Неудивительно, что этот парсинг стал частью спецификации Java EE 5 (его даже включают в платформу Java Platform, Standard Edition [Java SE] 6.) В качестве компонента Java EE 5 он подлежит реализации в Geronimo 2.0.
К счастью для команды разработчиков Geronimo, существовало несколько реализаций StAX с открытым кодом, поэтому у них была возможность выбора. В качестве StAX-парсера они остановились на Woodstox и включили его в Geronimo. Woodstox считается одной из лучших реализаций StAX по производительности (см. Ресурсы - сравнение разных StAX-парсеров.) Кроме того, Woodstox лицензируется как под Lesser General Public License (LGPL), так и под Apache 2.0. Поэтому включать Woodstox и его исходный код в пакеты Geronimo можно безо всяких ограничений.
Настройка производительности вашего приложения: как добиться максимума от Woodstox
Производительность - одно из преимуществ, которые Woodstox принес в Geronimo. Как и с другими высокопроизводительными технологиями, очень важно понять, как добиться максимальной производительности от Woodstox. В коде листинга 5 используется API-интерфейс высокого уровня XMLEventReader, который включен в спецификацию StAX. Можно использовать API-интерфейс более низкого уровня, что увеличит производительность, - XMLStreamReader. В листинге 6 показано, как StAX-парсер использует этот интерфейс.
Листинг 6. StAX-парсинг при помощи XMLStreamReader
Код в листинге 6 аналогичен коду в листинге 5; хотя он явно более низкого уровня, можно добиться значительного повышения производительности.
Заключение
Вы узнали о преимуществах использования StAX-парсера для анализа XML-документов. StAX предлагает компромиссное решение для SAX и DOM. Вы можете прямо сейчас воспользоваться StAX, потому что он входит в пакет Geronimo 2.0. Вы получите не только интуитивно понятные API StAX, но и дополнительные преимущества от высокопроизводительной реализации StAX в Woodstox. |
|
|
|
|
|
|
|
|

|
19.11.2007  15:33
|
|
|
|
Работа над новым проектом подходит к концу. Уже сейчас можно оставить свой адрес электронной почты и быть среди тех, кто получит приглашение первым. Проект выйдет в свет на следующей неделе. Проект рассчитан на продвинутую и креативную молодежь Киева и Украины в целом. Знакомства, фото, поиск друзей, группы, анонсы событий и многое другое. Присоединяйтесь!
|
|
|
|
|
|
|
|
|
09.11.2007  21:19
|
|
|
|
|
|
|
|
|
|
|
 |
Лента друзей RSS
|
 |