<?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>Жизнь Замечательного Человека &#187; ruby</title>
	<atom:link href="http://bizonov.ru/category/ruby/feed/" rel="self" type="application/rss+xml" />
	<link>http://bizonov.ru</link>
	<description>Жизнь, SEO, SMO, интернет-маркетинг, личностный рост, Лайфхаки, развитие проектов, make money online</description>
	<lastBuildDate>Fri, 18 Mar 2011 06:22:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Руби за 20 минут. Продолжаем.</title>
		<link>http://bizonov.ru/rubi-za-20-minut-prodolzhaem/</link>
		<comments>http://bizonov.ru/rubi-za-20-minut-prodolzhaem/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 07:54:21 +0000</pubDate>
		<dc:creator>bizon</dc:creator>
				<category><![CDATA[ruby]]></category>
		<category><![CDATA[Код]]></category>
		<category><![CDATA[программирование]]></category>
		<category><![CDATA[руби]]></category>

		<guid isPermaLink="false">http://bizonov.ru/?p=292</guid>
		<description><![CDATA[Двадцать минут растягиваются уже на несколько дней. Праздники, выходные, лень Продолжаем двадцатиминутный курс. Надеюсь irb уже у всех запущен. Итак, мы научились приветствовать мир, научились складывать числа, умножать, возводить в степень и т.п. Это легко. А что если мы хотим сказать миру привет много раз? Да ещё и так, чтобы не устать от постоянных puts [...]]]></description>
			<content:encoded><![CDATA[<p>Двадцать минут растягиваются уже на несколько дней. Праздники, выходные, лень <img src='http://bizonov.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Продолжаем двадцатиминутный курс. Надеюсь irb уже у всех запущен. Итак, мы научились приветствовать мир, научились складывать числа, умножать, возводить в степень и т.п. Это легко. А что если мы хотим сказать миру привет много раз? Да ещё и так, чтобы не устать от постоянных puts &#8220;Hello world&#8221;. Надо определить метод.<span id="more-292"></span></p>
<blockquote><p>irb(main):010:0&gt; def h<br />
irb(main):011:1&gt; puts &#8220;Hello World!&#8221;<br />
irb(main):012:1&gt; end<br />
=&gt; nil</p></blockquote>
<p><em>def h</em> &#8211; это начало определения метода <em>h</em>. Ruby это понимает и внимает вашим дальнейшим командам. Следующая строка содержит уже &#8220;тело&#8221; самого метода. В нашем случае оно из этой единственной строки и состоит &#8211; <em>puts &#8220;Hello World&#8221;</em>. Это то, что будет делать наш метод. Ну и <em>end</em>, естественно, показывает, что определение метода завершено. Ruby говорит нам <em>=&gt; nil</em>, давая понять, что всё понял <img src='http://bizonov.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Идём дальше, методы &#8211; штука полезная</strong></p>
<blockquote><p>irb(main):013:0&gt; h<br />
Hello World!<br />
=&gt; nil<br />
irb(main):014:0&gt; h()<br />
Hello World!<br />
=&gt; nil</p></blockquote>
<p>Всё просто. Не сложнее, чем определить этот метод. Если метод не принимает параметров &#8211; одного его названия достаточно для вызова. Можно конечно добавит пустые скобки &#8211; <em>h()</em>, но в Ruby это не обязательно.<br />
Теперь, если мы хотим поприветствовать только одного человека, но не весь мир &#8211; просто переопределим наш метод:</p>
<blockquote><p>irb(main):015:0&gt; def h(name)<br />
irb(main):016:1&gt; puts &#8220;Hello #{name}!&#8221;<br />
irb(main):017:1&gt; end<br />
=&gt; nil<br />
irb(main):018:0&gt; h(&#8220;Matz&#8221;)<br />
Hello Matz!<br />
=&gt; nil</p></blockquote>
<p>Работает. Давайте посмотрим как это получилось.</p>
<p><strong>Управляющие конструкции в строке</strong></p>
<p>Итак, что такое <em>#{name}</em>? Это простой способ вставить что-то в строку &#8220;извне&#8221;. Это &#8220;что-то&#8221; автоматически преобразуется в строку (если нужно). Усложним задачу &#8211; выведем имя с заглавной буквы, если кто-то забыл это сделать.</p>
<blockquote><p>irb(main):019:0&gt; def h(name = &#8220;World&#8221;)<br />
irb(main):020:1&gt; puts &#8220;Hello #{name.capitalize}!&#8221;<br />
irb(main):021:1&gt; end<br />
=&gt; nil<br />
irb(main):022:0&gt; h &#8220;chris&#8221;<br />
Hello Chris!<br />
=&gt; nil<br />
irb(main):023:0&gt; h<br />
Hello World!<br />
=&gt; nil</p></blockquote>
<p>Опять можно увидеть особенности руби. Во-первых, снова вызываем метод без скобок &#8211; <em>h &#8220;chris&#8221;</em>. Если то, что вы делаете &#8211; очевидно, то скобки не требуются. Их используют в сложных конструкциях. Другая деталь &#8211; определение переменной по умолчанию. То есть если методу не передан параметр, то <em>name</em> по умолчанию будет означать <em>World</em></p>
<p><strong>Расширяем возможности <img src='http://bizonov.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </strong></p>
<p>Если хотим получить нечто большее, чем простой метод &#8211; стоит обратиться к ООП (объектно-ориентированное программирование). Создадим класс:</p>
<blockquote><p>irb(main):024:0&gt; class Greeter<br />
irb(main):025:1&gt;   def initialize(name = &#8220;World&#8221;)<br />
irb(main):026:2&gt;     @name = name<br />
irb(main):027:2&gt;   end<br />
irb(main):028:1&gt;   def say_hi<br />
irb(main):029:2&gt;     puts &#8220;Hi #{@name}!&#8221;<br />
irb(main):030:2&gt;   end<br />
irb(main):031:1&gt;   def say_bye<br />
irb(main):032:2&gt;     puts &#8220;Bye #{@name}, come back soon.&#8221;<br />
irb(main):033:2&gt;   end<br />
irb(main):034:1&gt; end<br />
=&gt; nil</p></blockquote>
<p>Здесь мы использовали новое слово &#8211; <em>class</em>. Оно определяет новый класс <em>Greeter</em> и предшествует тем методам, которые будут в нём использоваться. Также обратите внимание на <em>@name</em>. Это переменная для объекта класса и доступна для всех его методов. Что дальше? Дальше попробуем использовать этот класс, но это будет завтра.</p>
<p><strong>Постовой:</strong> (то есть навязчивая реклама)</p>
<blockquote><p>Близятся длинные каникулы, проведи <a href="http://www.uatour.com.ua/hot_tour">новый год в карпатах</a>.<br />
Будут красиво смотреться на руке: <a href="http://www.replica-mania.com/Breitling.html">breitling replica</a>.<br />
Если не <a href="http://inweb.od.ua/">раскрутить сайт</a> &#8211; останетесь без клиентов.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://bizonov.ru/rubi-za-20-minut-prodolzhaem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ruby за 20 минут. Начинаем.</title>
		<link>http://bizonov.ru/ruby-1/</link>
		<comments>http://bizonov.ru/ruby-1/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 07:49:14 +0000</pubDate>
		<dc:creator>bizon</dc:creator>
				<category><![CDATA[ruby]]></category>
		<category><![CDATA[Код]]></category>
		<category><![CDATA[перевод]]></category>
		<category><![CDATA[пробы]]></category>
		<category><![CDATA[программирование]]></category>
		<category><![CDATA[учусь]]></category>

		<guid isPermaLink="false">http://bizonov.ru/?p=286</guid>
		<description><![CDATA[Как и обещал &#8211; буду двигаться в изучении основ Ruby с небольшими отчётами-переводами того материала, что есть. Сразу скажу &#8211; я не претендую на роль учителя, так как сам нужными знаниями не обладаю. На днях приняли на работу в студию нового программиста, который специализируется именно на Ruby on Rails &#8211; надеюсь, что смогу какой-то опыт [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-287 alignleft" style="margin-left: 10px; margin-right: 10px;" title="Ruby за 20 минут" src="http://bizonov.ru/wp-content/ruby150.png" alt="Ruby за 20 минут" width="150" height="185" />Как и обещал &#8211; буду двигаться в изучении основ Ruby с небольшими отчётами-переводами того материала, что есть. Сразу скажу &#8211; я не претендую на роль учителя, так как сам нужными знаниями не обладаю.</p>
<p>На днях приняли на работу в <a href="http://isimotsu.ru/?page_id=21">студию</a> нового программиста, который специализируется именно на Ruby on Rails &#8211; надеюсь, что смогу какой-то опыт перенять у него. Завтра вроде должен выйти.</p>
<p>Первая часть, <a href="http://bizonov.ru/rubi-za-20-minut-ustanovka/"><strong>установка ruby</strong></a> (под Windows и Linux в моём случае), была скорее компиляцией из прочитанного и опробованного. Надеюсь, что проблем с установкой ни у кого не возникло.</p>
<p>Но одной установкой сыт не будешь. Нужно  начинать пробовать. Трогать, прикасаться к тому, что кроется за этим красным рубиновым логотипом.</p>
<p><span id="more-286"></span></p>
<p>Итак, предполагая, что Ruby вы установили &#8211; начинаем.</p>
<p><strong>Интерактивный интерпретатор Ruby</strong></p>
<p>Ruby поставляется с программой IRB, которая на лету выполняет каждую команду, которую вы введёте. Играя с irb, пробуя на вкус разные конструкции можно легко усвоить то, что происходит в вашей программе.</p>
<p><strong>Откройте IRB</strong></p>
<ul>
<li>Если вы маковод &#8211; в консоли вводите irb и жмите ENTER</li>
<li>Если вы под линуксом &#8211; открывайте ваш любимый shell, вводите irb и тоже жмите ENTER</li>
<li>В Windows такой способ тоже работает, но удобнее запустить из группы Ruby в меню Пуск программу fxri</li>
</ul>
<blockquote><p>irb(main):001:0&gt;</p></blockquote>
<p>Хорошо, открыли. Что дальше?</p>
<p>Введите: &#8220;Hello, World!&#8221; (С этого всегда начинают знакомство с новым языком программирования, так уж повелось).</p>
<blockquote><p>irb(main):001:0&gt; &#8220;Hello World&#8221;<br />
=&gt; &#8220;Hello World&#8221;</p></blockquote>
<p><strong>Ruby слушается вас!</strong></p>
<p>Удивительно! Неужели это самая короткая &#8220;Hello world&#8221;-программа в мире?? Не совсем так. Вторая строка &#8211; это скорее отображение результата последнего выражения. То есть Ruby сообщает вам результат последнего выражения. Если же вы действительно хотите вывести на экран это приветствие, то код будет таким:</p>
<blockquote><p>irb(main):002:0&gt; puts &#8220;Hello World&#8221;<br />
Hello World<br />
=&gt; nil</p></blockquote>
<p><em>puts</em> является основной командой для вывода в Ruby. А что же такое nil? Nil &#8211; это результат выражения. Наш <em>puts</em> ничего не возвращает после выполнения. Единственный его результат &#8211; это вывод на экран.</p>
<p><strong>Ваш бесплатный калькулятор</strong></p>
<p>Ну это совсем просто. Пробуйте <img src='http://bizonov.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<blockquote><p>irb(main):003:0&gt; 3+2<br />
=&gt; 5</p></blockquote>
<p>Три плюс два. Результат 5. Очень просто. А что если вы хотите умножить 3 на 2? Выражение короткое и ввести его не составит труда, но проще будет нажать стрелку &#8220;вверх&#8221;, в строке ввода появится предыдущее выражение и вы его можете легко исправить. Для тех, кто привык работать в консоли &#8211; это прописные истины.</p>
<blockquote><p>irb(main):004:0&gt; 3*2<br />
=&gt; 6</p></blockquote>
<p>Теперь попробуем вычислить три в квадрате:</p>
<blockquote><p>irb(main):005:0&gt; 3**2<br />
=&gt; 9</p></blockquote>
<p>** в ruby &#8211; это метод для возведения в степень. А что если вы теперь хотим извлечь корень числа?</p>
<blockquote><p>irb(main):006:0&gt; Math.sqrt(9)<br />
=&gt; 3.0</p></blockquote>
<p>Стоп. что это было? То, что мы вывели квадратный корень из 9 &#8211; это понятно. Но что такое Math?</p>
<p><strong>Модули</strong></p>
<p>Math встроенный модуль для математических выражений. Модули могут применяться в Ruby по-разному. И это основное применение: группировка аналогичных методы объединённых общим названием. Math &#8211; математический модуль и включает помимо sqrt() такие методы, как sin() и tan().</p>
<p>Далее идёт точка. Что она значит? Точка предшествует тому методу, который мы хотим вызвать. Тому методу, который получит передаваемый ему параметр. Параметр заключен в круглые скобки (хотя в ruby это необязательно). То есть мы вызвали метод sqrt и передали ему значение 9. Говоря по-русски &#8211; приказали выделить квадратный корень из 9.</p>
<p>В результате получили 3.0. Почему не просто 3? Дело в том, что квадратный корень в большинстве случаев возвращает не целое число и соответственно, разработчики предусмотрели этот момент, возвращая число с плавающей точкой.</p>
<p>А что если мы хотим сохранить результат какого-либо выражения? Сохраним его в переменную. Далее переменная может быть использована как то, на что ока указывает. Простой пример:</p>
<blockquote><p>irb(main):007:0&gt; a = 3 ** 2<br />
=&gt; 9<br />
irb(main):008:0&gt; b = 4 ** 2<br />
=&gt; 16<br />
irb(main):009:0&gt; Math.sqrt(a+b) =&gt; 5.0</p></blockquote>
<p>Вообщем, мы очень даже неплохо ушли от традиционного &#8220;Привет, мир&#8221; к калькулятору <img src='http://bizonov.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Продолжение будет дальше. (Пока по материалам сайта <a href="http://www.ruby-lang.org/en/" target="_blank">http://www.ruby-lang.org/en/</a>)</p>
<p>Если не хотите пропустить следующие темы &#8211; <a href="http://feeds.feedburner.com/bizonov">подписывайтесь на мой RSS-канал</a>, это удобно и прогрессивно )</p>
<p>Если вам понравилось или вы плюётесь от текущей серии постов &#8211; просто отметьтесь в комментариях.</p>
<blockquote><p><strong>Постовой</strong>(то бишь реклама):<br />
А это реально то, к чему стоит стремиться. Рано или поздно и я туда попаду. <a href="http://pacific-travel.com.ua/page/show/countries/oae/">отдых в оаэ</a><br />
Чтобы читать такие простенькие руководства, как в этом посте &#8211; <a href="http://lingvall.ru/">английский онлайн</a>. Читай в оригинале.<br />
<a href="http://prodam.slando.ru/">Объявления о покупке</a> &#8211; здесь, оставьте свои бумажные версии <img src='http://bizonov.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://bizonov.ru/ruby-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Руби за 20 минут. Установка</title>
		<link>http://bizonov.ru/rubi-za-20-minut-ustanovka/</link>
		<comments>http://bizonov.ru/rubi-za-20-minut-ustanovka/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 10:55:07 +0000</pubDate>
		<dc:creator>bizon</dc:creator>
				<category><![CDATA[ruby]]></category>
		<category><![CDATA[Код]]></category>
		<category><![CDATA[основы]]></category>
		<category><![CDATA[перевод]]></category>
		<category><![CDATA[программирование]]></category>

		<guid isPermaLink="false">http://bizonov.ru/?p=283</guid>
		<description><![CDATA[Очень мне понравилось осваивать новый язык, учитывая, что старых почти и не было, если не считать основ PHP и C/C++ (на первых курсах были). Одна проблема: на русском языке очень мало актуальной переведённой литературы. То есть версии периодически обновляются, а переводчики не поспевают. Или просто спрос пока не вырос. Возникает ощущение, что рубисты в России [...]]]></description>
			<content:encoded><![CDATA[<div class="wp-caption alignleft" style="width: 287px"><img src="http://rubyinstaller.org/images/gembox_277x214.png" alt="Ruby" width="277" height="214" /><p class="wp-caption-text">Ruby</p></div>
<p>Очень мне понравилось осваивать новый язык, учитывая, что старых почти и не было, если не считать основ PHP и C/C++ (на первых курсах были). Одна проблема: на русском языке очень мало актуальной переведённой литературы. То есть версии периодически обновляются, а переводчики не поспевают. Или просто спрос пока не вырос. Возникает ощущение, что рубисты в России &#8211; это пока какой-то обособленный кружок.</p>
<p>У меня не тот уровень, чтобы вставать в один ряд с теми, кто действительно что-то уже разрабатывает что-то. Но у меня есть желания разрабатывать хотя бы для себя.</p>
<p>Короче говоря &#8211; попытаюсь перевести пару мануалов для начинающих. Ну если не перевести &#8211; то изложить своим языком основы этого красивого языка. Вместе &#8211; проще. Тем более, что изложение пройденного другим позволяет самому неплохо закрепить материал.</p>
<p>Те, кто привык читать &#8220;повседневные записки&#8221; &#8211; могу пропускать то, что будет в этих записях. Но я думаю, что знание этих основ не повредит никому, кто имеет дело с разработкой сайтов и веб-проектами. В последнее время особо популярным становится Ruby on Rails. По крайней мере, можно будет хотя бы отдалённо понять, что происходит во встреченном коде. <span id="more-283"></span><strong>Для начала надо будет установить Ruby</strong></p>
<p><strong>Если вы сидите под Windows</strong> &#8211; хорошим вариантом будет One-Click-Installer. Не придётся заморачиваться на предмет настроек и надстроек. Скачал, установил &#8211; работай.</p>
<p><strong>Для пользователей Linux</strong> (я им стал на прошлой неделе):</p>
<blockquote><p>% sudo apt-get install ruby irb rdoc</p></blockquote>
<p>Для всех ли подойдёт &#8211; не знаю, но на ubunte сработало. На Debian&#8217;е тоже должно помочь.</p>
<p>Вот, вообщем-то, и всё.</p>
<p>Ruby &#8211; это интерпретатор. Если запустить <span style="color: #800080;"><em><br />
Ruby исходный_файл.rb <span style="color: #000000;">-</span></em><span style="color: #000000;"> то Руби начнёт построково выполнять этот файл.<br />
Вообще с руби многие работают именно в командной строке. Инструмент <strong>irb </strong>в таком случае становится вообще незаменимым помощником программиста. Просто<br />
запустите его в командной строке.</span></span></p>
<blockquote><p>irb(main):001:0&gt; &#8220;Hello world&#8221;<br />
=&gt; &#8220;Hello world&#8221;</p></blockquote>
<p>Примерно так оно работает.<br />
Здесь же можно вбивать любые команды Ruby и они будут тут же исполняться. Но об этом, я думаю, поговорим завтра. Надо же что-то перевести)</p>
<p>Кстати, поднимаю цены на постовые. Что-то в последнее время спрос очень сильно растёт. С сегодняшнего дня &#8211; $5 &#8211; оправданная цена.</p>
<p><strong>Постовой:</strong></p>
<blockquote><p>Красивые часы для солидных людей: <a href="http://www.replicawatch4u.com/Breitling-Replica-Watches.html">breitling replica</a>. Или скорее для тех, кто хочет казаться солидным.</p>
<p>Можно купить в разных местах: <a href="http://www.topwatch1.com/Breitling.html">breitling replica watches</a>.</p>
<p><a href="http://cooper-design.com.ua/">Разработка сайтов</a> &#8211; при правильном подходе может стать неплохим бизнесом.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://bizonov.ru/rubi-za-20-minut-ustanovka/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

