вторник, 15 декабря 2009 г.

Google Wave подсветка кода

Google Wave logo

Многие программисты уже используют Google Wave как средство командной разработки. В этом отношении, кстати, весьма полезный инструмент. Можно поделиться фрагментом сырого кода, прокомментировать или исправить проблемный код, предложить свой вариант. Рано или поздно каждый разработчик задает вопрос: «Как подключить подсветку синтаксиса в Google Wave»? Не так давно я нашел простое и удобное решение.


Читать дальше »

среда, 11 ноября 2009 г.

Иконки для закладок

Иконка – Закладка

Речь здесь пойдет не столько об иконках для закладок, а скорее об иконках для букмарклетовjavascript-закладок. А еще точнее – о тех представителях этого кнопочно-ссылочного семейства, которые помогают нести свет Истинного Знания в земли дикие, темные; ну или как минимум – продвигать твой блог в интернете.


Многие социальные сети, сервисы социальных закладок, рейтинги и «голосовалки» (мне определенно нравится это слово!) предоставляют свои собственные букмарклеты для облегчения добавления новых ссылок, статей и прочего бреда контента, который тебе вздумалось бы в них добавить. За что им, безусловно респект и уважуха, и глубочайшая наша признательность. Беда в том, что перетянутые на панель закладок эти букмарклеты ничем кроме текста не отличаются от своих товарищей и товарок. А текст съедает место, а закладок бывает много, а панель закладок не резиновая... и вообще я люблю картинки!


Панель закладок – букмарклетыБукмарклеты на панели закладок

И было бы неплохо эти букмарклеты уплотнить, не потеряв возможность их идентифицировать. Как? – убрать весь текст и заменить его иконками сервисов-источников. Если сервис предоставляет несколько яваскриптовых закладок для разных целей – возле иконки оставлять крохотную текстовую пометку.


Панель закладок – иконки букмарклетовИконки для букмарклетов на панели закладок

§ Как добавлять иконки к закладкам


Для добавления иконок к закладкам я использовал дополнение для Firefox Favicon Picker 3. После установки дополнения:

  1. ПКМ на букмарклете → «Свойства»
  2. В окне свойств закладки → “Browse...”
  3. Выбрать иконку для закладки из имеющихся на диске.


§ Где брать иконки


Я брал браузерные иконки (favicon) прямиком с их сайтов-источников. В качестве примера приведу twitter (кстати, мой twitter – jcden).

  1. На любой странице сайта ПКМ → «Исходный код страницы»
  2. Найди строку подключения фавикона – иконки сайта (favicon):
    <link href="http://a1.twimg.com/a/1257878623/images/favicon.ico" rel="shortcut icon" type="image/x-icon" />
    Внутри атрибута href и будет путь к иконке.
    Замечание: если адрес фавикона задан как /favicon.ico – это означает, что полный путь к ней: адрес сайта/favicon.ico
  3. Открой иконку по заданному адресу и сохрани на диск.


Рекомендую сохранять иконки в какой-то определенной директории (папке). Так будет проще их находить и добавлять.


Упехов!


Бонус для RSS подписчиков – иконки сервисов из примера.



Читать дальше »

четверг, 8 октября 2009 г.

Яндекс: инструмент подбора цвета

Недавно, а точнее, – еще вчера незадолго до полуночи, – обратил внимание, что в Яндексе появился инструмент для определения и подбора цвета. Виджет отображается прямо в результатах поиска.


Виджет Яндекс — Поиск по цвету

Просто введи название или значение цвета в строку поиска и жми «Найти». Я, например, использовал рубиновый цвет из дизайна блога #C61B1B. Яндекс нашел ближайший по значению цветАлизариновый.


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


Удачных цветовых решений!


З.Ы. А известно ли тебе, что наряду с аскетичным поиском (ya.ru) есть еще и ультра-минималистический поиск:

  • Девственно белый для Светлых
  • И «черный готичный» для Тёмных?


Читать дальше »

пятница, 21 августа 2009 г.

В блог из Google Reader

Приятная новость для пользователей Google Reader.


Если ты используешь GoogleReader для подписки на новости и блоги, теперь ты можешь размещать понравившуюся новость в своем блоге прямо из «ридера». С новой «фичей» “Send to” сделать это еще проще. Просто перейди на страницу настроек и выбери Blogger из списка сервисов.

GoogleReader - Настройки


Функция Send toТеперь когда захочешь разместить понравившуюся новость в своем блоге, просто щелкни кнопку “Send to” и выбери Blogger. Или используй «горячую» комбинацию клавиш Ctrl+T. Можно публиковать и в других известных сервисах (Twitter, Facebook, MySpace etc), а так же добавлять собственные.


На данный момент эта «фича» еще не полностью локализована. Для того чтобы начать использовать функцию “Send to” прямо сейчас, выбери Язык: Английский - English в настройках ридера.


Ссылка на новость: Sending Blogger some Birthday Cheer


Читать дальше »

среда, 11 марта 2009 г.

Необычное использование обычных вещей

ПользаПорой совершенно, на первый взгляд (да и на второй тоже), бесполезные вещи можно использовать с пользой. Как бы «каламбурно» это ни звучало. Вот, например, что пивную бутылку можно открыть 8-килограммовой гантелей с круглыми навершиями, я убедился несколько лет назад. К слову, пиво можно открыть практически любым предметом, ну да сейчас не об этом. А вот знаешь ли ты, что даже в самом простом швейцарском армейском ноже есть инструмент «фигурная отвертка»? Он есть! ..И опять-таки не об этом.


Wordle: dotRBНедавно натолкнулся на сервис Wordle. Вроде с виду обычная игрушка, способная убить около полутора часа твоего свободного времени. А вот если ее так бочком-бочком... ты возьми и примени ее для анализа собственных текстов, или даже собственного блога. Сразу отловятся и слова-паразиты и лишние термины в выдаче RSS. Анализируй, камрад блоггер! Тулза тебе и совет от «городского сумасшедшего» в помощь.

Читать дальше »

понедельник, 9 марта 2009 г.

Ошибка oTidyBrowser is not defined

Как справедливо подмечено неизвестно кем неизвестно где: «Трудности нас закаляют, а мелочи добивают». Крайний раз такой противной мелочью для меня стала ошибка javascript oTidyBrowser is not defined, случайным образом появляющаяся при просмотре различных сайтов.


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


Ошибка oTidyBrowser is not defined – это глюк Tidy, входящего в состав дополнения для Mozilla Firefox HTML Validator. Поскольку разработчик так и не пофиксил эту неожиданную «фичу», то для решения проблемы ошибки Tidy придется воспользоваться анекдотичным приемом «после сборки обработать напильником».


Решение проблемы “oTidyBrowser is not defined”


Исходная статья на английском языке расположена здесь: Hackzilla.org - Firefox Addon: Html Validator


  1. Перво-наперво, нужно найти файл tidyBrowser.js
    Точного пути указать не получится, поскольку он зависит от имени пользователя, установленной операционной системы и сгенерированного профайла Firefox. Автор указывает такой путь:
    C:\Users\Dan\AppData\Roaming\Mozilla\Firefox\Profiles\vqy7rs08.default\extensions\{3b56bcc7-54e5-44a2-9b44-66c3ef58c13e}\chrome
    В общем случае, в Windows XP путь будет выглядеть примерно так:
    C:\Documents and Settings\Имя пользователя\Application Data\Mozilla\Firefox\Profiles\профайл Firefox\extensions\{3b56bcc7-54e5-44a2-9b44-66c3ef58c13e}\chrome\
  2. В папке chrome ты обнаружишь файл tidy.jar
    На самом деле это zip-файл. Скопируй его и переименуй в “tidy.zip”
  3. Открой полученный файл прямо в менеджере архивов. Например, – в WinRAR.
  4. Открой в редакторе файл “content/tidyBrowser.js”. Начиная со строки 220 ты найдешь следующий код:
    if( oTidyBrowser.bTopLoadBusy==false )
    {
    oTidyUtil.tidy.log( ‘<javascript>tidyEndDocumentLoadObserver’ );
    oTidyBrowser.bTopLoadBusy = true;
    try
    {
    // Validate the 1rst request
    oTidyBrowser.bIgnorePageShow = true;
    oTidyBrowser.validateFrame( window.content );
    // oTidyBrowser.validateCache( subject.document, true );

    // Process the events that fired during the 1rst one
    // ex: page with frames.
    var doc = oTidyBrowser.oEventQueue.pop();
    while( doc )
    {
    oTidyBrowser.validateCache( doc, true );
    doc = oTidyBrowser.oEventQueue.pop();
    }
    }
    catch(ex)
    {
    tidyShowExceptionInConsole( ex );
    }
    oTidyBrowser.bTopLoadBusy = false;
    }
    else
    {
    // Parallel events are placed in a event queue.
    oTidyBrowser.oEventQueue.push( event.originalTarget );
    }

    Тебе просто нужно добавить проверку условия когда oTidyBrowser не определен:
    if( !window.oTidyBrowser )
    {
    // Do nothing
    }
    else if( oTidyBrowser.bTopLoadBusy==false )
    {
    oTidyUtil.tidy.log( ‘<javascript>tidyEndDocumentLoadObserver’ );
    oTidyBrowser.bTopLoadBusy = true;
    try
    {
    // Validate the 1rst request
    oTidyBrowser.bIgnorePageShow = true;
    oTidyBrowser.validateFrame( window.content );
    // oTidyBrowser.validateCache( subject.document, true );

    // Process the events that fired during the 1rst one
    // ex: page with frames.
    var doc = oTidyBrowser.oEventQueue.pop();
    while( doc )
    {
    oTidyBrowser.validateCache( doc, true );
    doc = oTidyBrowser.oEventQueue.pop();
    }
    }
    catch(ex)
    {
    tidyShowExceptionInConsole( ex );
    }
    oTidyBrowser.bTopLoadBusy = false;
    }
    else
    {
    // Parallel events are placed in a event queue.
    oTidyBrowser.oEventQueue.push( event.originalTarget );
    }

  5. Сохрани измененный файл tidyBrowser.js обратно в tidy.zip
  6. Теперь тебе нужно закрыть Firefox, поскольку работающая программа блокирует файл “tidy.jar”
  7. Удали или скопируй в другое место старый “tidy.jar”
  8. Переименуй отредактированный “tidy.zip” в “tidy.jar”
  9. Теперь можешь запустить Firefox

Больше глюк с ошибкой “oTidyBrowser is not defined” тебя не побеспокоит.


Читать дальше »

воскресенье, 1 марта 2009 г.

Безболезненное форматирование текста в блоге

Довольно давно заметил, что форматирование текста в блоге у меня отнимает довольно много времени. Тогда и появилась идея использовать какой-нибудь инструмент для форматирования -- вставки кавычек, ссылок с заданными атрибутами, параграфов и прочих нужных тегов HTML.


Text Formatting Toolbar

Нашел полезное дополнение для Firefox, существенно упрощающее жизнь блоггеру. Называется Text Formatting Toolbar. Позволяет легко форматировать сообщения на форумах, в блогах и вики. Поддерживает три формата: BBcode (bulletin board) используемый на большинстве форумов, HTML, и формат используемый Wikipedia.


Text Formatting Toolbar уже содержит встроенные команды форматирования, но вы так же можете без особого труда добавить собственные. Скачать дополнение можно с его официального сайта: Text Formatting Toolbar. Имхо, та версия, что лежит в разделе аддонов Mozilla Firefox, слегка «кривая».


Да, не забудьте прихватить Pastel SVG Icons – набор иконок для тулбара. Если планируете добавлять свои команды форматирования.


Такой вот блоггерский лайф-хак. Удобного и приятного постинга!


Читать дальше »

четверг, 19 февраля 2009 г.

Инструмент Stripe Generator

Онлайн генератор полосатого узора


Очередной полезный инструмент для веб-мастеров. На самом деле, это брат-близнец генератора узора «шотландки». С одним лишь отличием... Да, вы угадали -- вместо клетчатых узоров он делает «полосатости».


Stripe Generator 2.0

Необходимое и достаточное количество функций, приятный интерфейс, реализовано с использованием технологии AJAX. Поэтому -- удобно, шустренько, приятно. Рекомендую. Ссылка под катом -- лучше один раз попробовать, чем десять раз прочитать ;).


Этот генератор планирую использовать в одном из следующих примеров.



Читать дальше »

среда, 11 февраля 2009 г.

Pastie подсветка синтаксиса

Самый первый пост, опубликованный мной с тегом JavaScript освещал такую интересную для любого «кодоблоггера» тему, как Динамическая подсветка синтаксиса с помощью javascript.

Если же по каким-то причинам вам лень добавлять javascript к вашему шаблону, вы можете воспользоваться сервисом Pastie.

Pastie код
Pastie «умеет» подсвечивать код ActionScript, C/C++, CSS, Diff, HTML (ERB / Rails), HTML / XML, Java, Javascript, Objective C/C++, Pascal, Perl, PHP, Plain text, Python, Ruby, Ruby (on Rails), Shell Script (Bash), SQL, YAML. Вставьте полученный код javascript в ваш блог и подсветка кода готова.

Код Pastie в блоге
Второй, неявный способ применения Pastie -- обмен фрагментами кода. Удобно при удаленной разработке в команде.

P.S. Pastie написан на Ruby on Rails.


Читать дальше »

пятница, 30 января 2009 г.

Eclipse PHP Development Tools (PDT 2.0)

Не так давно я тиснул заметку про Aptana PHP -- подключаемый модуль к оболочке Eclipse. И вот очередная новость из той же серии.


Eclipse PHP Development Tools (PDT 2.0)
Консорциум Eclipse Foundation, ведущий разработку открытой среды разработки Eclipse, сегодня выпустила вторую версию набора средств для разработки приложений на популярном языке веб-программирования PHP. Новая версия Eclipse PHP Development Tools (PDT 2.0) является совместным продуктом Eclipse и Zend Technologies.

По словам разработчиков Eclipse, с релизом второй версии среды для PHP, этот язык стал таким же основным для Eclipse IDE, как Java или C++.

В обновленной версии PHP-среды появились новшества, которые наверняка будут оценены программистами: полная поддержка объектно-ориентированного программирования, поддержка последних новшеств PHP 5.1, а также общая повышенная производительность набора софта, интегрируемого в Eclipse. Кроме того, в PDT 2.0 появились обучающие материалы для новичков.

Вторая версия несколько изменила интерфейс, что, по словам представителей Zend, повышает удобство создания кода.

Добавлен и новый движок для индексирования кодов и их поиска, движок базируется на Eclipse DLTK (Dynamic Languages Toolkit).


Читать дальше »

воскресенье, 18 января 2009 г.

Онлайн генератор разметки страницы CSS

И снова в копилку полезных ресурсов. Он-лайн генератор разметки страницы с использованием CSS (для ленивых). По завершении операции выдаст ссылки на два файла:
  • randomNumber.html -- собственно, сама страница с готовой разметкой HTML;
  • randomNumber.css -- «таблица стилей» CSS.

CSS Layout Generator

Читать дальше »

среда, 14 января 2009 г.

Sphinx инструмент для SQL полнотекстового поиска

SphinxSphinx -- это движок для полнотекстового поиска. В целом, это автономный поисковый инструмент, предоставляющий быстрые, эффективные и релевантные функции полнотекстового поиска другим приложениям. Sphinx был специально разработан для удобной интеграции с базами данных SQL и скриптовыми языками программирования.

www.sphinxsearch.com Читать дальше »

пятница, 9 января 2009 г.

Поддержка PHP в среде Eclipse

EclipseПодключаемый модуль к оболочке Eclipse под названием Aptana PHP позволяет разрабатывать в этой открытой среде программы на PHP с поддержкой вспомогательных продуктов и технологий: AJAX, MySQL, JavaScript и т. д.
Пользователю доступны современные возможности развитых оболочек разработки — редактор с подсветкой синтаксиса, всевозможные подсказки и ускорители ввода, средства визуализации структуры проекта и кода, а также встроенный отладчик и веб-сервер для тестирования приложений. Имеется режим эмуляции браузеров различных типов. Среда также поддерживает развертывание итогового продукта на «облачных» серверах. Читать дальше »

ColorPicker - инструмент для выбора цвета

ColorPickerЭтот JavaScript-компонент предоставляет простой и удобный инструмент для выбора HSV цвета.

Как добавить ColorPicker


  1. включите файлы javascript в секции HEAD
  2. добавьте ссылку на файл стилей colorpicker.css в секции HEAD
  3. добавьте поле input для хранения/отправки 16-ричного значения цвета (без ведущего #)
  4. инициализируйте ColorPicker

<script type="text/javascript">
new Control.ColorPicker("colorFieldName");
</script>

Внимание: Не вызывайте "new Control.ColorPicker()" пока не закроете все окружающие форму (form) блочные элементы (напр. div). В противном случае это вызовет ошибку IE Operation Aborted в IE 6/7. Вместо этого используйте:
Event.observe(window, "load", function() { 
new Control.ColorPicker("colorfield4", { "swatch" : "colorbox4" })
});

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

яваскрипт (javascript)


<script type="text/javascript">
//<![CDATA[
function activateColorPicker(){
cp_Label = new Control.ColorPicker("label_color", { "swatch" : "inside_color1" });
}
// first time Run (for IE)
Event.observe(window, "load", function() {
activateColorPicker();
});
//]]>
</script>

ajax_delete_label.rjs : Пример вызова функции для Ruby on Rails.


page.replace_html 'labels_container', :partial => 'custom_labels'
page.call 'activateColorPicker'

Скачать ColorPicker можно с его страницы в Google Code: colorpickerjs.
Читать дальше »

понедельник, 8 декабря 2008 г.

AJAX-индикаторы бесплатно и быстро

При разработке AJAX-приложений порой не лишне дать пользователю знать, что выполняется ajax-запрос, а не просто «оно чего-то затупило...». Для этого часто используется анимированное изображение GIF, так называемый “ajax-loader”. Появление такого индикатора оказывает на душевное состояние пользователя прямо-таки благотворное воздействие. Он видит – что-то происходит, его запрос выполняется, его здесь любят и ценят :). К показателю «дружественности» интерфейса +1.

Ajaxload
Читать дальше »

четверг, 4 декабря 2008 г.

Ruby проверка регулярных выражений

Видимо полоса такая -- вся сплошь из регулярных выражений. Цензурных и не очень :). Да, еще из онлайн-тулзов; вот этого добра у меня полные закрома. Приходи с мешком, бери бесплатно! «То есть -- даром!» © Сова из Винни Пуха. Вот и еще один RegEx-тестер -- тестер регулярных выражений Ruby.
Редактор регулярных выражений Ruby
«Rubular» -- a Ruby regular expression editor
Читать дальше »

среда, 3 декабря 2008 г.

Генератор веб-кнопок

Еще один полезный веб-инструмент -- генератор кнопок. Несколько наборов шаблонов кнопок, возможность задавать текст кнопки, порядка 15+ шрифтов, возможность изменять цвета текста и кнопки, использовать эффекты -- «тень» (Drop Shadow), «свечение» (Outer Glow) и пр. То же самое и для rollover-кнопки.
Генератор веб-кнопок


Читать дальше »

понедельник, 1 декабря 2008 г.

Генератор узора-«шотландки»

Генератор узора-«шотландки»Еще один онлайн-генератор. Генерирует трехцветный клетчатый узор-«шотландку». Будет полезно в-первую очередь для сплошных фонов веб-страниц. Клетчатый узор для фона этого блога был добыт на другом ресурсе с последующей обработкой в Photoshop. А тут поди ж ты -- специальный генератор!

# Tartan Maker
Читать дальше »

среда, 26 ноября 2008 г.

Тестер RegExp - регулярных выражений

Нашел полезный инструмент для тестирования регулярных выражений (RegExp) JavaScript. Нужно ввести шаблон (регулярное выражение) и проверяемый объект. Тестер выполняет операции:
String.match(pattern)
Проверяет совпадение заданной строки (String) регулярному выражению (pattern). С флагом g возвращает массив совпадений, без флага g возвращает первое совпадение. Если совпадений не найдено, возвращает null.
String.replace(pattern, string)
Заменяет совпадения заданной строкой и возвращает полученную строку.

Тестер регулярных выражений (RegExp) на JavaScript


RegExp:

Subject string:

Replacement text:

Result:



Ссылка: Online Regular Expression Tester
Читать дальше »

воскресенье, 23 ноября 2008 г.

Баннер для вашего блога

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

Ruby Brewed [.rb]

↑ Grab this Headline Animator


Как сделать такой?

1. Регистрируйтесь на Feedburner;

2. После успешной регистрации вы попадёте на страницу Мои фиды. Введите URL вашего фида в поле "Зажигай" фид прямо сейчас;

Зажигай фид прямо сейчас

3. Не знаете, как найти фид (feed, RSS) вашего блога?
У каждого блога есть RSS-лента. Всё, что вам нужно, это отыскать такой значок на главной странице вашего дневника rss. Щелкните этот значок и вас перебросит на RSS-ленту. Скопируйте URL из адресной строки браузера;

4. После того как «прожжете» фид, заходите в настройки вашего фида. И оттуда -- на вкладку «Публикуй» - «Аниматор заголовков»;

5. Выберите шаблон для вашего баннера (или загрузите собственный), подберите шрифты и цвета. Когда всё будет готово, жмите кнопку «Активировать»;

6. Получите код вашего баннера. В списке предлагается несколько платформ:
MySpace page, TypePad blog, TypePad JP blog, Blogger blog, WordPress.com blog и Email signature (подпись к email)
Если вы не обнаружили движка вашего блога в списке, выбирайте последний пункт: Other (just gimme the code) -- Другой (просто дай мне код);

Получить код баннера

7. Полученный код разместите у себя в блоге.

© 2008 Ruby Brewed.
Читать дальше »