Archive for октября, 2010

Radiant CMS: Введение

октября 31, 2010  |  Published in CMS, Radiant CMS

— система управления контентом сайта с открытым исходным кодом разработанная на базе Ruby on Rails ориентируясь на небольшие команды разработчиков. На момент написания статьи текущей версией является версия 0.9.0.

Немножко подробней:


Radiant CMS обладает следующими особенностями и достоинствами:

radiant cms adminПростой интерфейс администрирования

Radiant обладает элегантным, простым и удобным интерфейсом администрирования, который основан на управлении тремя ключевыми компонентами: pages(страницами), snippets (фрагменты — просто куски часто повторяющегося кода) и layouts (шаблоны, они же темы оформления).

radiant cms pagesPages (страницы)

Страницы — это то, что видет пользователь и то, что представляет пользователю весь контент сайта. Страницы могут использовать для разметки Markdown, Textile или обычный HTML. Страницы состоят из множества фрагментов, таких как body (представляет основное содержимое) и sidebar (боковая панель для навигации, доп. Информации, всего, что вы туда поместите). Read the rest of this entry »

Tags: ,

Дружимся с Rack #2: Rack::Builder

октября 25, 2010  |  Published in Rack

rack logoВ первой части мы использовали rackup для того, чтобы сделать возможным выбор порта и сервера для запуска rack-приложения. Rackup’у мы предоставляли файл конфигурации следующего содержимого:

# config.ru
run Proc.new {|env| [200, {"Content-Type" => "text/html"}, ["Hello Rack!"]]}

Глубоко в своих недрах rackup преобразует ваш скрипт конфигурирования в экземпляр Rack::Builder. А теперь о том, что же такое Rack::Builder?

Что же такое Rack::Builder?

Rack::Builder реализует маленький DSL (в переводе язык предметной области или что-то типа того) для многократного построения Rack приложений.

- Документация по Rack API

coktail b52Rack::Builder это такая штука, которая склеивает различные Rack Middleware и приложения вместе и преобразует это месиво в то, что носит гордое название Rack Application. Rack::Build можно представить как коктейль изготовленный методом build — наслоением одного составляющего над другим.

Давайте сообщим Rack о том, что приложение infinity следует запускать на базе сервера WEBrick, по 9292 порту:

infinity = Proc.new {|env| [200, {"Content-Type" => "text/html"}, [env.inspect]]}
Rack::Handler::WEBrick.run infinity, :Port => 9292

Все экземпляры infinity посылают хэш env преобразованный в человекопонятную строку назад в браузер.

Ниже представлены три основных метода из Rack::Builder о которых вы должны обязательно знать:

Read the rest of this entry »

Tags: ,

Дружимся с Rack #1: Hello Rack!

октября 23, 2010  |  Published in Rack

rack

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

Rack изначально разрабатывался под вдохновением от пайтоновского wsgi и быстро стал фактически application/server — интерфейсом для всего сообщества Ruby — программистов благодаря своей простоте и перфекционизму создателей. Read the rest of this entry »

Tags: ,

Ruby и красивый код #1

октября 19, 2010  |  Published in Ruby, Основы

ruby Благодаря некоторым особенностям Ruby, код на нем можно писать значительно более лаконичный, чем вы можете себе это представить. Например, благодаря тому, что Ruby возвращает значение последнего выражения, можно сократить количество кода не только за счет отказа от использования return, там, где это возможно, но и за счет написания простых методов, которые в итоге своей работы возвращают только true или false не используя при этом логический конструкций типа if..else, и т.д.
Read the rest of this entry »

Tags: ,

HTML5 притив Silverlight: Sencha — первый HTML5 фреймворк для мобильных приложений.

октября 19, 2010  |  Published in ClientSide

Оригинал статьи на английском языке был опубликован в блоге интернет агентства . Основным направлением деятельности компании является разработка интернет и мобильных приложений на платформах Ruby on Rails и .NET с использованием последних новшеств стандарта HTML 5

Это первый пост из серии о будущем MS Silverlight в мире сходящем с ума от HTML5. Это не хвалебный пост в сторону HTML5 и мы не являемся фанатиками данной технологии. В этой серии мы будем освещать события происходящие в веб индустрии, которые предоставляют доводы за и против использование обеих технологий: Microsoft Silverlight и HTML5.

Совсем недавно мы узнали, что один из наших любимых JavaScript фреймворков сменил домен на . Кроме того, большим сюрпризом оказалось создание ребятами из команды ExtJS «Первого HTML5 — фреймворка для мобильных приложений», который поддерживает Apple iOS и Google Android девайсы с тачскрином.

sencha

Read the rest of this entry »

Tags: ,

OmniAuth: Внешняя, простая, много-провайдерная Аутентификация для Rack

октября 9, 2010  |  Published in Rack

omniauthВ последние два года веб приложения притерпели решительных изменений. Время, когда каждый сайт представлял собой бункер, ожидающий прихода новых пользователей постепенно проходит. Я раздраженно вздыхаю каждый раз, когда мне приходится заполнять очередную форму регистрации, вместо того, чтобы воспользоваться «Connect with Facebook», «Sing in with Twitter» или «Log in with OpenID». Сейчас веб приложения становятся более открытыми миру. Один из лучших способов увеличения популярности и жизнеспособности нового сервиса является его дополнение из существующих баз пользователей таких приложений, как: Twitter, Facebook, Foursquare и т.д..

Есть много готовых модулей для регистрации для Ruby on Rails. Многие из них позволяют использовать упрощенную процедуру регистрации с помощью Facebook или Twitter аккаунтов. Но используя такие готовые модули в нескольких проектах я заметил одну их общую черту: они делают слишком много допущений относительно того, какой должна быть процедура регистрации на сайте. Конечно, готовые модули для регистрации позволяют быстро начать работать над простым сайтом, но я не вспоминаю ни одного случая, когда включенный мною в проект код готового модуля значительно упростил бы мою работу. Пришло время изменить привычный порядок вещей. Read the rest of this entry »

Tags:

В чем разница между Proc и Lambda в Ruby?

октября 4, 2010  |  Published in Ruby, Основы

ruby lambda and procКонцепции Proc (сокр. От Procedure — процедура) и Lambda (Лямбда-функция) в Ruby имеют очень тонкие различия, которые новичкам могут показаться незначительными, а могут и вообще не показаться=) Этот пост — попытка продемонстрировать и объяснить эти их особенности. Read the rest of this entry »

Tags:

Установка базы данных SQLite 3 на Windows и Ubuntu

октября 3, 2010  |  Published in Help, Базы данных

sqlite3 sqlite 3Часто на форумах вижу вопросы связанные с установкой БД SQLite3 на Windows, по этому и решил написать данную How To — статью.

Установка базы данных SQLite 3 на Windows

1. Скачиваем с sqlite-3_7_2.zip и sqlitedll-3_7_2.zip либо более свежие версии (на момент написания поста актуальная версия — 3.7.2).

2. Распаковываем содержимое обеих архивов в папку WINDOWS/system32. В архивах содержится всего 3 файла:

sqlite3.exe  sqlite3.def  sqlite3.dll

3. Теперь SQLite 3 установлена в нашей системе, но для того, чтобы мы могли ее использовать в наших проектах на Ruby on Rails, нам следует установить Ruby-интерфейс для работы с SQLite 3, который поставляется в виде gem’а — sqlite3-ruby:

gem install sqlite3-ruby

Установка SQLite 3 на Ubuntu Linux

1. Устанавливаем пакеты sqlite3 и libsqlite3-dev:

sudo apt-get install sqlite3 libsqlite3-dev

2. Устанавливаем gem sqlite3-ruby:

sudo apt-get install sqlite3-ruby

Все! теперь мы можем работать с базой данных SQLte 3.

Tags: ,