Category Archives: Программирование и web

Все о программировании и web-разработке.

Отладка на Python: способы и фишки

Отладка – один из важных этапов разработки ПО. Есть много определений этого термина: начиная от “процесса нахождения ошибок на этапе разработки и их устранения”, до “убеждения, что алгоритм исполнения программы соответствует ожиданиям”.

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

def my_function():
    pass

то пройти по нему отладчиком даже необходимо и жизненно важно.

Continue reading

Python + saml

Если Вы используйте в своём проекте библиотеку python-saml и недоумеваете, почему во время отладки приложение умирает с segmentation fault – обновите lxml. В моём случае помогло обновление до версии 3.4.2.

SOAP-сервисы, Spyne и наследование Spyne-моделей

В проекте, который я разрабатываю, используется библиотека Spyne.

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

Continue reading

DjCelery и долгие задачи

Сегодня столкнулся с проблемой: часть задач отправлялась в celery, но не выполнялись, причем в rabbitmq-очередях была пустота – т.е. задачи были уже забраны в celery но не были выполнены, а в таблице celery_taskmeta эти задачи имели состояние PENDING.

Continue reading

Python, Spyne и lxml: PCDATA invalid Char value

Недавно столкнулся с проблемой – SOAP-сервис, работающий на Spyne, отдавал примерно такую ошибку:

<?xml version='1.0' encoding='UTF-8'?>
<senv:Envelope xmlns:senv="http://schemas.xmlsoap.org/soap/envelope/">
    <senv:Body>
        <senv:Fault>
            <faultcode>senv:Client.XMLSyntaxError</faultcode>
            <faultstring>PCDATA invalid Char value X, line Y, column Z</faultstring>
            <faultactor></faultactor>
        </senv:Fault>
    </senv:Body>
</senv:Envelope>

Continue reading

Производительность CSS-анимаций и переходов: под капотом браузера

Это перевод статьи из блогов Adobe.

Вероятно, Вы уже использовали CSS-анимации и переходы в своих проектах (а если ещё нет, то ознакомиться с ними Вы можете по ссылкам: animations, transitions). Так же, вероятно Вы сталкивались с тем, что некоторые из анимаций проходят плавно, а некоторые “идут рывками”. Есть идеи, почему?

В этой статье мы исследуем, как браузеры обрабатывают CSS-анимации и переходы, а в результате Вы сможете интуитивно (еще до написания кода) догадываться, в каких случаях анимация будет плавной, а в каких вместо плавной анимации будет “слайд-шоу”.

Continue reading