<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>fxposter&#039;s wave &#187; Ruby-On-Rails</title>
	<atom:link href="http://blog.fxposter.org/tag/ruby-on-rails/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.fxposter.org</link>
	<description>Stories about Ruby, JavaScript, Objective-C and other cool tools</description>
	<lastBuildDate>Sun, 25 Jul 2010 08:46:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>MongoDB и MongoMapper &#8211; небольшой отчет об использовании</title>
		<link>http://blog.fxposter.org/2010/05/10/mongodb-and-mongomapper-small-usage-report/</link>
		<comments>http://blog.fxposter.org/2010/05/10/mongodb-and-mongomapper-small-usage-report/#comments</comments>
		<pubDate>Mon, 10 May 2010 20:19:20 +0000</pubDate>
		<dc:creator>fxposter</dc:creator>
				<category><![CDATA[Программирование]]></category>
		<category><![CDATA[Работа]]></category>
		<category><![CDATA[MongoDB]]></category>
		<category><![CDATA[MongoMapper]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby-On-Rails]]></category>

		<guid isPermaLink="false">http://blog.fxposter.org/?p=775</guid>
		<description><![CDATA[Недавно писал проект на Rails 2.3 + MongoDB + MongoMapper. Не могу сказать, что все было хорошо - для того, чтобы существующие плагины для рельсов заработали с MongoMapper-ом пришлось немного повозиться, но в итоге все закончилось хорошо. :) А мой сегодняшний рассказ пойдет о некоторых особенностях MongoDB и MongoMapper-а, с которыми вы, скорее всего столкнетесь, [...]]]></description>
			<content:encoded><![CDATA[<p>Недавно писал проект на <a href="http://rubyonrails.org/">Rails 2.3</a> + <a href="http://www.mongodb.org/">MongoDB</a> + <a href="http://github.com/jnunemaker/mongomapper">MongoMapper</a>. Не могу сказать, что все было хорошо - для того, чтобы существующие плагины для рельсов заработали с MongoMapper-ом пришлось немного повозиться, но в итоге все закончилось хорошо. :)</p>
<p>А мой сегодняшний рассказ пойдет о некоторых особенностях MongoDB и MongoMapper-а, с которыми вы, скорее всего столкнетесь, если будете использовать эти библиотеки.</p>
<p>Для начала поговорим немного о MongoDB. Что это такое?</p>
<blockquote cite="http://ru.wikipedia.org/wiki/MongoDB"><p>MongoDB — документо-ориентированная система управления базами данных (СУБД) с открытым исходным кодом, не требующая описания схемы таблиц. Написана на языке C++. СУБД управляет наборами JSON-подобных документов, хранимых в двоичном виде в формате BSON.</p></blockquote>
<p>Если попробовать вкратце охарактеризовать эту базу данных, то получится что-то вроде этого: аналог реляционной СУБД без join-ов и транзакций, зато с поддержкой структур данных (массивов, хешей).</p>
<p>MongoMapper - это &#8220;<a href="http://ru.wikipedia.org/wiki/ORM">ORM</a>&#8221; для MongoDB, написанный на руби. &#8220;ORM&#8221; в кавычках потому что сложно себе представить ORM для нереляционной базы данных. Я бы скорее назвал это высокоуровневой оберткой над API, которое предоставляет MongoDB, с поддержкой ассоциаций между записями и много чем еще.</p>
<p>Теперь, собственно, о &#8220;особенностях&#8221; MongoDB и MongoMapper-а.</p>
<h3>Вложенные документы</h3>
<p>Вложенные документы в понятии MongoMapper-а - это когда одни обьекты хранят внутри себя другие. Для примера, возьмем следующую модель:</p>
<pre><code class="ruby">class User
  include MongoMapper::Document

  key :login
  key :password
  key :salt

  many :posts
  many :addresses
end

class Post
  include MongoMapper::Document
  key :title, String
  key :body, String
  timestamps!
end

class Address
  include MongoMapper::EmbeddedDocument
  key :type, String
  key :country_id, ObjectId
  key :city_id, ObjectId
  key :city_address, String
end</code></pre>
<p>Чтобы понимать, что тут происходит нужно, во-первых знать <a href="http://www.ruby-lang.org/">Ruby</a> :) и во вторых - прочесть <a href="http://railstips.org/blog/archives/2009/06/27/mongomapper-the-rad-mongo-wrapper/">пост</a> John Nunemaker (даже не знаю, как правильно перевести :)) о MongoMapper-е. Вот <a href="http://railstips.org/2009/12/18/why-i-think-mongo-is-to-databases-what-rails-was-to-frameworks/">еще один</a>, кстати, тоже интересный.</p>
<p>Таким образом имеем модель пользователя, которая хранить набор постов, написанных этим пользователем и набор адресов пользователя (домашний, рабочий, etc).</p>
<p>Особенности работы со встроенными документами легче показать на примере:</p>
<pre><code class="ruby">user = User.first
user.posts</code></pre>
<p>Последняя комманда вернет &#8220;scope&#8221;/&#8221;relation&#8221;, а не просто массив элементов (люди, знакомые с named_scope в ActiveRecord версии &lt; 3 поймут).<br />
Соответственно, можно дродолжить эту комманду, например, так:</p>
<pre><code class="ruby">user.posts.all(:conditions =&gt; { :created_at =&gt; { "$gt" =&gt; (Date.today - 10.days) } })</code></pre>
<p>В то время как</p>
<pre><code class="ruby">user.addresses</code></pre>
<p>вернет массив и всю дополнительную фильтрацию прийдется производить с помощью Ruby.</p>
<h3>Манипуляции со вложенными документами</h3>
<p>У EmbeddedDocument нет понятия &#8220;id&#8221;, т.е. отличать обьекты Address один от другого можно только по их индексу в массиве user.addresses либо вводя &#8220;свои&#8221; идентификаторы. Но даже в этом случае выбирать соответствующий обьект прийдется &#8220;вручную&#8221;:</p>
<pre><code class="ruby">user.addresses.detect { |address| address.identifier == params[:address_identifier] }</code></pre>
<p class="offtopic">PS. Для тех, кто в танке: detect - это аналог select { |address| &#8230; }.first.</p>
<p>Соответственно - вложенные обьекты легко добавлять, выбирать всю связь полностью, но с ними становится &#8220;сложно&#8221; работать, как с отдельными обьектами. В частности - неудобно обновлять из-за проблем с выборкой отдельного элемента и неудобно удалять.</p>
<p>С удалением вообще интересная история. Удалить обьект имея только ссылку на него - нельзя, нужна еще и ссылка на массив, в котором он хранится:</p>
<pre><code class="ruby">user.addresses.first.delete/destroy</code></pre>
<p>не работает, т.к. таких методов у вложенных обьектов нет. Нужно делать так:</p>
<pre><code class="ruby">user.addresses.delete_at(address_index)</code></pre>
<p>если вы знаете индекс в массиве адресов, либо</p>
<pre><code class="ruby">user.addresses.delete_if { |address| address.identifier == address_identifier }</code></pre>
<p>если знаете идентификатор или удаляете по какому-либо другому полю.</p>
<p>Несложно, но проблемы на первых порах с этим бывают.</p>
<h3>&#8220;идентификаторы&#8221; обьектов MongoDB</h3>
<p>Каждому обьекту в бд MongoDB присваивает свой идентификатор. Как он по умолчанию строится можно посмотреть <a href="http://www.mongodb.org/display/DOCS/Object+IDs">здесь</a>. Обычно эти идентификаторы совсем не мешают, но иногда хочется просто засунуть вместо них какие-нибудь данные.</p>
<p>Например, вместо такой модели:</p>
<pre><code class="ruby">class Tag
  include MongoMapper::Document
  key :name, String
end</code></pre>
<p>иметь такую</p>
<pre><code class="ruby">class Tag
  include MongoMapper::Document
  # id-шник явно никогда не прописывается
end</code></pre>
<p>И создавать обьект так:</p>
<pre><code class="ruby">Tag.create(:_id =&gt; "ruby on rails")</code></pre>
<p>MongoDB это позволяет делать. Более того - драйвер Ruby для MongoDB это тоже может делать. Проблема в том, что это не умеет делать MongoMapper. Совершенно. Как обойти эту проблему я на данный момент не знаю (я в итоге сделал модель первого типа и забил), есди кто знает решение - напишите, будет интересно.</p>
<p>И напоследок поговорим о</p>
<h3>Has And Belongs To Many в MongoDB</h3>
<p>&#8230; или <a href="http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#M001836">habtm</a>, знакомый многим по ActiveRecord.</p>
<p>Приведу пример из моего проекта: есть домены, есть их модераторы, связть many-to-many. Для каждого домена хочется видеть список модераторов и для каждого модератора хочется видеть список доменов, которые он модерирует.</p>
<p>Честно говоря, задача поставила меня в тупик. Т.е. как все мы решаем эти задачи с помощью RDBMS? Правильно - связующей таблицей. Так же можно было поступить и здесь, но&#8230; Как-то это было некрасиво, на мой взгляд, использовать этот подход вв документоориентированной базе данных.</p>
<p>Первое решение, которое мне пришло в голову - хранить массив id-шников доменов для каждого пользователя и хранить массив id-шников пользователей для каждого домена и синхронизировать их.</p>
<p>Последние два слова очень смущали - синхронизация вносила излишнюю сложность. Т.е. реализовать-то её можно, но очень не хотелось.</p>
<p>Собственно, обратился за помощью к знакомым и вышел на одного человека (ник - Necromant, сайта его я не знаю :) ), который помог решить мне эту проблему.</p>
<p>Итак, решение - хранить только один список id-шников (или в юзерах или в доменах) и сделать по нему индекс, соответственно, вывод как доменов по юзеру так и юзеров по домену будет достаточно быстрый.</p>
<p>Я хранил массив юзеров для домена, т.к. если бы я сделал иначе, то при удалении домена пришлось бы пройтись по всем юзерам и удалить все связи на домен, а в выбранном варианте этого делать не нужно (а удаление юзеров - это пока что вообще не существующее событие для моего проекта):</p>
<pre><code class="ruby">class Domain
  include MongoMapper::Document
  # ...
  key :moderator_ids, Array, :index =&gt; true
  def moderators
    User.find moderator_ids
  end
end

class User
  include MongoMapper::Document
  # ...
  def moderator_of?(domain)
    domain.moderator_ids.include? id.to_s
  end

  def moderated_domains
    Domain.all :moderator_ids =&gt; id.to_s
  end
end</code></pre>
<p>Еще хочу рассказать о том, как подружить MongoMapper и <a href="http://github.com/thoughtbot/clearance">Clearance</a>, но пост вроде и так не маленький получился, так что ждите еще один пост о MongoMapper-е в ближайшие дни.</p>
<p><em><strong>PS</strong>. Совсем писать разучился&#8230; :(</em></p>
<p><em><strong>PPS</strong>. Если вам понравился этот пост, <a href="http://habrahabr.ru/blogs/ruby/93212/">проголосуйте</a> за него на Habrahabr-е. :)<br />
</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fxposter.org/2010/05/10/mongodb-and-mongomapper-small-usage-report/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Ruby And Rails Barcamp</title>
		<link>http://blog.fxposter.org/2009/09/04/ruby-and-rails-barcamp/</link>
		<comments>http://blog.fxposter.org/2009/09/04/ruby-and-rails-barcamp/#comments</comments>
		<pubDate>Thu, 03 Sep 2009 21:24:44 +0000</pubDate>
		<dc:creator>fxposter</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Работа]]></category>
		<category><![CDATA[BarCamp]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby-On-Rails]]></category>

		<guid isPermaLink="false">http://blog.fxposter.org/?p=721</guid>
		<description><![CDATA[26-го сентября, в субботу, в Киеве будет проведен BarCamp на тему языка Ruby и фреймворка Ruby On Rails. Место проведения зависит от количества желающих посетить данное мероприятие и на данный момент уточняется. Если не произойдет ничего особенного - я туда скорее всего поеду. Буду рад увидеть там читателей своего блога. ;) Заходим, смотрим, регистрируемся.]]></description>
			<content:encoded><![CDATA[<p>26-го сентября, в субботу, в Киеве будет проведен <a href="http://ru.wikipedia.org/wiki/BarCamp">BarCamp</a> на тему языка Ruby и фреймворка Ruby On Rails. Место проведения зависит от количества желающих посетить данное мероприятие и на данный момент уточняется. Если не произойдет ничего особенного - я туда скорее всего поеду. Буду рад увидеть там читателей своего блога. ;)</p>
<p><a href="http://rubylang.org.ua/">Заходим</a>, смотрим, регистрируемся.<a href="http://rubylang.org.ua/"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fxposter.org/2009/09/04/ruby-and-rails-barcamp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ruby on Rails 2.1 &#8211; What’s new</title>
		<link>http://blog.fxposter.org/2008/06/11/ruby-on-rails-21-whats-new/</link>
		<comments>http://blog.fxposter.org/2008/06/11/ruby-on-rails-21-whats-new/#comments</comments>
		<pubDate>Wed, 11 Jun 2008 08:01:33 +0000</pubDate>
		<dc:creator>fxposter</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Программирование]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby-On-Rails]]></category>

		<guid isPermaLink="false">http://blog.fxposter.org/?p=441</guid>
		<description><![CDATA[Нет, я не собираюсь перечислять нововведения в новой версии ROR, это уже сделали другие, а я лишь представлю вам их наработки. Встречаем очередную бесплатную книгу по рельсам - &#8220;Ruby on Rails 2.1 - What’s new&#8221;. В ней, как можно догадаться из названия, описываются (главные?) нововведения в последней версии фреймворка. Почитать о книге и скачать её [...]]]></description>
			<content:encoded><![CDATA[<p>Нет, я не собираюсь перечислять нововведения в новой версии ROR, это уже сделали другие, а я лишь представлю вам их наработки. Встречаем очередную бесплатную книгу по рельсам - &#8220;Ruby on Rails 2.1 - What’s new&#8221;. В ней, как можно догадаться из названия, описываются (главные?) нововведения в последней версии фреймворка.</p>
<p>Почитать о книге и скачать её можно <a href="http://www.nomedojogo.com/2008/06/09/new-free-book-ruby-on-rails-21-whats-new/">здесь</a>.</p>
<p><em><strong>PS</strong>. Сам книгу посмотрел&#8230; Могу сказать, что тем, кто рельсами не занимается, она будет довольно непонятной. Прочтите что-нибудь другое, например, Agile Development With Rails.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fxposter.org/2008/06/11/ruby-on-rails-21-whats-new/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>CDBaby переходит обратно на PHP</title>
		<link>http://blog.fxposter.org/2007/09/23/humor-ruby-php/</link>
		<comments>http://blog.fxposter.org/2007/09/23/humor-ruby-php/#comments</comments>
		<pubDate>Sun, 23 Sep 2007 16:54:54 +0000</pubDate>
		<dc:creator>fxposter</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Программирование]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby-On-Rails]]></category>
		<category><![CDATA[Юмор]]></category>

		<guid isPermaLink="false">http://blog.fxposter.org/2007/09/23/humor-ruby-php/</guid>
		<description><![CDATA[Спасибо, поржал. Статья типа &#8220;Nokia 1100 лучше Nokia N95 потому что у нее больше клавиши, есть фонарик, да и вообще - мне удобнее ей пользоваться&#8220;.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.habrahabr.ru/link/go/25919">Спасибо</a>, поржал.</p>
<p>Статья типа &#8220;<em>Nokia 1100 лучше Nokia N95 потому что у нее больше клавиши, есть фонарик, да и вообще - мне удобнее ей пользоваться</em>&#8220;.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fxposter.org/2007/09/23/humor-ruby-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Мысли о Web Programming Languages</title>
		<link>http://blog.fxposter.org/2007/08/28/web-programming-languages/</link>
		<comments>http://blog.fxposter.org/2007/08/28/web-programming-languages/#comments</comments>
		<pubDate>Mon, 27 Aug 2007 23:04:31 +0000</pubDate>
		<dc:creator>fxposter</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Программирование]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Java-EE]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby-On-Rails]]></category>
		<category><![CDATA[Zend-Framework]]></category>
		<category><![CDATA[Zope]]></category>

		<guid isPermaLink="false">http://blog.fxposter.org/2007/08/28/web-programming-languages/</guid>
		<description><![CDATA[Какие языки сейчас используются в веб-программировании? Навскидку я могу составить такой список: C#, Java EE, Python, Ruby, PHP, Perl. JavaScript брать в расчет не буду - сейчас я хочу поговорить именно о server-side языках. C# - первая версия этого языка появилась в 2000 году, для веба стал использоваться с приходом ASP.NET, который вышел в 2002м [...]]]></description>
			<content:encoded><![CDATA[<p>Какие языки сейчас используются в веб-программировании? Навскидку я могу составить такой список: <a href="http://msdn2.microsoft.com/en-us/vcsharp/aa336809.aspx">C#</a>, <a href="http://java.sun.com/javaee/">Java EE</a>, <a href="http://www.python.org/">Python</a>, <a href="http://www.ruby-lang.org/">Ruby</a>, <a href="http://php.net/">PHP</a>, <a href="http://www.perl.org/">Perl</a>. JavaScript брать в расчет не буду - сейчас я хочу поговорить именно о server-side языках.</p>
<p><strong>C#</strong> - первая версия этого языка появилась в 2000 году, для веба стал использоваться с приходом <a href="http://www.asp.net/">ASP.NET</a>, который вышел в 2002м году.</p>
<p><strong>Java EE</strong> -  первая версия, которая называлась J2EE и имела версию 1.2, вышла в далеком1991м году. Следующая версия 1.3 была выпущена аж через 11 лет. Сейчас новые версии выпускаются гораздо чаще. Используется в основном для разработки веб-сервисов. По крайней мере я не встречал мелкие или небольшие компании, которые писали бы &#8220;просто сайты&#8221; на Java EE.</p>
<p><strong>Python</strong> - на самом деле достаточно древний язык. Первая версия языка была выпущена в 1990м году. Когда его начали достаточно сильно использовать в веб-приложениях сказать трудно. Можно считать, что в интернет он вошел с появлением таких легких и быстрых фреймворков, как <a href="http://www.djangoproject.com/">Django</a>/<a href="http://turbogears.org/">Turbogears</a> и т.д. В таком случае получается что в инете он с 2004-2005-го года. На самом деле все было несколько раньше, но приход в интернет в то время был не совсем очевиден. Фреймворк <a href="http://zope.org/">Zope</a>, который был изначально нацелен на интернет, был выпущен в 1995-1997 годах. Точнее на данный момент сказать не могу. Но еще раз повторюсь - это <strong>не было</strong> массовым явлением.</p>
<p><strong>Ruby</strong> - разработан в 1995м году. В интернете стал использоваться с появлением, ясное дело, <a href="http://www.rubyonrails.org/">Ruby On Rails</a>, который вышел в 2004-м году.</p>
<p><strong>PHP</strong> - эдакий старичок программирования сайтов. Первая версия, которая называлась PHP/FI вышла в 1994м. А тот PHP, который мы знаем появился в 1997м году с выходом PHP3 и именно с этого момента он начал набирать популярность как язык для веб-разработки.</p>
<p><strong>Perl</strong> - вышел в 1987м году, а вот когда появился в вебе - для меня остается тайной. Я этот язык особо никогда не любил и уж тем более никогда не использовал. Пользуются ли им еще в вебе - пользуются, но, как мне кажется, популярность этого языка неуклонно падает.</p>
<p>Теперь, собственно, к чему я вел это все. Выводы по Perl&#8217;у я делать не могу, а вот по всем остальным языкам получается интересная картина. C#/Python/Ruby - заявили массово о себе совсем недавно, причем их массовое распространение связанно с написанными для них фреймворками (ASP.NET/Django и компания/ROR). Java - в вебе используется только Java EE, и, хоть и появилась она давно, сейчас явно не собирается скидывать обороты. PHP - язычок, который пришел в веб сам, для которого до недавнего времени и фреймворков то не было, а те что были - их не использовали.</p>
<p>Я веду к тому, что все современные языки в вебе используют фреймворки, причем используют чуть ли не в обязательном порядке (да, вы можете на руби писать веб приложение, не используя рельсы, но <strong>никто</strong> этого при здравом уме делать не будет). А вот писать приложение на PHP не используя никаких уже созданных компонент - вполне обычное дело. И народ наоборот не хочет использовать фреймворки аргументируя это тем, что они &#8220;слишком сложные&#8221;, &#8220;тормозные&#8221; и т.д.  И очень большая часть сайтов делается потом непонятно как&#8230; посмотришь код - убиться хочется.  такое впечатление, что фраза &#8220;PHP портит нормальных программистов&#8221; - это не бред, а самая настоящая реальность.</p>
<p>В итоге (все ИМХО):</p>
<ol>
<li>смысла использовать PHP, если есть возможность использовать что-то более современное, - <strong>НЕТ</strong></li>
<li>если уж использовать PHP, то с умом - не писать все сначала, а выбрать удобные компоненты для разработки нужного вам веб приложения</li>
</ol>
<p>Из PHP Framework&#8217;ов я бы посоветовал выбрать <a href="http://framework.zend.com/">Zend Framework</a>, как наиболее конфигурируемый и обьектно-ориентированный. Для себя я выбрал именно его. Но в нем есть одно &#8220;но&#8221; - если вы в качестве wrapper&#8217;а для DB собираетесь использовать зендовские классы - вам возможно прийдется сменить хостера, так как нужна будет поддержка PDO/PDO_MySQL/PDO_PgSQL, которая, как мне кажется, не у всех хостеров есть.<br />
<em><strong>PS</strong>. Лично мне сейчас нравится:</em></p>
<ul>
<li><em>для веб-разработки для себя - Python, для заказов - PHP + Zend_Framework </em></li>
<li><em>для desktop-gui-приложений - C#</em></li>
<li><em>для консольных - C++</em></li>
</ul>
<p><em><strong>PPS</strong>. Пару часов назад гуглил украинских хостеров. Завтра буду узнавать - есть ли у них поддержка PHP &gt;= 5.1.3 и PDO_MySQL (требования к Zend Framework&#8217;у). Посмотрим, какие результаты это даст. Кто знает хороших укр. хостеров - отписывайтесь, составлю табличку - кто и что поддерживает.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fxposter.org/2007/08/28/web-programming-languages/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>J2EE vs RoR vs Django vs Turbogears vs Zope</title>
		<link>http://blog.fxposter.org/2007/06/20/j2ee-vs-ror-vs-django-vs-turbogears-vs-zope/</link>
		<comments>http://blog.fxposter.org/2007/06/20/j2ee-vs-ror-vs-django-vs-turbogears-vs-zope/#comments</comments>
		<pubDate>Wed, 20 Jun 2007 13:40:51 +0000</pubDate>
		<dc:creator>fxposter</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Программирование]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[J2EE]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby-On-Rails]]></category>
		<category><![CDATA[Turbogears]]></category>
		<category><![CDATA[Zope]]></category>

		<guid isPermaLink="false">http://blog.fxposter.org/2007/06/20/j2ee-vs-ror-vs-django-vs-turbogears-vs-zope/</guid>
		<description><![CDATA[Смотрим видео (36 минут) PS. xen, за линк огромное спасибо! ]]></description>
			<content:encoded><![CDATA[<p><a href="http://video.google.com/videoplay?docid=6297126166376226181">Смотрим видео</a> (36 минут)</p>
<p><em><strong>PS.</strong> <a href="http://xenru.livejournal.com/">xen</a>, за линк огромное спасибо! </em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fxposter.org/2007/06/20/j2ee-vs-ror-vs-django-vs-turbogears-vs-zope/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ROR 1.2</title>
		<link>http://blog.fxposter.org/2007/01/21/ror-12/</link>
		<comments>http://blog.fxposter.org/2007/01/21/ror-12/#comments</comments>
		<pubDate>Sat, 20 Jan 2007 22:14:41 +0000</pubDate>
		<dc:creator>fxposter</dc:creator>
				<category><![CDATA[Программирование]]></category>
		<category><![CDATA[ROR]]></category>
		<category><![CDATA[Ruby-On-Rails]]></category>

		<guid isPermaLink="false">http://blog.fxposter.org/2007/01/21/ror-12/</guid>
		<description><![CDATA[Решил немного отвлечься от философии&#8230; Минут на 15&#8230; И обнаружил интересную новость - ROR обновился. Для тех кто не знает - ROR - это один из самых быстроразвивающихся фреймворков для языка Ruby. Я сам на руби не пишу, но как истинный программист слежу за событиями и веяниями в моде нашего с вами веба. PS. Про [...]]]></description>
			<content:encoded><![CDATA[<p>Решил немного отвлечься от философии&#8230; Минут на 15&#8230; И обнаружил интересную новость - ROR <a href="http://weblog.rubyonrails.org/2007/1/19/rails-1-2-rest-admiration-http-lovefest-and-utf-8-celebrations" target="_blank">обновился</a>. Для тех кто не знает - ROR - это один из самых быстроразвивающихся фреймворков для языка <a href="http://ru.wikipedia.org/wiki/Ruby" target="_blank">Ruby</a>.</p>
<p>Я сам на руби не пишу, но как истинный программист слежу за событиями и веяниями в моде нашего с вами веба.</p>
<p>PS. Про ROR на русском можно почитать, например, <a href="http://ru.wikipedia.org/wiki/Ruby_on_Rails" target="_blank">тут</a>.</p>
<p>PPS. Ушел учить дальше&#8230;</p>
<p>PPPS. Оказывается ROR уже и до 1.2.1 версии обновили. Много я пропустил :)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fxposter.org/2007/01/21/ror-12/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
