lest, just lest

Заметки о web-разработке, администрировании Linux и настройке Mac OS X

CKEditor в Ruby on Rails c загрузкой файлов через SWFUpload

with 2 comments

Достаточно часто появляется необходимость предоставить пользователям Вашего web-приложения возможность удобно редактировать содержимое. Для обычного пользователя оптимальным вариантом является использование WYSIWYG html-редактора. Таким решением является редактор CKEditor, интерфейс которого во многом подобен интерфейсам Microsoft Word и OpenOffice Writer.

CKEditor

Плагин rails-ckeditor предназначен для интеграции CKEditor'а в Rails-приложение. Также он включает в себя возможность загрузки изображений и файлов из интерфейса редактора через SWFUpload.

Read the rest of this entry »

Written by lest

May 12th, 2010 at 19:01

Posted in ruby

Tagged with , , , , , ,

Emacs RSpec mode

without comments

Второстепенный режим RSpec добавляет в Emacs возможность удобно вести разработку приложений в стиле BDD (Behaviour Driven Development) с использованием библиотеки для тестирования RSpec.

Пример работы RSpec mode можно увидеть на скриншоте:

Emacs RSpec mode

Read the rest of this entry »

Written by lest

May 11th, 2010 at 11:16

Posted in emacs

Tagged with , , ,

Работа с буфером обмена из консоли в Mac OS X

without comments

Скопировать что-либо в буфер обмена Mac OS X из консоли довольно просто. В наличии есть команда pbcopy, которая копирует передаваемые ей данные в буфер обмена (так называемый pasteboard в OS X, поэтому команда начинается с "pb").

Использовать эту команду просто:

echo 'test' | pbcopy

С помощью этого строка "test" будет скопирована в буфер обмена. Теперь можно вставить эту строку в браузер, почту или куда угодно. В случае если необходимо вставить из буфера обмена также через консоль, то можно использовать команду pbpaste:

pbpaste > file.txt

В результате скопированная ранее строка "test" вставится в файл "file.txt".

Written by lest

May 11th, 2010 at 11:04

Posted in mac os x

Tagged with , ,

Использование Sinatra внутри Rails Metal

without comments

С версии 2.3 в Rails присутствует Rails Metal, который позволяет обработать запросы перед попаданием их в основное приложение. Для более удобного написания кода в Rails Metal можно использовать различные фреймворки, базирующиеся на Rack, в частности фреймворк Sinatra.

Сначала необходимо создать новый Rails Metal с помощью соответствующего генератора:

./script/generate metal MyEmbeddedSinatra
      create  app/metal
      create  app/metal/my_embedded_sinatra.rb

В результате получается следующий Rack обработчик:

Read the rest of this entry »

Written by lest

April 6th, 2010 at 15:32

Posted in ruby

Tagged with , , , ,

Cron и Ruby: использование Whenever

without comments

Библиотека Whenever предоставляет простой синтаксис для определения cron задач, позволяет вывести или записать crontab файл. Whenever разработана с учетом использования с Rails приложениями и развертывания через Capistrano, но может использоваться и независимо.

Для использования нужно установить гем whenever:

gem install whenever

Read the rest of this entry »

Written by lest

March 17th, 2010 at 15:23

Posted in ruby

Tagged with , , ,

Интеграция KWallet и ssh-agent в среде KDE

with one comment

В среде KDE можно хранить пароли к ssh ключам с помощью стандартного средства управления паролями KWallet. Команда ssh-add, добавляющая ключи в ssh-agent, позволяет использовать программу, указанную в переменной окружения SSH_ASKPASS, для получения пароля к ssh ключу.

Для KDE также существует программа Ksshaskpass, которая позволяет сохранять пароли в KWallet и затем передавать их команде ssh-add.

Ksshaskpass screenshot

Read the rest of this entry »

Written by lest

March 16th, 2010 at 22:07

Posted in linux

Tagged with , , , , , ,

Sinatra и DataMapper: пример сервиса сокращения ссылок

without comments

В мире Ruby существует несколько ORM библиотек. Самая популярная библиотека ActiveRecord является и самой тяжелой, к тому же ее не особо удобно использовать вне Rails. Для небольших приложений на фреймворке Sinatra наиболее оптимальным вариантом является библиотека DataMapper, которая не уступает по функциональности, а в некоторых моментах опережает своего главного конкурента.

На примере простого сервиса сокращения ссылок рассмотрим работу с DataMapper внутри Sinatra.

Устанавливаем гемы с DataMapper и адаптером Sqlite к нему:

gem install data_mapper do_sqlite3

DataMapper состоит из нескольких библиотек, использовать будем только некоторые из них:

  • dm-core - ядро DataMapper'а.
  • dm-validations - готовые методы для проверки входных данных.
  • dm-timestamps - автоматическое создание и обновление полей created_at, updated_at.

В app.rb подключим необходимые библиотеки из DataMapper и настроим соединение с базой данных:

Read the rest of this entry »

Written by lest

February 24th, 2010 at 12:26

Posted in ruby

Tagged with , , , ,

Установка и настройка OpenVZ на Debian Lenny

without comments

Одной из технологий виртуализации является OpenVZ, которая базируется на ядре Linux. OpenVZ позволяет на одном физическом сервере запускать множество изолированных копий операционной системы, называемых Виртуальные Частные Серверы (Virtual Private Servers, VPS) или Виртуальные Среды (Virtual Environments, VE).

Виртуализация на уровне операционной системы в OpenVZ ограничивает использование гостевых систем Linux'ом, но даёт лучшую производительность, масштабируемость, плотность размещения, динамическое управление ресурсами, а также лёгкость в администрировании. Согласно сайту OpenVZ, накладные расходы на виртуализацию очень малы, и падение производительности составляет 1-3 %, по сравнению с обычными Linux-системами.

OpenVZ состоит из модифицированного ядра Linux и пользовательских утилит.

Для начала работы с OpenVZ устанавливаем ядро с поддержкой OpenVZ:

apt-get install linux-image-openvz-686

Перезагружаем сервер с новым ядром.

Read the rest of this entry »

Written by lest

February 19th, 2010 at 10:32

Posted in linux

Tagged with , , , ,

Включение цветного вывода для Capistrano

without comments

Устанавливаем библиотеку capistrano_colors:

gem install capistrano_colors

Добавляем в ~/.caprc подключение этой библиотеки:

require 'capistrano_colors'

Written by lest

February 10th, 2010 at 11:48

Posted in development

Tagged with ,

Развертывание Symfony приложения с Capistrano и Subversion

without comments

Одним важных процессов в разработке web-приложений, в том числе и написанных с использованием фреймворка Symfony, является деплоймент или разворачивание и обновление проекта на удаленном сервере. Для выполнения подобных действий существует множество средств и одним из самых популярных является Capistrano. Он достаточно прост в освоении, очень гибок в настройке и функциональный богат, но по-умолчанию настроен для Ruby on Rails приложений.

Настроить Capistrano для развертывания Symfony приложений не составляет особого труда, так как все этапы стандартного процесса с легкостью можно переопределить.

В корне проекта запускаем capify . и начинаем настраивать config/deploy.rb.

Read the rest of this entry »

Written by lest

February 5th, 2010 at 18:07