четверг, 25 марта 2010 г.

Код, который печатает себя на python

Когда-то мой друг задал мне задачку: написать код, который печатает себя, но без использования печати текста из файла. Результат получился следующий:
#!/usr/bin/python
body= ['#!/usr/bin/python', '#', 'for line in body:', '   if line == "#": print "body=",body', '   else: print line']
for line in body:
   if line == "#": print "body=",body
   else: print line

При запуске скрипта на экран выводится точно такой же код, как видно в листинге выше

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

вторник, 23 марта 2010 г.

Школа Яндекса - школа анализа данных

Наверное в жизни любого разработчика, да что говорить, простого человека, возникают моменты, когда необходимо проанализировать определенный объем данных. Это могут быть финансовые данные или отчеты, сравнение товаров перед покупкой. Перечислять можно долго. В какие-то моменты мы делаем оценку неосознанно, в какие-то - основываясь на собственном опыте или просто по тому, что мы считаем, что так будет лучше. У каждого свой подход. К сожалению трудно сказать, что данная оценка будет правильной. Я стараюсь следовать принципу: в случае неоднозначности сопротивляйтесь искушению угадать. Наверное именно этот принцип и привел меня на страницу школы анализа данных, которую основала компания Яндекс.

понедельник, 22 марта 2010 г.

rss2sqlite или как собирать RSS грибы

В прошлом посте я затронул тему сбора данных в интернет. Интернет - достаточно обширное и разноплановое хранилище знаний. Одним из подходов сбора данных в нем является определение, что потоки данных могут разделятся форматами представления. Самый известный и наиболее часто используемый формат - это HTML. Другие не менее известные и часто используемые - RSS и Atom. Благодаря структурированной форме представления последних, а также наличию мета-информации мы можем относительно легко выполнять сбор этих данных. Одной из простейших утилит, которые могут помочь в решении данного вопроса, является python скрипт rss2sqlite.py

среда, 17 марта 2010 г.

Конференции в интернет

На прошлой неделе Marketing Media Review проводили онлайн-конференцию с Дмитрием Шоломко. Когда появился ее анонс у меня возникло небольшое непонимание того, в каком формате будет проходить данная конференция. Но спасибо @tarasmi прояснил ситуацию: формат данной конференции предполагал публикацию поста, в комментариях которого, любой человек может задать свой вопрос. В указанное время гость конференции отвечал на заданные ранее вопросы.

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

среда, 10 марта 2010 г.

UrlFetcher или как собирать данные в Интернет

Мне кажется, что каждый человек, который уже достаточно давно знаком с Интернетом сталкивался с ситуацией, когда нужно периодически просматривать информацию на какой-либо странице. Хорошим примером может быть просмотр странички с прогнозом погоды за неделю до отпуска.

Скрипт UrlFetcher о котором я хочу рассказать представляет собой небольшое консольное приложение, которое загружает HTML страницы (без изображений, таблиц стилей, внешних JavaScript-ов и т.д. и т.п.) и заносит их содержимое в базу данных. В случае, если контрольная сумма страницы при загрузке не соответствует значению, сохраненному ранее в базе данных, - данные обновляются (таблица url_data), а старые данные переносятся в журнал (таблица journal). В качестве базы данных используется sqlite3 (http://www.sqlite.org/), поддержка которой включена в python начиная с версии 2.5. Установка дополнительных модулей не требуется, достаточно лишь наличие установленного python версии 2.5 и выше.

вторник, 9 марта 2010 г.

Бизнес подход Google

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

понедельник, 8 марта 2010 г.

Проверка типа (тесты производительности) на python

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

воскресенье, 7 марта 2010 г.

Web Media Library для сетевых ОС

С появлением Google Chrome OS, а вернее с началом ее разработки на форумах возникали вопросы о добавления возможности по управлению файлами, расположенными локально на компьютере. До настоящего времени этот вопрос так и остается открытым и не понятно будет он решаться или нет. Причина проста - Chrome OS позиционируется как сетевая операционная система, ориентированная прежде всего на работу с сетью. Сама идея Chrome OS мне очень интересна, но возникает вполне естественный вопрос: если установка Chrome OS планируется на нетбуки, что делать с жестким диском? Большинство моделей (если уже не все) комплектуются достаточно емкими жестким дисками. Что же делать со всеми этими гигабайтами?

четверг, 4 марта 2010 г.

Информация в блогах

Последнее время блоги приобрели невероятную популярность. Наверное их не ведут только ленивые. Огромное количество блогов и невероятное количество информации в них вызывает растерянность. Как же не утонуть в этом океане с одной стороны знаний, с другой - бесполезности. Прим.: второго как всегда больше. Разбирать посты вручную звучит как-то нелепо для 21 века. Особенно, когда динамика появления новых постов превышает более 100 в день. Мне всегда было интересно рассмотреть вопрос с той точки зрения, если бы обработкой блогов занимался компьютер, и выдавал наиболее интересные темы согласно предпочтений пользователя.