Pull to refresh
80
0
asdfasdfasdf@itforge

User

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

> 'foo' + 1
«foo1»

Обычное приведение типов в javascript :) Хорошо хоть такое в python не работает.

Вот ещё про обычное приведение типов :) www.destroyallsoftware.com/talks/wat
Ясно, разговора к сожалению не получится, т.к. я не знаю java :)
А концепция yield мне нравится, да.
Мне не нравится такое поведение из коробки:

>>> 0.5 > True
False
>>> 2 > True
True
>>> 'foo' > 2
True
>>> 'foo' > 2000
True

Т.е. вместо ошибки я получаю какие-то загадочные ответы :) Ну True/False я, кажется, знаю почему так ведут себя т.к. они как-то из int типа сделаны и соотвествуют 1 и 0 числовым значения. Но это не отменяет того факта, что я бы просто Exception хотел видеть в этом месте.
Ну в той же java, насколько я знаю, это всё есть.

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

Замыкания редко использую, можно сказать, они мне не нужны.

> list/dict comprehension
Ну это вообще синтаксический сахар (как и декораторы в @ запиcи)
Пишу на python с 2007 года. Начинаю уже уставать понемногу от его супер-пупер гибкости. Подумываю что-нить более строгое изучить типа java.
Так можно через браузер микроядро залить, а оно уже потом утянет всё что надо спокойненько.
Тоже использую awesome уже как несколько лет. До этого пыталась юзать xmonad, у awesome оказалось несколько весомым плюсов:
+ корректно отображает заголовки окон с русским текстом
+ содержит встроенный плагин для отображения систрея
+ lua-конфиг более понятен, чем мозгодробительный haskell
+ ну и стандартные плюсы titling window мэнеджеров: экономит место на экране за счёт отсуствующих заголовков и бордюров окон, а также нетребователен к системным ресурсам.

Саму тайловость практически не использую т.к. удобно каждому приложению отводить всю область рабочего стола

Автозапуск сделан у меня через .xinitrc:
xbindkeys &
syndaemon -i 0.5 -d &
wmname LG3D
xset r rate 200 50
setxkbmap us,ru -option grp:caps_togglegrp_led:caps

$(sleep 1;rxvt) &
$(sleep 3; google-chrome) &
$(sleep 3; xsetroot -solid black) &
$(sleep 7; gajim) &
$(sleep 11; skype) &
$(sleep 15; /home/lorien/.dropbox-dist/dropboxd) &
$(sleep 20; wicd-client) &

awesome



В конфиге awesome почти не менял ничего. Основное изменение — настройка автоматического раскладывания программ по нужным столам:

-- {{{ Rules
awful.rules.rules = {
    -- All clients will match this rule.
    { rule = { },
      properties = { border_width = beautiful.border_width,
                     border_color = beautiful.border_normal,
                     focus = true,
                     keys = clientkeys,
                     buttons = clientbuttons } },
    { rule = { class = "MPlayer" },
      properties = { floating = true } },
    { rule = { class = "pinentry" },
      properties = { floating = true } },
    { rule = { class = "gimp" },
      properties = { floating = true } },
    { rule = { class = "Firefox" },
      properties = { tag = tags[1][7] } },
    { rule = { class = "Iceweasel" },
      properties = { tag = tags[1][7] } },
    { rule = { class = "Google-chrome" },
      properties = { tag = tags[1][2] } },
    --{ rule = { class = "Opera" },
      --properties = { tag = tags[1][2] } },
    --{ rule = { class = "Iceweasel" },
      --properties = { tag = tags[1][2] } },
    { rule = { class = "Pidgin" },
      properties = { tag = tags[1][3] } },
    { rule = { class = "Skype" },
      properties = { tag = tags[1][4] } },
    { rule = { class = "Gajim" },
      properties = { tag = tags[1][3] } },
    -- Set Firefox to always map on tags number 2 of screen 1.
    -- { rule = { class = "Firefox" },
    --   properties = { tag = tags[1][2] } },
}
-- }}}

Что такое самоуверенный проект? Почему это словосочетание встречается в статье несколько раз? Где названия и адреса репозиториев этих самоуверенных проектов?
Там, на самом деле много багов. По мере их появления, устраняю. Сейчас ещё на каждый баг тест пишу.
Видимо, вам некомфортно от того, что граб делает что-то там сам, а когда вы видите голый curl, то это даёт вам ощущение контроля.
Не, чтобы с моей библиотекой разобраться, желательно знать lxml, иначе будут некоторые вещи непонятны. Я вообще придерживаюсь мнения, что фреймворки лучше начинать использовать после освоения вещей, лежащих в их основе.

> У вас, если не ошибаюсь, дополнительного функционала особо и нету, только оболочка над существующим?

Дополнительного функционала достаточно много, вплоть до работы с антикапча-сервисами.

Вы там пишите

>Обернем все что получилось в функцию, в итоге у нас получилось

Потом вам захочется прикрутить прокси, задавать рефереры и юзерагенты с помощью аргумента, смотреть куки. Вот так и получился Grab :o)
Спасибо, приму к сведению.
Я говорил именно про самый простой способ. Практика показала, что прокси лист из пары сотен серверов позволяет без проблем парсить некоторое количество запросов.

Анонимайзеры неудобны тем, что надо менять логику работы программы (формировать URL анонимайзера, отслеживать ошибки анонимайзеров, анонимайзеры часто глючат или сами находятся в бане у поисковой системы)

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

Партнёров не пробовал, тоже думаю не всё там гладко может быть, как минимум, точно также могут банить. Вы пробовали партнёров парсить? Какие объёмы парсили?

Парсинг поисковой системы через прокси удобен своей простой и понятной моделью. Работаем напрямую с поисковой системой без посредников. При увеличении объёмов запросов увеличиваем объём прокси серверов.

> и т.д.
Что ещё?
Самый простой способ — использование множества прокси-серверов.
Вместо связки голых pycurl и lxml рекомендую использовать Grab: grablib.org — это по сути и есть связки pycurl и lxml с приятным интерфейсом.
Я говорю, что в википедии написано, что на диске не одна песня, а несколько. Смотрите плейлист в комментарии чуть ниже.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity