Задать вопрос
Ответы пользователя по тегу Программирование
  • Структура данных для поиска подходящих CSS-правил

    seriyPS
    @seriyPS
    Писать собственный рендерер, да ещё на питоне это хардкорно конечно. Я бы не решился.
    Мне кажется, для хранения правил CSS все же нужно непосредственно накладывать последовательно правила на DOM дерево без использования промежуточных хранилищ. Т.е. строим DOM дерево. Считываем последовательно правила из вашего CSS:
    a { display: block; font-size: 12pt; }
    div p.links a { color: green; display: inline; }
    

    и последовательно накладываем правила по селектору (перезаписывая конфликтующие правила, учитывая !important и пр). Получается, что при модификации дерева придется все правила прогонять заново.

    Код браузера можно попытаться тут: github.com/WebKit/webkit/tree/master/Source/WebCore/css поковырять, но там комментариев в коде нет, вряд-ли удастся что то понять =)
    Ответ написан
  • Лучший ЯП для парсинга веб-сайтов

    seriyPS
    @seriyPS
    У меня половина опыта работы — именно написание пауков и веб-парсеров.
    Писал их и на PHP + CURL, потом на голом питоне + треды.
    Потом узнал о Scrapy (асинхронный фреймворк для граббинга сайтов на Python) и на нём штук 5 независимых проектов реализовал, в том числе один, где нужно аггрегировать и периодически обновлять информацию с 20 различных форумов. Основная его проблема — он асинхронный, но однопоточный. Так что больше одного ядра им не нагрузить и долгий запрос к БД не сделать. А так очень хороший фреймворк.
    Потом несколько пауков делал на Python с помощью Celery.
    А совсем недавно переписал довольно сильно нагруженного паука (50-70Мбит/с через списки прокси) с Python + Celery на Erlang и понял, что это ОНО! Мало того, что стал работать в 2-3 раза быстрее, но понял, что для этой задачи что-то более подходящее сложно придумать.
    Поясню — у паука на Erlang можно без остановки процесса, например, изменить число потоков, обновить код, перезагрузить конфиги. Можно на ходу отпрофилировать код чтобы узнать, почему скорость упала или что так нагружает CPU. Можно совмещать зеленые потоки, асинхронную работу с сетью и долгие запросы к БД. И всё это фактически из коробки. В конце концов, код получается более логичный.
    Ответ написан
    3 комментария
  • Чем удовлетворяет вас ваша IDE?

    seriyPS
    @seriyPS
    А меня просто прет от Mylyn в Eclipse — это когда экспортируешь тикеты из редмайна и потом к каждому тикету привязывается свой контекст если упрощенно habrahabr.ru/blogs/eclipse/72632/
    Ответ написан
    Комментировать
  • На чем лучше и быстрее написать GUI приложение?

    seriyPS
    @seriyPS
    Не очень давно нечто подобное спрашивал На чем написать програмку?
    Ответ написан
    Комментировать