Оригинал: ‘Django migrations without downtimes’ by Ludwig Hähne
Большинство современных веб-приложений используют реляционные базы данных. Время от времени в них приходится менять схему для реализации новых фич или удаления ставших ненужными полей или таблиц. Так что все миграции должны быть учтены в процессе деплоя. С одной стороны, даже запланированный даунтайм может дорого обойтись бизнесу, а уж для больших компаний и подавно. С другой стороны, применение миграций на боевой системе может порушить веб-приложение самым неожиданным образом.
Оригинал: ‘PostgreSQL on the Command Line’ by Philipe Fatio
Мне настолько понравилась эта статья, что я решил её перевести. Получилось весьма вольно, но сама суть сохранена.
Я уже больше 4 лет работаю с PostgreSQL. В начале использовал графические программы, сейчас же обхожусь только встроенными утилитами командной строки. Так получается более эффективно.
Этот пост разделён на несколько секций согласно задачам, которые можно решать с помощью psql:
настройка psql получение справки возня в песочнице описание БД построение запросов сравнение вывода клонирование базы данных получение данных Настройка psql 🔗psql отлично настроена и из коробки, однако я бы хотел остановиться на 2х вещах, которые использую каждый день и которые делают psql более удобным инструментом.
Не так давно Telegram открыл API для написание ботов. Примеры уже существующих можно посмотреть на их сайте. Всё общение сводится к отправке команды, её параметров и получение ответа, вот и меня попросили разобраться с этим и написать пример бота. Ну ok, почему бы и нет? :)
Регистрация нового бота telegram 🔗Начнём, как полагается, с документации. В ней сказано, что для регистрации своего бота надо обратиться к @BotFather с оной просьбой (/newbot).
Итак, у меня наконец-то появилось немного свободного времени, а значит пришло время попробывать rust. Давно хотел познакомиться с этим языком, т.к. разработчики обещают очень много плюшек: безопасный код, компилируемый в нативный, под кучу архитектур, интегрируемый с C/C++… В общем, попробовать стоит! В качестве туториала взял статью на Хабре.
Установка 🔗В репозитории ubuntu 14.04 пакета с именем rust не нашлось. Странно, вроде уже не молодой язык… Хотя там проблемы совместимости были до версии 1.
Уже второй раз за выходные натыкаюсь на особенность моей ОС - работа с шебенг. Это понятие применительно исключительно к миру *nix. Если вкратце, то это первая строка в файле, которая говорит с помощью какой программы оный запускать. Наверняка сталкивались с нечто похожим: #!/bin/bash или #!/usr/bin/python- это оно и есть :) Вернее, не совсем так, должны быть соблюдены следующие условия:
файл исполняемый (**x); файл не бинарный (в противном случае он запустится “как exe-шник”); первые 2 байта должны быть # и !
Проходил как-то собеседование на должность python-разработчика, одним из вопросов был что выведет следующий код:
def f(value=[]): value.append(1) print value f() f([1]) f() К сожалению, хоть я и знал в чём подвох (значения по умолчанию в python не так уж просты :) ), но ответил неправильно. Что же тут не так можно посмотреть под катом.
Всё дело тут в т.н. значении по умолчанию, которое на самом деле не совсем уж значение, а очень даже переменная.
Всем привет, прошу прощения, что так долго не писал, но на то были веские причины. За последние пару месяцев я узнал столько всего нового, написал кучу полезных вещей… Увы, времени и сил на то, чтобы оформить это в статью уже не остаётся :( Но обо всём по-порядку.
GDG Краснодар: начало положено 🔗С месяц назад в IT-парке Краснодара состоялось собрание, посвящённое созданию GDG движения в Краснодаре. GDG расшифровывается как Google Development Group - собрания программистов, на которых обсуждаются технологии Google.
В последнее время я всё глубже погружаюсь в Yii и вообще php-инфраструктуру. К сожалению, некоторые библиотеки авторы забросили, и приходится их дотачивать под свои нужды. Одной из таких является odtPHP, которая шаблонизирует odt документы. Мне казалось, что такая задача весьма распространена, ан решений всего парочка, и odtPHP понравилось мне больше всего. (Если кто-то использует что-то другое для работы с OOo из-под php, пожалуйста, отпишитесь). Однако, картинки она вставляет настолько криво, что современный LibreOffice напрочь отказывается читать документ.
Несколькими статьями ранее я рассказывал как на одной странице вывести список объектов и форму для добавления нового. Пришло время запульнуть это приложение на сервер :) Для этого нам понадобится nginx (1.4.6), uwsgi (1.0.3), virtualenv (1.7.1.2), supervisor. Определимся, что файлы проекта будут лежать в /var/www/tyvik/markettyvik.
Установка виртуального окружения 🔗Любое приложение на Django по-хорошему надо поместить в песочницу, чтобы пакеты, которые оно требует, не конфликтовали с системными. Для этих целей есть специальные пакеты virtualenv и virtualenvwrapper.
Данный материал сильно устарел и оставлен лишь для истории
Оригинал: ‘Tutorial: Using AngularJS with Django’ by Glyn Jackson
Я надеялся написать простенькое руководство по использованию Angular вместе с Django. В том, что получилось, есть заслуга Red Bull. Прошу прощения за несколько скомканный конец!
Прочитав несколько статей, посвящённых Angular+Django, мне показалось, что все изобретают свои велосипеды. Пример, приведённый в этой статье, сыроват, но он должен показать как я использую эту связку.