четверг, 14 января 2010 г.

Спагетти-код

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

Общая структура системы, возможно, никогда не была четко определена.

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


Брайан Фут и Джозеф Йодер, Большой шар грязи. Четвертая конференция по шаблонам языков программ (PLoP '97 / EuroPLoP '97) Монтичелло, Иллинойс, сентябрь 1997 г.

понедельник, 12 октября 2009 г.

Ubuntu - Python Twisted

Из-за дефицита памяти на рабочем компе пришлось заменить Fedora на Ubuntu. При установке стандартного набора прог на этапе установки Twisted вылетела ошибка Python.h: No such file or directory Пролема была решена быстро установкой пакета с загаловками для разработки на Питоне

sudo apt-get install python-dev

пятница, 2 октября 2009 г.

Реализация Pretty URLs в Wordpress

Удобные шпоры по JQuery

jQuery Visual Cheat Sheet (by WOORK)

Compas - css-framework



Недавно в очередном рейде по web-ресурсам наткнулся на забавный инструмент для верстки.
Css-фреймворк Compas. Зверь представляет из себя консольный инструмент написанный на Ruby. Инструмент обрабатывает специальные файлы, где верстальщик описывает стили на специальном языке Sass. Говорить о каком-то полноценном CSS OOP не приходится, скорее имеет место иерархическое описание с наследованием, объявлением переменных, вычисляемыми значениями и еще некоторыми прелестями. Потом Ruby-инструмент превращает или переводит этот файл в традиционный файл css. Мысли прагамтика: ЗА - инструмент может реально сократить время верстки, ПРОТИВ - инструмент явно не тяготеет к экономии записей, он не знает о коротких записях стилей, а в случае наследования, насколько я заметил, тупо будет прописывать у всех наследников требующиеся значения. На самом деле "против" скорее говорит не о слабостях инструмента, а о необходимости верстальщика больше работать головой и думать стоит ли плодить сущности.

P.S. Инструмент удачно стыкуется с другим фреймворком Blueprint

пятница, 19 июня 2009 г.

Устанавливаем PIL

Установка PIL на CentOS тоже оказалось не простым занятием, почему-то не нашлось необходимых кодеков для JPEG. Из-за этого поле ImageField не переваривало jpeg-овские файлы.

Для начала easy_install pil ничего кроме "увы" не дало. Больший успех дало:
#~: easy_install --find-links http://www.pythonware.com/products/pil/ Imaging

Однако после инсталляции Django все равно pil не находил. Скачал исходный архив pil. Попробовал отсетапить.
Проблема с jpeg кодеком не рещилась не хватало библиотек. Если вы уже отбильдили - первое - удалите бильд.
Разахивируйте заново и дальше по шагам

yum install freetype freetype-devel jpeg jpeg-devel libpng libpng-devel

cd Imaging-1.1.6

В setup.py прописываем пути к jpeg библиотекам.

python setup.py build_ext -i

python selftest.py

python setup.py install

четверг, 18 июня 2009 г.

Маунтим ресурс на Samba

По тем или иным причинам бывает необходимо подмаунтить на свою систему папку с расшаренного ресурса Samba. Возможно это ваш девелоперский сервак c вашей пакой чекаута и каждый день вводить команду крайне утомительно. Открываем /etc/fstab и вводим туда следующую строчку.

//resorce/folder /your/machine/folder cifs uid=502,gid=504,credentials=/your/home/dir/.mysmbcredentials,dir_mode=0777,file_mode=0777 0 0

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

Возможно в другом рецепте вместо сетевой системы cifs вы увидете smbfs. smbfs считается устаревшим о чем скорее всего система вам напомнит сообщением вроде smbfs deprecated.

Последнишаг создаем в совей домашней директории тот самы файл для идентификации и просто вписываем:

username=ваш_логин_к_самба_ресурсу
password=ваш_пароль_к_самба_ресурсу

Перезапускаем и получаем удовольтсвие.

Linux: генерация рандомной строки для пароля

 cat /dev/urandom | tr -dc '[:alnum:]' | fold -w ${1:-20} | head -n 1