This site

What makes this site

  1. Backbone

    1. Python 3

      I just wish to keep up with the progress.

    2. nginx + uWSGI

      I use two-tier web service architecture on my host. The front end tier is represented by nginx − lightweight multithreaded web server. It is connected with back end (application) tier (uWSGI) and acts as a reverse proxy for the latter.

      While nginx is configured system-wide, uWSGI is just a Python package, installed in virtual environment with pip. It can be configured, upgraded or restarted by the developer or through the mechanism of a scripted deployment, thus eliminating the need to elevate privileges or call system operator. Also this architecture makes it possible to use different versions of Python on a single host.

    3. supervisor

      supervisor is responsible to firestart all application-related things and keep them up 24/7. My project is relatively simple: it consists only of uWSGI and a scheduler on application side.

      In fact I am planning to replace supervisor with systemd units. It will save me a bit of RAM.

    4. Celery

      I use Celery tasks for reposting my local entries to my old blog at LiveJournal, and for handling email subscriptions. Another task, scheduled with Celery beat, updates Haystack search indices.

  2. Framework

    1. Django 1.8 (LTS)
    2. django-grappelli

      A gulp of fresh air when using Django admin panel.

  3. Authentication and security

    1. contrib.auth

      Standard Django database authentication, complete with django-user-accounts component.

    2. python-social-auth

      As far the ultimate solution for social authentication. Look at its Django example project when building your own login page.

    3. Google reCAPTCHA

      I use it for letting my visitors comment anonymously. Thanks to django-recaptcha.

    4. bleach

      Mozilla’s bleach is a powerful library for sanitizing HTML input. I use it to display comments in blog. What django-bleach added to it are template tags and configurability through Django

  4. Internationalization

    1. django-modeltranslation

      This component makes your database content multilingual while keeping your unaltered.

      The translation of the custom models is practically a no-brainer, but it might get a little trickier with built-in Django models or third-party models. But I did manage to translate flat pages, site tree and comments.

    2. django-rosetta

      This is a pluggable utility for translating gettext data right on your site. Very useful but still optional.

  5. Navigation

    1. django-sitetree

      This is a brilliant component, although it have some learning curve. It offers a great help in ogranizing navigation menus, page titles, and breadcrumbs.

  6. Search

    1. haystack

      I created a different search index for each language on site.

    2. Whoosh

      This enginge may lack scalability and all, but it’s a pure-Python package and thus super-easy to install.

      I slightly altered search engine for Russian language to let whoosh utilize Russian stemming.

  7. Content management

    1. text-blocks

      This simple app of mine provides the means of editing portions of text through Django admin panel without the need of modifying the related templates. Translatable, but not yet searchable.

    2. contrib.flatpages
    3. contrib.comments

      Once comments was Django built-in feature, but since 1.7 it has become an external component: django-contrib-comments.

      I have customized its model with django-mptt to make comments threaded.

    4. blog
      • “Last posts” widget

        Nothing special really.

      • calendar widget

        I have built this app around nice-looking and practical Zabuto Calendar JavaScript widget.

    5. TinyMCE

      There are two JavaScript WYSIWYG editors, both popular and powerful: TinyMCE and CKEditor. I have chosen the former for this project, considering its first-class support in Grappelli through django-tinymce component.

    6. django-filebrowser

      django-filebrowser is a Grappelli extension that allow users to manage uploaded files. django-filebrowser can also be used as a media browser in TinyMCE, considering django-tinymce and django-tinymce-filebrowser components are installed.

      This four-component bundle looks fragile, but it worked for my project right out of the box, but with one notable exception: I had to freeze django-tinymce version on 2.0.4 because of import problem.

  8. Frontend

    1. Bootstrap 3

      Being a full-stack web developer by necessity, I’m not a visual-thinking type of guy and prefer to cut my tinkering with site frontend to a very mininum. That’s why I take Twitter Bootstrap as a salvation.

      This time I went even further and made my site a whole lot of appearance without writing a single line of CSS or JavaScript. All with the help of the following components:

    2. sorl-thumbnail
    3. AJAX
      • Django REST Framework

        By now DRF is used only for submitting comments, but I forsee a great future use for it.

What this site is lacking

  1. Comment editing for the registered users
  2. What do you suggest?


Last posts


Posted 4 years, 7 months ago

It’s story of people’s struggle against the flooding river and the indifference of authorities. On the wild desolate island, that’s just across a narrow river branch from my home city.




It’s not OK with Wayland

Posted 4 years, 7 months ago

Some time ago I was began to experience one strange floating bug among the components of my working environment. The bug was really nasty, so that I could not pinpoint ...