Яндекс не только крупнейшая поисковая система и интернет-портал. Эта компания вносит большой вклад в развитие технологий поиска, обработки и анализа больших объемов данных. Ими создана Школа анализа данных, проводятся презентации и семинары, на которых сотрудники компании делятся своими наработками. На сайте собрана достаточно большая подборка обзоров технологий и маркетинговых исследований.
Информационные бюллетени Яндекса
Картинки и цифры про Интернет
Научные статьи и отчеты
Выступления на прикладных индустриальных конференциях
Материалы Я.Субботников
Выступления и публикации
Курсы информационных технологий
среда, 29 июня 2011 г.
вторник, 28 июня 2011 г.
Поддержка различных HTTP методов
Согласно Wikipedia: “Основой HTTP является технология «клиент-сервер», то есть предполагается существование потребителей (клиентов), которые инициируют соединение и посылают запрос, и поставщиков (серверов), которые ожидают соединения для получения запроса, производят необходимые действия и возвращают обратно сообщение с результатом... Метод HTTP - последовательность из любых символов, кроме управляющих и разделителей, указывающая на основную операцию над ресурсом”. HTTP определяет 9 методов: HEAD, GET, POST, PUT, DELETE, TRACE, OPTIONS,CONNECT и PATH. Процесс UrlFetchGet из поста “Получение данных по URL” поддерживал только один метод - GET. Новый процесс снимает эти ограничения.
Теги:
fetch,
http,
pyflowctrl,
python,
url
понедельник, 27 июня 2011 г.
Извлекаем ссылки из HTML страницы
На основании ссылок строятся алгоритмы ранжирования, построены целые системы обмена трафиком, правила формирования URL положены в основе технологий взаимодействия систем. Умение работать с ссылками очень важно для работы с данными расположенными в Интернет. Расширим функциональность скрипта из прошлого поста, где рассматривался вопрос загрузки данных по URL - добавим возможность извлечения ссылок.
Теги:
extract,
html,
pyflowctrl,
python,
url
воскресенье, 26 июня 2011 г.
Получение данных по URL
В настоящее время работа с данными из Сети уже не просто удобная возможность, сейчас это то, что должно работать по умолчанию. В Сети находится огромное количество информации: анонсы фильмов, каталоги товаров, прогноз погоды и многое другое. Лишать себя этих благ было бы как-то не разумно. С учетом того, что большая часть информации находится на веб серверах, рассмотрим возможно загрузки данных из Сети по URL
Теги:
fetch,
pyflowctrl,
python,
url
суббота, 25 июня 2011 г.
Аарон Шварц (Aaron Swartz)
Не так много людей про которых можно сказать, что несмотря на смотря на свой достаточно молодой возраст сделали уже так много. Аарон родился в 8 ноября 1986 года. Писатель, активист, программист. Впервые о Аароне я узнал как о программисте, разработавшем web.py, фреймворк для веб приложений.
В 14 лет он стал соавтором спецификации RSS 1.0 и с тех пор является членом рабочей группы RDF. Он также является со-основателем Demand Progress и Progressive Change Campaign Committee. Совместно с Джоном Грубером разработал язык разметки Markdown. Был основателем Infogami, проекта, положенным в основе другого очень интересного проекта Open Library. Поступив в Стенфордский Университет, Аарон оставляет его, для того, чтобы посвятить время своему собственному проекту. В последствии проект Infogami сливается с проектом reddit
В 14 лет он стал соавтором спецификации RSS 1.0 и с тех пор является членом рабочей группы RDF. Он также является со-основателем Demand Progress и Progressive Change Campaign Committee. Совместно с Джоном Грубером разработал язык разметки Markdown. Был основателем Infogami, проекта, положенным в основе другого очень интересного проекта Open Library. Поступив в Стенфордский Университет, Аарон оставляет его, для того, чтобы посвятить время своему собственному проекту. В последствии проект Infogami сливается с проектом reddit
Теги:
people
пятница, 24 июня 2011 г.
Работа с текстовыми файлами
На практике довольно часто приходится работать с текстовыми файлами - это просмотр файлов конфигурации, обработка и анализ логов, статистических отчетов, файлов в CSV или TSV формате. Когда файлы небольшие, то их можно сразу загрузить в память и приступить к обработке. Для случаев, когда файлы имеют размер в несколько сотен мегабайт, рекомендуется выполнять последовательную обработку данных. Чтение порции данных, обработка, чтение новой ...
Теги:
file,
pyflowctrl,
python,
reader,
text
понедельник, 20 июня 2011 г.
Стандартные потоки
Достаточно много постов было посвящено работе ядра небольшой библиотеки pyflowctrl. Пришло время постепенно расширить ее возможности. А именно научить работать со стандартными потоками ввода-вывода: stdin, stdout, stderr. Про них так много написано, что вряд ли стоит что-либо добавлять. Остановимся лучше более подробно на трех классах, которые реализуют интерфейс к этим потокам.
Теги:
pyflowctrl,
python,
stderr,
stdin,
stdout
воскресенье, 19 июня 2011 г.
Вызов функции - какова цена?
Всего несколько постов назад поднимался вопрос производительности pyflowctrl. Тогда удалось увеличить производительность почти в два раза, путем оптимизации передачи значений между процессами. Но не смотря на это, если сравнивать результат работы с эталонным значением, отрыв достаточно велик: 0.68 секунд против 6.5 секунд. Стоит разобраться на что расходуется время выполнения.
Теги:
performance,
pyflowctrl,
python
суббота, 18 июня 2011 г.
pyflowctrl: изменение структуры репозитория
С ростом наработок по проекту старая структура репозитория была больше похожа на свалку файлов. Сейчас структура изменена: в корне по прежнему хранится корневая библиотека core2.py и профайлер. Потоки вынесены в директорию streams/, а примеры вынесены в отдельную директорию examples/. Ссылки во всех предыдущих постах изменены.
Репозиторий pyflowctrl
Репозиторий pyflowctrl
Теги:
pyflowctrl
Автоматическое добавление алиасов в профайлер
В предыдущем посте упоминалось о возможности добавления алиасов - соотвествие имени файла и номера строки кода, методу объекта. Для этого в Profiler.code_aliases передавался словарь алиасов. Данный словарь нужно было описывать вручную. Для упрощения данной задачи в профайлер добавлены два метода: get_aliases() и update_aliases()
Теги:
aliases,
profiler,
pyflowctrl,
python
пятница, 17 июня 2011 г.
Профайлер своими руками, так ли это сложно?
Профайлеры используются для сбора характеристик работы программы, такие как время выполнения определенных участков кода, количество вызовов функций и т.д. Для этих целей в базовую библиотеку python входит profile и cProfile. Первый, полностью написан на python, второй на C. cProfile рекомендуется как наиболее быстрый. Для случаев, когда нужно добавить дополнительный функционал в работу профайлера нужно использовать profile. Именно благодаря ему и появилась идея написания своего небольшого профайлера. Такая ли это сложная задача?
среда, 15 июня 2011 г.
python: сравнение времени выполнения datetime.now() и time.time()
В исходной задаче необходимо получать разницу между вызовами функций. Для минимизации влияния нужно определить какая из функций выполняется быстрее. Кандидаты: datetime.now() и time.time().
$ python -m timeit -n 1000000 -s 'from datetime import datetime' 'datetime.now()' 1000000 loops, best of 3: 4.3 usec per loop $ python -m timeit -n 1000000 -s 'import time' 'time.time()' 1000000 loops, best of 3: 1.27 usec per looptime.time() в выиграше
понедельник, 13 июня 2011 г.
pyflowctrl: простой поток логирования
В репозиторий pyflowctrl добавлен простой поток для логирования данных в стандартный поток ошибок (stderr). С появлением первого потока, отличного от стандартного Stream, изменилась структура файлов репозитории. Добавиласть диретория streams, в которой будут храниться потоки данных - классы, производные от стандартного Stream.
Теги:
console,
logging,
pyflowctrl,
python,
stderr
среда, 8 июня 2011 г.
Типизация данных на основе URI/URL
Как работать с данными внутри одной функции всегда понятно. Известно, что передается на вход, что передается на выход, каким образом осуществляется работа с переменными. Когда необходимо совместно использовать несколько функций или классов, важно понимать какие данные в каком формате должны быть переданы, что в результате получено. Работая над проектом pyflowctrl, вопрос взаимодействия с потоками данных, можно сказать, стал одним из основных.
Теги:
datatype,
pyflowctrl,
python
пятница, 3 июня 2011 г.
pyflowctrl: увеличение производительности
Изначально, при разработке концепции работы pyflowctrl вопрос производительности остро не стоял. Важно было проверить на практике, что сама по себе идея рабочая. Сейчас пришло время уделить больше внимания производительности, выявить узкие места, влияющих на время выполнения скриптов, использующих pyflowctrl.
В качестве эталона для сравнения воспользуемся простым кодом perfcheck.py, который выполняет те же действия, что и пример из поста “pyflowctrl: управление процессами в python”.
В качестве эталона для сравнения воспользуемся простым кодом perfcheck.py, который выполняет те же действия, что и пример из поста “pyflowctrl: управление процессами в python”.
Теги:
performance,
pyflowctrl,
python
Подписаться на:
Сообщения (Atom)













