2010-12-14

Графики на SVG/VML

Мне никак дает покоя Google Charts...

Наиболее популярными библиотеками для построения графиков на сегодняшний день являются JPGraph и Google Charts. Решение от Google - замечательное, удобное, простое, графики очень симпатичные. Однако, все графики генерируются на чужом сервере (речь идет о графиках построенных через URL API). Пользователю разрешается создать ограниченное количество графиков а потом его могут забанить. Конечно, это количество большое, но меня немного смущает сама возможность быть забаненным из за превышения количества показов. Кроме того, сервер гугла я не контролирую и никто не может гарантировать, что этот сервис будет работать вечно, или что завтра на моих графиках не появится реклама, или внешний вид этих графиков не будет изменен на тот, который мне не нравится.

Между тем, задача сделать график на экране компьютера под силу школьнику освоившему курс информатики (мы такое, помню делали в старших классах). Так зачем же отдавать такие "сложные" вычисления серверу гугла?

JPGpaph дает возможность создавать графические изображения на своем сервере, но все равно это — графические изображения, со всеми присущими графическим изображениям ограничениями.

У растровых графиков есть один недостаток — их полная неинтерактивность. На растровый график невозможно добавить эффекты анимации при наведении мышкой, нельзя добавить гиперссылки (imagemap не в счет). Так как изначально природа графиков векторная — лучшим решением будет использовать векторный движёк вместо растрового. У вектора есть несколько неоспоримых преимуществ - не нужно передавать изображения по сравнительно узким каналам связи - передается только сама информация для построения графика, при этом рендеринг изображения происходит на машине клиента.

На сегодняшний день в вебе наиболее популярными являются несколько технологий - Adobe Flash, Microsoft Silverlight и Canvas/SVG/VML. Выбирая между Canvas и SVG я отдаю предпочтение последнему так как эта технология позволяет создавать по настоящему интерактивные эффекты и ближе к VML используемому в браузерах от Microsoft.

Используя ztools создал несколько компонентов для построения различных графиков и диаграмм:

 

Конечно, эти компоненты еще не совершенны, это даже не бета версия. Но уже лучше чем ничего. Главным отличием от аналогичных являются: открытость исходного кода, простота, и (надеюсь) удобство использования. Замечания, пожелания, багрепорты и фичреквесты приветствуются.

 

 

Коментариев: 1

 
  2010-12-12

Как скомпилировать Subversion с поддержкой HTTP

> wget http://subversion.tigris.org/downloads/subversion-1.6.15.tar.bz2

> tar -xvjf subversion-1.6.15.tar.bz2

> wget http://subversion.tigris.org/downloads/subversion-deps-1.6.15.tar.bz2

> tar -xvjf subversion-deps-1.6.15.tar.bz2

> cd subversion-1.6.15

> ./configure --with-ssl

> make

> make install

 

Коментариев: 1

 
  2010-12-09

Как вернуть деньги на карту Payoneer

Случается так, что при снятии денег в банкомате, банкомат эти деньги списывает с карточки но на руки не выдает. Со мной за последние несколько месяцев это случилось дважды, один раз с банкоматом Связьпромбанка, второй раз, буквально через неделю с банкоматом Росбанка. Если вы снимаете деньги в родном банкомате с родной карточки то веруть их не составит труда, но если карточка выпущена американским банком, названия которого вы даже не знаете, то тут вы и попались.

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

В Связьпромбанке мне заявили что после инкассации банкомата денег они НЕ НАШЛИ, это в системе с двойным то учетом, где все операции многократно журналируются. Росбанке оказались люди более адекватные и посоветовали сразу обратиться в свой банк-эмитент, но на всякий случай у них тоже оставить заявление.

Короче, после безуспешных попыток вернуть свои денежки на родине я обратился в саппорт Payoneer. Пробиться в саппорт Paoyner онлайновыми методами сложно, я написал им на support at payoneer.ru и заполнил онлайновую форму, которую нашел на сайте. Описал как было дело, сказал, что в банке мне помочь отказались.

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

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

1. Обратиться в клиентский отдел банка списавшего сумму.
2. Если деньги возвращать отказываются - обратиться в Payoneer.

Саппорт Payoneer'а медленный, но в отличии от наших банков он может реально помочь.

 

Оставить комментарий

 
  2010-12-06

Векторные часики

Для одного из проектов сделал вот такие вот часики. Они должны работать во всех популярных браузерах включая IE6+, FireFox, Safary, Opera. Для визуализации в Internet Explorer используется VML для других браузеров SVG.

 
 

Оставить комментарий

 
  2010-12-04

Обновил текстовый редактор

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

 

Оставить комментарий

 
  2010-12-03

Полезное применение static переменных

Иногда бывает необходимо в какой либо функции находить какую либо информацию, сохраненную в MySQL табличке по её ID. При этом количество элементов в табличке может быть небольшим, а вот количество вызовов такой функции, наоборот большим. Каждый раз вызывать "select ... from" будет расточительно, вставить справочную табличку через JOIN не всегда возможно. Было бы логично сохранить где-либо все значения справочной таблички а потом брать по ключу (табличка как я уже сказал небольшая). Самое лучшее решение, которое я придумал на сегодня — это воспользоваться static переменным (их можно применять не в только для синглитонов)

static function getDocumentTypeName($type_id){
    static $cache;
    if (!isset($cache)){
        $cache = Db::selectAssoc("select type_id, type_name from doc_types");
    }
    return $cache[$type_id];
}

При этом переменныя $cache остается в области видимости самой функции, что очень удобно, заполняется она один единственный раз при первом вызове функции.

 

Оставить комментарий

 
  2010-12-01

Семантический CSS

Если вы когда либо занимались HTML версткой, то вам наверняка доводилось  слышать от клиентов фразы типа: "сделай эту надпись больше", "этот заголовок должен быть красным",  все синие заголовки сделать светлее" и т. п...
Подобные задачи наиболее часто приходится решать HTML верстальщику при работе с текстом. Само собой разумеется, все эти задачи должны рещаться использованием стилей — хороший верстальщик будет использовать внешние стили прописанные в CSS файле, плохой - нагородит кучу inline стилей.

Когда-то, когда я был студентом, я подрабатывал версткой газет. При верстке печатных изданий у тебя есть фиксированный набор стилей, которые ты и можешь использовать. Что характерно, именно строгость стиля и делает внешний вид издания стильным и профессиональным. Кроме этого, профессиональные издания сделаны так, чтобы было проще сначала создать стиль a потом многократно его использовать, это гораздо удобнее, чем постоянно задавать, размер, цвет, выравнивание, кернинг, трекинг, гарнитуру и еще десятки параметров, которые могут изменяться у текста.

Кстати, в Microsoft Word, почему-то, используется прямо противоположный подход — там проще изменить атрибуты самого текста, чем стиля на котором этот текст основан. С каждой новой версией панель инструментов в этой программе увеличивается и увеличивается, вынуждая разработчиков придумывать все новые способы, чтобы уместить на экране все больше и больше кнопочек форматирования. Они даже изобрели новый вид меню, которое назвали "Меда-Лента" (правильно да?). Но с введением нового интерфейса дело еще более ухудшилось. Поэтому, редактирование документов в этом редакторе частенько вызывает приступ острой зубной боли у людей которым довелось поработать в профессиональных программах.

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

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

На деле, для форматирования текстов нужно совсем немного стилей:

- стили для заголовков h1, h2, h3, h4
- стили для тегов форматирования: b, i, em
- стили для выделения теста цветом: .red, .blue, .gray, .green
- стили для эффектов форматирования: .bold, .italic, .higlight
- стили для выделения размером: .small, .big, .bigger, .smaller
- вспомогательные стили для форматирования: .left, .right, .center, .middle

Речь идет именно о стилях форматирования, стили текста по умолчанию для элеметов body table ul td и других я в этом посте не рассматриваю.
 
В принципе, этого набора стилей хватает чтобы получить большое количество различных текстовых стилей. Остальные эффекты можно получить комбинируя эти стили между собой.

Допустим, нам нужно сделать слово в тексте красным и полужирным:

Это <b class="red">слово</b> будет полужирным.

Или нам потребовался нестандартный заголовок H2 выровненный по правому краю и зеленого цвета:

<h2 class="right green">Заголовок H2</h2>

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

У этого метода верстки есть один нюанс. Его можно применять только, если вы редактируете текст вручную, пользуясь текстовым редактором. К сожалению, я не видел еще не одного wysiwyg редактора, способного одновременно присвоить тексту несколько стилей. Если вы такие знаете подскажите.

 

Оставить комментарий

 
  2010-11-29

Еще раз про электронную книгу ONEXT

Забавно, я уже писал, что электронная читалка ONEXT - гаджет на редкость неудачный. Учитывая, как сильно он рекламируется - много людей его купят, и вскоре, пойдут сдавать его обратно в магазин. Я подумал, что будет правильно написать немного подробнее о своих впечатлениях об этом устройстве.

Покупать его я НАСТОЯТЕЛЬНО НЕ РЕКОМЕНДУЮ. Вот краткий перечень косяков данного устройства:

— из за ошибки в прошивке книга зависает если в корень положить файл в FB2 который она не может прочитать. Если файл лежит на флешке — то проблема решится выниманием флешки, вот только флешка в комплекте не идет, поэтому большинство пользователей будут использовать внутреннюю память устройства — после этого книгу останется только выкинуть или сдать обратно в магазин (если получится). Если вы купили такую книжку — купите еще и флешку - не пользуйтесь встроенной памятью! Кстати, кнопка выключения в книжке не предусмотрена а аккумулятор не съемный — если книжка зависла — лучше сразу нести ее в магазин — иначе аккумулятор или вздуется от постоянного большого разрядного тока или полностью разрядится и зарядить его будет уже трудно, ибо чтобы зарядить книжку, нужно сначала ее включить — а это невозможно. При работе в таком режиме книжка почему то разряжается гораздо сильнее, задняя панель сильно нагревается, через несколько часов я заметил, что еще и вздувается, возможно это вздувается сам аккумулятор.

— пользоваться встроенным браузером с WiFi невозможно - можно использовать только их собственный интернет магазин и покупать там книжки за деньги - интерфейс сайта разработан так, что хорошо работает со встроенным браузером - ссылки крупные, и то они не всегда срабатывают, обычные же сайты использовать невозможно в принципе - палец не попадает по маленьким ссылкам, а если и попадает, то ссылки почему-то не нажимаются. Закладки не предусмотрены. Пользоваться экранной клавиатурой трудно (клавиши срабатывают не всегда). Пробовал использовать разные предметы вместо стилуса, который не предусмотрен для ёмкостного экрана. Лучше всего себя показал в качестве стилуса хром-ванадиевый гаечный ключ на 16! Правда пользоваться им все равно невозможно ибо браузер воспринимает переход по ссылке в одном случае из десяти.

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

— перелистывание происходит о-о-о-о-ч-ч-ч-ч-ч-е-нь медленно. О комфорном чтении можно забыть.

Поисковые запросы со словом onext, по которым люди попадают на мой сайт наиболее красноречиво говорят о качестве работы этого ридера:

onext резет
onext электронная книга неисправности
зависла электронная книга onext
не загружаются страницы браузера в onext

Возможно, в будущем данные неполадки будут устранены - большинство из них — программные, но все равно, будет жалко выбросить деньги за бесполезное устройство.

 

Коментариев: 14

 
  2010-11-25

Купил себе новую игрушку

Acer Aspire немножко приболел и долгими осенними вечерами стало чего то не хватать, поэтому, решил приобрести нового домашнего питомца. Учитывая ошибки сделанные при выборе предыдущего лептопа, решил умерить свои требования. Долгое время работы от батарейки - в топку - я так и не смог заставить платформу Acer'a работать больше четырех часов на Линуксе, да и честно говоря, даже такое время работы мне ни разу не пригодилось - я не очень часто путешествую в места где нет розетки, поэтому решил, пусть это будет дешевый нетбук на Atom'е на который можно поставить Ubuntu Remix. Мне, вобщем то, нужен маленький компьютер с полноценной операционной системой, на котором встанет офис, браузер и возможно Eclipse. Желательно, чтобы был легким. Поначалу хотел взять Lenovo s10-3t - недорогой нетбук-трансформер с сенсорным экраном, но в последний момент увидел у Вильянова в обзоре MSI U135DX и решил, что для опытов с Ubuntu Remix он пойдет как нельзя кстати. К тому же, после неудачной читалки с сенсорном экраном ONEXT я не был уверен, что емкостной сенсор будет настолько полезен в таком лаптопе, хотя, думаю все равно как нибудь еще возьму поиграться такое устройство...

Впечатления от покупки остались весьма положительные. На моей версии оказалась предустановленной XP Home Edition UTCPC Edidtion - спасибо, что не поставили семерку - эту я даже сносить не буду, работает она на этом железе лучше чем Виста работала на Acer Aspire. Диск сразу оказался разбит на три раздела, причем, третий, самый большой, оказался пустым - на него я и поставил - Ubintu Remix как будто специально для этого этот раздел и сделали. ОС встала без проблем. Хотя, ремиксовый десктоп мне не очень понравился - непривычно а десятидюймовый дисплей потянет и классический Gnome - нужно будет попробовать его туда поставить. В целом железка понравилась, если захотите себе такой - берите синюю или красную модель, я не очень люблю цветные гаджеты, но у этой дизайн на редкость приятный, так что цветной смотрелся бы даже лучше моего черного.

Единственный неприятный момент - маленькая кнопка шифт слева - на официальных фото она большая, в Россию поставляют почему то с маленькой, но думаю, с этим недостатком я как нибудь уживусь.

 

Оставить комментарий

 
  2010-11-25

Дрифтер

 

Коментариев: 1