LINUX.ORG.RU

GNU Octave 3.6.0

 , , ,


0

3

Octave — это язык высокого уровня для численных вычислений, схожий с Matlab.

В новой версии произошли следующие изменения:

  • Для сборки теперь необходимо наличие библиотеки PCRE.
  • ARPACK, ранее включённый в исходные тексты Octave, был удалён из поставки. Теперь ARPACK необходимо ставить отдельно, чтобы работали такие функции как eigs и svds.
  • Многие бинарные операторы (.*, .^, +, -, ...) теперь выполняют автоматическое распространение (broadcasting) для операций над массивами. Например, промасштабировать столбцы матрицы с помощью элеменов вектора, можно с помощью выражения:
    rv .* M
    Подробнее об этом можно почитать в `info octave broadcasting`.
  • В Octave добавлен профайлер написанный в рамках GSoC. Воспользоваться им можно с помощью функций profile, profshow и profexplore.
  • Были переработаны функции отвечающие за статистические распределения. Для них на 75% уменьшено потребление памяти, а также улучшена совместимость с MatLab.
  • Функции strread, textscan и textread полностью переписаны и теперь почти полностью соответствуют аналогичным функциям из MatLab.
  • Все строковые функции из .m-файлов подверглись изменениям в сторону улучшения производительности или совместимости с Matlab'ом. Для некоторых случаев был продемонстрирован прирост производительности в 15-30 раз.
  • Функции работающие с Qhull (convhull, delaunay, voronoi) также были переписаны для большей совместимости с Matlab.
  • Обновлены и улучшены функции для работы с датой и временем.
  • Для большей совместимости с Matlab'ом в Octave добавлены функции для работы с настройками: addpref, getpref, ispref, rmpref, setpref.
  • Также для совместимости с Matlab'ом добавлены экспериментальные gui-функции. Например с помощью функции uigetfile можно вызвать графический диалог для выбора файла.
  • Octave стал распознавать parfor (параллельный цикл for) как правильное ключевое слово. Хотя на деле parfor работает так же как обычный for.
  • Традиционно, новая порция функций объявлена устаревшими, а некоторые, ранее объявленные устаревшими — удалены.

Полный список изменений
Дополнительные пакеты

>>> Сайт проекта

★★★

Проверено: anonymous_incognito ()
Последнее исправление: anonymous_incognito (всего исправлений: 2)

Ответ на: комментарий от umren

почему Octave (опен сурц клон матлаба) интересен компьюнити когда существует православный математичный питон с божественными библиотеками?

А ты код-то писать пробовал на том и на этом? На питоне просто втрое дольше пишешь.

ForwardToMars
()
Ответ на: комментарий от Evgueni

Если ты не освоил GUI, то я могу тебе только посочуствовать.

Айайай. Такое большой, а повторяете за мной, будто бы своего словарного запаса не хватает.

Самое эффективное - общаться языком оппонента. Вот это и делаю.

Вылезешь из анабиоза, просечешь, что на свете уже далеко не 70е - может будет смысл сменить стиль общения.

rtvd ★★★★★
()
Ответ на: комментарий от Evgueni

А что до записываний команд, то я именно это и имею в виду. В GUI они записываются и отправляются на выполнение. А в тупом REPL они уходят на выполнение и торжественно просираются в длинной и бессмысленной history.

Вы не разобрались в чём соль. Возможно сейчас это следствие старости и маразма.

О других по себе судишь? Молодец.

Кроме того никто не заставляет вас всегда набирать по одной команде, хотя часто этого бывает достаточно. Для этого во всех вменяемых средах есть возможность выполнять скрипты, которые при желании можно преобразовать и в программу. Вот для них текстовые редакторы самое оно.

Ну ты прямо открытие совершил. Скрипты, оказывается, можна запускать. Что еще ты прочитал в книжке «Octave for dummies»?

Суть моего утверждения как раз в том, что сраная командная строка сама по себе - одномерное ничтожество. Человек, что считает ее _нормальным_ средством видимо страдает слабоумием.

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

Есть и более эффективные средства организации работы, но они уже в рамки чисто текстового представления не входят и посему ты их не осилишь. Извини, но это факт. Чтобы уметь пользоваться GUI а не мышкодавствовать - надо думать. А ты видать не привык, и как попугай повторяешь - GUI для неосиливших скрипты.

rtvd ★★★★★
()

А как насчёт списка до сих пор нереализованных матлабовских функций? Он уменьшается?

gag ★★★★★
()
Ответ на: комментарий от rtvd

Да не кипящись Вы так. Я понимаю, что пенсионерам и старпёрам, типа Вас, тяжело осваивать программные средства позволяющие автоматизировать повседневную деятельность. Но жизнь на этом не кончается.

Человек существо линейное, то бишь выдаёт команды последовательно и естественно этот поток записывать в виде текста. Клавиатурные шорткаты вещь безусловно полезная, но анализ уж больно многообразен и для каждого действия шорткатов не запасёшься. А если вы в руки взяли мышь, то об автоматизации ваших действий можно с большой вероятностью забыть.

По текстовым редакторам: редактировать код лучше в приличном текстовом редакторе, которые заточены под набор текста. Спорить с этим просто глупо. Встраивание среды в редактор согласен, что помогает — можно посмотреть как это сделано в случае скажем R и emacs, текстовая природа интерфейса которых позволила это сделать вполне себе органично. К чему это я? А я к тому, что можно конечно развивать монстра с кучей своих велосипедов — его проще продать, но в случае открытого софта (надеюсь вы понимаете, что как минимум для фундаментальщины свободный софт предпочтителен) гораздо эффективнее системы, которые позволяют объединяться с другими программами дабы не велосипедить. Текстовый интерфейс позволяет это сделать весьма просто. Тому есть знаковые примеры.

Evgueni ★★★★★
()
Ответ на: комментарий от Evgueni

Да не кипящись Вы так. Я понимаю, что пенсионерам и старпёрам, типа Вас, тяжело осваивать программные средства позволяющие автоматизировать повседневную деятельность. Но жизнь на этом не кончается.

Может уже перестанешь фантазировать и нести бред? Уж кто кто, а я на автоматизации собаку съел.

Человек существо линейное, то бишь выдаёт команды последовательно и естественно этот поток записывать в виде текста.

В общих чертах да. Но _воспринимает_информацию_ иначе. Глаза видят отнюдь не одномерную картинку. И тупо игнорировать это - безумие. А это именно то, что ты делаешь. Хм.. Может ты видешь мир в 1D?

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

Дурик, тебе же было сказано: GUI это не обязательно «возить мышкой». А ты все витаешь в своих подростковых фантазиях, где GUI это редакторы формочек.

По текстовым редакторам: редактировать код лучше в приличном текстовом редакторе, которые заточены под набор текста. Спорить с этим просто глупо.

Еще одна твоя дурь. Конечно, в приличном текстовом редакторе редактировать код лучше чем в неприличном. :-) Но в приличном редакторе _кода_, код редактировать еще лучше. А редактор кода, это такая штука, что понимает, что код это не просто текст. Но ты не освоил. C'est la vie.

Встраивание среды в редактор согласен, что помогает — можно посмотреть как это сделано в случае скажем R и emacs, текстовая природа интерфейса которых позволила это сделать вполне себе органично.

У тебя странное представление об органичности. Ты случаем не поклонник творчества HR Giger? Но в целом да. Уж лучше так, чем R и emacs раздельно.

К чему это я? А я к тому, что можно конечно развивать монстра с кучей своих велосипедов — его проще продать, но в случае открытого софта (надеюсь вы понимаете, что как минимум для фундаментальщины свободный софт предпочтителен) гораздо эффективнее системы, которые позволяют объединяться с другими программами дабы не велосипедить.

И снова ты несешь бред, что дескать нормальный GUI это типа такой монстр и что его сложно с чем-то объединять. Может для начала освоишь, что стоит за аббревиатурой GUI?

Прикинь, это «Графический Интерфейс с Пользователем». Не «Мышью Толчем по Кномпочкам» и не «Рисуем Код в Виде Диаграмм». А просто «графический интерфейс». Один из плюсов которого, например, что формулы можно показывать как формулы а не херню вроде «\int_a^b \! f(x) \, \mathrm{d} x». При этом это не значит, что редактировать их нельзя как текст. Смотри пример того же emacs, который может в графическом режиме сделать намного больше, чем в текстовом. А хороший GUI может намного больше чем это. Но кротам не очевидно.

Текстовый интерфейс позволяет это сделать весьма просто. Тому есть знаковые примеры.

Молись на свои знаково убогие примеры дальше.

rtvd ★★★★★
()
Ответ на: комментарий от ForwardToMars

А ты код-то писать пробовал на том и на этом?

Пробовал. И на том (MATLAB/Octave) и на этом.

На питоне просто втрое дольше пишешь.

4.2

yossarian
()
Ответ на: комментарий от yossarian

На питоне просто втрое дольше пишешь.

4.2

Кстати, было бы интересно глянуть на примеры. Есть ли где-нибудь подборка настоящих фрагментов кода python vs Octave или python vs R?

rtvd ★★★★★
()
Ответ на: комментарий от rtvd

Есть ли где-нибудь подборка настоящих фрагментов кода python vs Octave или python vs R?

Я сразу могу сказать, что самый простой и короткий код будет на Octave/Matlab; чуть длиннее и менее понятнее - на R и самый длинный и непонятный - на питоне.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Кстати, да

Одним из главных недостатков Octave, помимо неиспользования GPU, является использование gnuplot'а для отображения графиков. Да элементарную матрицу 4Кх4К он строит несколько минут!

Хотя могли бы прикрутить уже openGL'ную рисовалку.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Evgueni

Для Octave гуем является эмулятор терминала + окошко geany.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Предлагаю питонистам и перловщикам

Привести аналогичный чему-нибудь из этого код на перле/питоне. Хотя бы вот это.

Eddy_Em ☆☆☆☆☆
()
Ответ на: Кстати, да от Eddy_Em

Более того MаthGL вполне себе подойдёт для этих целей. Это вопрос человекомесяца. С другой стороны никто не мешает вывести результат в формате понимаемом MathGL и запользовать его напрямую. Я думаю проблема именно в этом, что кому надо могут и так обойтись.

Evgueni ★★★★★
()
Ответ на: комментарий от anonymous

Вы тут спорите,что лучше, а умения простой вопрос как вам, если пользовались RStudio?

Это та, что под Eclipse? Пользовался ей совсем чуть-чуть и давно, яркого впечатления не осталось. А что за вопрос?

rtvd ★★★★★
()
Ответ на: комментарий от Eddy_Em

Странно как-то, потому как в случае gnuplot ни приставка не мешает, ни то что там лицензия прямо запрещает распространять бинарники собранные из пропаченных относительно кода от авторов исходников (если я правильно помню).

Evgueni ★★★★★
()

Кстати, насколько совместим ЯП Ocatve с Matlab-ом? На уровне библиотек?

x4DA ★★★★★
()
Ответ на: комментарий от rtvd

1. можно не давать команды, чтобы увидеть названия переменных или их значения. Они и так видны.

Повесьте что-то типа whos на вывод prompt в консоли. Будут вам названия.

Просто пользы от подобных «окошек» при числе переменных >> 10 и развесистых типах - минимальная.

в консоли ты дал штук надцать комманд и приплыли - во вменяемом виде их сохранить не удастся.

не осилил history?

myhand
()
Ответ на: комментарий от anonymous

Матлаб может считать удобным только человек, изуродованный фортраном.

матлаб и есть фактически интерпретируемый фортран. С развесистыми функциями имени uyghtfe() для полного счастья пользователя.

myhand
()
Ответ на: комментарий от anonymous

Она не под Eclipse, а на Qt standalone. Вопрос, понравилась ли она вам, если вы ею пользовались.

А.. Тогда не пользовался.

rtvd ★★★★★
()
Ответ на: комментарий от myhand

1. можно не давать команды, чтобы увидеть названия переменных или их значения. Они и так видны.

Повесьте что-то типа whos на вывод prompt в консоли. Будут вам названия.

Это уже более конструктивно. Так и до нормального IDE дойти можно. :)

Просто пользы от подобных «окошек» при числе переменных >> 10 и развесистых типах - минимальная.

Возможно.

в консоли ты дал штук надцать комманд и приплыли - во вменяемом виде их сохранить не удастся.

не осилил history?

Про history я уже писал.

А вы, товарищ осилятор, уже можете по history десяти часов ковыряния с данными быстро сообразить, как можно получить тот чудо график, который наконец-то удалось получить?

Нет, я не имею в виду лабораторки. :) Там и Octave не нужно. Я имею в виду, скажем, data mining с нетривиальными данными из реальной жизни. Где в первую очередь надо вычищать мусор несколько часов, где неочевидны зависимости и где вообще говоря получить что-то вменяемое - уже достижение. И знаешь, нифига не весело, когда ты это получил и уже не ясно как. Потому что тратить еще несколько часов на скурпулезный разбор history - занятие для мазохистов и позёров, считающих себя кульхацкерами.

rtvd ★★★★★
()
Ответ на: комментарий от myhand

Матлаб может считать удобным только человек, изуродованный фортраном.

матлаб и есть фактически интерпретируемый фортран. С развесистыми функциями имени uyghtfe() для полного счастья пользователя.

Что же вы так на Octave наехали? Получается, что GNU Octave - попытка сымитировать интерпретируемый фортран?

rtvd ★★★★★
()
Ответ на: комментарий от rtvd

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

А что, есть системы с ИИ, которые на основе последних данных сами найдут все нужное, по типу «сделай мне зашибись»?

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

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

А что, есть системы с ИИ, которые на основе последних данных сами найдут все нужное, по типу «сделай мне зашибись»?

Нет таких. Потому что не нужно.

1. Нормальные люди не пользуются говноконсолью а пишут все в редакторе, откуда все идет на выполнение. Ненужное всегда выбрасывается, нужное остается в текущем буфере. Сюрприз? :)

2. Если уж так прет консоль, и эта твоя хистори, то можно (да, можно) все сделать и без ИИ. Как это сделать - тебе домашнее задание. На эту тему можно почитать что-нибудь по ориентированным графам. Но конечно, для этого прийдется переписать весь движек Octave, чтобы он отслеживал зависимости между переменными и «эффекты» (язык-то совсем не чистый и весь из себя функциональный).

rtvd ★★★★★
()
Ответ на: комментарий от rtvd

Это уже более конструктивно. Так и до нормального IDE дойти можно. :)

Нормальный IDE штука субъективная. О призрачных «достоинствах» постоянного любования на «значения» массива размером под 10^4 - вам, однако, намекнули вполне конкретно.

А вы, товарищ осилятор, уже можете по history десяти часов ковыряния с данными быстро сообразить, как можно получить тот чудо график, который наконец-то удалось получить?

Да.

Я имею в виду, скажем, data mining с нетривиальными данными из реальной жизни. Где в первую очередь надо вычищать мусор несколько часов, где неочевидны зависимости и где вообще говоря получить что-то вменяемое - уже достижение. И знаешь, нифига не весело, когда ты это получил и уже не ясно как. Потому что тратить еще несколько часов на скурпулезный разбор history - занятие для мазохистов и позёров, считающих себя кульхацкерами.

Не нужно ничего тратить. При нормальном workflow, когда, к примеру, вы не меняете один исходный файл с данными до бесконечности - вы можете просто начать с того, что сохранить кусок history как скрипт. До момента получения графика.

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

myhand
()
Ответ на: комментарий от myhand

Это уже более конструктивно. Так и до нормального IDE дойти можно. :)

Нормальный IDE штука субъективная. О призрачных «достоинствах» постоянного любования на «значения» массива размером под 10^4 - вам, однако, намекнули вполне конкретно.

Для особо одаренных: это то достоинство, которое как правило в IDE есть. И аскеты могут его отключить. Не нравится - не пользуйся. А то, что для конкретно тебя это это достоинство является призрачным, не значит что оно достоинством не является никому не облегчает работу. :-)

Не нужно ничего тратить. При нормальном workflow, когда, к примеру, вы не меняете один исходный файл с данными до бесконечности - вы можете просто начать с того, что сохранить кусок history как скрипт. До момента получения графика.

Отлично. И что потом с этим делать? Строк-то дофига. За деревьями не видно леса.

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

GUI как таковой - никак. Но нормальная IDE, пусть даже не GUIшная - леко делает. Пример - в посте выше, пункт №1.

В общем, меня этот спор утомил. Нравится дырки долбить в перфокартах - вперед. «Русские физики выбирают консоль и не считают отображение графиков графическим интерфейсом». Аминь.

rtvd ★★★★★
()
Ответ на: комментарий от rtvd

Я кавычки пропустил. Конечно, Octave никакой не интерпретируемый фортран, в буквальном смысле. Но матлаб многое взял от фортрана, да и заточен изначально под ту же область.

А octave нацелена на совместимость с matlab - это вот не только плюсы в виде возможности использования существующего кода, но и минусы. Вот как традиционно дебильная политика названий функций.

myhand
()
Ответ на: комментарий от rtvd

А то, что для конкретно тебя это это достоинство является призрачным, не значит что оно достоинством не является никому не облегчает работу. :-)

Мне курсовые малоинтересны. А в иной ситуации - от сего «достоинства» пользы нуль.

Отлично. И что потом с этим делать? Строк-то дофига. За деревьями не видно леса.

Зависит от. У нормальных людей консоль - для вызова функций с параметрами. А весь «лес» остается в теле этих самых функций, которые редактируются в обычном текстовом редакторе emacs.

Разруха в головах, все как обычно.

В общем, меня этот спор утомил.

«Если чо» (с) - с вами никто и не спорил.

myhand
()
Ответ на: комментарий от rtvd

Зато можно хотябы названия сходу увидеть. :) А в консоли надо тыкаться как слепой котёнок. На каждый чих - строчить команду.

освой комплектацию команд и их ключей. не знаю за маткадоподобное, а в R все пучком.

psv1967 ★★★★★
()
Ответ на: комментарий от rtvd

1.

нормальная консоль заменяет говноредактор (и сюрпрыз — имеет возможность загрузить объект среды в редактор)

psv1967 ★★★★★
()
Ответ на: комментарий от Eddy_Em

не не не... самый короткий это R (ну и для меня например понятный :)

psv1967 ★★★★★
()
Ответ на: комментарий от anonymous

Вы тут спорите,что лучше, а умения простой вопрос как вам, если пользовались RStudio?

Перешёл с emacs на RStudio. Особенно интенсивно использую его для sweave. Функциональности RStudio ещё не такая как в ESS, но проект стремительно развивается.

Работаю, следующим образом: Пишу симуляции стохастических моделей на pythone (numpy, simpy), потом использую sweave в RStudio для анализа результатов.

anonymous
()
Ответ на: комментарий от myhand

Отлично. И что потом с этим делать? Строк-то дофига. За деревьями не видно леса.

Зависит от. У нормальных людей консоль - для вызова функций с параметрами. А весь «лес» остается в теле этих самых функций, которые редактируются в обычном текстовом редакторе emacs.

Нормальным людям консоль не нужна. Функции со всеми параметрами вызываются оттуда же, где редактируются их тела.

Разруха в головах, все как обычно.

Конечно. О том и речь.

rtvd ★★★★★
()
Ответ на: комментарий от psv1967

Зато можно хотябы названия сходу увидеть. :) А в консоли надо тыкаться как слепой котёнок. На каждый чих - строчить команду.

освой комплектацию команд и их ключей. не знаю за маткадоподобное, а в R все пучком.

Еще один умник нашелся. Нечего сказать по делу - сиди и помалкивай.

rtvd ★★★★★
()
Ответ на: комментарий от psv1967

нормальная консоль заменяет говноредактор

Вот именно. _Говно_редактор она заменяет. Но при этом не заменяет даже «pico».

(и сюрпрыз — имеет возможность загрузить объект среды в редактор)

Если для тебя это сюрприз, то можно лишь посочуствовать. :)

rtvd ★★★★★
()
Ответ на: комментарий от Eddy_Em

1. Про редактор я и говорил: пишем в geany, запускаем в консоли.

Я в курсе, что переключаться как макака туда-сюда - твой уровень понимания того, что такое удобство.

2. Не зачем.

см. выше

rtvd ★★★★★
()
Ответ на: комментарий от rtvd

Нормальным людям консоль не нужна.

«Нормальным людям» энта ваша октава, матлаб, математика (тм) и просто математика - вообще не нужна. А уж консоль подавно.

Это если под «нормой» понимать не бог весть что, а нечто вполне конкретное: «больше всего народу».

Функции со всеми параметрами вызываются оттуда же, где редактируются их тела.

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

Понятно объяснил - гуру предложит на какие кнопки тыкать?

Разруха в головах, все как обычно.

Конечно. О том и речь.

Ну вот. А вы: консоль такая, консоль сякая... Плохому танцору разные хорошие, нужные вещи завсегда мешают.

myhand
()
Ответ на: комментарий от rtvd

Где можно найти примеры специально созданные для сравнения Python/Octave/MATLAB/R - не знаю. Из того что есть у меня нашел одну функцию которую сначала написал на MATLAB-е, потом, когда перешел на Python, написал похожую на Python-е. Функции не идентичны но обе выполняют похожие вычисления - bandpass-filtering сигнала методом «Фурье -> обнуление нужных частот -> обратный Фурье». Python - 87 строк, MATLAB - 58. Вполне сравнимая функциональность (код на Python-е делает немного больше чем на MATLAB-е) при вполне сравнимых размерах. Если из кода на Python-е выкинуть все сообщения в консоль которых нет в коде на MATLAB-е, оба файла получатся практически одинаковой длины (есть несущественная разница из-за пустых строк/комментариев/etc). При этом функциональность кода на Python-е останется чуть более высокой.

MATLAB-овская версия сильно удлинилась из-за кривого механизма передачи опциональных параметров. Если бы опциональных параметров было еще больше, код на MATLAB-е был бы еще намного длинее. И это стандартные грабли в MATLAB-е - код кучи MathWork-овских же функций начинается с длиннющей простыни if (nargin == ... необходимой для разбора параметров функции.

Функции можно найти здесь: http://www.becs.tkk.fi/~zhdanoa1/bandfilt.py и здесь: http://www.becs.tkk.fi/~zhdanoa1/bandfilt.m

yossarian
()
Ответ на: комментарий от rtvd

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

psv1967 ★★★★★
()
Ответ на: комментарий от rtvd

даже ess сосет у репла R. Единственное где даже емакс вырывается вперед, это когда пишешь Rnw.

Если для тебя это сюрприз, то можно лишь посочуствовать. :)

если ты этим способен пользоваться, то в каком месте тебе жмет в процессе? :)

psv1967 ★★★★★
()
Ответ на: комментарий от myhand

Понятно объяснил - гуру предложит на какие кнопки тыкать?

Еще один фантазер представляет себе мышь?

Те, же, что и в консоли, только меньше.

Смотри тред выше и не тупи.

rtvd ★★★★★
()
Ответ на: комментарий от psv1967

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

Не пойти бы тебе лесом со своим реплом?

rtvd ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.