пятница, 18 июня 2010 г.

Патчим PIL под Windows

Сам я вот уже полтора года сижу на Linux, поэтому проблемы с виндовыми библиотеками как-то меня не особо касались.
Но, не так давно, взялся руководить одним студенческим проектом на Django, предложил на выбор: или ставить линукс (хотяб в виртуалку) или иметь сношения с зависимостями виндовых библиотек. С линуксом не так чтоб здорово, поэтому все выбрали 2-й вариант.
И вроде бы особых проблем не было, если не считать чуть более хитрую настройку всего зоопарка.
Но вот на днях "отвалилась" у них капча со словами: "The _imagingft C module is not installed", сами они разобраться не смогли, пришлось мне делать вскрытие.
Оказалось, что товарищи сборщики прописали левую зависимость в библиотеку. Пересобирать как-то совсем было лениво, поэтому просто взял Resource Hacker и вырезал следующий кусок
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b">
    </dependentAssembly>
  </dependency>
к чёртовой матери из _imagingft.pyd.

P.S. Обнаружил http://draft.blogger.com/, который более внятно работает с HTML (странно, что по дефолту стоит совсем кривой редактор)

пятница, 4 июня 2010 г.

Django In Depth от Джеймса Беннета

По-моему, отличнейшая презентация (и почему я на неё только вчера наткнулся?) :

суббота, 17 апреля 2010 г.

По следам...

Вспомнил, что начинал читать Pro Django, и решил продолжить это дело. И почти сразу нашёл пояснение к предыдущей проблеме с переменными в блоках DTL: контекст, передаваемый в шаблоны организован в виде стэка.
Оказалось, что и в официальных джанговских доках это тоже описано.
P.S. В комментах и в своём блоге alerion дал решение в прошлый раз (но до его блога я не добрался, а приведённый вариант был не до конца понятен).

вторник, 13 апреля 2010 г.

Продолжая тему нескольких портов

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

О портах в nginx

Потребовалось развернуть 2 разных инстанса сервера на джанго на одном и том же хосте, но на разных портах.
Django крутится в mod_wsgi за nginx.
На первый взгляд всё выглядело нормально, но сюрприз образовался, когда попытался я зайти в админку: после логина следовал редирект на сайт с дефолтным 80-м портом (хотя в админку я залезал по другому порту).
Вскрытие (спустя более часа разбирательств) показало, что во всём виноват проксирующий nginx, в котором была прописана директива "proxy_set_header Host $host:$server_port;". Всё легко разрешилось добавлением порта - "proxy_set_header Host $server_port;".

воскресенье, 11 апреля 2010 г.

Pip, о сколько в этом слове...

Что-то вот совсем понять не могу в чём проблема и как её диагностировать:
Через fabric создаётся новый virtualenv и в него устанавливаются все зависимости с помощью "pip install -r requirements.txt". Всё вроде бы хорошо, но иногда pip зависает на продолжительное время и весь процесс занимает десятки минут вместо стандартного времени менее минуты.

четверг, 8 апреля 2010 г.

И ты, брут?

Я был несколько удивлён узнав, что студия, сами знаете кого, тоже использует джанго.