logo   Блоги рядом:  Вовка, оні заєбалі, Диверсанты
Регистрация  Забыли пароль?

 

 

Обожаю Яблоки

В который раз радуюсь, что пересел на Мак. Просто слов нет, чтобы передать, насколько он удобнее PC (не только для разработчика). Одна только нативная консоль чего стоит.


Метки: mac, apple
Styx открыть Комментариев 4

Дмитрий Сергеевич

 Вот такая крошка. 4100, 54 см. Бегемотик :)


Метки: Димка
Styx открыть Комментариев 2

Интересно...

 ...почему, когда человеку нечем гордиться, он начинает гордиться свой национальностью?


Styx открыть Комментариев 7

jQuery і JavaScript кодінг: Приклади і хороша практика

На блозі www.smashingmagazine.com зявилася дуже корисна стаття по jQuery і JavaScript. Рекомендую для прочитання усім хто використовує JavaScript. Стаття англійською, проте вона написана легко, тому щоб зрозуміти її зміст не потрібно буде сильно напрягатися. Або ж скористайтеся моїм перекладом.

При привильному використанні, jQuery може допомогти вашим сайтам стати більше інтерактивним, цікавішим і захоплючим. Ця стаття поділиться деякими прикладами використання популярного нині Javascript фреймворку, як створювати ненав'язливі, DOM доступні скриптові ефекти.

1. Чому jQuery?

jQuery це хороша бібліотека, тому що за її допомогою можна створювати захоплюючі анімації і інтерактивність. jQuery легкий для розуміння і використання, що значить, що крива навчання дуже мала, а можливості практично необмежені.Читать дальше...

 

Переклав Аleksandro - тобто я.


Aleksandro пишет в developers открыть Комментариев 1

Понедельник

 Понедельник – настолько хреновый день, что его последствия приходится разгребать еще аж сегодня :(


Styx открыть

Ах да, вы же еще не знаете

 Скоро стану папой :)


Styx открыть Комментариев 11

Во как


Styx открыть

Фанатизм маст дай

Почему меня напрягает футбольный фанатизм?

Почему я считаю всех, кто ночью кричит "УРААААА!!! МЫ ПОБЕДИЛИ!!!!" тупыми и ущербными идиотами?

Наверное, потому что такие события не стоят тех эмоций, которые демонстрируют вышеупомянутые имбецилы. Это все равно, что кричать "УРААААА! Я СЕГОДНЯ ОФИГЕННО СХОДИЛ В ТУАЛЕТ!!!" и бесноваться по этому поводу. Ну забили там пару голов. И что? Сие событие заслуживает максимум "а, ну, молодцы" за разговором. Но уж никак не всеобщей истерии с размахиванием флагами.


Styx открыть Комментариев 9

Маразм крепчал

Скажите мне ваши ИНН и номер карты ПБ и распрощайтесь со своими деньгами.

Ждем миграции работников отделов кадров в теплые страны на ПМЖ...

UPD: Картинка на закусочку (история операций, оплата в интернете суммы 41.85 USD).


Styx открыть Комментариев 3

I'm back (часть вторая)

 Странное дело. Все это время я не мог с работы зайти на ХайБлоггер.

Сначала отвалились поддомены. dig ANY "*.hiblogger.net" говорил "понятия не имею". Первые дни с трудом читал по ссылкам вида hiblogger.net/styx. Потом отвалился и dig ANY hiblogger.net. Причем, только из внутренней сети. Дома все работало, но я прихожу домой уставший + дома жена с крошкой в животике :) в-общем, не до ХБ было.

Вчера все магическим образом заработало... мистика :)


Styx открыть Комментариев 8
Настроение : Отличное!

DOS-атака на наш веб-сервер! (nginx)

На днях пришлось изучать возможность перехода наших сервисов на более быстрые веб-сервера под управлением nginx. Да, да, да... и мне иногда приходится делать грязную работу системного администратора :(. Процесс установки шел не совсем гладко, но все было поставлено.

Установил я значит все, и думаю, что-то не так, ну "не прет" меня от такого :), ну какой смысл от сервера без нагрузки? как от курицы, которая не несет золотые яйца :)

Решил исправить ситуацию и сделать испытание, устроил ему DOS-атаку (Denial of Service - «отказ в обслуживании»). Стресс-тест позволяющий проверить производительность и устойчивость серверов под искусственно сгенерированными "пользователями" сайта. Или в другой интерпретации - это разновидность атаки злоумышленника на компьютерные системы. Целью этой атаки является создание таких условий, при которых настоящие пользователи системы не могут получить доступ к предоставляемым системой ресурсам, либо этот доступ затруднен.

Помощи в организации попросил у моих друзей из КПИ, которые сидят на высокоскоростном интернете. Для этой цели установил бесплатную CMS от WikiPedia на нашем сервере, а в качестве программы, которая генерирует пользователей на сайте использовали продукт под названием Webserver Stress Tool. Вначале запустили небольшую нагрузку, но сервер даже не заметил что его «клюют». Потом решили «вжарить по полной». Запустили на 2-х компьютерах подключенных к каналу 100 МБ/сек (UA-IX) 250 лже-пользователей с интервалом нажатия на ссылки и заходом на сайт 0 сек, тем самым, сымитировав ситуацию, как будто на сайте сидят 250 пользователей и непрерывно (в реальности такого просто быть не может) давят на все ссылки в течение 180 секунд. Сервер наконец-то понял, что к нему идут обращения, индикатор загрузки показывал отметку 55%. При этом, на сайт можно было зайти с небольшой задержкой с любого компьютера. В общем, как мы не старались, выше 60% так и не вышло «завалить» сервер.

Оценки конечно субъективные, и не понятно как будет вести себя реальный сайт с его сложными запросами под реальной нагрузкой, но даже такой небольшой тест несет в себе позитивные эмоции и надежды что в скором будущем наши сервисы окончательно перестанут тормозить :) !!!

Одним словом: МЫ ПЕРЕХОДИМ на nginx!

Пользуясь случаем, хочу выразить благодарность Игорю Сысоеву, который является разработчиком данного веб-сервера nginx.

Спасибо за внимание! :)


Олексій Акулов пишет в developers открыть Комментариев 18

Баг в PHP с сессиями

 Сегодня обнаружили очень неприятный баг в 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 и т.д. для улучшения персонализации.


Styx открыть Комментариев 9

Ослинный мораторий

 Меня не перестает поражать количество глюков в каждой новой версии осла (IE), которые разработчики с гордостью называют "фичами".

Меня не перестает поражать ослинное отношение к HTML, CSS и вообще к стандартам.

Как насчет моратория? Представьте, если посетители Вашего сайта увидят "Этот сайт можно смотреть в нормальных браузерах, а Ваш ........... IE к таковым не относится" :)

Понятно, что это все мечты, ибо такое действие должно быть массовым... А пока - выполняем страшные прыжки с переподвыподвертами в коде...

Эх...


Метки: ie
Styx пишет в developers открыть

Отдам HTC Touch в хорошие руки

 Собственно, продаю.

Состояние отличное. Возраст - пару месяцев. Карточка на гиг и наушники (ни разу не юзал) в комплекте, равно как и книжечки с дровами и шнурочками.

Причина продажи - апгрейд до iPhone ;)

Описание девайса можно найти тут 

Цена договорная.


Styx открыть

Back

 Уф... С этой работой вообще выпал из жизни.

Чуть позже все расскажу ;)

А вот такую бесовскую книгу продают в одном из магазинов Киева :)


Styx открыть Комментариев 3

Кто прав?

Вспомнился, почему-то, известный вопрос с БОРа:

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.

Но все же, кто прав? :)


Styx открыть Комментариев 4
Музыка : BloodHoundGang - I hope you die

Человеческая многозадачность

Очень хорошо описано у Джоэла Спольского вот тут

Приходится частенько показывать начальству, благо оно (начальство) продвинутое и воспринимает правильно ;)


Styx открыть
Музыка : Dream Theater - Stream of Consciousness

Что такое деньги?

Довольно известное видео, но, может, кто-то еще не видел.

http://styx.kiev.ua/dl/Money_as_Debt.avi (~363MB)


Styx открыть

И снова Привет, Приват ;)

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 секунд, а на часы...


Styx открыть
Музыка : Hoobastank - Out Of Control

Привет, Приват :)

Начитался я всяких страхов, как в Приватбанке деньги воруют и т.д. на всяких блогах и форумах...

По мере ознакомления с душещипательными историями не раз проскакивала мысль "как хорошо, что у меня все хорошо"...

5 минут назад, во время перекура, решил зайти в П24. Так, без всяких определенных целей.

"Выписки"... оппа! На счету гривневой карты на 3000 меньше, чем было час-полтора назад. Обновил статистику (что, обычно, безрезультатно) - картина та же. Хм... деньги я не снимал, SMS-ки не было. Конечно, деньги могла снять жена по дополнительной карте, подключенной к тому же счету, но SMS-то не было...

Чем черт не шутит, зашел в историю... ага, полуторанедельной давности... понятно, проехали.

Звоню жене: "Да, снимала". От сердца отлегло, не надо меня вычеркивать из списков "мы-те-у-кого-с-приватом-все-ок" :)

Причины отсутствия SMS выясняются. Подозреваю, что как обычно "что-то глюкнуло, попробуйте еще раз" :)


Styx открыть Комментариев 4
Музыка : Hoobastank - Hello Again

Mounting styx.hiblogger.net :)

Приветствую всех, кто будет сюда забредать ;)

Надеюсь, что отсутствие у меня литературного дара не отпугнет вас. Зато вы сможете почитать про нелегкую (а порой — забавную) жизнь программистов ;)


Styx открыть Комментариев 25

Опубликована предварительная версия стандарта HTML5

Консорциум 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 года.

Метки: html, w3c, новое
Олексій Акулов пишет в developers открыть Комментариев 3

Библиотека IBM: в поисках идеального парсера для XML

Вероотступник 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.

Метки: xml, ibm, parser
Aleksandro пишет в developers открыть

Новый проект в украинском интернете.

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

Присоединиться!

sergeykorkin пишет в developers открыть Комментариев 4

Тренінг, як веб-програмерам подвоїти з.п.



Интересный тренинг о том, как web-программисту удвоить зарплату:
http://community.livejournal.com/phpmoney/4745.html


Aleksandro пишет в developers открыть Комментариев 3



Что здесь?

Здесь отображаются последние записи тех блоггеров, которых вы добавили в друзья. Список друзей вы можете просмотреть здесь. Редактировать список и разбивать друзей на группы можно здесь.



Содержание страницы

Интересы
вэб, Пиво, чипсы, юмор и т.д

Лента друзей RSS