LINUX.ORG.RU

IPython 0.11

 ,


0

1

После двух лет разработки вышло первое крупное обновление IPython под версией 0.11. За это время большая часть кода была переписана и реорганизована. Некоторые API изменились, поэтому совместимость с предыдущими версиями частично потеряна.

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

IPython - это расширенная интерактивная оболочка для языка программирования Python. IPython обладает множеством преимуществ и предоставляет множество возможностей по сравнению со стандартным интерпретатором. Вот только некоторые из них:

  • Параллельные вычисления в интерактивном режиме;
  • Возможность интерактивной визуализации с поддержкой различных GUI-библиотек;
  • Удобное и мощное автодополнение;
  • Magic-функции для расширения функциональности;
  • Управление переменными, сохранение истории, логирование;
  • Наличие API, что позволяет использовать IPython в собственных проектах.

Основные изменения и улучшения по сравнению с предыдущими версиями:

  • Standalone Qt console. Новая консоль, написанная на Qt, которая может использоваться вместо стандартной. Поддерживает подсветку синтаксиса на основе Pygments. Позволяет рисовать графики, изображения и т.п. с использованием Matplotlib прямо в консоль, а не в отдельное окно. Отображает строки документации для модулей, функций и методов;
  • Высокоуровневые параллельные вычисления с использованием ZeroMQ;
  • Интеграция с текстовым редактором Vim;
  • Интеграция с MS Visual Studio (!);
  • Улучшения в поддержке Unicode;
  • Поддержка Python 3;
  • Новая модель управления профилями и пользовательскими конфигурациями;
  • Хранение истории сеансов в SQLite.

Ссылки:

>>> Подробности



Проверено: Shaman007 ()
Последнее исправление: cetjs2 (всего исправлений: 5)

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

> Еще и делетант.

Ещё и безграмотный. Настоящий анонимус.

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

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

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

Т.е., говоря проще, всего лишь позер, ищущий способы привлечь внимание к своей персоне.

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

К версии 1.0 должны целиком зафиксировать. Больше особо менять вроде не собираются, только ошибки исправлять. :)

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

> Т.е., говоря проще, всего лишь позер, ищущий способы привлечь внимание к своей персоне.

Была бы персона, а внимание само её найдёт. Мне до сих пор смешно слышать такие речи от анонимуса.

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

> И поэтому, пользуясь тем, что всем вроде бы по барабану, ты позволяешь себе нести любую чушь.

Любую чушь несёт любой анонимус.

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

>>> Поэтому питон может быть проглочен перлом, но не наоборот. На перле можно наколбасить модуль которы вытеснит питон и при этом не потребуется расширять концепт языка Perl5. А питон не сможет охватить весь спект перла не расширяя концепцию

Брат-анонимус впал в маразм и философию.

Почему Вы не отвечаете в пределах тематики обсуждения а уходите в обобщения и нападаете на личность?

Это я от темы ухожу? Это я начал рассуждать о гипотетических модулях для Perl, «поглощающих» Python? Посмотри на популярность (а стало быть, и востребованность) Python, и скажи, почему тогда это не было сделано за всё время существования Perl? От анонимусов ЛОРа я не жду метафизических реплик, либо пиши по делу, кратко и чётко, либо расписывайся в сливе.

Привет!

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

> Посмотри на популярность (а стало быть, и востребованность) Python, и скажи, почему тогда это не было сделано за всё время существования Perl?

Узколобые бы заклеймили? :) «Как так, тодасё в моей системе, да на интерпретаторе дешёвом? Непостижимо!». Вот и писали приложения в спартанских условиях, и очень этим гордились.

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

> Дык Perl тоже интерпретируем, как-никак.

Именно поэтому ему воли не давали. А python под популярные современные тенденции проскочил. Да и поприятнее python. :)

kid_lester
()

vcs-срач

Moved to git/github: bzr/launchpad was a nightmare, g/gh rock!

по-моему годное решение

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

>Посмотри на популярность (а стало быть, и востребованность) Python

0.2%. За 21 год. Вакансий днем с огнем найдешь.

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

> 0.2%.

apt-cache search php | wc -l
457

apt-cache search python | wc -l
1902


За 21 год. Вакансий днем с огнем найдешь.


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

kid_lester
()
Ответ на: vcs-срач от anonymous

Всё лучше, чем этот пиздец на LP. Я пла́чу каждый раз, когда мне там надо что-нибудь посмотреть. GitHub, Gitorious, BitBucket, GoogleCode — всё по-человечьи сделано, и только в логове базарнутых убунтузников творится невообразимый пиздец.

anonymous
()

у меня в системе процентов 5-10 всей прикладухи написано на python. Чуть меньше, чем на плюсах. Только на C - больше, и то потому, что в Debian большая часть приложений - это серверы, демоны и простые клиенты. А вот gui к ним часто на python пишут.

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

> Это распространенность питона в вебе. Данные были на опеннете на прошлой неделе.

Ага, сравнение приложений с языком. Кстати, python это НЕ ТОЛЬКО ВЕБ, что бы php-шные школьники не думали. Вот только объясни мне, как ты догадаешься, что у меня сайт именно на python? Догадаться, что он на php - легко, достаточно сканировать популярные уязвимости. А как ты узнаешь, что вот эти роуты скармливаются рельсам, джанге, баттлу или вообще статические html-файлы???

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

> 0.2%. За 21 год. Вакансий днем с огнем найдешь.

0,2% чего?

Мне недавно прислали предложение, например, хотя я даже работу не искал.

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

> Видишь ли, нищебродство, как стиль жизни, привлекает далеко не всех.

Категоричность школьника. «Я вырасту, и буду РАБОТАТЬ, и мне будут ПЛАТИТЬ». Платят обычно за что-то, кстати, а не просто за «РАБОТАТЬ». Но, когда мышление такими категорями - лучше, действительно, пойти в php-шники, может быть кто-нибудь из тебе подобных сжалится и будет для тебя локальный социализм поддерживать. Зависеть от других - ваш удел.

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

> Вот только объясни мне, как ты догадаешься, что у меня сайт именно на python? Догадаться, что он на php - легко

/index.php в 90% случаев.

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

> Это распространенность питона в вебе. Данные были на опеннете на прошлой неделе.

Что-то не могу найти. Ссылка есть?

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

> А я-то тут при чем? Не я же статистику собирал. Вот с авторов и спрашивай.

Не знаю. Или вот, например, я взял сайт на python-фреймворке, и, чтобы снисзить нагрузку, отрендерил его в статические html-файлы, и поместил их на сервер. Это сайт ещё на python, или уже не на python?

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

>Что-то не могу найти. Ссылка есть?

Да-да, информация неприятна такая, поэтому ссылочку найти не получается.

anonymous
()

научные вычисление

В простых случаях, Си немного быстрее. Но, если сам будешь писать велосипеды, например, эти http://docs.scipy.org/doc/numpy/reference/routines.linalg.html, то выигрышь в скорости программы будет ничтожен, в сравнении с потраченным временем на ее написание.

Пример вычилениея нормы (выбрал алгоритм попроще) для матрицы:

> time c++ mm.c && time ./a.out 

real	0m0.110s
user	0m0.088s
sys	0m0.012s
maxtix_morm_inf = 2225.671577

real	0m4.007s
user	0m3.900s
sys	0m0.084s

> time ./mm.py
matrix_norm_inf =  2225.67157668

real	0m5.393s
user	0m4.752s
sys	0m0.608s
 

> cat mm.c 
#include <math.h>
#include <stdio.h>
#include <stdlib.h>

int main(){
    int i, j, n = 4000;
    double t,p;

    double **a;
    a = (double**)malloc(n*sizeof(double*));  
    if ( a == NULL ) exit(1) ; 
    for (i = 0; i < n; ++i){
        a[i] = (double*)malloc(n*sizeof(double));
        if ( a[i] == NULL ) exit(1); 
    }

    for( i=0; i<n; ++i ){
        t = 2.*M_PI*i/n;
        for( j=0; j<n; ++j ){
            p = M_PI*j/n;
            a[i][j] = pow(fabs(cos(t)*sin(p)),1.5);
        }
   }
   
    double norm1= 0.0;
    for( i=0; i<n; ++i ){
        double tmp = 0.0;
        for( j=0; j<n; ++j ){
            tmp += fabs(a[i][j]);  
        }
        if(tmp>norm1) norm1 = tmp;
    }
    
    for(i = 0; i < n; i++) free(a[i]);
    free(a);

    printf("maxtix_morm_inf = %lf\n",norm1);
}

> cat mm.py 
#!/usr/bin/python
from numpy import *
n=4000
i=linspace(0,2*pi,n,endpoint=False)
j=linspace(0,pi,n,endpoint=False)
p,t=meshgrid(j,i)
a=abs(cos(t)*sin(p))**1.5
print 'matrix_norm_inf = ', linalg.norm(a,inf)

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

> любитель студентов-дислектиков.

Кажется, в меня влюбился студент-дислектик O_o

tailgunner ★★★★★
()
Ответ на: научные вычисление от scireseacher

Я это как раз и пытаюсь донести до python-ненавистников. :) При использовании numpy и scipy внутри практически все тяжёлые вычисления реализованы на Си с кучей оптимизаций, поэтому разницы в скорости заметно не будет. Python же представляется просто удобной обёрткой, которая позволяет не думать об тонкостях реализации, позволяет не тратить кучу времени на тупое написание кода. Я вообще не понимаю, как этот факт может быть не очевиден для стольких людей, и ведь они будут оспаривать это до конца своей жизни с пеной у рта, пока другие будут спокойно заниматься делом, решать проблемы, двигать прогресс и науку. :)

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

> Да-да, информация неприятна такая, поэтому ссылочку найти не получается.

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

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

Можно было бы и соседнюю ссылочку дать:

В phpMyAdmin 3.3.10.3 и 3.4.3.2 устранены четыре опасные уязвимости (1,2,3, 4), две из которых позволяют осуществить включение произвольного файла через PHP-функцию include в коде phpMyAdmin, одна ошибка позволяет совершить XSS-атаку и еще одна дает возможность переопределить сессионные переменные;

В системе управления контентом TYPO3 4.3.12, 4.4.9 и 4.5.4 исправлено 11 уязвимостей, позволяющих обойти ограничения безопасности, осуществить подстановку JavaScript-кода на страницы, получить доступ к закрытой информации (прочитать любые данных из СУБД) и удалить произвольные файлы.

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

bzr/lp написан криворукими макаками, а вот (из питоновских) ртуть весьма таки годная вещь

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

или вот эту:

http://www.opennet.ru/opennews/art.shtml?num=31377

В сети зафиксировано массовое поражение интернет-магазинов, построенных на базе свободной платформы osCommerce. События развиваются достаточно интенсивно, если 24 июля используя Google было выявлено около 90 тысяч страниц, содержащих вредоносные вставки, то 31 июля пораженных страниц было уже 3.8 миллиона, а 3 августа - 6.3 миллионов.

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

Другая угроза касается публикации информации об уязвимости в популярном дополнении Timthumb.php, используемом для изменения размера фотографий во многих визуальных темах к WordPress. Все темы WordPress, в состав которых входит Timthumb.php, подвержены опасной уязвимости, позволяющей злоумышленнику запустить свой PHP-код на сервере.

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

И что? Рабочие моменты, не более того, и при 76.8% вполне имеют право быть, чего не скажешь о 0.2%. Правда в контексте 0.2% сразу же вспоминается анекдот о Неуловимом Джо.

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

>>>> Поэтому питон может быть проглочен перлом, но не наоборот. На перле можно наколбасить модуль которы вытеснит питон и при этом не потребуется расширять концепт языка Perl5. А питон не сможет охватить весь спект перла не расширяя концепцию

Брат-анонимус впал в маразм и философию.

Почему Вы не отвечаете в пределах тематики обсуждения а уходите в обобщения и нападаете на личность?

Это я от темы ухожу? Это я начал рассуждать о гипотетических модулях для Perl, «поглощающих» Python? Посмотри на популярность (а стало быть, и востребованность) Python, и скажи, почему тогда это не было сделано за всё время существования Perl? От анонимусов ЛОРа я не жду метафизических реплик, либо пиши по делу, кратко и чётко, либо расписывайся в сливе.

Привет!

Привет. А че это Вы выдрали мой абзац из контекста. Кажется что Вы чрезмерно узко мыслите и однолинейно (вероятно ваш успех и гордость - это решения в одной функции main работающих в одном потоке; вероятно). Повторяю для вас, но уже с [на/у]пором на расширенное осзнание происходящего.

Итак, некто true_admin написал: «Если в этом приложении поменять перл и питон местами то ничего не изменится.». В ответ на это Я привел вариант с поглощением языка, при этом Я разделил одну линейную итоговую мысль и разложил ее в два предложения: «Поэтому питон может быть проглочен перлом, но не наоборот. На перле можно наколбасить модуль которы вытеснит питон и при этом не потребуется расширять концепт языка Perl5. А питон не сможет охватить весь спект перла не расширяя концепцию». Разделил мысль осознанно чтобы сделать упор на них, дабы дать понять людям что коцепт питона более ограничен чем перла. Еще раз повторяю: «Питон не такой гибкий как Перл, так как концепция языка уже. Если начнете раскладывать С и С++ то найдете узкие места в С++ и невозможность построения нужного кода. В С++ вы будете вынуждены искать альтернативные варианты решения задачи даже если будете писать через namespace-обертки и дружественные функции.»

Но вы конечно же этого всего не поняли - или не захотели понять? Может попросту у Вас низкий уровень развития интеллекта чтобы понимать неявные (хотя в моем ответе оно не такое уж и неявное) течения? Ну неважно. Это же предмет Вашей гордости :).

Вы мне пишете о популярности и пытаетесь притянуть историю развития в качестве контраргумента. Отвечу: «Пшел на#^W^W Я бы на вашем месте промолчал, муда#^Wневежа» :)

От анонимусов ЛОРа я не жду метафизических реплик, либо пиши по делу, кратко и чётко, либо расписывайся в сливе.

Пишу про делу. До Вас не дошло. ???

P.S.: Анон, пиши исчо..

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

ну, нельзя отрицать что для аудитории по крайней мере четырех дистров надо тянуть дополнительную зависимость. А нафиг надо? Разве нельзя было обойтись без нее?

А еще qt блин...

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

neuron

С ходу, Вам потребуется: Найти и собрать библиотеки для работы с изображениями, для сохранения и загрузки изображений в/из файл(а). Потребуется написать средство для визуализации, если надоело сохранять/загружать в файл. Потребуется написать функции для расчёта статистики по изображению, Потребуется думать об указателях на указатели на указатели, потребуется думать о управлении памятью, потребуется каждый раз ждать компиляции и т.д. Всё, что было нужно - это разработать алгоритм, разработать, а не реализовать, разницу чувствуете? А если Вы используете Python, всё, что Вам потребуется - это IPython, scipay, numpy, matplotlib, возможно PIL и ваш мозг, который думает над задачей, а не над инструментом.

Специально для Ъ не читающего тред: 1. Проблема не в скорости разработке, а в эффективности работы продукта. Нафиг не нужен никому продукт который будет хз сколько работать и жрать ресурсов столько же. 2. Специально для Вас как для школьника недоучки: РАЗРАБАТЫВАЮТСЯ алгоритмы не за Си и не за Питоном, а на бумажке/любом другом предназначенном для этого инструменте. И после того как алгоритм разработали и посчитали риски, после этого приступают к реализации на конкретном языке программирования(причем кодер и разработчик алгоритма в 90% разные люди). На этом этапе скорость реализации(кодинга) практически одинакова. И если вдруг на этапе реализации вылазят боком изъяны алгоритма, алгоритм правится опять таки на бумажке, а не в реализацию добавляют на ходу костыли. Так что все ваши споры по поводу удобства кодинга ломаного гроша не стоят, ибо кодить сначала нужно самому научится, а потом учить других. Нет, я понимаю, учителей толковых мало, но трахать баб как-то научились без учителей,курсов и пр., правда?

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

Уважаемый, это вы тред невнимательно читаете. Всё, что вы тут написали давно известно, и никто с этим не спорит. Никто не говорит, что надо выпускать продукт на Python, когда можно реализовать разработанный алгоритм на более оптимальном языке. Никто не говорит, что нужно пихать костыли в конечную реализацию. Всё, что вы написали про «разрабатывается на бумажке» так и есть, но использование Python на этапе разработки и прототипирования этому никак не вредит и не мешает. Python - это инструмент, удобный рабочий инструмент, который нужно использовать по назначению. Как раз крики о том, что его нужно закопать ничего не стоят, это просто глупость, троллинг и т.п. с аргументами вроде «жрёт ресурсы», «медленный», «отступы дурацкие» и в том же духе.

neuron
() автор топика
Ответ на: комментарий от FeyFre

> Нафиг не нужен никому продукт который будет хз сколько работать и жрать ресурсов столько же.

Сколько работать и сколько ресурсов?

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

Уважаемый, это вы тред невнимательно читаете. Всё, что вы тут написали давно известно, и никто с этим не спорит.

Предложение разрабатывать алгоритм на Питоне - спорит. Меня бы за такое со школы выгнали бы. Прототипированием тоже нужно заниматься на бумажке. ЯП - один из последних этапов разработки. А в теорию «закопать» я обычно не играюсь.

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

> Предложение разрабатывать алгоритм на Питоне - спорит. Меня бы за такое со школы выгнали бы. Прототипированием тоже нужно заниматься на бумажке. ЯП - один из последних этапов разработки. А в теорию «закопать» я обычно не играюсь.

Ля, прототипированием - здесь не тру, зач0тно - моделированием. Моделируют в среде для моделирвания. Моделировать на бумажеке - означает что бумажка - среда моделированиея. Упс, внезапно фейл. Ржунимагу. Ухожу.

P.S.: Шучу.

P.P.S.:Смысл послания понял. Респект. Однако нет достойных сред моделирования. Костыли вроде uml и адаптированные редакторы не стАкАются с бубнами.

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

> Ужас. Скоро баш будет хранить историю в sqlite.

sqlite был сделан, чтобы заменить fopen, а не oracle или mysql. Поэтому использование его в качестве логохранилок вполне себе обосновано. Облегчает выборку и поиск.

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

> Только компилируемые языки - тру.

Опять чел путает инструмент, задачу и реализацию идеи. Если есть интерпретатор С/С++ - значит С/С++ уже не тру? А если кто сделает компиляцию программы на языке, так язык уже сразу тру (те же кларионы и прочие языки, которые вбивали интерпретатор в ехешник)?

Язык необходим для выражения идеи. Есть универсалы вроде С++, питона, а есть узкоспециализированные вроде С, жабы (хотя и в жабу уже суют функциональное программирование).

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

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

> гента вообще не в счет, потому что это не дистр.

А что в вашем понимании характеризует дистр? Почему слака дистр, а гента нет?

А в генте то и не знают, что их за дистр не считает передовое сообщество.

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

> Почему Вы не отвечаете в пределах тематики обсуждения а уходите в обобщения и нападаете на личность?

Вообще странно это слышать/читать от анонимуса %)). Нету у анонима личности по-определению.

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