<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="http://wiki2.linuxformat.ru/skins/common/feed.css?97"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>LXF86:Спаркс - История изменений</title>
		<link>http://wiki2.linuxformat.ru/index.php?title=LXF86:%D0%A1%D0%BF%D0%B0%D1%80%D0%BA%D1%81&amp;action=history</link>
		<description>История изменений этой страницы в вики</description>
		<language>ru</language>
		<generator>MediaWiki 1.11.1</generator>
		<lastBuildDate>Wed, 13 May 2026 19:31:29 GMT</lastBuildDate>
		<item>
			<title>Crazy Rebel: викификация, оформление</title>
			<link>http://wiki2.linuxformat.ru/index.php?title=LXF86:%D0%A1%D0%BF%D0%B0%D1%80%D0%BA%D1%81&amp;diff=6217&amp;oldid=prev</link>
			<description>&lt;p&gt;викификация, оформление&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая статья&lt;/b&gt;&lt;/p&gt;&lt;div&gt;: LXF Интервью&lt;br /&gt;
&lt;br /&gt;
=Вдохновение по Спарксу=&lt;br /&gt;
&lt;br /&gt;
: Будучи крупнейшей вещательной компанией в мире, BBC нуждается в серьезных технологиях для сетевого вещания, медиа-кодеках и многом другом. Open source – привлекательное решение, поясняет '''Майкл Спаркс'''.&lt;br /&gt;
&lt;br /&gt;
'''Linux Format: ''Что привело вас в BBC?'''''&lt;br /&gt;
&lt;br /&gt;
'''Майкл Спаркс:''' Я закончил Манчестерский университет и устроился работать Janet Web Cache Service. Мы тогда все расширяли, и делали это хорошо, и это был довольно весело. Использовали Linux, ''Squid'' и FreeBSD. Была пара машин с Solaris&lt;br /&gt;
и пара Irix-машин, но в основном Linux и FreeBSD.&lt;br /&gt;
&lt;br /&gt;
'''LXF: ''Это была ваша первая встреча с Linux?'''''&lt;br /&gt;
&lt;br /&gt;
'''МС:''' Нет, она произошла в университете. Я изучал информатику, и посреди второг курса решил разобраться, как работают компиляторы, и мне нужен был компилято для домашнего пользования. Вот я и скачал свободное ПО. Моим первым дистрибу&lt;br /&gt;
тивом был мини-Linux на четырех дисках.&lt;br /&gt;
&lt;br /&gt;
'''LXF: ''На дискете?'''''&lt;br /&gt;
&lt;br /&gt;
'''МС:''' На четырех! Его нужно было установить на жесткий диск, но он запускался&lt;br /&gt;
на 386 с 4 МБ памяти, а у меня была как раз такая машина. Оттуда все и пошло. Я и понравился Janet Web Cache Service потому, что имел опыт работы в Linux. Потом я стал подумывать о переезде в Лондон, но пока жил в Манчестере.&lt;br /&gt;
Компания Inktomi тогда набирала сотрудников, и вербовщик нашел мое имя в&lt;br /&gt;
списке рассылки ''Squid'', так что благодаря ''Squid'' я попал в Inktomi. Они занимались кэшированием крупных сетей, сетевыми системами и сетями доставки мультимедиа.&lt;br /&gt;
&lt;br /&gt;
'''LXF: ''А это, в свою очередь, было нужно BBC?'''''&lt;br /&gt;
&lt;br /&gt;
'''МС:''' BBC в то время нанимала инженеров-исследователей. И так совпало – они&lt;br /&gt;
об этом не говорили, пока меня не наняли – они создавали новую исследовательскую группу. До этого исследовательский отдел состоял из четырех основных групп: группа Studio занималась производством; Transmission – вещанием; одна&lt;br /&gt;
группа отвечала за размещение передатчиков в Великобритании для получения&lt;br /&gt;
лучшего охвата; и еще одна для систем внутри BBC. Но для сетевых исследований&lt;br /&gt;
не было ничего; они собрались основать новую группу, и мне посчастливилось&lt;br /&gt;
присоединиться к ней вовремя. Вот почему это область моих исследований.&lt;br /&gt;
&lt;br /&gt;
'''LXF: ''Вы управляли этим процессом, или что-то советовали?'''''&lt;br /&gt;
&lt;br /&gt;
'''МС:''' Нет, не советовал; все произошло случайно. BBC была в процессе формирования этого маленького сетевого подразделения, человека на четыре-пять.&lt;br /&gt;
&lt;br /&gt;
'''LXF: ''Его задачей было распределение контента в сети?'''''&lt;br /&gt;
&lt;br /&gt;
'''МС:''' Да, и они понимали, что нужны некоторые исследования в этой области,&lt;br /&gt;
потому что все это [раньше] было спонтанно. Многое на сайте BBC было в стиле: «Стянем одно отсюда, другое – оттуда, заставим заработать, а как разослать, неважно». А я как раз в этом разбирался, потому что занимался этим несколько&lt;br /&gt;
предыдущих лет. Они спросили: «Как нам это рассылать?», ну, я и говорю: «Что ж,&lt;br /&gt;
по-моему, вопрос интересный, я не ожидал, что буду делать это».&lt;br /&gt;
&lt;br /&gt;
Довольно быстро выяснилось, что потоковое вещание само по себе жутко&lt;br /&gt;
дорогое. Сервер Real Networks тогда еще не был открыт. Они перешли на по-процессорную модель, но процессор так и так может обработать лишь определенное число потоков, и это был просто другой способ описать ту же проблему. В наши&lt;br /&gt;
дни выбор богаче, а тогда было примерно так: «Нужно разработать поточный сервер, потому что нам надо обрабатывать 20 миллионов параллельных потоков, и это будет дешевле, чем оплачивать серверную нагрузку».&lt;br /&gt;
&lt;br /&gt;
'''LXF: ''Насколько это было похоже на вашу прежнюю работу?'''''&lt;br /&gt;
&lt;br /&gt;
'''МС:''' Что интересно, в Inktomi продавались системы web-кэширования. Эти решения поддерживали также потоковое кэширование и включали сети распространения мультимедиа. Таким образом, штуки вроде сетей распространения использовали групповое вещание на уровне приложений, то есть отдельных аудио- и видео-пакетов, а не IP-пакетов, как это обычно бывает. Источники и отправители также основывались на контенте, а не на IP, что&lt;br /&gt;
было шагом вперед и значительно упрощало жизнь.&lt;br /&gt;
&lt;br /&gt;
Так что у меня был большой опыт в этой области, а поскольку мы продавали&lt;br /&gt;
эти вещи, я должен был довольно подробно знать их внутренности и как все&lt;br /&gt;
структурировано. Кроме того, я разбирался в ''Squid'', то есть понимал, как двигаться вперед.&lt;br /&gt;
&lt;br /&gt;
'''LXF: ''Вы не поясните, как Kamaelia работает в техническом плане?'''''&lt;br /&gt;
&lt;br /&gt;
'''МС:''' Для моделирования параллелизма мы используем генераторы ''Python''. Потому&lt;br /&gt;
что, на самом деле, это дает нам возобновляемые функции. Так что вы можете&lt;br /&gt;
написать нечто, на вид однопоточное, и запускать этот поток снова и снова.&lt;br /&gt;
&lt;br /&gt;
'''LXF: ''А они распараллеливаются?'''''&lt;br /&gt;
&lt;br /&gt;
'''МС:''' Вы можете распараллелить их. Фактически, все они последовательны, потому что это куски кода, которые работают, пока не наткнутся на точку результата ['''yield''']. Генератор ''Python'' – это небольшая функция со словом ‘'''yield'''’ в теле. Если в ней есть '''yield''', то при ее вызове возвращается объект, и вы можете вызвать его&lt;br /&gt;
метод '''next''', и он будет выполняться до тех пор, пока не наткнется на следующий&lt;br /&gt;
'''yield''', а тот – н следующий, и так все время, пока вы запускаете '''next'''. Так что '''next'''&lt;br /&gt;
проходит до следующего '''yield''', потом следующего, и т.д. Очевидно, вы можете&lt;br /&gt;
создать их множество, вот и выходит параллелизм. Можно считать это альтернативой конечным автоматам, но замечательно, что это не шиворот-навыворот, это правильный способ.&lt;br /&gt;
&lt;br /&gt;
Например, если вам нужно много интересных обработок ошибок, обработка&lt;br /&gt;
ошибок все еще хороша и понятна – каждый знает, что нечто однопоточное написать легко, здесь нет серьезных проблем. Вам не надо думать: «Ладно, я остановлю это, и что я должен сделать, как сохранить это состояние, и как вернуться в эту&lt;br /&gt;
позицию?». Не надо предусматривать откаты и тому подобное.&lt;br /&gt;
&lt;br /&gt;
'''LXF: ''То есть Python для Kamaelia – единственный выбор, или можно использовать что-то еще?'''''&lt;br /&gt;
&lt;br /&gt;
'''МС:''' С выбором ''Python'' получилось забавно. Первоначально предполагалась команда из трех разработчиков: Тима Борера [Tim Borer], которого вы, наверное, знаете по проекту ''Dirac'', Джозефа Лорда [Joseph Lord] и меня. А кончилось тем, что на следующую пару лет остался, по сути, один я, поскольку Джозефа утащили на какуюто другую работу, а Тим занялся проектом ''Dirac''. Сейчас со мной еще работает Мэтт Хэммонд [Matt Hammond].&lt;br /&gt;
&lt;br /&gt;
Но главное, мы хотели выбрать язык, на котором никто из нас не писал. В исследовательской организации хочется что-то изучать. А как вы учитесь? Вы беретесь за то, чего раньше не делали. И я подумал: «Ну, раз он поддерживает идею возобновляемых функций, берем, потому что в сущности моя задача – сделать программы доступными для сопровождения. Неважно, трудно ли на нем писать». ''Kamaelia'' упрощает разработку программ – в первую очередь потому, что все выглядит однопоточным, но фактически я хочу сделать эти параллельные системы обслуживаемыми обычными людьми.&lt;br /&gt;
&lt;br /&gt;
Обычно параллельные системы пишутся [людьми, говорящими]: «О, мы собираемся посадить на эту работу наших лучших программистов», и так происходит везде. Выпустим продукт как можно быстрее – посадим на него лучших программистов, и они его сделают, а затем передадим эксплуатационникам, которые по определению менее квалифицированны: будь это не так, они, вероятно, работали бы над следующим проектом. Примерно так работают многие организации.&lt;br /&gt;
&lt;br /&gt;
Таким образом, меня действительно беспокоило, как заставить работать параллельные системы для основной массы пользователей, а не для самых квалифицированных. Вот почему я хотел, чтобы все выглядело однопоточным, потому что,&lt;br /&gt;
прежде всего, вы можете написать свой кусок однопоточным, убедиться, что он&lt;br /&gt;
работает, нашлепать несколько директив '''yield''' в произвольных местах, и это станет&lt;br /&gt;
компонентом. И затем вы сможете повторно использовать его.&lt;br /&gt;
&lt;br /&gt;
'''LXF: ''Это действительно хороший аргумент. Так вы не знали, что генераторы предоставляют такую функциональность?'''''&lt;br /&gt;
&lt;br /&gt;
'''МС:''' Я такую функциональность искал, обычно это называется «'''cur-routines'''». Ну, а&lt;br /&gt;
в ''Python'' – генераторами. Они не столь общие, как стандартные сервисные подпрограммы, и это их большое преимущество,&lt;br /&gt;
поскольку оно гарантирует, что все будет намного компактнее. А чем они компактнее, тем более обстоятельные, а еще – их&lt;br /&gt;
легче использовать повторно.&lt;br /&gt;
&lt;br /&gt;
'''LXF: ''BBC понимала необходимость открыть исходный код Kamaelia и создать вокруг своего рода сообщество?'''''&lt;br /&gt;
&lt;br /&gt;
'''МС:''' Некоторые понимали. BBC не однородна, это стоит помнить. BBC известна своей приверженностью открытым стандартам. Например, хорошо известно, что если у нас есть открытый стандарт, мы&lt;br /&gt;
найдем группу людей, которые придут и его поддержат, и что-нибудь для него&lt;br /&gt;
сделают.&lt;br /&gt;
&lt;br /&gt;
Естественно, BBC надеется на изготовителей оборудования, которые придут и&lt;br /&gt;
построят что-то вокруг открытого стандарта на оборудование – чтобы люди о нем&lt;br /&gt;
даже не задумывались. Но идея, что открытие ПО дает, потенциально, наличие&lt;br /&gt;
сообщества, на некоторых уровнях им плохо знакома.&lt;br /&gt;
&lt;br /&gt;
BBC очень изменилась. В смысле, легко сказать «BBC», а BBC-то, на самом деле,&lt;br /&gt;
это около 27 тысяч человек. А еще есть люди, которые живут и дышат Open&lt;br /&gt;
Source. '''LXF'''&lt;/div&gt;</description>
			<pubDate>Fri, 26 Dec 2008 06:21:55 GMT</pubDate>			<dc:creator>Crazy Rebel</dc:creator>			<comments>http://wiki2.linuxformat.ru/index.php/%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:LXF86:%D0%A1%D0%BF%D0%B0%D1%80%D0%BA%D1%81</comments>		</item>
	</channel>
</rss>