solenko

August 26, 2009

Static Maps API v2

Filed under: Google API — Tags: — solenko @ 13:17

Вчера (25 августа 2009г) Google обновила API для статических карт.

The Google Static Maps API позволяет вам использовать на ваших страницах карты не требуя поддержки JavaScript или динамической загрузки страниц. Сервис создает карту на основе параметров, переданных в URL стандартного HTTP запроса, и возвращает изображение, которое вы можете показать на своей странице.

Основные изменения:
1. На карту может быть добавлен путь в виде закодированной полилиния.
2. Путь может быть залит и может отрисовыватся как полигон.
3. Точки на карте (центр, маркеры, точки пути) ткпкрь могут быть заданы не только с помощью широты и долготы, но и как адрес.
4. Цвета теперь могут задаватся как 24-битные или 32-х битные.

Полную документацию можно посмотреть здесь

August 19, 2009

Цитата

Filed under: поток сознания — Tags: — solenko @ 18:40

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

Герман Садулаев “Таблетка”

August 13, 2009

Перевод - How to write a Propel behavior

Filed under: Uncategorized — Tags: — solenko @ 13:11

Оригинал: http://www.symfony-project.org/cookbook/1_2/en/behaviors
Перевод: http://madbee.ukr.su/solenko/propel_behavior/

Переводчик — Антон Петрунич aka solenko
Замечания по переводу приветсвуйются — пишите комментарии.

February 27, 2009

Хочу паузу!

Filed under: поток сознания — solenko @ 17:04

Уважаемые разработчики сетевых инсталяторов!
Дайте пользователю делать паузу в процессе установки. Не у всех еще канал быстрее скорости отдачи с вашего сервера и не обязательно установка вашей программы — самое важное событие в жизни пользователя.

February 24, 2009

GPolyline mouseover/mouseout bug

Filed under: Google API, javascript — Tags: , , — solenko @ 16:04

Сегодня заказчики зарепортили очередной баг. После дебага выяснилось, что перестали срабатывать события mouseout и mouseover для Ployline.
Так что все, кто использовал это событие — откатываемся с версии 2.142 (такущая) до 2.141 и ждем следующего релиза. Баг зарепорчен и вроде бы даже уже пофикшен, но в релиз не пошел.

February 17, 2009

Подготовка загрузочной флешки

Filed under: Uncategorized — Tags: — solenko @ 22:39

Решил я таки поставить винду на свой acer one. Т.к. сидюка у него нет, то ставить будем с флешки.
как подготовить флешку рецептов море. Я остановился на эотм.

Сначала все вроде бы прошло нормально, но вот флешку мою определять отказалось напрочь. Странное дело, винда флешку видит, другие утилиты тоже, а вот usb_prep8.cmd — ну нивкакую.

Заглянув в этот самый cmd файл нашел занятную строчку:

FOR %%i IN (E F G H I J K L M N O P Q R S T U V W X Y e f g h i j k l m n o p q r s t u v w x y) DO IF "%%i" == "!_ok!" SET usbdrive=!_ok!:

Т.е. разработчики абсолютно уверены, что не может быть флешки под буквой d как у меня ) После добавления d в список дозволенных все отработало на ура.

January 28, 2009

Mysql Contains

Filed under: Геокодирование — solenko @ 16:34

Собираетесь работать с геоданными в mysql?
А вы уж знаете, что MySQL, мягко говоря, плохо работает с полями типа Geometry?

Note
Currently, MySQL does not implement these functions according to the specification. Those that are implemented return the same result as the corresponding MBR-based functions. This includes functions in the following list other than Distance() and Related().

These functions may be implemented in future releases with full support for spatial analysis, not just MBR-based support.

Существует, конечно, MysqlGIS, но далеко не каждого заказчика можно убедить что неофициальная сборка будет стабильной. Потому приходится извращатся.
Извращение №1 — аналог Contains, но работающий не MBR, а с самим полигоном.


DROP FUNCTION IF EXISTS PointInPolygon;
DELIMITER !!
CREATE FUNCTION PointInPolygon (point GEOMETRY, polygon GEOMETRY) RETURNS int
NO SQL DETERMINISTIC
BEGIN
    DECLARE i INT DEFAULT 1;
    DECLARE j INT DEFAULT 0;
    DECLARE res INT DEFAULT 0;
    DECLARE num_points INT DEFAULT 0;
    DECLARE tmp_point1 GEOMETRY;
    DECLARE tmp_point2 GEOMETRY;
    DECLARE poly GEOMETRY;
    SET poly =  ExteriorRing(polygon);
    SET num_points = NumPoints(poly);
    SET j = num_points;
    points_loop: LOOP
        SET tmp_point1 = PointN(poly, i);
        SET tmp_point2 = PointN(poly, j);
        IF ((((Y(tmp_point1)<=Y(point)) && (Y(point)<Y(tmp_point2))) || ((Y(tmp_point2)<=Y(point)) && (Y(point) (X(tmp_point2) - X(tmp_point1)) * (Y(point) - Y(tmp_point1)) / (Y(tmp_point2) - Y(tmp_point1)) + X(tmp_point1))) THEN
                SET res = ABS(res - 1);
        END IF;
        SET j = i;
        SET i = i + 1;
        IF i >= num_points THEN
            LEAVE points_loop;
        END IF;
    END LOOP points_loop;
    RETURN res;
END!!

September 23, 2008

inline images в html

Filed under: css, html — Tags: , — solenko @ 16:42

Сегодня узнал что вставлять image в html предельно просто.
<img src="data:image/png;base64," />
— непосредственно массив байт имейжда.

Область применения, конечно, невелика, но все же есть. В моем случае SOAP сервис отдавал имейдж как массив байт в запросе профайла пользователя. Чтобы избежать посторного запроса было найдно это решение.

В css, кстати, тоже иожно использовать такой метод. Помнится об этом писали на хабре как о методе сокращения числа запросов от клиента к хосту.
background:url(data:image/png;base64,);

September 11, 2008

Очистка кеша в drupal5

Filed under: php — Tags: — solenko @ 15:52

Иногда бывает нужно очистить кеш меню для текущего пользователя. Например, пользователь заполняет дополнительные поля профайла и после этого ему открываются новые возможности, но меню закешировано и увидит новые ссылка пользователь не скоро.
Для того, чтобы очистить кеш только конкретного пользователя нужно выполнить:


global $user, $locale;
$cid = "$user->uid:$locale";
cache_clear_all($cid, 'cache_menu');

August 14, 2008

Патчим формы в symfony 1.1

Filed under: php — Tags: — solenko @ 23:11

В новом symfony framework появилась такая прекрастная вещь как Forms. В действительности очень удобная вешь. Кто еще не знаком — все подробности в первоисточнике.

Но, как обычно, в каждой бочке завалялось немного дегтя.

Еще в symfony 1.0 был такой замечательный баг. Если наименования столбцов в вашей базе заданы в верхнем регистре и вы используете admin generator, то сортировка у вес работать не будет. В админке симфони отваливалась полностью после попытки кликнуть по заголовку столобца.
Дело в том, что столбец, по которому нужно сортировать, прописывается админ генератором в нижнем регистре. При составлении запроса, Propel пытается найти его сравнивая с константами в om классе, которые прописаны без изменения регистра. Т.е. если хотя бы один символ в имени столбца в верщнем регистре, то столбец найден не будет и мы получим ошибку SQL.
Вывести из ступора админку можно было только сбросив сессию (туда прописывалась текущая сортировка) или прописав в ручную url c правильным именем столбца.

В symfony 1.1 этот баг распространился на автоматом генерящиеся формы. Суть проблеммы та же — в шаблоне форимы разработчики зачем-то вставили strtolower при формировании имени виджета. Зачем это сделано — я не знаю. Ни одной весомой причины пока придумать не смог.

Как же с этим бороться? Либо забить на всю автогенерацию, либо называть все в нижнем регистре, либо патчить symfony.

Что патчить?
symfony/plugins/sfPropelPlugin/data/generator/sfPropelForm/default/template/sfPropelFormGeneratedTemplate.php

убираем strtolower в строках #17 и #26

Тепрь можем генерить рабочие формы )

Newer Posts »

Powered by WordPress