Мегапринцип Unix-culture

Вы можете сконфигурировать всё!
И вы, б...ь, будете конфигурировать всё!

Сам не раз ощущал его, знаете каким местом :)

источник

* * *

Странные вещи творяться вокруг... manuals.rubyonrails.com

???

В начале этой недели бороздя просторы интернета в поисках какой-то информации о Capistrano наткнулся на всем знакомый сайт http://rubyonrails.com, а точнее на его раздел manuals.rubyonrails.com (не спешите пока вставлять его в адресную строку). Поразило меня то, что он работал! :) Около 2 или 3 месяцев назад я безуспешно пытался найти мануал по Capistrano и все ссылки Google вели к нему, но раздел был в дауне (и судя по сообщениям на других форумах в дауне находился он уже изрядное количество времени). Порадовавшись такому воскрешению, я добавил ссылку в закладки, но вернувшись по ней вечером нашел всё тот же лежащий сайт который выдавал 503 ошибку. Пару дней я всё ещё надеялся попасть на него снова, но безрезультатно.

Сегодня разгребая накопившиеся закладки я снова наткнулся, на эту ссылку и решил разобраться что же всё таки это было. Естественно раздел снова был в дауне и выдавал ту же ошибку. Тогда я полез в Google посмотреть кэш, и увидел вот какую интересную картину похоже что совсем недавно сайт успешно работал и даже был проиндексирован гуглом, но затем опять куда-то исчез…

Может кто-нибудь в курсе что твориться с этим разделом на http://rubyonrails.com?

* * *

Красим код. Быстрее, легче, лучше!

Иван Сагалаев, разработчик замечательной JavaScript библиотеки для подсветки кода, под названием highlight.js, устроил в своём блоге небольшой опрос мнений о том как улучшить и ускорить работу библиотеки. Если вам, как и мне, не безразлична судьба этого проекта, то предлагаю оставить свои замечания по поводу предлагаемых Иваном улучшений у него в блоге.

P.S.

Кстати, мой блог использует именно эту библиотеку для подсветки кода :)

* * *

Выбираем хостинг

Rack

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

* * *

Полезные задачи для Capistrano (real-time лог)

Ноги, крылья... главное - хвост!!!

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

* * *

Список конфигурационных параметров в Capistrano

Хасо - это всего лишь одно из состояний системы

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

* * *

Диагностика ошибок в Maruku

Полезная бесполезная информация

Ещё об одном интересном моменте работы с Maruku я хочу вам рассказать. Касается он информации об ошибках и их диагностики.

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

 ___________________________________________________________________________
| Maruku tells you:
+---------------------------------------------------------------------------
| Unclosed span (waiting for ["**"])
| ---------------------------------------------------------------------------
| **aaaEOF
| -----|----------------------------------------------------------------------
|      +--- Byte 5
| Shown bytes [0 to 5] of 5:
| >**aaa
| 
| At line 2
|       text     |**aaa|
| 
| 
| Elements read in span: 
| 
| Current string: 
|   "aaa"
+---------------------------------------------------------------------------
!/usr/lib/ruby/gems/1.8/gems/maruku-0.5.9/lib/maruku/errors_management.rb:49:in `maruku_error'
!/usr/lib/ruby/gems/1.8/gems/maruku-0.5.9/lib/maruku/input/parse_span_better.rb:210:in `read_span'
!/usr/lib/ruby/gems/1.8/gems/maruku-0.5.9/lib/maruku/input/parse_span_better.rb:418:in `read_strong'
!/usr/lib/ruby/gems/1.8/gems/maruku-0.5.9/lib/maruku/input/parse_span_better.rb:175:in `read_span'
!/usr/lib/ruby/gems/1.8/gems/maruku-0.5.9/lib/maruku/input/parse_span_better.rb:46:in `parse_span_better'
\___________________________________________________________________________

Как видите я попытался вести слово “aaa” и не закрыл sapn-тег (не поставил в конце символы **)

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

ЗначениеОписание
:ignoreНе выводить диагностические сообщения
:warningВыводить диагностические сообщения (пример я привёл выше)
:raiseГенерировать исключение при ошибке

И передать его в качестве аргумента в конструктор класса Maruku

maruku = Maruku.new(text, :on_error => :raise)

Либо установить его в хеше с настройками по умолчанию

MaRuKu::Globals[:on_error] = :ignore

Довольно удобно на мой взгляд. На этом пока всё.

* * *

Полезные задачи для Capistrano (получение логов)

Довольно часто возникает желание посмотреть логи работы приложения, приходиться подключаться к серверу, заходить в каталог с приложением, и смотреть логи в маленьком терминальном окне. Мне не очень хочется это делать, поэтому я написал следующую задачу для Capistrano:

task :get_logs, :role => [:app] do
  name = "blog_logs.zip"
  logs_zip = "/tmp/#{name}"

  run "rm -f #{logs_zip}"
  run "cd #{current_path}/log/ && zip -r -9 #{logs_zip} **"
  download "#{logs_zip}", "tmp/#{name}"
  run "rm -f #{logs_zip}"
end

Задача просто упаковывает все логи Rails приложения в архив и передаёт их на локальный компьютер. Для небольших логов это вполне приемлемо, а вот когда размер production.log превысит с десяток мегабайт, то думаю настанет время заняться оптимизацией (например передавать только часть production.log обрезая его с помощью команды tail)

На самом деле некоторые шаги по оптимизации размера production.log можно проделать уже сейчас, например, исключить с помощью фильтра filter_parameter_logging который находиться в application.rb те поля которые содержат большие текстовые данные.

P.S.

Если у вас есть свои решения этой задачи, или другие задачи которые могут быть полезны пользователям, то присылайте их на мой e-mail указанный внизу страницы. Я буду публиковать их по мере поступления.

* * *

Использование Maruku (часть №5 заключительная)

Need for Speed

Вот и заканчивается начатый мной недавно цикл статей про Maruku. В этой части я измерю производительность Maruku и сравню её с другими подобными движками (RedCloth, BlueCloth).

* * *

Жизненно :)

Работоспособность/время работы на компанию. Влияние внешней среды.
Работоспособность/время работы на компанию. Влияние внешней среды.

Не смог не запостить :) График откровенно порадовал :)

Источник

* * *