Django и Python

3033 3

Антиспам с вопросом для комментариев в Django

   Давно хотел победить спам, приходящий в комментарии на моём сайте. Беглый гуглопоиск выдал только варианты с Акисметом от Романа Ворушина, а также намеки на другие варианты с модерацией.

   Но так как Акисмет меня не впечатлил (не люблю прикручивать то что не контролирую полностью), пришлось смотреть в сторону написания своего приложения с комментариями. Ранее не хотел этого делать, поскольку считал изобретение велосипеда делом неправильным, но рост спама вынудил и я приступил к изучению Django documentation.

   Вот тут то меня и посетило прозрение. Оказывается я заблуждался в том, что для кастомизации комментариев придется полностью писать своё приложение. Это не так.

Читать далее
12567 18

Django галерея - проще некуда

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

    Открыв свою настольную книжку Django - Разработка веб-приложений на Python, внимательно изучив и "протопав" все шаги своими руками 0_о, понимаю, что книга безбожно отстает. Предложенное решение мне откровенно не нравится.

    В связи с этим начинаю обрабатывать полумёртвый код "напильником".

Далее код с краткими пояснениями
2327 2

Ошибка создания superuser в Django 1.4

При создании очередного проекта на Django 1.4, во время выполнения syncdb вылезла ошибка вида:

TypeError: decode() argument 1 must be string, not None

Погуглив на эту тему нашел совет выполнить перед запуском syncdb следующую команду:

export LANG="ru_RU.UTF-8"

Метод в моём случае помог (VDS Debian squeeze).

Причина как я понял скрывается в неспособности Python определить язык системы по умолчанию. Очень странно, поскольку ошибка появилась не сразу, первоначальные запуски syncdb проходили нормально.

 

3271 0

Почему и как Yandex использует Python и Django

   Не секрет, что в Яндексе активно используется Python и Django, но вот почему и как? Об этом рассказывает в своем докладе разработчик справочных сервисов Яндекса - Руслан Гроховецкий.

смотреть в отдельном окне
3607 2

Настраиваем оповещение о новых комментариях

    В продолжение заметки о стандартном приложении comments из коробки Django.

    С ростом количества комментариев может возникнуть ситуация, что стандартное оповещение перестанет удовлетворять и захочется более подробной информации с "доставкой на дом".

    Можно конечно воспользоваться возможностью создания своего приложения на основе стандартного, но зачастую затраты не оправдывают себя. А минимально "допилить" для получения максимума информации можно и стандартное comments.

Читать далее
3237 0

Генерируем sitemap.xml из Atom или RSS фида

    Недавно в процессе оформления и настройки блога Prosvetika.ru, столкнулся с бесплатным хостингом блогов под крылом Google - Blogger.com

    Довольно занимателный "конструктор" для блоггеров, но как всегда со своими тараканами и особенностями.

    Одной из них является отсутствие sitemap в формате xml. Для англоязычных блогов это не страшно, поскольку гугл с удовольствием съедает в качестве sitemap фид блога. Но для нас - рускоязычных, гугла мало, нам Яндекс подавай. А этот поисковик привередливый и фид кушать не желает.  Свои фиды он предлагает размещать в поиске по блогам.

    Погуглив на эту тему в интернете, я понял, что большинство продвинутых блоговодов выкладывают заранее сгенерированные sitemap.xml на сторонние хостигни и скармливают их через robots.txt нашему Яше. Это сколько полуручной работы!? о_0 
Мне как и любому нормальному человеку такой подход не по душе.

    Поэтому сел и сделал свой генератор sitemap.xml из Atom фида.

Читать как делал
3309 2

Ошибка 194: The syndication feed() view is deprecated.

    Открыв недавно лог ошибок Апача обнаружил его заполненным на 90% одной ошибкой:

194: DeprecationWarning: The syndication feed() view is deprecated. Please use the new class based view API.

    Если точнее, то это предупреждение. И о чем же оно мне сообщает?

Читать далее
4626 0

Подсветка кода в TinyMCE с помощью highlight

    Давно искал плагин TinyMCE для подсветки программного кода. Ничего подходящего, чтобы без php и только на javascript не нашел.

    Хотя конечно есть highlight.js, который на лету подкрашивает DOM элементы страницы. Но мне она не приглянулась. Всетаки при каждом просмотре мучать DOM не хочется.

    И вот наконец я наткнулся на заметку в которой описан метод скрещивания TiniMCE, SyntaxHL и highlight. Описанное решение у меня в django-админке не пошло. Но идея мне понравилась и я сел писать свой плагин.

 

Что из этого вышло, читайте далее
6003 0

Django подсчет количества просмотров

    Вот и закончились наконец выборы. Кто-то начал собирать вещички на ПМЖ, кто-то вспомнил про работу. Мне же события последних дней напомнили как я организовывал на сайте свои "маленькие выборы" - Рейтинг самых читаемых статей.


    Как и все организаторы выборов моей заботой стало качество подсчетов и неминуемость записи результатов. В итоге я отмел все сторонние предложения и решил заморочаться сам.


     Что из этого вышло видно на сайте. 
    Количество просмотров считается относительно точно, рейтинг статей по количеству прочтений опирается на количество просмотров.

Читать как это реализовано
3217 0

Обнаруживаем попытки брута ssh на VDS

    После запуска сайта на новом хостинге VDS, периодически мониторю нагрузки на сервер с помощью htop.

    Это аналог стандартного монитора процессов top. Выглядит так:

Монитор процессов unix htop

 

    По началу все было ровно и красиво, но в определенный момент начал "скакать" подозрительный процесс вида:

sshd: unknown [net]

    Процесс с завидной периодичностью появляется на доли секунды, сжирает 100% CPU и исчезает.

Что за процесс и как я сним боролся

Контактные данные

 Россия, г. Москва