понедельник, 31 мая 2010 г.

Ruby On Rails: Что это?

Итак, начнем знакомиться с Ruby On Rails.
Во-первых, открываем getting started и читаем:
Что такое Rails?
Rails - это фреймворк для разработки веб-приложений, написанный на языке Ruby. Он предназначен для облегчения программирования за счет допущений относительно того, что нужно каждому разработчику. Это приводит к тому, что программировать требуется намного меньше по сравнению с другими языками и фреймворками.
Rails делает предположение, что существует некий "лучший" путь разработки, и спроектирован таким образом, чтобы следовать этому пути. Как обещают разработчики, если мы выучим "путь Rails", то невероятно увеличим свою производительность. Если же попытаться применять какие-то другие пути к Rails, то ничего хорошего из этого не выйдет.
Философия Rails включает в себя несколько главных приципов:
1) DRY – “Don’t Repeat Yourself” - "Не повторяйтесь" - подразумевает, что писать один и тот же код снова и снова - плохо.
2) Convention Over Configuration - Соглашения превыше конфигурации - Rails делает предположения о том, что вы хотите сделать, и как, вместо того, чтобы заставлять вас править бесконечные файлы конфигурации.
3) REST - лучший подход для разработки веб-приложений. Организация приложения на стандартных возможностях http - лучший способ сделать дело.

суббота, 29 мая 2010 г.

Ruby ч1: Hello World, или знакомство с Ruby.

Захотелось мне узнать, что же за зверь такой фреймворк ROR. Но для того, чтобы это узнать, надо разобраться сначала с самим Ruby, как он хоть выглядит в принципе и как на нем писать:)
Итак, поехали.
У меня имеется тестовая виртуальная машина с Linux Debian.
Необходимо установить на нее Ruby. Для этого выполняем следующую команду:
aptitude install ruby libzlib-ruby rdoc irb
Что же мы ставим? Ruby - это сам язык ruby, libzlib-ruby - библиотека zlib для ruby, rdoc - инструмент для генерации документации на основе документов ruby, irb - коммандная строка ruby.
Когда все это установится, можно проверить работу ruby так, как написано здесь. Например, можно использовать Ruby как калькулятор:
irb(main):007:0> a = 3 ** 2
=> 9
irb(main):008:0> b = 4 ** 2
=> 16
irb(main):009:0> Math.sqrt(a+b) => 5.0
Или взглянем на то, как в Ruby определяются методы:
irb(main):010:0> def h
irb(main):011:1> puts "Hello World!"
irb(main):012:1> end
=> nil
Здесь мы определили метод h, который при своем вызове будет выводить на экран фразу "Hello World!",
Чтобы вызвать этот метод, достаточно всего лишь ввести h:
irb(main):013:0> h
Hello World!
=> nil
irb(main):014:0> h()
Hello World!
=> nil
На этом совсем предварительное знакомство с Ruby закончим. Если понадобится (а я уверен, что понадобится), то вернемся к этому в следующих статьях:)

пятница, 21 мая 2010 г.

Установка бесплатная панели управления сервером Webmin на Linux Debian

Из своего любопытства решил я посмотреть, какие бывают панели управления и конфигурации, как ими пользоваться. Причем хотелось найти именно бесплатную панель. Поэтому мой выбор остановился на Webmin. Как пишут ее создатели, webmin - это веб-интерфейс для системного администрирования unix-систем. Используя любой современный браузер, можно управлять аккаунтами пользователей, веб-сервером Apache, DNS и многим другим.
Тестировать webmin я решил на виртуальной машине с Linux Debian на борту.
О том, как надо устанавливать панель Webmin на Debian, можно почитать здесь - совсем ничего сложного.
Я выбрал установку через репозиторий, так как это дает возможность обновлять webmin намного проще, нежели скачивая каждый раз свежий deb-пакет. Кроме того, при установке из репозитория aptitude или apt-get сам разрешит все зависимости, не придется в ручную ставить пакеты типа perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl libmd5-perl.
Итак, добавляем репозиторий webmin в список репозиториев. Для этого надо добавить строчку "deb http://download.webmin.com/download/repository sarge contrib" в файл /etc/apt/sources.list.
После этого желательно установить gpg-key для этого репозитория. Выполняем для этого 2 команды:
wget http://www.webmin.com/jcameron-key.asc
sudo apt-key add jcameron-key.asc
Далее, обновляем список репозиториев и устанавливаем webmin:
sudo apt-get update
sudo apt-get install webmin
.
После того, как webmin установится на нашу систему, надо перебросить порт управления webmin'ом на виртуальную машину. Обычно это порт 10000. Как это сделать, я описал в предыдущей статье. Разумеется, если вы ставите webmin на реальную машину, ничего пробрасывать никуда не надо:)
И все, переходим на страницу https://localhost:10000, и видим приветствие webmin'a:

.

VirtualBox in Debian - проброс портов (port forwarding) на гостевую машину

Предыстория: решил я потестить панель управления хостингом Webmin. Установку самой панели я опишу в другой статье. В этой же постараюсь рассказать о том, как прокинуть порт, чтобы снаружи можно было зайти на веб-интерфейс этой панели.
При пробросе порта я руководстовался этим постом.
Решение:
Для порт форвардинга можно воспользоваться утилитой VBoxManage. Надо выполнить следующие команды:
$ VBoxManage setextradata "VBoxInternal/Devices/pcnet/0/LUN#0/Config/webmin/HostPort" 10000
$ VBoxManage setextradata <guestname> "VBoxInternal/Devices/pcnet/0/LUN#0/Config/webmin/GuestPort" 10000
$ VBoxManage setextradata &ly;guestname> "VBoxInternal/Devices/pcnet/0/LUN#0/Config/webmin/Protocol" TCP
Итак, здесь означает имя виртуальной машины, в нашем случае "debian-test". Напротив HostPort и GuestPort - порты, которые слушаются на главной и виртуальной машине. Т.е. те самые, который мы будем перебрасывать.
После этого остается только перезапустить VirtualBox.
Чтобы удостовериться, что все работает, можно выполнить следующую команду:
sudo netstat -nlt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:29209 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN
Мы видим, что порт 10000 находится в состоянии LISTEN, т.е. прослушивается. Зайдя через бразуер host-машины на адрес https://localhost:10000, мы попадаем на страничку Webmin-интерфейса.

В дополнении осталось так же заметить, что конфиги виртуальных машин лежат обычно здесь - ~/.Virtualbox/Machines/<virtualmachinename>/<virtualmachinename>.xml.