Redesign for currency exchange chart (USD/EUR/JPY to RUR):
and mini-version:
All of these for GMail — just because i do not use iGoogle.
четверг, 6 ноября 2008 г.
понедельник, 3 ноября 2008 г.
Currency exchange plot for GMail
RUR/USD and RUR/EUR currency exchanges and three scales of plot (scales changing by clicking on plot). With GMail sidebar width.
Plot (chart) made with Google Charts API.
Gadget page
воскресенье, 2 ноября 2008 г.
Google Gadets Renew
Currency converter gadget had been renewed lately. Generally due to height issues:
http://avc-cbrf-gadget.googlecode.com/files/cbrf_eur_usd_v2.xml
It's also posted to gadgets directory.
Also, there is a new compact and narrow version especially for GMail —
Here it is — http://avc-cbrf-gadget.googlecode.com/files/cbrf_gmail_v2.xml
http://avc-cbrf-gadget.googlecode.com/files/cbrf_eur_usd_v2.xml
It's also posted to gadgets directory.
Also, there is a new compact and narrow version especially for GMail —
Here it is — http://avc-cbrf-gadget.googlecode.com/files/cbrf_gmail_v2.xml
вторник, 9 сентября 2008 г.
Дерево тэгов
Каталоги страдают тем, зачастую, что ими не удобно пользоваться.
Например, "Мои карты" на Google Maps. Возможно там и есть какие-то полезные карты, но найти их просто невозможно.
При условии, что люди будут дисциплинированно заполнять тэги эту проблему можно решить. Классный вариант (интерфейс) увидел в GarageBand:
При нажатии кнопки, соответствующий её тэг добавляется к фильтру. Если добавление тэга может привести к тому, что все записи будут отфильтрованы (пустая выборка), то кнопка становится неактивной.
Например, "Мои карты" на Google Maps. Возможно там и есть какие-то полезные карты, но найти их просто невозможно.
При условии, что люди будут дисциплинированно заполнять тэги эту проблему можно решить. Классный вариант (интерфейс) увидел в GarageBand:
При нажатии кнопки, соответствующий её тэг добавляется к фильтру. Если добавление тэга может привести к тому, что все записи будут отфильтрованы (пустая выборка), то кнопка становится неактивной.
суббота, 5 июля 2008 г.
Сэмплы
В процессе работы над проектом построения карт плотности фотографий возникла необходимость построения различных градиентов. Простейшие градиенты наподобие "чёрный-красный", "зеленый-желтый" и чуть более сложные легко описываются соответствующей формулой в программе. Когда же речь заходит о градиентах наподобие "черный-красный-желтый-белый" в программе появляется куча условий и формул, что ухудшает её читаемость и гибкость. Для решения этой проблемы был использован механизм с использованим сэмплов.
Сэмпл - функция f(x), где х находится в диапазоне [0;1]. Значения функции так же принадлежат отрезку [0;1].
Основные сэмплы следующие:
"1" — Функция f(x) = 1. Равен 1 при любых значения x.
"0" — Функция f(x) = 0. Равен 0 при любых значения x.
"+" — Функция f(x) = (1-cos(x*pi))/2. Плавно возрастает от 0 до 1.
"-" — Функция f(x) = (1+cos(x*pi))/2. Плавно убывает от 1 до 0.
Основные сэмплы — желтый, бирюзовый, красный, зеленый. Плюс несколько дополнительных — более резкий подъем/спуск, "бугор" 0-1-0 или впадина 1-0-1 — тоже могут пригодиться.
Функция, реализующая механизм сэмплов, принимает в качестве параметров значение входной переменной, размер одиночного сэмпла и строку, представляющую собой последовательность сэмплов. Например, если значения входной переменной находятся на отрезке [0;1] и для преобразования её значения используются 4 сэмпла, размерность каждого сэмпла будет равна 1/4. Сама последовательность может быть представлена, например, так — "00+1".
Например, для реализации градиента "черный—красный—желтый—белый" необходимо применить следующие последовательности сэмплов:
Красный — "+11", зеленый — "0+1", синий — "00+".
Сэмпл - функция f(x), где х находится в диапазоне [0;1]. Значения функции так же принадлежат отрезку [0;1].
Основные сэмплы следующие:
"1" — Функция f(x) = 1. Равен 1 при любых значения x.
"0" — Функция f(x) = 0. Равен 0 при любых значения x.
"+" — Функция f(x) = (1-cos(x*pi))/2. Плавно возрастает от 0 до 1.
"-" — Функция f(x) = (1+cos(x*pi))/2. Плавно убывает от 1 до 0.
Основные сэмплы — желтый, бирюзовый, красный, зеленый. Плюс несколько дополнительных — более резкий подъем/спуск, "бугор" 0-1-0 или впадина 1-0-1 — тоже могут пригодиться.
Функция, реализующая механизм сэмплов, принимает в качестве параметров значение входной переменной, размер одиночного сэмпла и строку, представляющую собой последовательность сэмплов. Например, если значения входной переменной находятся на отрезке [0;1] и для преобразования её значения используются 4 сэмпла, размерность каждого сэмпла будет равна 1/4. Сама последовательность может быть представлена, например, так — "00+1".
Например, для реализации градиента "черный—красный—желтый—белый" необходимо применить следующие последовательности сэмплов:
Красный — "+11", зеленый — "0+1", синий — "00+".
четверг, 26 июня 2008 г.
Глюки на 180º
Обнаружился ещё один глюк в Panoramio™, связанный с переходом с +180 на -180.
Тут фоток нет. А тут, опа, за 20 тыс.
То есть, если фрагмент слева в восточном полушарии, а справа в западном, то он инвертируется и опоясывает всю землю.
Аналогичная ситуация возникает Google Earth™, но она исправима путем дополнения отрицательного значения до 360 градусов (надо прибавить 360, грубо говоря). В Panoramio™ такой фокус не проходит.
Тут фоток нет. А тут, опа, за 20 тыс.
То есть, если фрагмент слева в восточном полушарии, а справа в западном, то он инвертируется и опоясывает всю землю.
Аналогичная ситуация возникает Google Earth™, но она исправима путем дополнения отрицательного значения до 360 градусов (надо прибавить 360, грубо говоря). В Panoramio™ такой фокус не проходит.
вторник, 10 июня 2008 г.
График предсказаний погоды
Суть проекта такова — с декабря прошлого года 4 раза в день с сайта Яндекс.Погода извлекался прогноз на предстояшие дни (10 дней, правда он не всегда дает 10 дней) по Москве. Таким образом для каждой даты (за исключением пограничных и тех, когда Яндекс выдавал менее 10 дней) собрано 40 значений температуры, на основании которых построены графики максимума, минмума и разности между максимумом и минимумом:
А так же график отклонения предсказанной температуры от реальной (температуры, которая показывается в тот же день) в зависимости от количества оставшихся дней:
А так же график отклонения предсказанной температуры от реальной (температуры, которая показывается в тот же день) в зависимости от количества оставшихся дней:
понедельник, 9 июня 2008 г.
Проект PhDen
воскресенье, 8 июня 2008 г.
Снова центр Москвы
суббота, 7 июня 2008 г.
Плотность фотографий по Москве
пятница, 6 июня 2008 г.
среда, 4 июня 2008 г.
Densiramio
Карта плотности фотографий на Panoramio.
Проба пера (сделано вручную при помощи MS Excel)
Идею подсказал — http://komelsky.livejournal.com/95440.html
В ближайшее время планирую разродиться полноценной тулзой по этому поводу.
Проба пера (сделано вручную при помощи MS Excel)
Идею подсказал — http://komelsky.livejournal.com/95440.html
В ближайшее время планирую разродиться полноценной тулзой по этому поводу.
пятница, 30 мая 2008 г.
Кэширование Google Maps
четверг, 22 мая 2008 г.
Кодировка тайлов в Google Maps (Google Maps tiles encoding)
Для перевода координат вида trtqrstsstqt
http://kh0.google.com/kh?n=404&v=17&t=trtqrstsstqt
в координаты вида x=1240, y=637, z=6
http://mt2.google.com/mt?n=404&v=w2.74&hl=en&x=1240&y=637&zoom=6&s=Ga
надо делать так:
s='trtqrstssttqqts';
m='';
x=0; y=0;
for(i=1;i<s.length;i++) {
switch(s[i]) {
case 'q': x=x*2+0; y=y*2+0; break;
case 'r': x=x*2+1; y=y*2+0; break;
case 's': x=x*2+1; y=y*2+1; break;
case 't': x=x*2+0; y=y*2+1; break;
} }
url='http://mt2.google.com/mt?n=404&v=w2.74&hl=ru&zoom='+(18-i)+'&x='+x+'&y='+y;
Обратное преобразование можно осуществить путем побитового совмещения координат x и y. При этом (0;0) дает q, (1;0) — r, (1;1) — s, (0;1) — t. Например:
x=1238; y=639; zoom=6;
ts=""; tc="qtrs";
for(i=0;i<17-zoom;i++) ts="tc[2*((x">>i)&1)+((y>>i)&1)]+ts;
}
ts="t"+ts;
http://kh0.google.com/kh?n=404&v=17&t=trtqrstsstqt
в координаты вида x=1240, y=637, z=6
http://mt2.google.com/mt?n=404&v=w2.74&hl=en&x=1240&y=637&zoom=6&s=Ga
надо делать так:
s='trtqrstssttqqts';
m='';
x=0; y=0;
for(i=1;i<s.length;i++) {
switch(s[i]) {
case 'q': x=x*2+0; y=y*2+0; break;
case 'r': x=x*2+1; y=y*2+0; break;
case 's': x=x*2+1; y=y*2+1; break;
case 't': x=x*2+0; y=y*2+1; break;
} }
url='http://mt2.google.com/mt?n=404&v=w2.74&hl=ru&zoom='+(18-i)+'&x='+x+'&y='+y;
Обратное преобразование можно осуществить путем побитового совмещения координат x и y. При этом (0;0) дает q, (1;0) — r, (1;1) — s, (0;1) — t. Например:
x=1238; y=639; zoom=6;
ts=""; tc="qtrs";
for(i=0;i<17-zoom;i++) ts="tc[2*((x">>i)&1)+((y>>i)&1)]+ts;
}
ts="t"+ts;
среда, 30 апреля 2008 г.
Тень на Google Maps
Маплет отображает движение (след от движения) тени в течении дня в заданном месте и в заданное время. Задается также высота объекта. Дополнительно маплет отображает расстояние от объекта на котором тень закрывает объект заданной высоты (меньшей, чем высота основного объекта).
Пользуясь этим апплетом можно, к примеру, определить — будет ли соседнее здание затенять солнце на определенной высоте — это поможет с выбором этажа квартиры, например.
Текущая версия использует калькулятор SunAngle (точнее одну js-функцию калькулятора). В следующей версии предполагается использовать собственный калькулятор.
Дополнительно предполагается включить функции отображения следа тени за весь год (12 дневных следов) и длину тени в заданное время в течении года. Плюс к этому отображать время восхода-захода и максимальную длину тени (возможно ещё какие-то другие показатели в численном представлении).
Пользуясь этим апплетом можно, к примеру, определить — будет ли соседнее здание затенять солнце на определенной высоте — это поможет с выбором этажа квартиры, например.
Текущая версия использует калькулятор SunAngle (точнее одну js-функцию калькулятора). В следующей версии предполагается использовать собственный калькулятор.
Дополнительно предполагается включить функции отображения следа тени за весь год (12 дневных следов) и длину тени в заданное время в течении года. Плюс к этому отображать время восхода-захода и максимальную длину тени (возможно ещё какие-то другие показатели в численном представлении).
понедельник, 21 апреля 2008 г.
Карта Москвы
Через гигантский iframe при помощи Perl Crescent Page Saver Basic (аддон для файрфокса) снял карту Москвы в одну картинку размером где-то 5000x5000. Детальность приемлемая для размещения, к примеру, каких-то объектов или общего обзора. Для навигации не очень — мелкие улицы не видны.
Вес ~ 10Mb.
Вес ~ 10Mb.
Подписаться на:
Сообщения (Atom)