Архив

Архив раздела ‘AJAX’

Я убью тебя, Google Reader! Высоконагруженный сервис своими руками. Статья для журнала Хакер.

18 Июль 2010 aleks_raiden Comments off

Статья написана специально для журнала Хакер и опубликована на сайте журнала (в несколько сокращенной и отредактированной версии). Ниже я публикую свой оригинальный вариант,  без правок или ограничения на объем материала.

Шеф, что делать будем?

Получение новостей через фиды или RSS-ленты сегодня самый быстрый и простой способ следить за жизнью любимых сайтов или блогов. Твиттер, конечно, крут, но рсс-кам ещё рано умирать. Сегодня у тебя большой выбор - RSS можно читать кучей способов, начинаю  от почтового клиента (да, в Mozilla Thunderburd 3 встроен клиент) и браузера, заканчивая специальными программами и онлайн сервисами. Самым крутым из таких будет, конечно, Google Reader. Пользоваться им вроде бы легко - вводишь адрес сайта и отныне просто заходи и читай новости, никакой кнопки Refresh жать не надо, гугл сам позаботится о том, чтобы найти новые новости и показать их тебе. Но при этом у него есть много врождённых проблем, например, не очень интуитивный интерфейс, а также часто сильные задержки в получении новых сообщений. Особенно это касается лент из Твиттера. Ага, популярнейший сервис также вовсю использует RSS, транслируя туда твои сообщения. Но ведь ты уже в курсе, как быстро там все изменяется - написал о новом хаке винды, а через минуту уже весь интернет с криками "ура!" бросается ломать империю Билли. Но читатели через Google живут в параллельном мире и просто тормозят - там лента из твиттера обновляется часто с задержками в минуты и часы, непорядок!

Давай напишем для себя любимого (ну и друзей, куда ж без них) простую онлайновую читалку RSS-новостей. Фичами будет возможность автоматически находить фиды с любого адреса (если они там есть, конечно) и  полное игнорирование нюансов форматов ( мы сможем работать с любым фидом). Кроме этого, научимся высшему пилотажу РНР-программирования - созданию распределённых систем. Когда у тебя две-три ленты, с ними справиться даже твой нетбук, но когда друзья поймут, что гугл теперь отстой, и начнут добавлять свои ленты, станет плохо. А мы сделаем так, что читалка будет работать с любым количеством лент, просто успевай доставлять сервера! Помнишь, мы не раз рассказывали тебе про облачный компьютинг, Amazon EC2 и прочие заморские технологии? Вот с их помощью это сделать очень легко - нажав кнопочку и у тебя уже два сервера вместо одного. Используя РНР и немного магии, ты сможешь заставить работать на наше благо столько серверов, сколько достанешь. Читать далее...

Веб-приложения реального времени: jSocket,Node.JS, Redis, MQ. Часть 2.

27 Июнь 2010 aleks_raiden Comments off

Приветствую своих читателей. Сегодня мы продолжим начатую ранее тему о веб-приложениях реального времени и поговорим о серверной части. Буквально на днях по аське у меня состоялся разговор по теме онлайн игр и архитектуры движка для реалтайм игры. Оказалось, мы оба думали про одно и то же, а именно, использование NodeJS как сервера для ядра системы, обслуживающего клиентские подключения. Конечно, построить весь технологический стек современной браузерной игры полностью на NodeJS все ещё затруднительно, да и сам процесс написания масштабных приложений на серверном JS еще не изучен. А вот держать комет-подсистему, которая отвечает за мгновенную доставку нужных данных клиентам - для этого Node  подходит идеально. Но давайте отложим рассмотрение этой части, здесь тема не на одну статью, а поговорим про создание распределенной системы обмена данными для серверной платформы. Читать далее...

Мастер-классы по JavaScript.

6 Июнь 2010 aleks_raiden Comments off

В ближайшем времени в нескольких городах России и Украины пройдут уникальные в своем роде мастер-классы по javascript.

Ведущий - Илья Кантор, создатель javascript.ru, в прошлом один из
разработчиков фреймворка dojo toolkit, человек с большим опытом в
создании сложных javascript-приложений.

Темы:
* Профессиональное javascript-программирование.
* Сложный AJAX и COMET: тонкости Web 2.0.
* Мастер-класс по клиентской оптимизации.
* Секреты jQuery.

Мероприятия платные, но по стоимости очень доступные.
При регистрации заранее - скидки.

Узнать больше вы можете на странице http://javascript.ru/mk

Рекомендую для посещения.

Технология Comet для построения быстрых веб-приложений. Статья в журнал Хакер

31 Май 2010 aleks_raiden Comments off

Статья написана специально для журнала Хакер и опубликована на сайте журнала (в несколько сокращенной и отредактированной версии). Ниже я публикую свой оригинальный вариант,  без правок или ограничения на объем материала.

Comet… чё за …?

Сегодня все в Интернете хочет быть быстрым, очень быстрыми. Ты даже не успел загрузить страничку в Facebook или вКонтакте, а твои друзья уже узнают, что ты онлайн и пытаются вызвать в чат. На других сайтах ты можешь видеть уже не просто ники пользователей, а сразу начать с ними общаться – и это не просто личные сообщения, как было в форумах в лихих 90-х, а полноценные чаты типа аське. Добавил Вася новую статью в блог, ленту новостей которого ты читаешь? Она должна сразу появиться у тебя в ридере, если, конечно, ты сейчас его читаешь. Задержка, любое промедление сразу ставит крест на любом ресурсе, нацеленном на общение. Посмотри на всякие конференции стартапов и первые страницы популярных ресурсов  - везде умные слова вроде real-time, collaborative и communication. Что за …?

Отвечаю! Если раньше веб-приложения были, как и обычные сайты – просто страницы и ты должен был ходить по ссылкам, чтобы обновить информацию, разве что по таймеру обновлялись фреймы, то теперь все иначе. Все хотят, чтобы информация приходила к нам сама в момент появления, а не ждать и тыкать сто раз в рефреш, ожидая, когда же твой друг наконец появиться в сети. Такие требования поставили перед разработчиками новые задачи, существенно усложнив жизнь, но, а что делать? Так и родилась технология Comet или, по простому, набор приёмов и средств для обновления данных (страниц или их элементов) в браузере без твоего участия. От тебя надо только залогиниться и зайти на сайт – в социальную сеть, онлайн игру или другой ресурс. От этого момента, если какая-то новая информация появляется, сервер сам отправит твоему браузеру новые данные. Читать далее...

Веб-приложения реального времени: jSocket,Node.JS, Redis, MQ. Часть 1.

3 Май 2010 aleks_raiden 7 comments

Приветствую свои читателей. Да, у меня снова выдался сложный период и обновлений в блоге не было долгое время, хотя в твиттере я продолжал писать, пусть и не каждый день. Но сейчас праздники, все сервисы, над которыми я работаю, вроде более менее работают, поэтому можно, вместе с отдыхом, подумать при новую статью. Буквально неделю назад я наконец добрался до новой потрясающей штуки - серверного JavaScript и его платформы - Node.JS. Реально, это очень и очень мощная и приятная штука. За последнее время это первый раз когда от программирования получаешь просто удовольствие. Тем более, что писать различные асинхронные штуки на этом движке очень и очень легко.

Для тех, кто не в курсе - Node.JS это серверный интерпретатор JavaScript построенный на базе V8 от Google, дополненный системными библиотеками, неблокирующим асинхронным I/O и прочими вкусностями. И очень, очень быстрый. Несмотря на текущую версию 0.1.93, он уже вполне пригоден для промышленного использования, хоть и со многими оговорками, в первую очередь связанных с отсутствием или сыростью дополнительных библиотек. Также, поскольку развитие идет полным ходом, часть API не стандартизированная и поэтому вы можете запросто потратить полдня на то, что в этой версии часть функций перенесена в другой модуль или изменились параметры функции. Однако это просто детские болезни роста и при должном старании из этого даже получаешь удовольствие. Читать далее...

Adobe AIR 2.0 – свежий глоток нового воздуха!

18 Октябрь 2009 aleks_raiden Comments off

sidebar-logo2Приветствую наших читателей. Предыдущий месяц совпал со множеством кардинальных событий, поэтому блог временно не обновлялся, теперь буду стараться писать регулярнее. Если кратко подытожить события, то я переехал жить и работать в Киев, по причине того, что перешел в один стартап, в котором мне "сделали предложение, от которого невозможно отказаться" и мы сейчас, вместе с небольшой но отличной командой создаем очень интересное (с технической точки зрения) приложение, или скорее, SaaS-платформу для... а здесь уже нельзя пока рассказывать, мы пока публично не анонсировали проект. Конечно, это никак не означает, что я забыл о своих игровых интересах, наша компания все еще работает, и, судя по всему, достаточно хорошо. Параллельно мы проектируем несколько игровых проектов, поэтому ждите анонсов. Также не забыт собственный сигнал-ориентированных фреймворк, он сейчас как раз проходит боевую обкатку в стартапе и будет выложен (в open source, конечно) немного позже. Вот такие новости, но если не хотите ожидать очередной статьи в блоге, чтобы узнать о мире новых технологий, следите за нашим твиттером, там я публикую почти ежедневно.

А теперь поговорим о наиболее интересном событии за прошедшее время. На мой взгляд, это Adobe MAX 2009, самая большая конференция, где Adobe представила множество интересных проектов и заявила о выходе в следующем году линейки CS 5 своих продуктов (а там много интересного уже сейчас, например, Flash CS 5 обещают доступную бету уже к концу года). Но для веб-разработчиков наиболее ожидаемым является достаточно небольшой проект (по сравнению с другими) - Adobe AIR 2.0. Я уже неоднократно заявлял, что AIR это пока лучшая платформа для RAI-приложений, при этом без каких-либо отклонений от слова "приложений". Текущая версия 1.5.х обладает мощной поддержкой индустрии и разработчиков, в том числе и потому, что использует всем привычные технологии для разработки - JavaScript/HTML и Flash. Приложения для AIR выпускают многие компании, в том числе гиганты индустрии вроде eBay, NASDAQ, FedEx, медиагигант Fox и другие, сама Adobe создала несколько мультимедийных проектов для распространения своей платформы.
Читать далее...

ExtJS Tips: делаем красивый список групп.

3 Август 2009 aleks_raiden 16 comments

grid_iconПриветствуем наших читателей. Сегодня мы поговорим, как сделать на базе ExtJS красивый (и функциональный) список каких-либо данных, например, список пользователей или групп. Я применяю такой список в одном из текущих проектов (правда, там уже не настолько красивый и удобный)  Такой виджет можно использовать при выводе любых данных, которые характеризуются не только тестовой строкой, но и расширенными данными, а также необходимо сопоставить какие-то действия каждому набору. Допускается динамическое обновление данных (через Store), а также сортировка и группирование - в общем, все возможности, предоставляемые компонентом Grid из ExtJS. Сразу скажу, что я буду использовать версию ExtJS 3.0, но и в предыдущем релизе, 2.3.х пример также должен быть работоспособным. Приведенный компонент является примером и никак не готовым для использование кодом, а лишь демонстрацией возможностей, вы в своих проектах можете как угодно менять и дорабатывать под свои возможности. По этой же причине к статье намеренно нет исходного кода. Читать далее...

На чем строить веб-приложения будете, господа? Статья для журнала Хакер

10 Июнь 2009 aleks_raiden 8 comments

121Статья написана специально для журнала Хакер и опубликована в бумажной версии (в несколько сокращенной и отредактированной версии). Редакторскую версию из бумажной версии можно прочитать на сайте журнала, ниже я публикую свой оригинальный вариант,  без правок или ограничения на объем материала.

Простые веб-странички с серыми HTML-формами - это отстой и прошлое. Сегодня в моде веб-приложения с графикой, видео и мультимедией, да побольше. Если хочешь узнать, как работают такие приложения и что для этого нужно - читай обзор!

Веб-приложения и  RIA -  две (не)большие разницы

Для начала давай все же разберемся, что это за термины и что за ними стоит (или ничего). RIA расшифровывается как Rich Internet Application и означает, что приложения очень тесно связаны с сетью, и для своей работы требуют постоянного, а часто и еще высокоскоростного соединения. Кроме этого, такие приложения обязательно имеют насыщенный графикой, анимацией и визуальными эффектами интерфейс, а не обычные убогие серые рамки и кнопочки, которыми нас раньше мог порадовать HTML. Часто они имеют доступ к ресурсам клиентского компьютера, выходя уже за рамки предоставляемой браузером среды. Такие приложения используют файловую систему, не ограничиваясь только теми файлами, что указывает пользователь для загрузки, используют мощности процессора, а зачастую и другие сторонние программы, установленные на компьютере, например, кодеки. То есть, в сумме получается, что с одной стороны - это обычная веб-страница, с другой - она очень отличается от обычного сайта и по всей своей сущности выглядит и ведет себя как самое настоящее приложение! Но при этом обычным приложением не являясь!

Читать далее...

ExtJS 3.0 RC2 – а мы идем в сторону RESTful

3 Июнь 2009 aleks_raiden 4 comments

30bubbleПриветствуем наших читателей. Что-то давненько мы не обсуждали наш любимый фреймворк ExtJS, и зря, так как за это время появилось несколько интереснейших новостей из мира этого инструмента. И о последней, видимо, самой интересной, мы сегодня и поговорим.

И так, сегодня вышел следующий кандидат-релиз 3-й версии ExtJS, а также вторая бета-версия Ext Core, они обновляются синхронно, так как сам ExtJS теперь базируется на открытом ядре Core. Рассмотрим основные изменения, кроме заявленных улучшений в производительности и стабильности.

Изменения в второй бета-версии ExtCore:

  • Улучшения поддержки различных селекторов в DomQuery (в частности, в Opera)
  • Множественные улучшения и фиксы в Ext.Element, а также приведение API к единому виду (это важно, если вы уже начали использовать Core, после обновления проверьте еще раз свой код)
  • Улучшения работы с событиями в браузерах на движке WebKit
  • Добавлена поддержка нативных функций для работы с JSON, появившихся в последних версиях современных браузеров.
  • Добавлены различные исправления в поддержку AJAX в адаптерах и исправления для более полной поддержки IE 8.0.
  • Несколько других небольших изменений.

А теперь перейдем к главному обзору нового кандидат релиза ExtJS 3.0. Полный список изменений доступен здесь, мы расскажем только о главных... Читать далее...

Пуш ми, бум-бум, тач ми… Ajax Push Engine

29 Май 2009 aleks_raiden 7 comments

logoПриветствуем наших читателей. Что-то в последнее время я не писал, однако не забывая исследовать новые технологии, чтобы как только будет время, ознакомить Вас с самыми интересными представителями ИТ-мира. Кстати, если хотите оперативно получать информацию, подпишитесь на наш твиттер - там появляются ссылки на самое интересное в первую очередь. Впрочем, мы отошли от темы. Сегодня поговорим о Comet и о server push вообще.

Обычные веб-приложения, как и сайты, работают по традиционной модели запрос-ответ-запрос, при этом, в силу особенностей HTTP-протокола и некоторых серверных реализаций обработчиков, приложение не хранит информацию между запросами, так что каждый вызов является независимым, а идентификация или сессионность обеспечиваются более высокоуровневыми средствами (например, всем известная реализация сессий в PHP). Кроме этого, запрос на новую информацию посылает всегда клиент, который заинтересован в получении самой актуальной версии данных. В приложениях, которым критично обновление, это часто становиться узким местом. У нас в одном из предыдущих проектов, было сразу несколько периодических AJAX-запросов на обновление данных. Хотя для такого случая есть варианты и вызова нескольких обработчиков на стороне сервера одним запросом от клиента. Читать далее...

  Developers.org.ua | BlogMemes.ru | | |   |     |