пятница, Май 16, 2008

Опрос местных жителей

Интересная идея платформы позиционирования мобильных абонентов. Без GPS, мобильный терминал будет оценивать свое положение, собирая информацию с базовых станций, WiFi спотов, а также по Bluetooth от соседей по сети. Авторы заодно поместили довольно реалистичный взгляд на практической использование GPS в мобильных телефонах. Собственно, именно имеющиеся проблемы GPS (холодный старт, потеря сигнала) и обосновывают преимущественное использование cell id. А так - все напомнило последний способ ориентирования в авиации: "опрос местных жителей" :-).

Ярлыки: ,

HTTP Channels

HTTP Channels - интересная надстройка над HTTP, порожденная работами с Comet. Семантика соответствует названию - каналы связи (подписки) клиента и сервера. Фактически - имитация дуплексного обмена по HTTP. Реально выполняется как непрерывная последовательность HTTP POST запросов со стороны клиента, где канал для связи (подписной индекс) помечается как специальный заголовок:

POST /channels HTTP/1.1
Accept: application/http
X-Create-Client-Id: 867208037610061686690752

Вот этот самый X-Create-Client-Id и определяет "канал". Этот как идентификатор сессии, но только создается он не на сервере, а клиентом (тут еще нужно и коллизий избежать).

Ярлыки:

четверг, Май 15, 2008

Абавазрение 15.05.2008

Некоторые интересные ссылки:

1. Дональд Кнут наших дней. Интересная подборка алгоритмов для интернет приложений.

2. Виртуализация для мобильных приложений. Кстати, платформа Android и активизировавшийся LiMo вполе могут сделать эту тему актуальной. Может возникнуть нужда выполнять на одном телефоне несколько приложений в разных средах.

3. Из серии "N+1 лучшее решение". Интересные коллекции: 47 форм для веб страниц и 30 свежих (:-) ajax-скриптов

4. J2ME и LBS. Практические примеры доступа к GPS из J2ME приложений (via Bluetooth)

Ярлыки: , , ,

среда, Май 14, 2008

API для машины

Мы уже писали про автомобильный навигатор Dash. Это автомобильный GPS с интернет соединением. Идея понятна - показывать не только как ехать из точки А в точку Б, но и что находится по дороге. Теперь, как и предсказывалось, они открывают свой API для сторонних разработчиков. Можно создавать свои приложения для автомобилистов. Вместо Авторадио появится Автокарта.

Ярлыки: ,

Москва 1836

Google карта Москвы за 1836 год. Ну очень древний интернет :). Насколько я понимаю, должен быть KML файл для этого слоя?

Ярлыки: ,

Веб-камеры

Обновился список веб-камер в GeoLinks

Ярлыки: , ,

вторник, Май 13, 2008

Ипотечный кризис

Ипотечный кризис 2.0 - Google mashup, показывающий дома с просроченной ипотекой в одном из районов Денвера. Отсюда

Ярлыки: ,

понедельник, Май 12, 2008

Twitter search

Поисковик для Twitter: Summize. Можно узнать, что думает "твиттеросфера" о конкретном событии/действии etc. Есть простой API (Atom и JSON) - то есть результаты можно добавить к себе на сайт.

Ярлыки: ,

Google Adwords

Google AdWords теперь дает советы (бесплатно) по поисковым словам: KeyWordTool. Можно также получить рекомендации по поисковым словам для конкретного сайта (себ-страницы). Кто-то останется без работы ;-)

Ярлыки:

воскресенье, Май 11, 2008

Android в MIT

Презентации Android приложений от MIT. В основном - социальные сети и карты. В части использования GPS Android явно впереди iPhone (там нет такого API). Это и эксплуатируется.

Ярлыки:

Загрузка мобильного контента

Интересный материал по загрузке мобильного контента. Включая byte range загрузку для iPhone (Safari) и OMA download

Ярлыки: ,

пятница, Май 09, 2008

ZoomMDK

Мобильная платформа от TI. MDK здесь - Mobile Development Kit. На этом телефоне могут исполняться различные операционные системы. OpenMoko, например, пробовали здесь. А теперь Wind River портировала сюда Android. Так что реально это один из первых телефонов с Android. Реально существующий. Отсюда.

Ярлыки:

GeoLocation API

Google предлагает W3C стандартизовать запросы позиционирования для веб-приложений. Это позволит веб-приложениям получать географические координаты пользователей. Google исходит из того, что у них есть в Gears. Вот модельный пример (JavaScript):

var geo = google.gears.factory.create('beta.geolocation');

// Get the position.
geo.getCurrentPosition(function(position) {
updateMap(position.latitude, position.longitude);
});

// Watch the position over time.
var watchId = geo.watchPosition(function(position) {
updateMap(position.latitude, position.longitude, position.accuracy);
});

geo.clearWatch(watchId);

// Only get the position if the last known position is more than a minute old.
var now = new Date().getTime();
var threshold = now - 60000;

if (geo.lastPosition &&
geo.lastPosition.timestamp.getTime()> threshold) {
updateMap2(geo.lastPosition);
} else {
loc.getCurrentPosition(function(position) {
updateMap2(position);
});
}

Ярлыки: ,

четверг, Май 08, 2008

Пошли по рукам

CodeGear - это подразделение Borland, куда были выведены все средства разработки, продано. Новый владелец - Embarcadero. Языки програмирования от Borland - это же была целая история. Которая теперь окончательно закончилась ...

Ярлыки:

Если враг не сдается

Когда безобразия нельзя победить, их остается только возглавить. Крупные телекомы планируют совместно запустить в 2009 году убийцу Skype. В принципе - это возможно, а Skype они вытеснят просто тем, что приземление звонков в новой сети будет дешевле. Но это если все они договорятся. А если еще и открытые протоколы для реализации выбрать (e.g. SIP), то будет такой всемирный провайдер с открытым доступом к сервисам (что назвается, кто о чем ...)

Ярлыки: ,

среда, Май 07, 2008

PHP 6

DeveloperWorks публикует обзорную статью об изменениях, грядущих в PHP 6
Я бы отметил, в первую очередь, изменение принципа формирования запросов к БД.  magic_quotes отменяется. Рекомендованный теперь способ - параметризация запросов (так, кстати, как это делается, например, в JDBC):

<?php
 // Using the proper parameterized query method for MySQL, as an example
 $statement = $dbh->prepare("INSERT INTO USERS (USERNAME) VALUES ?");
 $statement->execute(array($_GET['username']));
?>

И это, конечно, правильно. Во-первых, с SQL injection так можно бороться, во-вторых для подготовленных SQL операторов у системы остается больше возможностей для оптимизации (как курсор, например, это реализовать)

Ярлыки: ,

Кэширование изображений

Простой трюк, который может, вместе с тем, на ровном месте разгрузить веб-сервер и повысить тем самым производительность веб-приложения. Идея заключается в том, чтобы включить на клиентской стороне кэширование изображений, запрашиваемых с данного сайта. Вот, например, как это делается для J2EE серверов (источник - Coldbeans):

1. Добавляем к своему веб-приложению следующий фильтр: Expires filter. Этот фильтр позволяет добавлять на лету к обрабатываемым запросам HTTP заголовки Expires и Cache-control. Эти заголовки как раз и определяют кэширование результатов запроса на стороне клиента. Например, следующее описание в web.xml файле:

<filter>
<filter-name>ExpiresFilter</filter-name>
<filter-class>com.cj.expire.ExpiresFilter</filter-class>
<init-param>
 <param-name>expires</param-name>
 <param-value>86400</param-value>
</init-param>
</filter>

определяет кэширование на 1 сутки (время - в секундах)

2. Остальное прозрачно. Задаем мэппинг этого фильтра для изображений:

<filter-mapping>
 <filter-name>ExpiresFilter</filter-name>
 <url-pattern>*.gif</url-pattern>
</filter-mapping>

<filter-mapping>
 <filter-name>ExpiresFilter</filter-name>
 <url-pattern>*.jpg</url-pattern>
</filter-mapping>

...

теперь запрашиваемые изображения типа http://наш_сервер/что_то.gif будут кэшироваться на клиентской стороне

Для PHP можно, например, прописать установку данных заголовков прямо для Apache. Это что-то вроде следующего:

<FilesMatch "\.(jpg|jpeg|png|gif|ico)$">
 Header add "Expires" "Mon, 01 Jan 2018 00:00:00 GMT"
 Header add "Cache-Control" "max-age=31536000"
</FilesMatch>

Ярлыки: ,

SMS torrent

Fluid Nexus - интересная идея, уже работающая на Series 60 Symbian, а теперь представленная для Android: peer to peer messaging. Это сообщения между абонентами мобильной сети, но обмен ими идет без участия центрального сервера (например, SMSC для SMS). Сообщения с использованием Bluetooth передаются между участниками сети и так добираются до адресата.

Ярлыки: , ,

вторник, Май 06, 2008

iPod-изация

Феерическая коллекция в духе "все, что можно сделать из старой швейной машинки Зингера" - 75 применений для iPod - телевизор, backup-drive, секс-игрушка и т.д.

Ярлыки: