Новые возможности в RSS events

15 апреля, 2008

RSS events logoСовсем недавно я запустил собственный мини-проект - RSS events, который позволяет вам создать RSS ленту с напоминаниями (т.е. что-то вроде online аналога обычных программ-напоминалок).

Сервис еще находится на этапе бета тестирования, и я понемногу расширяю его возможности и исправляю ошибки.

На данный момент добавлены:

1) возможность менять заголовок ленты;

2) возможность вставлять праздники в ленту из готового списка.

Спасибо ezoterik и MAX за идеи!

Оба нововведения находятся на странице «Настройки», а их использование не должно вызвать проблем (надеюсь :-) ).

Для изменения заголовка ленты введите новое название и нажмите «Сохранить».

А чтобы добавить праздники, просто поставьте галочки напротив нужных и нажмите кнопку «Добавить выбранные праздники».

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

В общем, приглашаю всех желающих протестировать сервис и высказать свое мнение :-)

Опубликовано в RSS events | Комментарии (12) »

Как «спрятать» внешние ссылки

12 апреля, 2008

Маскировка ссылок

Эта статья об одном из довольно распространенных способов маскировки внешних ссылок (по-английски – link cloaking).

Работает link cloaking следующим образом. Просматривая страницу, посетитель видит обычную внутреннюю ссылку. Но, после перехода по ней – попадает на другой сайт.

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

Идея заключается в использовании редиректа и реализуется в два этапа:
Читать дальше »

Опубликовано в PHP, SEO | Комментарии (12) »

Ограничение FeedBurner

10 апреля, 2008

Буквально на днях обнаружил одно из ограничений FeedBurner’а.

Началось все с того, что во вторник я написал очередной пост.

Т.к. на обновление ленты FeedBurner’а обычно уходит около 30 мин, сразу проверять появился ли пост в ридере, не было смысла, а потом я просто об этом забыл.

В общем, только в четверг я заметил, что мой RSS ридер не показывает новый пост.

А при попытке подписаться на собственную ленту увидел «шикарную» картинку.

ограничение feedburner (миниатюра)

С помощью которой FeedBurner сообщил, что ему не нравятся ленты больше 512 КБ. Честно говоря, я думал, что FeedBurner отправляет письма с описанием ошибок.

М-да… Не думал, что 20 моих статей занимают 512 КБ :-)

Естественно, я сразу же сократил количество постов в ленте до 10. И сделал пинг своего блога на сайте FeedBurner’а.

В результате, минут через 10 лента нормально заработала.

Так что прошу прощения у всех, кто не смог подписаться.

Мораль. Нужно читать собственную ленту :-)

Опубликовано в WordPress, Разное | Комментарии (6) »

Backup базы данных и ограничения хостинга

8 апреля, 2008

Логотип для backup базы данных
Недавно я столкнулся с небольшой проблемой. Нужно было организовать автоматическое создание резервных копий базы данных.

Задача, конечно, стандартная, а, учитывая объем базы (меньше 1МБ), может быть решена без специального софта и оборудования.

Так что я выбрал самый простой способ (осуществляется в три этапа):

1) создание дампа БД;
2) упаковка дампа в архив;
3) отправка архива на eMail.

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

Т.е. все, что нужно сделать – написать скрипт и запускать его с помощью cron.

Скрипт я решил сделать на PHP, и сразу же столкнулся с проблемой.
Читать дальше »

Опубликовано в PHP, Разное | Комментарии (10) »

Subversion – использование нескольких веток разработки

6 апреля, 2008

Картинка для subversion
В этой статье я продолжу рассказ об использовании Subversion – одной из самых популярных на сегодняшний день систем контроля версий.

В этот раз речь пойдет об использовании нескольких веток разработки.

Прежде всего, разберем, в какой ситуации может понадобиться несколько веток. Вариантов множество, но подробно анализировать мы их не будем, а просто рассмотрим конкретный пример.

Допустим, вы закончили разработку первой версии web приложения (или просто сайта). Теперь нужно перенести его на сервер хостера. В большинстве случаев при этом придется изменить параметры подключения к базе данных, отключить вывод подробного описания ошибок, profiling и т.п. Скорее всего, эти изменения затронут несколько файлов.

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

Как раз в этом случае нам и пригодится возможность Subversion создавать параллельные ветки разработки.
Читать дальше »

Опубликовано в Subversion | Комментарии (3) »

Когда использовать JavaScript библиотеки для проверки форм

3 апреля, 2008

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

В случае web приложений ситуация только усложняется.

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

Кроме того, существуют два способа отправки данных формы:
1) обычный (с перезагрузкой страницы);
2) асинхронный (ajax запрос, без перезагрузки страницы).

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

Например. jQuery Validation Plugin, о нем, кстати, написана очень хорошая статья Проверка данных форм.
Для prototype тоже есть несколько аналогичных библиотек: Dexagogo и JSValidate.

Принцип их работы примерно одинаков. Создаете форму с правилами (обычно они указываются в атрибутах class полей формы), подключаете библиотеку, если нужно, пишите свои собственные правила.
Читать дальше »

Опубликовано в Ajax, CodeIgniter, HTML, JavaScript | Комментарии (13) »

Анонс web приложения

30 марта, 2008

RSS events logo
Хочу представить web приложение, разработку которого я только что закончил! С чем себя и поздравляю :-) !

Приложение называется RSS events и размещено по адресу www.rssevents.org.ua.

По сути, это приложение – попытка создать web аналог программы-напоминалки (органайзера).

Идея очень простая. Вы создаете напоминания, для которых указываете заголовок, текст, дату и периодичность. Приложение автоматически формирует RSS ленту с напоминаниями за несколько следующих дней (количество дней можно менять).

После этого вы подписываетесь на эту ленту и просматриваете напоминания с помощью RSS ридера.

Естественно, использовать это приложение имеет смысл, только если вы регулярно читаете RSS.

Теперь несколько слов о принципе работы.

Как я уже говорил, для каждого напоминания указываются два параметра, которые определяют когда оно будет добавлено в ленту. Эти параметры «дата» и «периодичность».

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

Например, дата напоминания – 20 июля 1998 года, периодичность – ежегодно, а в настройках указано, что нужно показывать напоминания за следующие 5 дней.
Это значит, что данное напоминание будет отображаться в ленте с 15 по 20 июля каждого года. Т.е. значение года в этом случае не играет никакой роли.

Еще один пример. Дата напоминания – 5 сентября 2005 года (понедельник), периодичность – еженедельно. В ленту включаем записи за последние 4 дня.
В этом случае запись будет отображаться в ленте с пятницы по понедельник каждой недели.

Как видите, все довольно просто.

Я буду рад услышать любые отзывы, пожелания, советы и замечания, которые вы можете оставить в комментариях или отправить мне на email (vova_33 at gala dot net).

Опубликовано в RSS events | Комментарии (9) »

Использование эффекта морфинга

22 марта, 2008

Логотип для статьи о морфинге
Думаю, ни для кого не секрет, что за последние несколько лет резко увеличилось число сайтов, использующих различные визуальные эффекты.

Хорошо это или плохо, разговор отдельный, но, наверное, все согласятся, что грамотное использование этих эффектов позволяет создать красивый web сайт с которым легко и приятно работать.

В этой статье мы рассмотрим пример использования очень интересного эффекта из библиотеки ScriptAculousморфинга.

По определению, морфинг – это плавное преобразование одного объекта в другой.

Он очень часто используется в компьютерных играх и кинематографе.

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

Тем не менее, можно изменить цвет и размеры блоков и шрифтов, их границы, фон и т.п.

Как это работает
Читать дальше »

Опубликовано в CSS, HTML, JavaScript | Комментарии (2) »

Управление выполнением кода во время работы эффектов Scriptaculous

16 марта, 2008

scriptaculous afterFinish
Недавно столкнулся с интересной особенностью работы эффектов в scriptaculous, о которой и хочу рассказать.

Примечание. Для тех, кто не слышал о scriptaculous, поясню. Это очень удобная JavaScript библиотека, которая значительно упрощает работу с элементами web страницы, позволяет создавать различные визуальные эффекты, элементы управления, поддержку drug&drop и т.п. В общем, советую попробовать.

Возвращаюсь к возникшей проблеме.

Нужно было применить эффект подсветки к блоку текста, а затем удалить этот блок.

На первый взгляд, кажется, что задача решается двумя строками кода:

Code (javascript)
  1. new Effect.Highlight(‘textBlock’, {startcolor:"#FFFFFF", endcolor:"#FF0000", duration:2});
  2. $(‘textBlock’).remove();

В первой строке создается эффект подсветки и применяется к элементу с id= 'textBlock'.
Параметры эффекта:
startcolor – цвет блока в начале эффекта;
endcolor – цвет блока в конце эффекта;
duration – длительнось эффекта в секундах.

Во второй строке функция remove() удаляет блок.

Но, оказалось, что этот код не работает. Т.е. блок удаляется до того как отработает эффект.

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

Решение

Специально для таких ситуаций каждый эффект scriptaculous имеет четыре свойства: beforeStart, beforeUpdate, afterUpdate, afterFinish (думаю, названия говорят сами за себя). Значением этих свойств должно быть имя функции, которую нужно выполнить на соответствующем этапе работы эффекта.

В качестве параметра эта функция принимает объект с информацией об эффекте и блоке, к которому он применяется.

Например, описанная задача решается как:

Code (javascript)
  1. new Effect.Highlight(‘textBlock’,
  2.     {startcolor:"#FFFFFF",
  3.     endcolor:"#FF0000",
  4.     duration:2,
  5.     afterFinish: function(o) {
  6.         o.element.remove();
  7.     }
  8. });

Как видите, значением параметра afterFinish является анонимная функция, в которой и выполняется удаление текстового блока.

Примечание. Свойство element, параметра функции (o), позволяет работать с блоком страницы, к которому применяется эффект.

Если вы хотите больше узнать о библиотеке scriptaculous, советую почитать:
1) официальный сайт (англ.);
2) раздел JavaScript этого блога;
3) статью «Подсветка элементов web страницы»;
4) книгу «Prototype and Scriptaculous in Action» (англ.).
Кстати, если книга кому-нибудь нужна, пишите в комментариях, могу выслать на eMail или выложить для скачивания.

Удачи!

Опубликовано в HTML, JavaScript | Комментарии (6) »

Шаблоны для Eclipse

13 марта, 2008

Логотип - шаблоны Eclipse
Вы никогда не задумывались, насколько эффективно используете программы, с которыми работаете? Ведь зачастую они содержат возможности, которые позволяют не только ускорить работу, но и сделать ее более комфортной.

Одной из таких возможностей является автодополнение кода. На сегодняшний день она реализована во многих редакторах, а в IDE стала стандартом де-факто.

Принцип работы этой функции простой. Набираете часть слова, нажимаете Ctrl+Space (может быть другое сочетание клавиш) и появляется список с возможными вариантами автодополнения.

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

В общем, небольшим набором таких шаблонов для Eclipse PDT я и хочу поделиться.

Этот набор я создавал для быстрой вставки комментариев в php код (используется формат phpDocumentor).

Скачать xml файл с шаблонами comments_templates.xml
Читать дальше »

Опубликовано в PHP, Разное | Комментарии (6) »