Saturday, February 28, 2009

Web developer handbook

Полезный свод данных о веб-разработке

Пробки 2.0

Еще об автомобильных пробках (см. предыдущий материал из серии Пробки 2.0 здесь). На этот раз даже еще проще. Сайт DIYcity предлагает просто публиковать в Twitter информацию о пробках/дорожных инцидентах, так что все желающие смогут видеть эту информацию, а равно как и задействовав открытый API / RSS etc., использовать эту информацию в мэшапах/других приложениях и т.д.

Вполне реализуемо, даже просто как есть, в условиях Москвы, например. Спамеры, пропагандирующие в ЖЖ тот же Твиттер, вполне могли бы заняться более созидательным делом и завести полезные микроблоги, к которым пользователи далее сами бы подтянулись. А можно ведь и на базе livejournal.com такое сделать ...
Основная идея в том, что вся инфраструктура уже есть, не нужно делать никаких специальных сайтов. Просто собирать данные в популярном месте, а затем переиспользовать с помощью мэшапов. Не так трудно будет понаделать инструментов по типу MetroMap мэшап, который отрисовывает данные из готовых RSS фидов (как здесь, например) и т.п.

Friday, February 27, 2009

Отказ от реляционной модели

FriendFeed (а это нагруженная система, конкурирует с Twitter) описала собственную модель данных. С ростом базы (MySQL) столкнулись с естественными проблемами - индексирование занимает много времени, join-ы работают все дольше и дольше. В качестве ответной меры решили отказаться от реляционной модели представления данных и хранить просто свойства объектов (как в Amazon, кстати). Вот приводимый пример записи:

{
"id": "71f0c4d2291844cca2df6f486e96e37c",
"user_id": "f48b0440ca0c4f66991c4d5f6a078eaf",
"feed_id": "f48b0440ca0c4f66991c4d5f6a078eaf",
"title": "We just launched a new backend system for FriendFeed!",
"link": "http://friendfeed.com/e/71f0c4d2-2918-44cc-a2df-6f486e96e37c",
"published": 1235697046,
"updated": 1235697046,
}

Реально для хранения используется тот же самый MySQL:

CREATE TABLE entities (
added_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
id BINARY(16) NOT NULL,
updated TIMESTAMP NOT NULL,
body MEDIUMBLOB,
UNIQUE KEY (id),
KEY (updated)
) ENGINE=InnoDB;

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

Индексы в такой модели - это отдельные таблицы.

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

Мобильное видео


Мобильный сайт: http://tinyurl.com/co2qbh - кубок УЕФА 2009, ЦСКА, Зенит. Изготовлено с помощью мэшапа Мобильное видео

Copy - paste

Оказывается этот процесс может быть хорошо оплачен. Коллекция сообщений из Twitter продана за 5-ти значную сумму. Это сколько же ЖЖ-шек можно так продать ...

Сам себе оператор

Это не про femtocell. Это про Open source проект celliax.org.

Celliax предоставляет по сути драйвер для управления реальным мобильным телефоном с помощью Asterisk. Прием/посылка вызовов и т.д. Или, другими словами, с помощью этого проекта можно управлять звонками на мобильный телефон с помощью Asterisk. Или, иными словами, интегрировать Asterisk с "реальной" телефонной сетью с помощью обычного мобильного телефона. Что, учитывая существующие возможности Asterisk по обработке звонков (см., например, наши проекты по средствам разработки), прямо ведет к разрешению вековой проблемы для разработчиков телекоммуникационных сервисов - как преодолеть зависимость от агрегатора (и/или оператора). Теперь, получается, есть простой ответ: PC + мобильный телефон и обработка вызовов (call control), реализуемая на базе Asterisk.

Похоже, что это будет реально работающий способ. Заодно и решится проблема с дорогими номерами для голосовой связи у агрегаторов - здесь звонок для пользователя будет обычным звонком на мобильный телефон (не premium rate).

Другой способ, которым мы пытались подобраться к решению задачи управления вызовами на мобильном телефоне - есть прямое использование AT команд управления. Вот, например, модели телефонов от Sony Ericsson поддерживают такую команду, как AT*ECAM. Она (см. документацию производителя) позволяет программно получать уведомления о входящих звонках - что и есть основа для построения Call Control API. А стало быть, подобно тому как на базе AT команд мы реализовали SMS шлюз, можно сделать и управление вызовами (читай - сервер приложений для разработки телекоммуникационных сервисов) на базе мобильного телефона.

Thursday, February 26, 2009

Gov XML

Впечатляющий список источников данных, доступных в стандартном формате с государственного сайта. Равно как и пояснения по их возможному использованию в сервисах и мэшапах. Увы - это US Gov. Но все равно - хороший пример для других.

Одноразовые сервисы

Обзор одноразовых сервисов в Webplanet. Применительно к сервису Secure Notes идея установки пароля состоит не в том, чтобы пересылать еще и его, а в том, чтобы договориться о нем заранее и публиковать сообщения в общедоступном месте. Прочесть их в этом случае сможет только тот, кто знает пароль. В этом основная идея сервиса - обмен приватными сообщениями через публичный источник, типа ленты в Twitter.
P.S. Кстати, у упомянутого в статье Mailinator - довольно интересная архитектура.

Wednesday, February 25, 2009

Open News в мобильном телефоне

По просьбам читателей новости открытых систем opennet.ru добавлены в мобильный интегратор IT блогов. Ссылка для вашего мобильного браузера прежняя: http://m.linkstore.ru.

P.S. если еще что-то интересное мы забыли - пишите.

Мониторинг серверов

Интересная система мониторинга сети (включая интранет): mon.itor.us. Есть открытый API для подключения системы к своим приложениям.

Tuesday, February 24, 2009

Мобильные закладки

Один из важных вопросов при разработке мобильных сайтов - это как вернуть однажды зашедших пользователей на сайт. Закладки в мобильном браузере не всегда удобны, к тому же сам URL может не всегда виден. Одно из возможных решений здесь - это использовать микроформаты и представить на сайте hCard или VCF card для загрузки адреса сайта непосредственно в адресную книгу на телефоне. Вот набор реальных примеров.
JSP разработчики могут использовать hCard компоненту из Coldtags suite для построения подобного рода ссылок.

Coldtags suite

Для Java веб-разработчиков: выпущена очередная версия Coldtags suite - самой большой коллекции custom JSP taglibs. Версия 3.60 содержит более 360 компонент для решения типовых задач в веб-разработке.

Monday, February 23, 2009

IT новости на мобильном телефоне

В дополнение к интегратору IT блогов - http://it.linkstore.ru появилась мобильная версия (WAP 2.0/XHTML): http://m.linkstore.ru. Читайте последние IT новости непосредственно со своего телефона. Технически реализовано с помощью транскодера.

P.S. кстати, есть еще один давний мобильный сайт: http://pod.linkstore.ru. Он позволяет скачать последние версии некоторых популярных подкастов (тех, которые доступны для прослушивания по звонку)

Нагрузочное тестирование

Полезный сервис нагрузочного тестирования для веб-сайтов: Load impact

См. также другие сервисы

Sunday, February 22, 2009

SMS переводчик

Из проектов, подобранных на 3GSM World в Барселоне (а там было что посмотреть!) - SMS translation. Премиум SMS, используемые для перевода текста.

Sunday, February 15, 2009

Масштабирование в Digg

Еще одна презентация по архитектуре Web 2.0 приложений. На этот раз - от архитектора Digg.
Интересны замечания по масштабированию баз данных. Digg использует как горизонтальное (строки одной таблицы - на разных машинах), так и вертикальное разделение (столбцы одной таблицы на разных машинах). При этом побочным эффектом такого разделения является денормализация. И, конечно, кэширование. Собственно, еще раз прямо и подчеркнуто - кэшируйте все и навсегда, явно указывая те элементы, которые должны быть обновлены.

Saturday, February 14, 2009

Новости мэшапов

Обновления в мэшапах:

1. Аннотированные ссылки. Обновлен раздел API, добавлена возможность создания ссылок из серверных приложений. Детали - здесь.

2. Обновлен генератор мобильных видео-сайтов. Учтены последние изменения в YouTube API. Соответственно, обновилась и серверная компонента, на базе которой это все построено - YouTube mashup taglib.

3. Новая версия - YouTube видео для Москвы и области.

Friday, February 13, 2009

Twitter в России

А Twitter то шагает по России. Уже не только Москва. Вот полные жизни дискуссии в Саратове, например.

P.S. найдено с помощью мэшапа Local Twitter

GMail location

Новая опция в Gmail (см. Settings -> Lab) - "Location in Signature". Добавляет к подписи в письме текущее расположение (определяется по IP адресу компьютера, на котором новое письмо и составлено - тут Gears работает). Подставить свой адрес - нельзя (или через прокси с Gmail работать :-). Но можно, естественно, отключить эту опцию. А так удобно - по сути услуга presence в email.

Thursday, February 12, 2009

Электросчетчики 2.0

Интересная публикация о планах Google по продвижению интеллектуальных электросчетиков. Это хорошо укладывается в планы по выходу из кризиса, где экономия электроэнергии (читай - потребления нефтепродуктов) занимает большое место. А прежде чем что-то экономить, это что-то нужно уметь измерять. Чтобы эту экономию можно было бы оценить. Это также согласуется с предыдущими прогнозами о том, что на смену Web 2.0 придет интеграция сети и физических устройств. Именно это будет следующим большим хитом.
Обсуждение статьи на Techcrunch также интересно - там весьма любопытные ссылки на подобные проекты.

P.S. а тема эта интересна еще и тем, что еще до Google, в России, компания Abitech начала продвигать электроизмерители (там, на самом деле, даже больше чем просто счетчик - измеряется еще и качество электропитания) собственного производства, которые собираемую информацию могут публиковать в сети. Пользователи таким образом могут получить доступ к результатам измерений везде, где есть интернет. Своего рода социальная сеть электроизмерителей. Однофазники.ru, например :)

Twitter вокруг меня

Еще один способ найти местные сообщения в Twitter - мэшап Local Twitter. Проще не бывает - просто кликните на нужном вам месте карты и посмотрите, кто и что пишет в Twitter из этого района.

P.S. а более ранний мэшап Twitter location - решает обратную задачу. Просто кликните на карте и напишите сообщение, которое будет географически привязано к выбранному вами месту.

Wednesday, February 11, 2009

Приземление звонков из Skype

Интересный способ приема Skype звонков на обычном телефоне. Идея состоит в использовании простого "переадресатора" звонков, который сделан на девелоперском аккаунте в Voxeo.
Другая интересная опция - это OpenSky от Gizmo5. Здесь можно, наоборот, с любого телефона позвонить на Skype номер. По сути, они предоставляют SIP номер для каждого Skype адреса.

P.S. кстати, а кто-нибудь уже пробовал Skype для Asterisk?

Google App Engine

Google опубликовала новую версию roadmap (планов развития) для App Engine. В ближайшее время можно ожидать поддержки Java (хотя, честно говоря, это ближайшее время длится уже достаточно долго :-), поддержки XMPP сообщений, обработки входящей почты и запуска задач по расписанию.
Если планировщик реализуют, то это будет интересная вещь. На обычном хостинге (если это не собственный сервер) получить доступ к cron не так просто, а задачи такие постоянно возникают. Например, для периодической обработки Twitter сообщений (сервис Twitter 411) мы использовали следующий трюк - размещали обращение к сервису на других своих посещаемых ресурсах, так что посетители сайтов запускали процессы обработки (это описано здесь)

Tuesday, February 10, 2009

Работа над ошибками

Обновлены (в действительности - поправлены обнаруженные ошибки) два гео-мэшапа:

Гео поиск и
Twitter location

SIP servlets

Mobicents выпустил очередную версию своего пакета. Вообще, уже довольно много они сделали. Например, PBX и Media Server. И все продукты с Open Source лицензией.

NFC и Java

Технический материал - структура Near-Field Communication и использование Java для програмирования NFC

Monday, February 09, 2009

Nokia store

Mobile-Review утверждает, что Nokia откроет свой application store для разработчиков. Тренд, который мы описывали - подтверждается. Хотя нужно отметить, что у Nokia уже был (есть) developer market. Но когда последний раз смотрели на тамошние условия - они были далеки от дружественных. Попросту это было очень дорого - стать Nokia developers.

Tomcat load balancing

Практическое руководство по балансировке нагрузки в Tomcat. Базируется на комопоненте mod_proxy из Apache.
Другие материалы по теме см. здесь

Sunday, February 08, 2009

Кризис, однако

Не все так плохо. Саратовский Гос. Университет (!) - аукцион по покупке "автомобиль PORSCHE Cayenne или эквивалент – 1 штука". Хотя может "1 штука" - это и есть кризис?

P.S. а если на сайте Lexus поискать - то поддержка автопрома будет полной ...

Java - вторая производная

Из редакционной почты. Andrey Rybin (другие его материалы см. здесь) прислал интересную ссылку на проект Micro Emulator. Это реализация Java ME на полной Java (Java SE). Цель очевидна - автоматически перенести все приложения мобильной Java на устройства, где есть полная Java. Например, Android или iPhone (пока в сломанном варианте - где можно исполнять интерпретируемый код).

Saturday, February 07, 2009

Глаза разбегаются

Eye-tracking от Google - как посетители смотрят на страницы Google. Интересный материал. Одно из заключений, сделанных на основе исследования - это то, что превью для результатов выдачи (thumbnail) реально помогают пользователям оценивать результаты.

Правила в Java

Перевод статьи в DeveloperWorks по использованию Drools

Friday, February 06, 2009

О распределенных базах данных

Yahoo опубликовала детали своей разработки распределенной базы данных PNUTS. По словам авторов - "географически распределенная база данных с параллельным доступом". Пример на котором поясняется работа системы - обновление аватара пользователя в какой-либо сети. Так, чтобы другие посетители, независимо от места авторизации одновременно (в реальности - как можно быстрее) видели это обновление.
Технически реализована на системе обмена сообщениями (a-la JMS). Задержки при этом (может это пока?) весьма ощутимые - до 100 ms.
Приводится сравнение c Google Bigtable и Amazon Dynamo

Перед прочтением - сжечь

Обновления в мэшапе Secure notes. Позволяет создавать текстовые сообщения, которые автоматически удаляются после открытия. Таким образом, прочитать сообщение можно только один раз. Дополнительно каждое сообщение может быть защищено паролем, а с последней версией также содержать и какой-либо файл (как аттачмент в почтовых сообщениях). Таким образом, теперь можно распространять файлы, предназначенные для однократного скачивания. Другие материалы по теме см. здесь

Thursday, February 05, 2009

Google Maps Mania - 16

Появились новые записи и пришло время выпустить очередное обновление для списка проектов (систем), выполненных на базе Google Maps. Символом * отмечены новые поступления со времени публикации предыдущей версии списка. Историю вопроса можно изучить здесь. Итак:

Информационные системы:

Авто-услуги
Авто-мойки и шиномонтаж в Киеве
Агентство недвижимости Спб
Афиша
Все аптеки
Все банкоматы.ru
Вузы Екатеринбурга
Где этот дом
Гильдия риэлторов
Донецк
Жилая недвижимость
Загородная недвижимость
Зеленоград

Карта кофемана
Карта цен на квартиры в Москве
Карта рыбака
Картакадабра
Квартиры в Москве
Квартиры в Пензе
Квартиры в Питере
Кинотеатры в Москве
Коммерческая недвижимость

Велосипедные маршруты
Маршруты в Москве
По дороге

МАКС 2007
Местная погода
Мурманск

Население и рекреационные ресурсы Ставропольского края
Недвижимость на карте
Новости на карте
Новостройки в Сибири
Окрестности Екатеринбурга
Отели Египта
Омская область на карте

Пермь
Пермь на карте

пос. Правдинский
Пушкино

Погода на карте
Поиск попутчиков
Посуточная аренда квартир

Путешествия
Путешествия с Google Maps
Путешествия и карты
Путешествия на карте
4 туриста
Туристические карты
Туристические блоги

Роддома Москвы и Санкт-Петербурга
Рестораны на карте Петербурга
Сеть распространения печатной продукции
Съедобные места Серпухова
Сноуборд

Храмы России
Православная архитектура - каталог

Cosmopolitan шоппинг
Фото-биеннале
Фаст-фуд в Москве
Live Events
National Geographic Traveler

User generated content (geo tagging):

Geo links
Geo SMS

GPS треки
GPS Club

Полезные места
Free WiFi

Футбольные поля

SAS.Планета
View and organize geographical data
WikiMapia
WiFi навигация
WiFi blog

Инструменты:

Большая карта (Big map)
Гео-поиск
Geo traceroute
Google Msk TV
Metro map
Twitter location
Мобильные карты
Maps2lj - публикация карт в ЖЖ
Технические аспекты
Custom geo tagging
QR-коды для карт

Социальные сети:

Вокруг меня
За баранкой
Мир Тесен
Отдыхали.ru
Соседи-онлайн
Гео-контакт*

Гаджеты и карты:

Аренда в Москве (ЖЖ собщество msk_arenda)
Аренда квартир в Москве
Атлас Москвы
ЖЖ сообщество Встречи в метро
ЖЖ сообщество Детские вещи
Забегаловки в Москве
Вакансии бухгалтеров (HeadHunter.ru)
Вакансии программистов (работа.ru)
Вакансии программистов в Москве (HeadHunter.ru)
Ветеринарные клиники в Москве
Видеокамеры ГАИ на карте Google Maps
Видеокамеры ГАИ
Видеокамеры ГИБДД
Веб-камеры в России
Веб-камеры в Москве

Работа в Москве (ЖЖ сообщество msk_job)
ЖЖ комьюнити о квартирах (ЖЖ сообщество Zhilploshchad)
Сдам, сниму квартиру,комнату (ЖЖ Msk_kvartira)
Сдам, сниму, куплю, продам квартиру,комнату (ЖЖ сообщество Kvartira_msk)
Ищу соседей (ЖЖ сообщество msk_neighbors)
Сдам Квартиру (ЖЖ сообщество sdam_msk)
ЖЖ сообщество Отдам даром
ЖЖ сообщество ru_metro
Коммерческая недвижимость в Москве

Клубы и вечеринки в Москве (ЖЖ сообщество msk_party)*
Развлечения в Москве (ЖЖ сообщество 2si)*

Цены на жилье
Маршруты Москвы (гаджет)
Москва, район Аэропорт
Мото-сайт: помощь в дороге
Новые рестораны

Новые вакансии

Пентхаусы в Москве
Подбор менеждеров
Поджоги машин в Москве
Покупаем - продаем
Посадочные модули на Луне
Посадочные модули на Марсе
Походы по Ладоге на ялах
Перелетные птицы
Пиротехника в Челябинске
Публичные туалеты в Москве

Работа@mail.ru

Туристические маршруты Саратова (парк Победы)
Туристические маршруты Саратова (от Кирова до Гагарина)
Туристические маршруты Саратова (по Энгельса)
Туристические маршруты Саратова (по центру)

Твой Тольятти
Точечная застройка в Москве
Штрафные автостоянки в Москве

Черный список бензоколонок

Львы Петербурга
Совы и Девы в Спб

Кого-то пропустили? Что-то новое? Пишите, список будем обновлять.

По венам

Sony предложила интересную технологию аутентификации - по рисунку вен на пальце. Обещают появление продукта на телефонах в течение года. Воровать телефоны станет бесполезно. А можно ведь и машины так защищать - чужими руками рулевое колесо не повернешь

Wednesday, February 04, 2009

Обмен файлами

Мэшап Protected notes (мы описывали этот подход здесь) позволяет создавать текстовые сообщения, защищенные паролем. А теперь к сообщениям можно добавлять еще и файлы. Идея та же самая - публиковать данные с ограниченным доступом в публичных местах. Например, сообщение в публичной ленте Twitter, которое могут прочесть только авторизованные читатели. А с новой версией, следовательно, можно организовать и защищенный обмен файлами. Детали - здесь.

Captcha servlet

Пожалуй, самый простой способ поддержки captcha в Java веб-приложениях: Captcha servlet

Tuesday, February 03, 2009

Новые метро-карты

Новые карты из мэшапа MetroMap:

Развлечения в Москве (ЖЖ журнал 2si)
Клубы и вечеринки в Москве (ЖЖ сообщество msk_party)

Другие примеры использования см. здесь

Разработка 2.0

Основатель Facebook признал наличие проблем с другими основателями. Целая куча скелетов - растрата денег, увод компании и т.п. Интересно, что в российских одноклассниках - похожая история

Обучение 2.0

Портал, на котором собраны видео-лекции из ведущих мировых университетов.

P.S. другие обучающие ресурсы см. здесь

P.P.S. спонсор публикации - Магистратура ВМК МГУ ;-)

Monday, February 02, 2009

Проверьте бэкап

Уже сколько раз выползают жуткие истории о полной потере бизнеса из-за отсутсвия бэкапов, но ежики продолжают колоться всегда находятся желающие испытать это на себе. Вот и сервис закладок Ma.gnolia обнаружил, что никаких закладок у него больше нет. Вообще даже удивительно, что совсем ничего не осталось. Как и не было ...

Web telecom

Интересный проект по эгидой 3GSM - Web API для телекоммуникационных приложений. Причем делается это именно как веб-интерфейсы. Parlay все-таки шел от телекома, а здесь уже все по другому.

Sunday, February 01, 2009

На что похоже?

Глава крупного индийского оутсорсера банально завысил численность своих программистов на 10 000 человек (при штате в 30 000). И получал за них зарплату :-). Для оусорсинга численность - это главное, больше народу - больше заказов. Вот он и расстарался.

Тихой сапой

Open Source PBX занимают уже 18% рынка. Asterisk лидирует.
Кстати, новый подход к разработке сервисов для Asterisk, который мы описывали, нашел еще одно практическое применение - residential gateway. Телекоммуникационный сервис информирует о замерах датчиков воды в жилом доме.