Архив

Архив раздела ‘Разное’

Получить RSS-ленты из страницы? Так точно!

2 января 2010 Comments off

Billboard_Feed_256x256Приветствую своих читателей! С Новым Годом! Первой темой, который мы откроем этот год жизни блога, будет следующая задача. Дано - система, схожая с Google Readers, которая принимает от пользователя некоторый адрес и должна обеспечить просмотр (а позже, и подписку) доступных там RSS-фидов. Задача осложняется тем, что от пользователя нельзя требовать ввода именно полного адреса ленты, да и даже просто адреса сайта или произвольной страницы - он может быть введен в совершенно разных вариантах, полностью или частично и т.п. Самих лент на странице также может быть более одно, часто нескольких форматов сразу (а то и не быть вовсе). Поэтому нам надо выбрать из всех доступных лент последние сообщения и отобразить пользователю, чтобы именно он выбрал в конечном итоге одну ленту, которая его интересует. Открою секрет - да, это только начало и в последующих статьях мы вместе постоим несколько уменьшенную версию системы агрегации и чтениях новостей. Но сегодня попробуем решить первую задачу, без которой наша "читалка" просто не сможет работать, какие бы дальше технологии не применялись.

Основой будет мой любимый инструмент  - Zend Framework (используем последнюю, trunk версию). Если вы знакомы с его возможностями, что сходу предложите компонент Zend_Feed, который имеет встроенные возможности по извлечению из страницы лент. Однако не спешите, на практике задача не так и проста. Поэтому будем решать ее постепенно.

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

SignalsyMQ — простая и быстрая очередь сообщений на PHP+Redis (и немножко Zend Framework)

12 декабря 2009 3 комментария

1250198491_signalПриветствую своих читателей. Знаю, что давно не писал, обычно активность проявлял только в твиттере - как оказалось, это очень удобно для постоянных постингов, когда на основной блог не хватает времени. Кстати, кроме официального твиттера блога (@abrdev) я открыл еще один  - @phpatcloud, в котором буду собирать ссылки на все материалы по теме РНР и Cloud Computing. Эта тема достаточно актуальная, в том числе и для меня, так как на основной работе мы сейчас делаем серьезную систему, которая как раз и базируется на облачном хостинге (от Amazon) и платформе РНР (мой внутренний продукт, Signalsy и Zend Framework). Кому интересно - подписывайтесь, комментируйте и ретвитьте, буду благодарен.

А теперь хотел бы рассказать, собственно, о причинах некоторых задержек в пополнении блога статьями. Причина простая - как уже анонсировал, я веду разработку собственного фреймворка, основанного в противовес главенствующей сейчас модели MVC, на базе сигнальной архитектуры (signal/slot). Сейчас этот фреймворк, уже третья версия, проходит боевую обкатку в нашем стартапе, и за это время я понял, что одного продукта в линейке мало - реальные задачи и виденье будущего показывает, что необходим разный функционал, но объединенный одной темой - обработка и доставка информации множеству клиентов в реальном времени. Поэтому я расширяю свою систему таким образом, чтобы в результате получит некоторую платформу для построения быстрых и масштабированных систем для веб-приложений. Сегодня я расскажу о первом компоненте, который является основной нашей платформы - SignalsyMQ - очередь сообщений на базе PHP/Redis/Zend Framework.

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

Работаем с Google Protocol Buffer в РНР

pb4php_logoПриветствуем наших читателей. На этот раз обойдусь без длительного вступления, а сразу перейду к делу, то есть, к теме сегодняшней статьи. В проекте, который я сейчас разрабатываю, возникла необходимость, а точнее, я понял, что архитектуру надо расширять, и решил заменить используемый сейчас протокол для обмена данными между частями приложения. Сейчас, на уровне внутренних сервисов, обмен происходит через передачу сериализированных массивов РНР поверх TCP сокетов. Так как по обе стороны находятся приложения на РНР, проблем не возникает, формат пакета данных также стандартный, поэтому особых сложностей нет. Разве что часто меня не удовлетворяет скорость обработки, а также то, что мы сильно завязаны на язык и платформу. Если придется стыковать с другой системой или же переписать что-либо, будут сложности - ведь сериализированный формат поймет лишь родной язык, а писать парсер мне не очень хочется. Первоначальный выбор был более чем оправданным - скорость разработки и отладки были приоритетными, сейчас есть немного времени и желания посмотреть на архитектуру с высока и другим взглядом. Читать далее...

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

18 октября 2009 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 создала несколько мультимедийных проектов для распространения своей платформы.
Читать далее...

Анонс: Signalsy Platform Framework (open source)… coming soon!

14 августа 2009 6 комментариев

1250198491_signalПриветствую читателей моего блога. Позволю себе сделать небольшой анонс. В последнее время я работаю над достаточно большим проектом, игровой он-лайн платформой для разработчиков браузерных игр AGPsource Game Platform (кстати, проект открытый, присоединяйтесь, уже вышла версия 3.1). Разработка достаточно интересная и нетривиальная в архитектурном плане. Попробовав ее в реальных условиях, в том числе и под достаточной нагрузкой (например, мы сделали на нем одно приложение для сети вКонтакте, пока там 20 тыс. пользователей, но их количество увеличивается постоянно), мы поняли, что архитектура достаточно хорошая. Но движок, конечно, проект большой и сложный, попробовав применить его в других проектах, не очень игровых, стало ясно, что требуется все то же, но более легкое, простое и быстрое. Да и хотелось внести кое-какие изменения в основу проекта, переделать узкие места.

Так родился наш второй проект - Signalsy Platform Framework. Вкратце - это небольшая и гибкая платформа для разработки и поддержки веб-проектов, основанная на сигнальной (Signal/Slot, но, конечно, модифицированной, о реализации в библиотеке ezComponents мы уже писали) архитектуре. Похоже, мы первые в мире, кто сделал подобное для веб-а! Внутри, кроме нашего небольшого набора базовых компонент, лежит Zend Framework, так что разрабатывать можно с учетом всех его возможностей. По сути, это замена традиционной модели MVC (как ее понимают в ZF), но внутри, в компонентах и логике конкретного приложения, конечно, можно придерживаться любых паттернов и приемов построения архитектуры. Signalsy лишь заменяет слой обработки URL  и добавляет возможности Signal/Slot-архитектуры в ваше веб-приложение.

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

Ehcache в качестве RESTful сервера кеширования и PHP

logoПриветствую наших читателей. Сегодня мы снова продолжим исследования различных новых и не очень технологий, необычного их применения или просто оригинальных вещей. Те, кто уже давно читают наш блог, возможно вспомнят о короткой статье, в которой я рассказывал о интересном проекте распределённого кеша EHcache для платформы Java. Сегодня настало время продолжить эту тему, однако в другом ракурсе.

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

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

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

Верхом на облаке в 21 век. Статья для журнала Хакер.

3 августа 2009 3 комментария

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

У известного фантаста Р. Шекли есть прикольный рассказ «Абсолютное оружие» о том, как искали и нашли оружие древних марсианских цивилизаций. И самым мощным, абсолютным оружием, оказалось обычное облако... Похоже, ИТ очень схоже с древними марсианами, потому что сейчас все, что связано с Cloud Computing, преподносится как абсолютное решение всех проблем... но ты спросишь, а что это такое вообще? А я отвечу!

Что это такое?

Как и все современные термины в ИТ, «облачные вычисления» имеют настолько размытый и общий смысл, что даже странно, как можно понять, о чем же говорит твой собеседник. Кое-кто даже утверждает, что это не более, чем маркетинговый термин, пустышка и фигня. Не верь! Давай расставим все по местах. Cloud Computing или облако, основано на нескольких основных моментах, о которых я сейчас расскажу. Читать далее...

Шесть миллионов твиттеров. Статья для журнала Хакер.

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

Вместо газет, вместно мобильного и SMS, вместо RSS, новостей и вКонтакте... нафиг все, теперь есть Twitter! Не веришь? Факт: первым о катастрофе самолета в Амстердаме сообщил в твиттере простой парень nipp, чем мгновенно прославился, опередив всех матерых журналистов!

Че это такое?

Посмотрев на Twitter первый раз, ты уже думаешь, что все понял? Нет, пока даже сами основатели этого замечательного, просто взрывного проекта не особо знают, что с ним делать. Но простым парням вроде нас это не так и важно - Твиттер, это наше все! Сама по себе идея банально простая - это сервис микроблоггинга, то есть ты вводишь свое сообщение, которое должно быть не длинее 140 символов и постишь его в свою ленту. Все друзья, которые читают тебя (твои фолловеры) могут сразу же почитать это сообщение, ответить, скопировать в свою ленту (ре-твит, но самое интересное, когда твой же текст снова приходит к тебе от десятка друзей) или написать, какой ты козел напрямую. Вот и вся суть! Ты просто пишешь все, что попадает под руку (или на глаза), стараясь уместить это в заветные 140 символов, и медитируешь на число твоих читателей. А почему именно 140? Просто первоначально думалось, что сервис будет доступен с мобильных телефонов, а это как раз длина сообщения без служебной информации. SMS-сервис работает, похоже, пока только в штатах, а нам это не так и важно. Более того, твитером мало кто, скажу по секрету, даже через веб-интерфейс пользуется! Большинство людей предпочитают писать и читать других, используя удобные десктопные клиенты, которых уже развелось просто тьма (о лучших читай чуть ниже), но а если ты ведешь мобильный образ жизни, поставь себе на iPhone или любой другой фон одну из программ и оставайся всегда на связи.

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

Сервер в один клик: поднимаем веб-демон быстро. Статья для журнала Хакер

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

Тебя убеждает друг, поспорив на ящик пива, что за пять минут не развернуть полноценный веб-сервер, с поддержкой всех языков, Ruby, PHP или Python? Или десяти минут не хватит, что бы поставить и сразу поработать с Drupal, Alfresco, SugarCRM или Moodle? Соглашайся, будете потом все выходные пить бесплатное пиво!

Введение

Нисколько не хочу задеть чувства серьезных хакеров и администраторов, знающих опции конфигурирования Apache и настройки JRuby, но во многих случаях очень хочется иметь именно ту волшебную кнопку "Сделать, чтобы работало". Не качать и компилировать, править исходники и потом копаться в настройках, заодно проверяя совместимость всего со всем и с твоим характером. Ну типа дали в универе задание написать отчет об современных системах постройки сайтов (CMS) или пригласили как эксперта поставить бедным учителям систему дистанционного образования Moodle. А то и просто надо проверить работу небольшого скриптика, взламывающего хеши паролей новым методом. Ради любопытства, поднять какой-то особый сервер, встроить его в любимую кофеварку с Linux-ом и запускать там java-сервлеты. Да думаю ты сам придумаешь, зачем и когда использовать то, о чем сейчас расскажу.

Первым путем для запуска веб-скриптов является установка на компьютере полноценного LAMP сервера, для чего надо почитать много разной документации (или эту статью в нашем журнале), а потом еще пару-тройку дней провозится с настройками. Но есть и второй путь - использовать готовые так называемые сборки или стеки, которые представлены в виде как бы одной единственной программы, которая ставиться удобным и красивым инсталлятором, а внутри содержит все необходимое. Это и веб-сервер, и интерпретаторы нужных языков, обычно, РНР и perl, и необходимые библиотеки и модули, а также часто простую панель управления, чтобы не разбираться что за чем запускать и останавливать, а просто нажать ту самую заветную кнопку "Работать". Читать далее...