Перевод главы из Programming Ruby

43 views
Skip to first unread message

Ilya

unread,
Mar 7, 2007, 6:24:41 AM3/7/07
to ror...@googlegroups.com
Привет!

Перевод главы 22 Ruby Language из Programming Ruby 2nd ed.

http://ror2ru.elementalcms.org/chapter22.pdf
http://ror2ru.elementalcms.org/chapter22.tex

Илья

ps: я только разместил

Илья Кузьмич

unread,
Mar 7, 2007, 3:34:55 PM3/7/07
to ror...@googlegroups.com
07.03.07, Ilya<nem...@gmail.com> написал(а):

> Привет!
>
> Перевод главы 22 Ruby Language из Programming Ruby 2nd ed.
>
> http://ror2ru.elementalcms.org/chapter22.pdf
> http://ror2ru.elementalcms.org/chapter22.tex

а остальные?

Ilya

unread,
Mar 9, 2007, 1:30:57 AM3/9/07
to ror...@googlegroups.com

остальных просто не было,
но сегодня я получил ещё несколько глав, выкладываю как есть.

http://ror2ru.elementalcms.org/chapter02.pdf
http://ror2ru.elementalcms.org/chapter02.tex

http://ror2ru.elementalcms.org/chapter22.pdf
http://ror2ru.elementalcms.org/chapter22.tex

http://ror2ru.elementalcms.org/chapter23.pdf
http://ror2ru.elementalcms.org/chapter23.tex

http://ror2ru.elementalcms.org/chapter24.pdf
http://ror2ru.elementalcms.org/chapter24.tgz

http://ror2ru.elementalcms.org/chapter26.pdf
http://ror2ru.elementalcms.org/chapter26.tex

больше не планируется.

и как сказал сам переводчик:
"это нелегальный пираццкий перевод без ограничений на распространение и
модификацию :) "

.

tribesman

unread,
Mar 9, 2007, 7:55:29 AM3/9/07
to RubyOnRails to russian
ооо.. огромнейшее спасибище и переводчику и тому кто всё это выложил.
мне этого очень не хватало.
я серьёзно думаю как только выйдет книжка на рус по руби и рельсам рор
программеров станет больше.


Илья Кузьмич

unread,
Mar 9, 2007, 8:45:18 AM3/9/07
to ror...@googlegroups.com
> больше не планируется.
>
> и как сказал сам переводчик:
> "это нелегальный пираццкий перевод без ограничений на распространение и
> модификацию :) "

преводчик забросил?

Oleg Andreev

unread,
Mar 9, 2007, 9:03:30 AM3/9/07
to ror...@googlegroups.com
(Простите за небольшой оффтопик.)

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

В прошлом году один из наших студентов настойчиво интересовался
литературой по МатЛабу у преподавателя. В какой-то момент у препода
терпение лопнуло и он сказал, мол, в стандартной документации изложено
всё, что нужно. Ответ студента 4-ого курса меня поразил до глубины души:
"Но там же все по-английски!".

Как, не зная английский язык, можно писать грамотный и аккуратный код?
Я иногда наталкивался на листинги, написанные по-португальски.
Вспоминаю, как сам в 8-ом классе писал транслитом имена функций и
переменных.

Смотрите сами, как это выглядит (использовался google code search i'm
feelin' lucky по Джаве):

public Nodo buscaR(Nodo corrente) {
if (corrente == null) {
return null;
}
status.explorando(corrente, 0);
if (corrente.estado.ehMeta()) {
return corrente;
}
if (corrente.getProfundidade() > profMax || parar) {
return null;
}
for (Nodo s: corrente.sucessores()) {
Nodo n = buscaR(s);
if (n != null) {
return n;
}
}
return null;
}

Всем всё понятно, я не порю. Но выглядит отвратительно.

[Спонсор этой заметки -- multitran.ru]

Lugovoi Nikolai

unread,
Mar 9, 2007, 9:22:11 AM3/9/07
to ror...@googlegroups.com
09.03.07, Oleg Andreev<oleg...@gmail.com> написал(а):

> Как, не зная английский язык, можно писать грамотный и аккуратный код?

1С ? :)

Max Lapshin

unread,
Mar 9, 2007, 9:23:09 AM3/9/07
to ror...@googlegroups.com

On 09.03.2007, at 17:22, Lugovoi Nikolai wrote:

1С ? :)


Рапира!

Oleg Andreev

unread,
Mar 9, 2007, 9:27:13 AM3/9/07
to ror...@googlegroups.com
Хе-хе. Там англофицированный русский язык. Что еще хуже.

Oleg Andreev

unread,
Mar 9, 2007, 9:50:02 AM3/9/07
to ror...@googlegroups.com
Решил продолжить свою мысль насчет английского.

1. Я _не считаю_ английский язык, ни международным, ни
интернациональным, ни обязательным для всех на свете. Для этого есть ряд
причин, в первую очередь, завязка на англосаксонскую культуру, из-за
чего английский никогда не сможет стать, буквально, межнациональным.
Эсперанто - пожалуйста (чисто теоритически), но не английский.

2. В IT-индустрии английский язык является единственным языком общения.
Все национальные особенности индустрию пока не двигали, а используются
лишь в кулуарах. Поэтому, не зная английского, производить компьютеры и
софт для них - пустая затея.

Показательно, что Ruby on Rails интенсивно использует английский язык в
своих conventions over configuration. Это не является попранием свободы
выбора. Это особенность индустрии. А когда инфлектор используют для
расширения испанского/немецкого, мне становится плохо.

Смотрите сами:

English + Rails conventions: "ProductsController"
Français + Rails conventions: "ProduitsController"
Español + Rails conventions: "ProductosController"

Последние две строки - вопиющее нарушение грамматики. Нужно писать так:

Français: "ContrôleurDeProduits"
Español: "ControladorDeProductos"

Но работать оно не будет.
Вывод: пишите по-английски.

Lugovoi Nikolai

unread,
Mar 9, 2007, 10:50:15 AM3/9/07
to ror...@googlegroups.com
09.03.07, Oleg Andreev<oleg...@gmail.com> написал(а):
> 2. В IT-индустрии английский язык является единственным языком общения.
> Все национальные особенности индустрию пока не двигали, а используются
> лишь в кулуарах. Поэтому, не зная английского, производить компьютеры и
> софт для них - пустая затея.
>

Если юань сменит доллар в роли международной валюты, то единственным
языком IT-индустрии вполне может стать китайский (шутка)

> А когда инфлектор используют для
> расширения испанского/немецкого, мне становится плохо.

....


> Но работать оно не будет.
> Вывод: пишите по-английски.
>

Да для них латинский алфавит родной, может в этом и беда?

Более-менее читабельные языки (Brainfuck-оподобные не в счёт) берут
за основу некоторый естественный язык для имён (ключевые слова,
стандартная библиотека, сам алфавит) и частично для синтаксиса, и,
программируя, лучше уж ограничиться этим языком, так как крупные
каркасы приложений (типа Rails) это только усиливают.

А думать-то на каком? Об этом, как там его, тюнинге перформанса
аппликации юзая темплейты дизайна... :(

P.S. Сколько на самом деле уходит времени на изучение того же
аглицкого для сносного понимания? А для внятного изложения мыслей на
нём же? А для перевода самого мышления на иностранный язык? :)

Max Lapshin

unread,
Mar 9, 2007, 10:59:19 AM3/9/07
to ror...@googlegroups.com

On 09.03.2007, at 18:50, Lugovoi Nikolai wrote:

P.S. Сколько на самом деле уходит времени на изучение того же

аглицкого для сносного понимания? А для внятного изложения мыслей на

нём же? А для перевода самого мышления на иностранный язык? :)


Приблизительно одна школа. 

Alexey Verkhovsky

unread,
Mar 9, 2007, 11:17:50 AM3/9/07
to ror...@googlegroups.com
On 3/9/07, Lugovoi Nikolai <meadow...@gmail.com> wrote:
А думать-то на каком? Об этом, как там его, тюнинге перформанса
аппликации юзая  темплейты дизайна... :(

А думать словами вообще не обязательно.
 
> из-за чего английский никогда не сможет стать, буквально, межнациональным.

Saluton. :)

Я не знаю, какие у вас критерии межнациональности... в моем мире, английский - вполне себе lingua franca. Когда два индуса, три китайца, один израильтянин и ваш покорный слуга идут пить пиво в каком-нибудь Тайпее, на чем еще нам друг с другом разговаривать?

Соответственно, английский, хотим мы этого или нет - обязательный предмет для людей которых межнациональность хоть как-нибудь волнует, включая любой high-tech. Почему, вы думаете на физтехе (московском) очень толковая кафедра английского была спокон веку? А вот.

Читать технические книжки только в переводе - легче застрелиться. При всем почтении к неизвестному переводчику.

АВ

Oleg Andreev

unread,
Mar 9, 2007, 1:12:20 PM3/9/07
to ror...@googlegroups.com
В Тайпее лучше говорить по-китайски :)

"в моем мире, английский - вполне себе lingua franca"

В моём тоже. Но у меня есть много уважаемых знакомых, в чьих мирах это
не так. В этом-то вся соль.

> On 3/9/07, *Lugovoi Nikolai* <meadow...@gmail.com

Alexey Verkhovsky

unread,
Mar 9, 2007, 2:03:18 PM3/9/07
to ror...@googlegroups.com
On 3/9/07, Oleg Andreev <oleg...@gmail.com> wrote:
В Тайпее лучше говорить по-китайски :)

Ну если так подходить к вопросу, то и пиво лучше пить в Баварии. 

"в моем мире, английский - вполне себе lingua franca"

В моём тоже. Но у меня есть много уважаемых знакомых, в чьих мирах это
не так.

Это да.  Есть масса людей, которым межнациональность в принципе до фени. Выбор lingua franca им ровно так же до фени.

АВ

Oleg Andreev

unread,
Mar 9, 2007, 5:12:29 PM3/9/07
to ror...@googlegroups.com

> "в моем мире, английский - вполне себе lingua franca"
>
> В моём тоже. Но у меня есть много уважаемых знакомых, в чьих мирах это
> не так.
>
>
> Это да. Есть масса людей, которым межнациональность в принципе до
> фени. Выбор lingua franca им ровно так же до фени.
Нет, им не до фени. У них /другая /lingua franca. Например, у одного
моего знакомого - это японский, у другого - французский.

Oleg Andreev

unread,
Mar 9, 2007, 5:15:11 PM3/9/07
to ror...@googlegroups.com
>
>
> В Тайпее лучше говорить по-китайски :)
>
>
> Ну если так подходить к вопросу, то и пиво лучше пить в Баварии.
Если так подходить к вопросу, то не "пиво лучше пить в Баварии", а "в
Баварии лучше пить пиво" ;-)

Konstantin Tumalevich

unread,
Mar 9, 2007, 11:11:06 PM3/9/07
to ror...@googlegroups.com
вы ещё повспоминайте всякие языки для корветов ... вот они были на
русском .... бр....


--
http://tumalevich.pp.ru
http://userad.net.ru
JID: use...@jabber.ru
ICQ: 125042506
GoogleTalk: use...@gmail.com

Antono Vasiljev

unread,
Mar 10, 2007, 6:40:53 AM3/10/07
to ror...@googlegroups.com
On Fri, 2007-03-09 at 17:03 +0300, Oleg Andreev wrote:

> Смотрите сами, как это выглядит (использовался google code search i'm
> feelin' lucky по Джаве):
>
> public Nodo buscaR(Nodo corrente) {
> if (corrente == null) {
> return null;
> }
> status.explorando(corrente, 0);
> if (corrente.estado.ehMeta()) {
> return corrente;
> }
> if (corrente.getProfundidade() > profMax || parar) {
> return null;
> }
> for (Nodo s: corrente.sucessores()) {
> Nodo n = buscaR(s);
> if (n != null) {
> return n;
> }
> }
> return null;
> }
>
> Всем всё понятно, я не порю. Но выглядит отвратительно.

Да.. Жава отвратительна. А
Ну а названия методов радуют :)

4zy

unread,
Mar 10, 2007, 6:49:13 AM3/10/07
to RubyOnRails to russian
Английский - просто так исторически сложилось....
и уже никуда от этого не дется - точно так же как рисуют класическими
карандашами (деревянными) а не механическими, хотя они и
техноллогичней и практичней(эспиранто, IMHO, вообще мертвец)

Antono Vasiljev

unread,
Mar 10, 2007, 6:51:37 AM3/10/07
to ror...@googlegroups.com

> 1. Я _не считаю_ английский язык, ни международным, ни
> интернациональным, ни обязательным для всех на свете. Для этого есть ряд
> причин, в первую очередь, завязка на англосаксонскую культуру, из-за
> чего английский никогда не сможет стать, буквально, межнациональным.
> Эсперанто - пожалуйста (чисто теоритически), но не английский.

И это будет правильно. Эсперанто для международного взаимодействия - это
как стандарты от w3c для веба - нейтральные, простые,
задокументированные и приносят выгоду всем а не отдельно взятым
персонажам (читай народам, корпорациям и т.д).


> Но работать оно не будет.
> Вывод: пишите по-английски.

Мне вообще вся эта черная магия с инфлекторами не понравилась. Типа
красиво, но нафиг нужно?


--
Amike, Antono Vasiljev.

Oleg Andreev

unread,
Mar 10, 2007, 6:58:29 AM3/10/07
to ror...@googlegroups.com
Rails - это не фреймворк, а язык. Грамматические формы нужны для большей
выразительности.

Antono Vasiljev пишет:

Oleg Andreev

unread,
Mar 10, 2007, 8:01:34 AM3/10/07
to ror...@googlegroups.com
(сообщение по теме джаваскрипта, но, думаю, будет полезно и здесь)

Уже второй раз приходится делать очередь действий, чтобы сервер успевал
за бодрыми движениями пользователя по административному интерфейсу.
Чтобы не повторяться в третий раз, написал паттерн (требуется prototype.js):

ActionQueue = Class.create();
ActionQueue.prototype = {
queue : [],
initialize: function() { this.queue = []; },
push : function(func) // function(queue:ActionQueue) {...}
{
this.queue.push(
function(queue)
{
func(queue);
// if you don't want to continue a chain,
// simply call `queue.reset()` in the func()
queue._next();
}
);
if (this.queue.length == 1) this.queue[0](this);
},
reset : function()
{
this.queue = [];
},
_next : function()
{
this.queue.shift();
if (this.queue.length > 0) this.queue[0](this);
}
}

Использую так:

this.requests_queue = new ActionQueue();
...
// on some update-event:
this.requests_queue.push(
function (queue)
{
new Ajax.Request(url, {
method: 'post',
onSuccess: function(t) { /* ... */ },
onFailure: function(t) { queue.reset(); }
});
}
);

Вопросы состоят в следующем:
1) Не изобрел ли я велосипед (т. е. нет ли уже готовой опции/объекта в
prototype.js)?
2) Часто ли вообще нужны очереди в веб-интерфейсе, или мне нужно
переосмыслить дизайн, чтобы такое не требовалось?
3) Если да, то все ребята делают их по-своему, или просто немногие об
этом задумываются?
4) Нужна ли такая штука в стандартном prototype.js?

Спасибо.

Dmytro Shteflyuk

unread,
Mar 10, 2007, 9:05:41 AM3/10/07
to ror...@googlegroups.com
On 3/10/07, Oleg Andreev <oleg...@gmail.com> wrote:
> 2) Часто ли вообще нужны очереди в веб-интерфейсе, или мне нужно
> переосмыслить дизайн, чтобы такое не требовалось?

А можно пример, когда такая очередь нужна? Я понимаю, очереди
эффектов, когда нужно спрятать элемент после того, как он отморгает
(для этого в script.aculo.us есть соответствующие очереди). А вот
зачем очередь прототайповых штук надо... ума не приложу
--
Best regards, Dmytro Shteflyuk
http://kpumuk.info/

zadrot

unread,
Mar 10, 2007, 9:23:28 AM3/10/07
to ror...@googlegroups.com
Троллим потихоньку?
Кривой код можно написать на любом языке программирования.

Oleg Andreev

unread,
Mar 10, 2007, 12:35:19 PM3/10/07
to ror...@googlegroups.com
Пример, который я показал - из Sortable tree. Если менять местами ноды
достаточно бодро, сервер получает запросы в непредсказуемом порядке и
ругается, что пользователь пытается натянуть дитя поверх родителя. Чтобы
сервер получал запросы в правильном порядке нужна очередь.
Reply all
Reply to author
Forward
0 new messages