Перевод главы 22 Ruby Language из Programming Ruby 2nd ed.
http://ror2ru.elementalcms.org/chapter22.pdf
http://ror2ru.elementalcms.org/chapter22.tex
Илья
ps: я только разместил
а остальные?
остальных просто не было,
но сегодня я получил ещё несколько глав, выкладываю как есть.
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
больше не планируется.
и как сказал сам переводчик:
"это нелегальный пираццкий перевод без ограничений на распространение и
модификацию :) "
.
преводчик забросил?
Я считаю, что выучить английский и читать свежие статьи и книги гораздо
выгоднее двух-, трехлетнего ожидания перевода (да еще непонятно какого
качества).
В прошлом году один из наших студентов настойчиво интересовался
литературой по МатЛабу у преподавателя. В какой-то момент у препода
терпение лопнуло и он сказал, мол, в стандартной документации изложено
всё, что нужно. Ответ студента 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]
1С ? :)
1С ? :)
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"
Но работать оно не будет.
Вывод: пишите по-английски.
Если юань сменит доллар в роли международной валюты, то единственным
языком IT-индустрии вполне может стать китайский (шутка)
> А когда инфлектор используют для
> расширения испанского/немецкого, мне становится плохо.
....
> Но работать оно не будет.
> Вывод: пишите по-английски.
>
Да для них латинский алфавит родной, может в этом и беда?
Более-менее читабельные языки (Brainfuck-оподобные не в счёт) берут
за основу некоторый естественный язык для имён (ключевые слова,
стандартная библиотека, сам алфавит) и частично для синтаксиса, и,
программируя, лучше уж ограничиться этим языком, так как крупные
каркасы приложений (типа Rails) это только усиливают.
А думать-то на каком? Об этом, как там его, тюнинге перформанса
аппликации юзая темплейты дизайна... :(
P.S. Сколько на самом деле уходит времени на изучение того же
аглицкого для сносного понимания? А для внятного изложения мыслей на
нём же? А для перевода самого мышления на иностранный язык? :)
P.S. Сколько на самом деле уходит времени на изучение того же
аглицкого для сносного понимания? А для внятного изложения мыслей на
нём же? А для перевода самого мышления на иностранный язык? :)
А думать-то на каком? Об этом, как там его, тюнинге перформанса
аппликации юзая темплейты дизайна... :(
"в моем мире, английский - вполне себе lingua franca"
В моём тоже. Но у меня есть много уважаемых знакомых, в чьих мирах это
не так. В этом-то вся соль.
> On 3/9/07, *Lugovoi Nikolai* <meadow...@gmail.com
В Тайпее лучше говорить по-китайски :)
"в моем мире, английский - вполне себе lingua franca"
В моём тоже. Но у меня есть много уважаемых знакомых, в чьих мирах это
не так.
--
http://tumalevich.pp.ru
http://userad.net.ru
JID: use...@jabber.ru
ICQ: 125042506
GoogleTalk: use...@gmail.com
> Смотрите сами, как это выглядит (использовался 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;
> }
>
> Всем всё понятно, я не порю. Но выглядит отвратительно.
Да.. Жава отвратительна. А
Ну а названия методов радуют :)
И это будет правильно. Эсперанто для международного взаимодействия - это
как стандарты от w3c для веба - нейтральные, простые,
задокументированные и приносят выгоду всем а не отдельно взятым
персонажам (читай народам, корпорациям и т.д).
> Но работать оно не будет.
> Вывод: пишите по-английски.
Мне вообще вся эта черная магия с инфлекторами не понравилась. Типа
красиво, но нафиг нужно?
--
Amike, Antono Vasiljev.
Antono Vasiljev пишет:
Уже второй раз приходится делать очередь действий, чтобы сервер успевал
за бодрыми движениями пользователя по административному интерфейсу.
Чтобы не повторяться в третий раз, написал паттерн (требуется 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?
Спасибо.
А можно пример, когда такая очередь нужна? Я понимаю, очереди
эффектов, когда нужно спрятать элемент после того, как он отморгает
(для этого в script.aculo.us есть соответствующие очереди). А вот
зачем очередь прототайповых штук надо... ума не приложу
--
Best regards, Dmytro Shteflyuk
http://kpumuk.info/