Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.19;
Скачать: CL | DM;

Вниз

Глубины Инди   Найти похожие ветки 

 
Anatoly Podgoretsky ©   (2006-02-11 23:51) [0]

Сделан перевод книги Indy In Depth
Загрузить можно с моего сайта в форма или ворд или pdf

http://podgoretsky.com/cgi-bin/dlcounter/npscnt?file=http://podgoretsky.com/ftp/Docs/Internet/IntroIndy/IndyInDepth.doc& file_id=IndyInDepth 1588 кб DOC

http://podgoretsky.com/cgi-bin/dlcounter/npscnt?file=http://podgoretsky.com/ftp/Docs/Internet/IntroIndy/IndyInDepth.pdf& file_id=IndyInDepth 1031 Кб PDF


 
:(   (2006-02-12 00:00) [1]

While trying to retrieve the URL: http://www.podgoretsky.com/

The following error was encountered:
Connection Failed

The system returned:

   (65) No route to host

The remote host or network may be down. Please try the request again.

Your cache administrator is webmaster.

Generated Sun, 12 Feb 2006 04:58:57 GMT by proxy.silale.lv (squid/2.5.STABLE12)


 
Новичоккк   (2006-02-12 00:03) [2]

Удалено модератором


 
ядовитый   (2006-02-12 00:07) [3]

Анатолий, огромный вам респект :)
Новичоккк, благодарствую барин :)


 
Anatoly Podgoretsky ©   (2006-02-12 00:09) [4]

Новичоккк   (12.02.06 00:03) [2]
И зачем ты это делаешь, так ты сбиваешь работу счетчиков.


 
xayam ©   (2006-02-12 00:10) [5]

Да слушай большой труд, очень нужная вещь. Спасибо


 
McSimm ©   (2006-02-12 00:17) [6]

http://podgoretsky.com/cgi-bin/dlcounter/npscnt?file=http://podgoretsky.com/ftp/Docs/Internet/IntroIndy/IndyInDepth.doc&file_id=IndyInDepth 1588 кб DOC

http://podgoretsky.com/cgi-bin/dlcounter/npscnt?file=http://podgoretsky.com/ftp/Docs/Internet/IntroIndy/IndyInDepth.pdf&file_id=IndyInDepth 1031 Кб PDF


 
Гарри Поттер ©   (2006-02-12 00:20) [7]

Анатолий, премного благодарен. Снимаю шляпу..
Сажусь штудировать.


 
McSimm ©   (2006-02-12 00:26) [8]

Анатолий, можно я размещу эти ссылки на странице форума "Сети " ?


 
vidiv ©   (2006-02-12 00:27) [9]


> Anatoly Podgoretsky ©   (11.02.06 23:51)  

Авторы действительно ненавидят Windows... :)


 
Новичоккк   (2006-02-12 00:27) [10]

2Anatoly Podgoretsky
Просто те ссылки не работали


 
Yeg   (2006-02-12 00:29) [11]

Класс!!! Спасибо!!!


 
Eraser ©   (2006-02-12 00:34) [12]

да уж! теперь будет что ответить на довольно частый вопрос по документации по Indy на русском :)

> Anatoly Podgoretsky ©

Огромный респект! В одиночку перевести книгу, да ещё в свободное от работы время... уважаю.


 
Marser ©   (2006-02-12 01:09) [13]

Супер! Спасибо! Уже скачал, будем читать.


 
Ы   (2006-02-12 02:39) [14]

>>В одиночку перевести книгу, да ещё в свободное от работы время...
>>уважаю.
Да, это достойно уважения. Присоединяюсь


 
MeF Dei Corvi ©   (2006-02-12 02:52) [15]

Премного благодарен! :) Респект! :)


 
palva ©   (2006-02-12 08:20) [16]

Анатолий, нужно ли получать согласие автора на перевод и какие возникают юридические последствия публикования перевода в Интернете? (На примере данного случая.)


 
TUser ©   (2006-02-12 09:10) [17]

Спасибо большое.


 
Anatoly Podgoretsky ©   (2006-02-12 09:19) [18]

McSimm ©   (12.02.06 00:26) [8]
Размещай конечно, только не разорваные


 
Anatoly Podgoretsky ©   (2006-02-12 09:22) [19]

palva ©   (12.02.06 08:20) [16]
Вопрос сложный, обычно решается положительно (если не коммерческое использование), путем контакта с автором, но не всегда.


 
ZeroDivide ©   (2006-02-12 10:11) [20]

Спасибо, дядя Толя! Респект!

You can buy Indy in Depth for as little as 29 Euros!
А Anatoly Podgoretsky раздал нам ее бесплатно и на русском!

If you are a Microsoft MVP, or a Borland Team B member you can receive Indy in Depth for free!
Прям даже не знаю, как себя ощущать, толи Microsoft MVP, толи Borland Team B


 
Anatoly Podgoretsky ©   (2006-02-12 10:38) [21]

Не могу же я бесплатно раздавать на английском :-)


 
Firefly ©   (2006-02-12 11:45) [22]

Скачал.
Спасибо большое!


 
Desdechado ©   (2006-02-12 16:36) [23]

Спасибо огромное!
Очень вовремя. Как раз пару дней назад решил влезть в эти дебри :)


 
Anatoly Podgoretsky ©   (2006-02-25 20:52) [24]

Благодаря любезной помощи Михаила Евтеева сделан скорректированый перевод книги.
Выписка из книги

От переводчика
Зачем Я стал переводить данную книгу? Ну, это потому что по данной теме очень мало информации, особенно на русском языке. Поэтому я рискнул. Но поскольку я не профессиональный переводчик, то возможны некоторые погрешности в переводе, поэтому принимайте как есть. В конце концов, дареному коню в зубы не смотрят.
Перевод основан на старой предварительной версии книги, к сожалению, у меня нет окончательной редакции. Но даже и в этой редакции, информация приведенная в данной книге того стоит.
Об авторах, они пришли из мира Юникс, отсюда некоторая ненависть к Windows и к неблокирующим вызовам. У авторов также чувствуется некоторый хакерский и даже вирус-мейкерский подход, это видно из текста, в части приведения примера почти готового трояна, одобрение нарушения законодательства в части мер по передачи алгоритмов строгого шифрования и какими методами это было сделано. Но все это не снижает ценности данной книги. Текст, который очень простой и почти не составил сложностей с переводом, кроме некоторых мест.
В настоящее время есть три направления построения Интернет библиотек:
1. библиотеки событийно-ориентированные, большинство компонент Delphi – к этому классу относится ICS (Internet Component Suite от Франсуа Пьетте http://www.overbyte.be);
2. библиотеки с линейным кодом, структурно ориентированное программирование – к этому классу относится Indy;
3. чистые процедуры и функции, типичный представитель Synapse www.ararat.cz/synapse
Вопрос что лучше – это вопрос религиозный, мне лично нравится первый класс, который наиболее похож на Delphi, но и остальные также имеют право на существование, тем более, что в Delphi включена только Indy. Франсуа Пьетте не согласился на включение его библиотеки в Delphi.
К сожалению, от версии к версии код становится все более и более монстроидальным.
О чем же эта книга, если вы подумали, как следует из названия, что про Indy, то это далеко не так. Эта не книга по Indy, а книга про Интернет, про протоколы, термины, методы работы, а к Indy относятся только примеры. Особенно отличается глава 20, в которой приведены примеры миграции на Delphi for .NET
По окончанию перевод было обнаружено много ошибок и благодаря любезной помощи Михаила Евтеева  (Mike Evteev) была проведена серьезная корректировка книги. Мой корявый язык был заменен литературным, уточнена терминология и были исправлены некоторые грамматические ошибки.
Все, кто участвовал в данной работе, являются полноправными членами команды по переводу данной книги.


Те кто уже скачали и кого не лимитирует трафик, могут взять новый вариант на моем сайте в проекте DDP


 
Defunct ©   (2006-02-25 22:35) [25]

Большое спасибо, Анатолий!

Было бы неплохо (если возможно) добавить в PDF версии оглавление в bookmarks


 
Anatoly Podgoretsky ©   (2006-02-25 22:36) [26]

Defunct ©   (25.02.06 22:35) [25]
Не могу, у меня просто бесплатный PDF принтер, а не конвертор в PDF
Но эту работу может выполнить кто ни будь другой.


 
Slym ©   (2006-02-26 13:24) [27]

Zipни .doc трафик не халява


 
Verg ©   (2006-02-26 21:10) [28]

Не читал всего. Но вступление в неблокирующий режим просто шокирует.
Особенно утверждения типа:

"В действительности, блокирующее API единственное которое поддерживает Unix."

Я просто в шоке... Я, оказывается, всю жизнь пользовался в UNIX несуществующим режимом API! Какой удар.... :)))))))))
Это просто какой-то вандализм по отношению к терминам и, вообще, к понятиям....


 
Verg ©   (2006-02-26 21:45) [29]

Орфография "куда ни будь".....

А приказ:

"Забудьте все, что вы знали раньше!",

написанный офигенно большими и офигенно красными буквами не оставляет никаких шансов любому, кто вообще связался с Indy и с орфографией и грамматикой переводчика. Очень обидно за авторов Indy... очень.


 
Anatoly Podgoretsky ©   (2006-02-26 21:49) [30]

Verg ©   (26.02.06 21:45) [29]
Я сохранил их форматирование, как мог. Тоже и про их выражения, позволил только свои комментарии, потом к ним добавились аналогичные от корректора.
Да ладно все это можно простить, все равно книга хорошая.


 
Verg ©   (2006-02-26 21:51) [31]

И все, думалось, что "не болкирующий" - это редкая ошибка, но, Толя, возьми уже учебник русского, если ты решил переводить на этот язык....

"File1 это условный не блокирующий компонент, размещенной на форме"


 
Verg ©   (2006-02-26 21:53) [32]

И т.д... и  т.п....

Бррр...


 
Verg ©   (2006-02-26 22:08) [33]


> Да ладно все это можно простить, все равно книга хорошая.


Будем цитировать, "как крылатую фразу", когда модераторы будут докапываться до "чистоты русского". :))))


 
Andy BitOff ©   (2006-02-26 22:40) [34]

Не придирайтесь =)
Человек выполнил большую работу. За это ему спасибо.
А ошибками я сейчас занимаюсь ;) Делаю версию для печати (т.к. не могу читать с экрана), с правильными полями, ссылками и т.п., так же и ошибки подправляю. Если закончу, то отошлю Анатолию. А вот, если ему будет интересно, то пускай выкладывает.


 
Verg ©   (2006-02-26 22:45) [35]


> Andy BitOff ©   (26.02.06 22:40) [34]


Молодца!

А я никогда не придираюсь, а то, что вижу, то и говорю, если предмет достоин моего высказывания ;)


 
Verg ©   (2006-02-26 22:49) [36]

P.S. Таненбаум Вы наш. :))


 
vecna ©   (2006-02-26 23:41) [37]

Респект!
Большое спасибо, т.к. действительно полезная вещь.

только вот на 29 странице... красненьким... уж очень мелко ;)


 
Anatoly Podgoretsky ©   (2006-02-26 23:48) [38]

Автор виноват


 
Verg ©   (2006-02-27 00:02) [39]

Мой юный друг, позволю рассказать по этому поводу оди из самых старейших баянов на этом форуме:

Однажды, то есть как-то раз
Джигит в горах отара пас
Отара очень не большой:
Один собака, пять овца,
Баранов восемь, с пастухом.
На тот гора жил серий волк.
Он как собака, только злой
И дома никогда не жил.
Гурман: он любит свежий мясо
Его живот голодний бил
И как жевать совсем не помнит.
На цыпочках пошел к овца
И клюнул, как орел по горлу.
Овец кричал и вытек кровь,
А волк ее сидел и кушал.
Без ложки кушал, прямо ртом.
Собака это увидал
И побежал сказать джигиту.
Джигит достал свой длинный нож
И стал втыкать в деревья, горы.
Волк удивился, побежал.
Джигит за ним - зарезать надо...
Бежали день, бежали два, бежали тры
Не знаю цифров дальше.
От ветра заболел глаза
Песок и пил в него попасть.
И вдруг, в один прекрасный день
Тупик, нет, про"пасть. Нет, пропа"сть.
Дороги нет, асфальта нет.
Весной бил мост - куда девался?
Тогда джигит достал свой нож
И над волком надругался.
Он подходил к нему так неспеша
И говорил так сладко, чуть дыша.
"Вай-Вай! Такой большой, зачем овца кусал?"
У волка кожа красный стал
И он так сильно застеснялся
И так немного разбежался
И пригнул прям ногами вниз.
Упал и шкура заморал.
Вы спросите: "А где морал?"

Сначала карта посмотри
Потом беги куда попало!


 
iZEN ©   (2006-02-27 00:05) [40]

Интересно, авторы уже изобрели NIO API или только подбираются к нему? :)


 
iZEN ©   (2006-02-27 00:33) [41]

Критика

3.23. Кодовые потоки (thread)
Кодовые потоки – это метод выполнения программы. Большинство программ имеют только один поток. Тем не менее, дополнительные потоки могут быть созданы для выполнения параллельных вычислений.


А почему бы не назвать вещи своими именами?
«Нити» - общеупотребимый термин в данном случае.

3.24. Fork
Unix до сих пор не имеет поддержки потоков. Вместо этого, Unix использует ветвление (forking). С потоками, каждая отдельная строка выполнения исполняется, но она существует в том же самом процессе, как и другие потоки и в том же адресном пространстве. При разветвлении каждый процесс должен сам себя разделять. Создается новый процесс и все хендлы (handles) передаются ему.


Вот уж глупости.
UNIX имеет разные нити. UNIX может поддерживать как "легковесные" реализации (pthreads), так и "тяжеловесные" на основе процессов (c-threads). Всё зависит от используемого ядра и операционного окружения. Solaris, например, может свободно "жонглировать" разными библиотеками реализации нитей в реальном времени, незаметно для пользователя, в угоду большей эффективности исполнения.

3.27. Сетевой порядок байт
Различные компьютерные системы хранят числовые данные в различном порядке. Некоторые компьютеры хранят числа, начиная с самого наименее значимого байта (LSB), тогда как другие с наиболее значимого байта (MSB). В случае сети, не всегда известно, какой компьютер используется на другой стороне. Для решения этой проблемы был принят стандартный порядок байт для записи и передачи по сети, названый сетевой порядок байт. Сетевой порядок байт это фиксированный порядок байт, который должен использоваться в приложении при передаче двоичных чисел.


Обо всём и совершенно ни о чём.
Сетевой порядок байтов чётко определён для каждого из протоколов обмена. Т.н. network byte order для двоичных чисел: сначала старший, потом младший байт. Об этом конкретно вообще ни слова. Странно.

Продолжение критики книги воспоследует после некоторого перерыва.


 
Anatoly Podgoretsky ©   (2006-02-27 00:40) [42]

Да много там ляпов у авторов и я наверно некоторые добавил своим переводом.
Они хотели написать книгу про Инди, а написали про Интернет, ну и не убереглись.


 
Anatoly Podgoretsky ©   (2006-02-27 00:41) [43]

Кстати лучше ругать по оригиналу, а то может не так они и виноваты.


 
iZEN ©   (2006-02-27 01:10) [44]

Так...пошла критика технологии

4.1. Путь Indy
...
Сервера Indy создают новый поток для каждого клиентского соединения. Сервера Indy создают слушающий поток, который изолирован от главного кодового потока программы. Слушающий поток случает входящие клиентские запросы. Для каждого клиента, которому отвечают, создается новый поток для его обслуживания. Необходимые события возбуждаются в контексте данного потока.


Так недалеко до DoS. Интересно, авторам известна данная аббревиатура? Похоже что нет. Вот когда несколько тысяч крэкеров ринутся на открытое серверное соединение Indy, и она начнёт для каждого создавать отдельную нить обработки..., угадайте, что произойдёт? :)))

Ну ё-маё, thread-pool трудно было придумать?

4.2. Методология Indy
Если вы уже работали с другими сокетными компонентами, то просто забудьте все, что вы знали. Это будет вам только мешать и вы будете делать ложные предпосылки.


Ага. СЧАЗ. :)))

...
Почти все другие компоненты работают в неблокирующем режиме, асинхронно. Они требуют от вас реагировать на события, создавать машину состояний и часто исполнять циклы ожидания.


Не согласен. Есть разные библиотеки и реализации TCP/UDP/IP-стэков. Одни работают с блокирующими методами установления соединения, другие — с неблокирующими. По-моему, здесь поровну и тех, и других. Кому что нравится и удобнее, то и использует.

...
Например, с другими компонентами, когда вы делаете соединения, то вы должны ожидать событие соединения или крутить цикл ожидания, пока свойство, ухаживающие факт соединение не будет установлено. С Indy, вы просто вызываете метод Connect и просто ждете возврата из него. Если соединение будет успешное, то будет возврат из метода по окончанию соединения. Если же соединение не произойдет, то будет возбуждено исключение.


Очень странное предубеждение авторов против неблокирующего режима соединения.

По-мне, так, неблокирующее — более простое, нежели блокирующее. Не нужно изобретать собственные нити передачи управления, организовывать handler"s-pool, ведь всё уже организовано в callback-методах.

4.6. Потоки
Для реализации функциональности используются потоки. Indy очень интенсивно использует потоки для реализации серверов, потоки так же используются и в клиентах. неблокирующие сокеты также могут использовать потоки, но они требуют некоторой дополнительной обработки и их преимущества теряются по сравнению блокирующих сокетов.


Ещё раз: во всей книге замените слово «ПОТОКИ» на «НИТИ», если это не относится к потокам данных (Streams), а относится к потокам исполнения кода (Threads).

Продолжение критики книги (и технологии) воспоследует после некоторого перерыва.


 
iZEN ©   (2006-02-27 01:31) [45]

Грамматика и орфография

стр. 28
Когда API Unix-сокетов был портирован в Windows, то ему дали имя Winsock.

API — муж.род, поскольку: Прикладной Интерфейс Программирования.

Windows 3.x не могла распараллеливаться и плохо поддерживалла многозадачность. Windows 3.1 также не имелла поддержки потоков.

Windows — жен.род, поскольку: Операционная Система.

Конечно же, «Юникс» везде заменить на «UNIX» (все буквы заглавные, поскольку это семейство ОС, а не какая-то конкретная система).


 
iZEN ©   (2006-02-27 01:36) [46]

Windows 3.x не могла распараллеливаться и плохо поддерживала многозадачность. Windows 3.1 также не имела поддержки потоков.
Н-да, опечатки исправил.

По сути. В Windows 3.1 была реализована кооперативная многозадачность.


 
unknown ©   (2006-02-27 01:51) [47]


> iZEN ©   (27.02.06 01:10) [44]
> Ну ё-маё, thread-pool трудно было придумать?

Так ведь есть же TIdThreadMgrDefault и TIdThreadMgrPool


 
@BraIN ©   (2006-02-27 03:20) [48]

Правки-правки..
Так и до написания новой книги не далеко ;)


 
calm ©   (2006-02-27 09:27) [49]


> Ещё раз: во всей книге замените слово «ПОТОКИ» на «НИТИ»,
>  если это не относится к потокам данных (Streams), а относится
> к потокам исполнения кода (Threads).
>

"Потоки" - широко распространенный термин с указанным смыслом, не надо понапрасну шуметь.


 
Polevi ©   (2006-02-27 09:42) [50]

>iZEN ©   (27.02.06 01:10) [44]
ты бы до конца дочитал а потом с критикой


 
iZEN ©   (2006-02-27 17:25) [51]

unknown ©   (27.02.06 01:51) [47],
да, этот менеджер упомянут одним абзацем. Авторы походу дела его разработали. :))
Под конец описания книжка приобретает вполне читабельный вид, если не учитывать кучу опечаток и грамматических ошибок. Даже критиковать нечего.

calm ©   (27.02.06 09:27) [49],
Термин «ПОТОКИ» в русскоязычной литературе до недавнего времени использовался в двух контекстах: потоки данных и потоки исполнения. В последнее время популярен термин «НИТИ» в отношении потоков исполнения, так как не требует уточнения контекста и с английского переводится именно так, а не иначе. Кстати, термин «НИТИ» используется в книжке Ю.Вахалии "UNIX изнутри".

Насчёт неблокирующих соединений закончу свою мысль: неблокирующие соединения более высокоуровневые абстракции. Обычно, на основе блокирующих соединений строят неблокирующие событийно-ориентированные "коннекторы", а не наоборот.



Страницы: 1 2 вся ветка

Текущий архив: 2006.03.19;
Скачать: CL | DM;

Наверх




Память: 0.62 MB
Время: 0.094 c
11-1121272719
Dodfr
2005-07-13 20:38
2006.03.19
Hint error when compiling


15-1140508399
Nikolay M.
2006-02-21 10:53
2006.03.19
Увидел на mysql.ru, предлагаю повесить на страничках


2-1141118521
Patrick
2006-02-28 12:22
2006.03.19
Принципиальный вопрос.


15-1140528229
Axis_of_Evil
2006-02-21 16:23
2006.03.19
WiFi trouble


2-1141533960
Nsk3d
2006-03-05 07:46
2006.03.19
выделение всего