Опубликованно Uralbash

Ошибка fatal error: stdlib.h: No such file or directory

Такая ошибка может возникнуть при компиляции программ на C++ в Linux. В моем случае это была библиотека на Qt.

Читать ...


Python инфографика

Последнее время крупные компании всё чаще выбирают Python для разных проектов. И правда, для многих задач Python имеет замечательные решения.

Читать ...


C# .Net Core для Linux

Благодаря популярности Java язык C# обрел ещё большую популярность, да так, что теперь доступен на Linux. Я конечно не испытываю симпатий к этим языкам и .Net стеку в целом, но OpenSource и доступность в Linux не может не радовать. Ниже рассмотрим пример как развернуть проект на .NET Core и отправить HTTP запрос.

Читать ...


Сборка пакета для Nix

Nix - замечательный пакетный менеджер, который работает на MacOS и любом дистрибутиве Linux, причем из-за своей функциональной чистоты и изоляции зависимостей, гарантировано выдает всегда одинаковый результат.

Читать ...


C++: Приведение Enum структур к общему виду в шаблонах

Задача - создать шаблонную функцию, в которой в зависимости от типа перечисления выбирается нужный индекс в контейнере vector. Попробуем решить задачу в лоб, создадим 3 перечисления и выберем нужный индекс в шаблоне.

Читать ...


Сборка libprotobuf под Windows

Сборка сей библиотеки из исходников под Windows не такая уж простая задача, как может показаться на первый взгляд. Ее можно осуществлять при помощи Visual Studio (cl.exe) или компилятора mingw.

Читать ...


Firebird Developmen Studio на Linux

Firebird - это опенсорс, версионная СУБД, с регистронезависимыми названиями таблиц и полей (как у Oracle), которая хранит каждую базу в одном отдельном файле (как sqlite, но требует наличия сервера, хотя бы embeded). Из минусов можно отметить довольно скудную систему типов, индексов и по сути отсутствие возможности горизонтального масштабирования. Также многие библиотеки, ОРМ и прочее игнорируют поддержку этой СУБД, однако FireBird сильно популярен (был?) на территории СНГ, поэтому довольно часто приходится с ним работать.

Читать ...


SETI@home в Docker

BOINC - платформа, которая позволяет выполнять добровольные вычисления для различных проектов. Изначально создавался для проекта SETI@home.

Читать ...


IronLogic Z-2 USB на Linux

Z-2 USB всеядный считыватель, который умеет работать на двух частотах 13,56 МГц и 125 кГц одновременно. Поддерживаемые форматы карт EM-Marine, HID ProxCard II, Mifare, Mifare Plus, Mifare-UL (чтение/запись), Temic (чтение/запись), Cotag (опционально).

Читать ...


Пропал доступ в Интернет в Docker контейнерах

Docker начиная с версии 1.10 и выше, перестал брать значение MTU от сетевого интерфейса. Теперь его нужно указывать явно:

Читать ...


NixOS

Здесь я буду собирать разные полезные ресурсы по ОС NixOS и пакетному менеджеру nix. Если вы, что то не нашли пишите в комментах.

Читать ...


gcc для C++11 из реп в CentOS6

C++11 в gcc появился, начиная с версии 4.7, но в CentOS6 естественно более старая версия без С++11. Как вариант, можно собрать из исходников, но я опишу способ установки из дополнительных реп.

Читать ...


Pyramid фреймворк

Здесь я буду собирать разные полезные ресурсы по фреймворку Pyramid. Если вы что то не нашли, пишите в комментах.

Читать ...


Установка python 3.5 в virtualenv

Все уже слышали про новый pyhton версии 3.5 (https://docs.python.org/3/whatsnew/3.5.html). Я постараюсь описать как начать им пользоваться в вашем виртуальном окружении.

Читать ...


Обновление до Go1.5

Для управления версиями я пользуюсь moovweb/gvm.

Читать ...


Vim (и не только) для reStructuredText

reStructuredText - очень удобная разметка, которая используется при написании документации (sphinx), README для гитхаба, битбакета, PyPi и всего прочего вплоть до научных статей (пример) или же статей для блога :)

Читать ...


Блог в reStructuredText разметке

Перевел тут блог с https://www.blogger.com/ на abakan/ablog. Блоггер это конечно хорошо, но у него крайне ограниченный WYSIWYG, тем более только из браузера. Ablog по сути это sphinx движок заточенный на блог со всеми плюшками, rST разметкой, RSS и disqus комментами.

Читать ...


Документация python проекта на практике

Документация в python проектах пишется при помощи sphinx, он умеет используя расширение automodule читать докстринги и формировать документацию из кода.

Читать ...


REST API для Pyramid при помощи Cornice и SACRUD

Mozilla использует в своих проектах Pyramid и у них есть отличный модуль для создания REST API https://cornice.readthedocs.org/en/latest/

Читать ...


Chameleon, deform и маленькая хитрость

Deform - это такая штука которая генерит формы, а шаблоны для виджетов в нем написаны в формате Chameleon шаблонизатора.

Читать ...


sqlalchemy_mptt v0.0.5

В новом релизе:

Читать ...


Scrum и XP: заметки с передовой

Старая, но очень полезная книга по Agile. Довольно редкий случай когда вся книга описывает рабочие процессы реальной организации, никакой воды, никакой зауми и вялой теории. Очень рекомендую. Тем более книга в свободном доступе и переведена на русский язык (лучи добра и счастья переводчикам).

Читать ...


ia32-libs-multiarch:i386 : Зависит: libsane:i386 но он не установлен

Что бы удалить поломанный пакет типа такого:

Читать ...


MPTT для SQLAlchemy

Запилил я тут для своих нужд небольшое приложение (sqlalchemy_mptt) которое добавляет в модель поля и функционал необходимый для Nested sets. По аналогии с django-mptt. Грубо говоря в модель добавляются поля left и right которые при помощи системы эвентов самостоятельно пересчитываются при изменении дерева. Ниже пример обхода дерева:

Читать ...


Локальный Continuous Integration сервер

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

Читать ...


Пишем на Go (Golang)

Go замечательный язык программирования, который можно компилировать, компилировать под разные платформы (ARM, x86), распараллеливать. Он проще C/C++ и уже сформировавшийся язык в отличии от Rust который ломает программы с каждым обновлением. Область применения самая разная начиная от консольных утилит, всяких парсеров, системного, сетевого ПО, связи с физическими устройствами и заканчивая веб приложениями, разве что пока нету реализаций под смартфоны (android).

Читать ...


Перенос БД с sqlite на postgres

ORM позволяет быстро переключатся между БД не учитывая их диалект (практически). Но данные хранятся физически в разных местах и естественно их надо переносить, например при переключении с sqlite на PostgreSQL. В Django есть встроенный функционал в виде:

Читать ...


Обновление sacrud. Версия 0.1.2

В этой версии делался упор на кастомизацию интерфейса.

Читать ...


Своя панель в pyramid_debugtoolbar

Я создал небольшой пример, как это сделать на примере sadisplay. sadisplay - это модуль который отображает модели SQLAlchemy в виде UML диаграммы.

Читать ...


Мифический человеко месяц

Я прочитал этот шедевр довольно давно, но всё же раз начал писать про книги, то напишу отзыв. Книга просто необходима для прочтения, в первую очередь руководителям и разработчикам с опытом решения разных проблем в области IT и возможно HR в той же области. В этой книге главное осилить первую половину, вторая читается на одном дыхании (а почему так это лучше узнать из контекста). Брукс крут! Реально крут!

Читать ...


миграции в Pyramid

Пример миграций в пирамиде:

Читать ...


Django - кот в мешке.

Django это фреймворк, при помощи которого быстро пишутся сайты. Так ли это?

Читать ...


Причины названий python, django и pyramid

Название языка произошло вовсе не от вида пресмыкающихся. Автор назвал язык в честь популярного британского комедийного телешоу 70x «Летающий цирк Монти Пайтона». Но потом все стали его ассоциировать со змеей, ибо змея она и в африке змея.

Читать ...


Python'им в Vim

В продолжение статьи о рабочем окружении (С чего начать?©), по просьбам трудящихся и во благо партии пишу о текстовом редакторе Vim.

Читать ...


С чего начать?©

С чего начать программировать?

Читать ...


sacrud 0.1.0

Обновил sacrud до 0.1.0.

Читать ...


Демо репозитарий Pyramid + sacrud

pyramid_sacrud_example - пример работы sacrud в Pyramid вместе с PostgreSQL.

Читать ...


Практическое использование Vim

Еще одна книга по Vim на русском языке готовится к выходу. ДМК - это всегда прекрасный перевод тех. литературы, но ксожалению отсутствие эл.форматов.

Читать ...


Изучаем редакторы vi и Vim, epub + pdf

Уже упоминал эту замечательную книгу (Изучаем редакторы vi и Vim, epub + pdf). Теперь в epub’е, вобщем зачёт.

Читать ...


Запись в БД через sacrud используя SQLAlchemy session.

Для простых CRUD действий с БД, можно воспользоваться модулем action из sacrud. Это немного сократит код и добавит некоторой универсальности в ПО со сложной логикой.

Читать ...


Обновление sacrud и pyramid_ext

Новая версия sacrud 0.0.3. В ней поправлены некоторые баги, добавлены нескучные обои элементы дизайна в расширении для Pyramid и создан отдельный репозитарий с примерами работы разных типов полей (pyramid_sacrud_example). Pyramid_sacrud_example работает только с Postgres потому что включает в себя примеры полей специфичных именно для этой БД (таких как hstore).

Читать ...


Опиум hstore в plpython

Приведу просто пример триггера на plpython который использует данные из поля hstore:

Читать ...


CRUD интерфейс для SQLAlchemy и подключение к Pyramid

Запилил Yet another CRUD интерфейс для SQLAlchemy. По сути это аналог Django админки или FormAlchemy, но ОЧЕНЬ сильно упрощенный, ничего лишнего. Есть поддержка большинства полей + кастомные поля типа файл (для загрузки файлов, изображений) и GUID. Довольно просто подключить к Pyramid проекту и сразу начать работать по адресу http://localhost:6543/sacrud

Читать ...


Объявление флага в цикле Jinja2

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

Читать ...


Jinja2 Lorem ipsum dolor sit amet

Иногда в шаблоне нужно зафигачить какую-нибудь рыбу типа "Lorem ipsum dolor sit amet", часто в цикле итд. Для этого существует функция lipsum().

Читать ...


Использование SQLAlchemy в дополнениях к Pyramid

У меня есть дополнение к pyramid которое я включаю почти в каждый проект при помощи includeme (include()). Приложение это дает мне простой CRUD интерфейс с Jinja шаблонами малой кровью. Что позволяет избавиться от монстра FormAlchemy. Естественно каждый проект имеет свое название поэтому пришлось применить немного магии что бы создать универсальный механизм получения DBSession в своем подключаемом дополнении.

Читать ...


Матрица в терминале на python

Программа для консоли в Linux, которая имитирует поток бинарных цифр из фильма матрица. Очень эффектно выглядит, рекомендую попробовать!

Читать ...


Пингвины императорские

Ускоряются за счет воздуха:

Читать ...


Срань...

В последнее время мне кажется что я пользователь Интернета в Северной Корее.

Читать ...


Изучаем редакторы vi и Vim, книга на Русском

Издательство “Символ” радует последнее время годной литературой. Для предзаказа представлена ПЕРВАЯ книга на Русском языке по vi и vim. Я конечно понимаю что можно прочитать vimtutor, но когда это все в картинках и со стрелками то въезжаешь намного быстрее. В общем заказал, для меня очередной хэндбук.

Читать ...


Меняем заголовок ответа в Pyramid/Pylons

Обычно в заголовке находится что то типа:

Читать ...


CMS на python-pyramid

Мне иногда приходится писать сайты знакомым, друзьям, знакомым друзей, знакомым знакомых друзей... И почти всегда всем нужен простой сайт нахаляву визитка, но что бы можно было вносить изменения периодически. Идеально для этого наверно подходит CMS, но CMS слишком тяжелая и имеет зачастую слишком много ненужного. Поэтому я написал движок сайта-визитки с выпиленным ненужным.

Читать ...


Раздача Интернета с десктоп Linux машины

В ноутбук вставляем еще одну сетевую карту, например такую:

Читать ...


Работа с PostgreSQL настройка и масштабирование

Шыкарная книга по Postgres. Много умных и полезных мыслей в одном месте. Хорошо написано про репликацию и настройку производительности. Книга на гитхабе в свободном доступе! Автору лучи добра и счастья, пиши исчо!

Читать ...


Идеальная архитектура. Ведущие специалисты о красоте программных архитектур

Т.к. я читаю много техлитературы, то периодически буду писать мысли о ней.

Читать ...


Убираем свист коммутатора 3Com OfficeConnect Dual Speed Hub 8

Если у вас засвистела электроника то 99% это схема питания, будь это нетбук x100e или БП или коммутатор.

Читать ...


x220 tablet и доп кнопки в Linux

В принципе мой Debian Wheezy определил почти все системные клавиши кроме 2х справа на картинке (Ctr+Alt+Del и поворот экрана), микрофон и zoom по Fn+пробел. Ctr+Alt+Del не нужен, микрофон и зум это повод написать отдельную тему, а про поворот экрана я напишу подробно.

Читать ...


корова говорит fortune

мой скрипт в .bashrc для животного говорящего цитаты при открытии терминала.

Читать ...


Книга по Lisp на русском

Внезапно, вышла книга НА РУССКОМ по кошерному, более чем, Лиспу.

Читать ...


Redactor-js WYSIWYG редактор и python

Redactor-js - это простой вайсвиг с возможностью загрузки изображений.

Читать ...


Генератор лабиринта на Питоне

Отличное приложение для создания лабиринтов. Написано на Python и доставляет много фана.

Читать ...


Перевод шаблонов Jinja в Pyramid

Основная документация как это делать здесь. Но как обычно есть нюансы.

Читать ...


Перевод шаблонов Jinja в Pylons

Все точно также как и с mako, “Но есть нюансы”©

Читать ...


CMS на Pyramid фреймворке

Poolyx CMS - малоизвестная система управления сайтом написанная на Python с применением Pyramid немецкими кодерами.

Читать ...


debian business card зависает при установке

При установке дистрибутива debian-6.0.5-amd64-businesscard.iso было замечено зависание на шаге network detect. Из-за чего это происходит я не знаю, но лечится нажатием Ctrl+C один или два раза. После чего начинается поиск настроек сети при помощи DHCP.

Читать ...


Структура Pyramid приложений как в Django

Одной из причин отказа развивать ветку Pylons стала его архитектура проекта. Все контроллеры хранятся в директории controllers, модели в models, шаблоны в templates. Это очень удобно когда у вас маленький проект, но если он разрастается до десятков и сотен сущностей, то становится крайне сложно скакать по этим папкам выискивая нужный файл, относящийся именно к этой сущности. В Django сделано по другому, в проекте хранятся приложения (application) - это такие маленькие подпрограммы которые отвечают за конкретный функционал проекта (например фотогалерея django-photologue или дерево сайта django-sitetree и прочее). Каждое такое приложение имеет свою папку и уже в ней хранятся контроллеры (views в данном случае) и модели (models). Т.е. вместо такой архитектуры Pylons:

Читать ...


pyramid_formalchemy

FormAlchemy это CRUD для SQLAlchemy. Для Pylons существовало расширение прямо в самом модуле в разделе ext. Для Pyramid создали отдельный пакет pyramid_formalchemy. Посмотрим как это работает:

Читать ...


Настройка прокси для apt-get

В файле /etc/apt/apt.conf.d/proxy (его небыло) добавить строки:

Читать ...


Боян :)

UPD: Создатель электромеханического бояна Владимир Демин - человек с высоким ощущением прекрасного: подробнее на Hack Day

Читать ...


Обновление rrd задней датой при помощи faketime

Иногда скрипты, выполнение которых зависит от времени, не срабатывают. Менять время и запускать их повторно или менять код приложения неправильно. Что бы выполнить их задним числом есть утилита faketime.

Читать ...


Установка pycrypto в virtualenv

Если появляется ошибка типа "RuntimeError: autoconf error", то необходимо установить C компилятор:

Читать ...


Что юзать в Python'е для SNMP...

Для SNMP в питоне есть несколько библиотек но у всех свои недостатки.

Читать ...


RRDTool пример использования в python

RRDtool (Round Robin Database). Обеспечивает хранение и отображение данных мониторинга (загрузка каналов, температура и любая другая зависящая от времени последовательность данных, которую можно получить некоторым способом). Задумывалась как повторная, но более правильная реализация MRTG. Объём хранимых данных не увеличивается со временем (ячейки хранения используются циклически). Использование различных функций консолидации данных позволяет охватывать большие интервалы времени без чрезмерного увеличения объема БД за счет снижения разрешающей способности. В отличие от mrtg, программа не упаковывает старые данные самостоятельно, это надо предусматривать при проектировании БД. Сбор информации и генерация HTML-кода также производится с помощью внешних средств. Более мощные средства генерации графиков. Все времена во внутреннем формате Unix (число секунд с 1 января 1970 в UTC). Значения счетчиков могут быть целыми или вещественными числами или специальным значением UNKNOWN. Лицензия - GPL (но автор не будет против, если в благодарность послать ему CD/DVD из указанного им списка; при установке rrdtool имитируется заказ CD на amazone.com ;-). Необходимо иметь perl 5 (без perl rrdtool соберется, но не будет модулей подержки perl) и обычный набор средств компиляции (make, gcc, autoconf, automake, libtool). Имеется также поддержка tcl и python. Нельзя использовать для учета и биллинга - слишком много он усредняет и сглаживает, используя достаточно сложные алгоритмы.

Читать ...


SQLAlchemy и большие таблицы (Memory error)

SQLAlchemy в больших таблицах при таком запросе s.query(TableName).all() зависает и выдает ошибку Memory error. Для решения проблемы нужно использовать метод yield_per(). Если необходимо еще изменять данные, то нужно делать коммиты каждые N записей.

Читать ...


Qtile жив

Qtile - это тайловый оконный менеджер написанный на Python. Последний месяц активно коммитится на github’е. Свежая инфа здесь http://qtile.readthedocs.org/en/latest/ (http://Qtile.org обновляется редко.)

Читать ...


Pylons обработка csv с веб формы (метод POST)

Небольшой “хинт” как при помощи Pylons обрабатывать CSV файлы, отправленные из формы.

Читать ...


Установка Matplotlib и Numpy в virtualenv на Debian

Взято от сюда. Если вы хотите в virtualenv, через pip install установить Numpy и Matplotlib, то необходимо вначале поставить в систему:

Читать ...


Pylons система плагинов для своего проекта (yapsy)

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

Читать ...


AJAX тройной выпадающий список (triple select)

Опишу очень простую реализацию трех выпадающих списков, данные которых связанны последовательно. Выглядит это примерно так "Город" -> "Улица" -> "Дом". После выбора дома, на основе AJAX запроса, генерируется список улиц этого города, а после выбора улицы генерируется список домов на этой улице. Создадим html файл:

Читать ...


pyandexmap работа с Яндекс Карты API используя Python

У Яндекс Карт хороший геокодинг и есть API, но нет автодополнение поисковой строки (как в гугле). У гугла плохой геокодинг (для России) но есть автодополнение. Более подробно можно прочитать например здесь. Парадокс какой-то. Я написал простой модуль для вычленения данных через API при помощи питона. Это очень удобно использовать в AJAX запросах. Пример использования здесь (OpenStreetMap, Геокодирование и автодополнение адреса в строке поиска (как у гугла) с помощью Яндекс API :)). Код для изучения/исправления здесь https://github.com/uralbash/pyandexmap.

Читать ...


Размещаем свои python проекты на https://pypi.python.org

Я периодически использую свои скрипты в разных местах, для того что бы не копипастить их постоянно и следить за обновлением удобно добавить их в https://pypi.python.org и устанавливать/обновлять через pip install. Для этого необходимо подготовить наш модуль.

Читать ...


Jinja замена None, Null, итд на пустую строку

В питоне пустые значения возвращаются как None. Поэтому в шаблонах Jinja вместо пустых значений отображаются None. Что бы поправить это нужно изменить метод finalize. Пример из google groups:

Читать ...


Скрипты работающие в окружении проекта на Pylons

Иногда необходимо написать скрипт который выполняется из консоли и использует окружение проекта на Pylons. Копипастю простой пример с pylonshq. Так-как там есть привычка периодически удалять информацию.

Читать ...


Python + ssh или основы paramiko

Для работы с ssh в питоновских скриптах идеально подходит модуль paramiko.

Читать ...


OpenStreetMap, Геокодирование и автодополнение адреса в строке поиска (как у гугла) с помощью Яндекс API :)

Геокоди́рование — процесс назначения географических идентификаторов (таких как географические координаты, выраженные в виде широты и долготы) объектам карты и записям данных.

Читать ...


Пример карты OpenStreetMap на своем сайте

OpenStreetMap — это свободно редактируемая карта всего мира. Она сделана такими же людьми, как и вы. OpenStreetMap позволяет совместно просматривать, изменять и использовать географические данные в любой точке Земли. Также позволяет накладывать разные слои в том числе и карты Яндекса с Гуглом. У гугла проблема с детализацией карт в России у Яндекса с API поэтому OpenStreetMap смотрится наиболее красивым решением, при том что софт и сами карты распространяются по свободным лицензиям.

Читать ...


Набор snmp скриптов облегчающие жизнь

Скрипты написаны на питоне, для установки достаточно форкнуть git репозитарий https://github.com/uralbash/snmpdesk. Документация как работать со скриптами будет выкладываться на github. Сейчас пока только 1 для извлечения таблицы коммутации (fdb), со временем будут появляться остальные.

Читать ...


upd: Режем пики в rrd

Обновления в скрипте Срезаем пики в RRD при помощи python. В предыдущем варианте скрипт получал предельное значение и если любое значение в rrd файле его превышало, то оно обнулялось. Это неудобно когда для каждого datasource нужно задавать свой предел. Ниже пример где несколько строк, в каждой строке 6 значений.

Читать ...


Как поднять demo версию проекта на paster + virtualenv в Debian

Иногда необходимо поднять демо версию своего проекта для тестов. Склонируем наш git проект на сервер где будет демо:

Читать ...


FormAlchemy KeyError: "Key not found: "

Ошибка в FormAlchemy типа KeyError: "Key not found: u'Task--super_task_id'" лечится обновлением:

Читать ...


Установка psycopg2 в virtualenv для Postgres 9.1

При установке psycopg в virtualenv может возникнуть ошибка:

Читать ...


Срезаем пики в RRD при помощи python

В некоторых случаях на rrd графиках появляются пики, как например после перезагрузки сетевой карты:

Читать ...


Основы CouchDB

CouchDB - документо-ориентированная СУБД, в которой удобно хранить разную информацию с изменяющимся количеством параметров. Например сущность товары могут иметь бесконечное количество параметров. Создавать в РСУБД миллионы таблиц или одну огромную не вариант. В couchdb хранятся документы, т.е. простые записи. В записи может быть сколько угодно разных параметров. А для унификации записей обычно создают параметр type который заменяет имя таблицы в РСУБД.

Читать ...


WTForm валидация

Продолжение статьи готовим Pylons + WTForms. Рассмотрим как создать свой класс для валидации. Здесь можно найти стандартные валидаторы http://wtforms.simplecodes.com/docs/0.6/validators.html

Читать ...


Вот он плеер моей мечты - Peyote

Плеер который в Линуксе нормально отображает кодировки и читает на ура lossless, написан на python, работает в консоле. Интерфейс как в mc - очень удобно музыку перемещать + поддержка мышки. http://peyote.sourceforge.net/about.rus.html

Читать ...


готовим Pylons + WTForms

WTForm простая, но довольно удобная библиотека для создания форм. И еще WTForm очень похожа на формы в Django - одно из немногого что в джанге сделано хорошо. Посмотрим как это работает с Pylons. Для удобства будем хранить формы отдельно:

Читать ...


Альтернатива SQL триггерам в SQLAlchemy

Когда необходимо выполнять какие-то действия при записи в базу, обычно создают триггеры before, after INSERT UPDATE. В SQLAlchemy можно реализовать аналогичный механизм но работающий на стороне питона а не БД. В версии 0.6 это делается при помощи MapperExtension, в 0.7 MapperExtension заменили на sqlalchemy.event.listen().

Читать ...


Установка Java Environment на Debian для Iceweasel (FireFox)

Часто веб интерфейс какого-нибудь устройства требует Java. Что бы ее поставить на Debian необходимо выполнить команды:

Читать ...


SQLAlchemy почему PostgreSQL?

Потому что я могу делать так:

Читать ...


Красивые графики javascriptRRD + Float

В продолжение статьи Python + Tornado + RRDTool: температура на улице и в серверной: температура на улице и в серверной рассмотрим как можно рисовать RRD используя только javascript на стороне клиента. Результат будет такой:

Читать ...


Pylons + FormAlchemy REST Controller

Для своих REST контроллеров можно использовать, формы FormAlchemy.

Читать ...


Python + Tornado + RRDTool: температура на улице и в серверной

Рассмотрим как можно мониторить температуру при помощи сервера. Алгоритм довольно простой: подключаем датчик температуры к компу, пишем скрипт который снимает данные с датчика, записываем данные и отдаем по запросу пользователю. Результат будет выглядеть так:

Читать ...


The Content Assignment

В этом топике вольный перевод довольно интересной статьи http://knolleary.net об одной книге издательства penguin books.

Читать ...


Linux xfce настройка двух мониторов

В Xfce по умолчанию второй монитор работает в режиме зеркало. Что бы настроить его под себя придется лезть в консоль, т.к. более менее нормальных desktop приложений я не обнаружил. Нам понадобится команда xrandr. Если ее запустить без параметров то она покажет параметры мониторов:

Читать ...


Админка FormAlchemy для Pylons и Jinja

Для SQLAlchemy существуют интерфейсы управления моделями(что-то типа админки). Как минимум их 2, это Rum и formalchemy.ext.pylons.

Читать ...


Pylons + Routes фикс слэша в конце URL

Если мапить URL’ы вот так:

Читать ...


Pylons + SQLalchemy расширенная модель (Mixin)

Часто при проектировании структуры БД появляется необходимость повторять одни и те же действия с таблицами. Добавлять одинаковые поля, ссылки, счетчики и т.д. Модели в Pylons (SQLAlchemy), как и в большинстве других фреймворках использующих паттерн MVC, являются классом и соответственно могут быть унаследованы от других классов. Это позволяет нам избежать рутинной работы с повторяющимися действиями.

Читать ...


Авторизация в Pylons за 5 мин при помощи repoze.what

Статья по сути вольный перевод PylonsTemplates: extra Paster templates for Pylons apps с моими дополнениями.

Читать ...


Простые хлебные крошки для Pylons и не только...

В Интернете множество советов как делать хлебные крошки. Для Pylons эти советы довольно запутанные, сложные в реализации и рутины в поддержке на мой взгляд. Поэтому я рассмотрю простой способ парсить URI. Нас будет интересовать только URN (та часть которая идет после названия сайта).

Читать ...


Pylons javascript и css link

В Pylons, в шаблоны есть возможность вставить CSS или JS при помощи stylesheet_link() и javascript_link(). Но существует расширение MinificationWebHelpers которое позволяет также удобно добавлять javascript файлы.

Читать ...


SQLalchemy UML диаграмма

UPD: sadisplay - замечательная штука!

Читать ...


ThinkPad TrackPoint настройка в Linux

Вообще всю информацию по настройке trackpoint можно взять здесь: How to configure the TrackPoint

Читать ...


Xfce перенос кнопок окна влево

Для того что бы кнопки закрыть-развернуть-свернуть оказались слева, например как в Ubuntu или MacOS, необходимо:

Читать ...