Подобного не встречал, но думаю что я не первый кто до этого додумался. Что бы не передавать в теле ответа мета информацию, её можно передавать в HTTP-заголовке. Произвольные поля в заголовок можно передавать с префиксом "X-". Хочу показать как подобное реализовать на рельсах и как удобно получать эти заголовки на JS-клиенте. Ну за одно покажу как избежать одного нюанса. Я покажу на примере передачи flash сообщений при JSON-запросов.
У совы. Блог начинающего программиста
В этом блоге я буду размещать небольшие заметки о проблемах с которыми я буду сталкиваться занимаясь программированием.
понедельник, 12 сентября 2011 г.
воскресенье, 21 августа 2011 г.
Включаем журналирование для MongoDB
Начиная с версии 1.7.5 в MongoDB появилось журналирование. Включение журналирования позволяет избавиться от ручного восстановления базы после сбоя. Правда журналирование замедляет скорости записи. Начиная с версии 1.9.2 для 64-х битных систем журналирование включено по умолчанию. Для 32-битной версии и предыдущих версий журналирование нужно включать вручную. Нужно добавить в конец файла настроек (обычно /etc/mongodb.conf) следующею строку:
journal=trueНу и для немедленного применения настроек нужно перезагрузить MongoDB. Это делается так:
sudo /etc/init.d/mongodb start
понедельник, 15 августа 2011 г.
Опыт частичного перехода с Rails 3.0.9 на Rails 3.1.rc5
Решил попробовать перевести свой текущий проект на Rails 3.1(rc5). Создал новую ветку в репозитории, создал новый гемсет в rvm.
Заменил в Gemfile строку:
Как я понял это сделали, что бы вызовы методов контроллеров были больше похожи на вызовы браузера.
Других ошибок пока не было, но я ещё не включал новые возможности рельс.
Заменил в Gemfile строку:
gem 'rails', '3.0.9'На строку:
gem 'rails', '~> 3.1.rc5'Обновил все гемы:
bundle updateЗапускаю тесты:
rspec spec/Приблизительно 10% валятся. Все сломанные тесты для контроллеров. Все ошибки были из-за того, что раньше при тесте контролера через rspec параметры предавались в контроллер напрямую, а теперь всё переводится в строки. Например, если раньше вызов:
put :move, :id => 1, :derection => :downраньше передавал в контроллер непосредственно 1 и :down, то теперь это будет '1' и 'down' соответственно.
Как я понял это сделали, что бы вызовы методов контроллеров были больше похожи на вызовы браузера.
Других ошибок пока не было, но я ещё не включал новые возможности рельс.
среда, 27 июля 2011 г.
Включаем русскую локализацию в Mongoid
Сегодня всё утро провёл в попытках включить русскую локализацию в Mongoid версии 2.0.2. Сама локализация есть, но не активирована по умолчанию. По умолчанию активирована только английская локализация. Для включения всех остальных нужно вызвать во время инициализации приложения метод Mongoid.add_language, параметром передаётся аббревиатура языка. Я добавил Mongoid.add_language('ru') в cсамый конец файла config/application.rb. Список доступных локализаций можно посмотреть тут.
P.S. Если кто знает более красивый способ включения локализаций, то пожалуйста напишите его в комментариях.
P.S. Если кто знает более красивый способ включения локализаций, то пожалуйста напишите его в комментариях.
суббота, 16 июля 2011 г.
Восстановление виртуальной машины в Virtual Box после не удачного сохранения состояния
У меня частые перебои с электричеством, причём настолько часты что безперебойник не всегда успевает подзарядиться. Бесперебойник у меня подключен к компьютере по usb. И когда он начинает работа, Virtual Box сам автоматически сохраняет состояния виртуальных машин. Но если безперебойник не успел зарядиться. то компьютер выключается до полного сохранения виртуальны машин. И после этого при запуске виртуальных машин вываливается ошибка. Что бы запустить эти виртуальные машины нужно сбросить их через контекстное меню, как это показано на скриншоте.
![]() |
| Картинка кликабельна |
пятница, 15 июля 2011 г.
Обновление ядра linux в виртуальной машине VirtualBox
При работе с linux'ом в виртуальной машине VirtualBox есть одно, периодически проявляющиеся, неудобство. После обновление ядра linux'а или самого VirtualBox'а перестаёт работать гостевое дополнение (Guest Additions) и каждый раз приходиться его вручную обновлять. Причём об этом я вспоминаю после первой перезагрузки и приходится ставить дополнение и опять перегружать. Не очень приятно ждать.
четверг, 28 апреля 2011 г.
Настройка rspec с autotest и spork
Цель
Настроить тестирование приложения Rails 3. Инструмент для тестирования должен обладать следующими свойствами:
Настроить тестирование приложения Rails 3. Инструмент для тестирования должен обладать следующими свойствами:
- Выполнение тестов автоматически после сохранения любого файла проекта. Что бы не приходилось после каждого сохранения лезть в консоль и запускать тесты вручную.
- После выполнения тестов, будет показывать уведомление с результатами. Что бы не ждать выполнения тестов, а продолжать работу.
- Выполнение тестов должно происходить как можно быстрее. Думаю тут всё понятно.
понедельник, 21 февраля 2011 г.
Восстановление базы MongoDB в Debian 5.0(lenny)
В одном проекте решил использовать MongoDB. Но после аварийного перезапуска(хостером), mongodb не стартует. Процесс восстановления не сложен, но есть некоторые нюансы.
Все следующие действия я проделывал на сервере с Debian 5.0(lenny) и на Ubuntu 10.10, запущенной в виртуалке на домашней машине.
Первым делом удалим файл блокировки базы:
sudo rm /var/lib/mongodb/mongod.lock
Дальше собственно восстановление базы:
sudo -u mongodb mongod --repair -f /etc/mongodb.conf
Ну и запускаем сервер:
sudo /etc/init.d/mongodb start
Если сервер не запустится, то можно попробовать удалить файл mongo.lock, как это показано выше и попробовать запустить сервер снова.
Обновление 03.05.2011
Упростил процесс восстановления.
И проверил работоспособность на Ubuntu 10.10.
Обновление 21.08.2011
Уже не актуально ввиду появления журналирования у MongoDB. Подробней тут.
пятница, 4 февраля 2011 г.
Добро пожаловать
Все привет. Этот блог я создал довольно давно, но не наполнял его. Хочу это исправить.
Немного обо мне
Я живу в Краснодаре и учусь на пятом курсе ФПМ'а КубГУ. В свободное от учёбы время я занимаюсь разработкой сайтов. На данный момент я сделал два ныне работающих сайта(один, второй) и один уже не работающий. Раньше писал на PHP, сейчас пересел на Ruby on Rails. Курсовые для универа я писал на Delphi, Java(ME/SE/EE) и Groovy. В свободное время немного изучал C# и Python.
Порядок изучения языков программирования был приблизительно таким: Qbasic(1), VisuialBasic .NET(1), JavaScript(4), Python(2), Pascal(2), C#(2), PHP(4), Delphi(3), Java(4+), Groovy(3), Ruby(4). В скобках я указал свой приблизительный уровень знания языка по пятибалльной шкале. Да, я не считаю что знаю хоть один язык хорошо.
Подписаться на:
Сообщения (Atom)
