Как правильно перемещать новую ветку на удаленный git репозитиорий и с него

Чтобы закинуть новую ветку на удаленный репозиторий:

git push origin newbranch

Чтобы забрать ветку, не забываем сделать 

git pull

а затем

git checkout -b newbranch origin/newbranch

CentOS ImageMagick

Много раз я брался инсталлить на своем серваке ImageMagick. Делал это через yum и погружался в долгие чтения репортов о вылетающих ошибках. Пока наконец не наткнулся на волшебную заметку.

Installing ImageMagick on a centos vps

Unfortunately installing imagemagick can cause some issues

If you get the message «Error: Missing Dependency: udev >= 089-1 is needed by package hal»

DO NOT INSTALL UDEV, udev is known to cause problems with deleting entries in /dev, instead you can install from source yum install make

wget ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick-6.4.0-9.tar.gz
tar xvfz ImageMagick-6.4.0-9.tar.gz
cd ImageMagick-6.4.0-9/
./configure && make && make install

М-да, сказал я себе, самый стабильный дистрибутив говоришь…. Хм. И заправив рубашку в трусы сел и проинсталли за 6 минут то, что не мог проинсталлить почти год.

Попутно при тесте выскочила ошибка

convert: error while loading shared libraries: libMagickCore.so.2: cannot open shared object file: No such file or directory

решил проблему добавив в /etc/profile

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

ZFConf 2010


Сегодня вернулся с конференции по Zend Framework из Питера, на которой был с Лёней Лукиным . О плюсах, на конференции присутствовал и делал доклад Александр Веремьев, одни из основных разработчиков фреймуорка. Хотя мы с Леней к стыду признаться, слегка не выспались (последствия подготовки в вагоне-ресторане Красной стрелы) и голос Саши немного убаюкивал, можно точно сказать, что Сашино участие и доклад о порядке добавления proposals удержали конференцию на уровне конференции.

Так же, на достаточно хорошем уровне прошел доклад Александра Махомета , создателя российского ресурса посвященного ZF. Доклад об оптимизации производительности Zend Framework. Посмешила школота с первых рядов натужно возмутившаяся некоторым выводам. «Как так, а великий Котеров говорил…». Кто он вам этот студибейкер? Дядя ваш? Ребят, мы программисты, а не члены политбюро. Тут авторитет данных выше любого человеческого авторитета. Человек предоставил вам конкретные данные, раскрыл условия, в которых они были получены. Вы не верите, организуйте свои исследования — опровергните. «А великий Котеров 10 000 лет назад писал…» , да поцелуйтесь вы со своим Котеровым. Дима. если ты это читаешь, извини 🙂

Местами мы с Леней расходимся в понравившихся докладах. Ему, например, понравился докладчик Е-штаба. Я же, хотя тема затронута важная, похвалить доклад не могу. Человек показал элементарное непонимание разницы между проблемами php и проблемами фреймуорка. Если человек плохо понимает элементарные моменты в php есть подозрение, что и в Python он тоже не преуспеет. Я работаю и с Django и ZF. У Python и PHP разные языковые парадигмы, ставить одному в укор какие-то моменты другого неуместно, тем более решать проблемы на уровне фреймуорка, а не языка. Чуть позже отпишусь по основным ошибкам «критики».

О смешном, список замечательных речевых оборотов:
фреймвёрк (германские корни видать),
мАйсикал (I want to ride my мАйсикал! Квины трепещите.),
пропосАлы (наверное это было своебразной подводкой к тому, что следующая конференция будет в Харькове)

З.Ы. Прошу рощения, впечатлений много, поэтому статью буду еще дописывать.

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

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

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

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

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

Ubuntu — Python Twisted

 

 

Из-за дефицита памяти на рабочем компе пришлось заменить Fedora на Ubuntu. При установке стандартного набора прог на этапе установки Twisted вылетела ошибка

Python.h: No such file or directory

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

sudo apt-get install python-dev

Compas — css-framework

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

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

Устанавливаем 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

Маунтим ресурс на 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=ваш_пароль_к_самба_ресурсу

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

Включаем InnoDb под Linux

Открываем /etc/my.cnf

Добавляем

[mysqld]
# InnoDB settings
innodb_data_home_dir = /var/lib/mysql/
innodb_data_file_path = ibdata1:100M:autoextend
set-variable = innodb_buffer_pool_size=100M
set-variable = innodb_additional_mem_pool_size=10M
innodb_flush_log_at_trx_commit=1

Убираем skip-innodb. Перезагружаем — пользуемся.