Django'вський Денвер

http://bitnami.org/stack/djangostack
Теж для новачків буде корисно

Django Інтернет-магазини

http://www.satchmoproject.com/
http://www.getlfs.com/

Мені колись довелось розбиратись з CreLoaded, то це був просто жах. Все розкидано по різних папках, в бізнес-логіці купа HTML-коду, брррр... Але загалом розібрався :)

Щодо магазинів, які написані на хороших фреймворках, то тут набагато приємніше в них ковирятись. Буде більше часу, розберусь з цими, напишу свої враження.

Організація коду в Django

Дуже раджу почитати, особливо початківцям.
http://pyobject.ru/blog/2006/09/11/django-code-layout/

матюки в коді

Эндрю Воз (Andrew Vos) провел интересное исследование, заключающееся в анализе частоты использования ненормативной лексики, грубых выражений и ругательств в текстах примечаний к Git-коммитам на GitHub, в привязке к различным языкам программирования. Всего было проанализировано около миллиона коммитов, в которых было выявлено 210 ругательных слов. Лидируют по числу ругательств C++, JavaScript и Ruby.


по наводці Frulik'a

robots.txt в Django


### urls.py
from django.views.generic.simple import direct_to_template


#...
url(r'^robots\.txt$', direct_to_template, {'template': 'robots.txt'},)
#...


і в каталог з темплейтами кладемо robots.txt

Створення Django форм прямо з адмінки



http://formunculous.org/

пакетна нормалізація звуку в avi файлах

Є старий DVD-плеєр в публічному місці, який не має функції shuffle (випадкового програвання файлів з плей-ліста), крім того, старі відео-файли мають різний рівень звуку, що створює певні незручності.
Погуглив віндові рішення, але нічого толкового і безкоштовного не знайшов. Тож лінукс виручає, як завжди.


#!/bin/bash

IN_DIR="music_in"
OUT_DIR="music_out"

for i in `ls $IN_DIR`; do
##### extract MP3 file
ffmpeg -i $IN_DIR/$i $OUT_DIR/$i.mp3
##### normalize MP3 file
normalize -m -v $OUT_DIR/$i.mp3
##### remove MP3 from AVI
ffmpeg -i $IN_DIR/$i -vcodec copy -an $OUT_DIR/$i.avi
##### merge AVI and new normalized MP3
ffmpeg -i $OUT_DIR/$i.avi \
-i $OUT_DIR/$i.mp3 \
-vcodec copy \
-acodec copy \
$OUT_DIR/$i.new.avi
##### remove temp files
rm -f $OUT_DIR/$i.mp3
rm -f $OUT_DIR/$i.avi
##### change filename to random
mv $OUT_DIR/$i.new.avi $OUT_DIR/$RANDOM.avi
done

xml парсер

Постачальник міняв в себе щось в бухглатерії і ексельовський прайс змінив формат, старі парсери перестали працювати. Конвертую ексель файл у xml-документ, далі формую потрібний файлик даних розділений табуляторами.

import xml.dom.minidom
from xml.dom.minidom import Node

f = open('out.txt','w')
doc = xml.dom.minidom.parse("Neo110217.xml")
Row = doc.getElementsByTagName ( 'Row' )
for rows in Row:
i = 0
buffer = []
for cell in rows.getElementsByTagName ( 'Cell' ):
for data in cell.getElementsByTagName ( 'Data' ):
if (data.firstChild):
buffer.append(data.firstChild.data.encode('utf-8'))
i += 1
if (i == 12):
j = 0
buffer.insert(5, '0')
buffer.insert(5, '0')
buffer.insert(9, '0')
buffer.insert(9, '0')
buffer.insert(13, '0')
buffer.insert(15, '0')
buffer.insert(17, '0')
for b in buffer:
f.write("%s\t" % b.strip())
j += 1
f.write("\n")