Выступление на Krasnodar Dev Days о Postgres

слайды Всем привет! Postgres 🔗Да, тема большая, так что я уточнил словом «Начало». Цель моего доклада — заинтересовать вас, рассказать о преимуществах и обсудить недостатки. В конце слайдов будут ссылочки на интересный материал на мой взгляд. В основу баз данных была положена так называемая CAP-теорема. Она гласит, что для распределённых систем вы можете выбрать только 2 свойства из 3х: согласованность, доступность, партицирование. Ну это как создание сайта — выберите 2 из 3х: быстро, дёшево или качественно.

Pillow всемогущий

Рано или поздно, но всем нам приходится работать с графикой. Заказчики просят добавить ватермарки, сделать превьюшки картинок, построить графики… В мире python для этого есть библиотека Pillow, которая действительно умеет если не всё, то очень многое. Установка pillow 🔗Pillow далеко не самостоятельная библиотека, ей необходима поддержка форматов сжатия файлов. Для ubuntu как правило хватает установки следующих пакетов: $ sudo apt-get install libjpeg-dev libfreetype6-dev zlib1g-dev libpng12-dev То есть работы с jpg, png, ttf (шрифты) и gzip (нужен для некоторых форматов).

Библиотека для парсинга сайта Scrapy

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

Миграции Django без даунтайма

Оригинал: ‘Django migrations without downtimes’ by Ludwig Hähne Большинство современных веб-приложений используют реляционные базы данных. Время от времени в них приходится менять схему для реализации новых фич или удаления ставших ненужными полей или таблиц. Так что все миграции должны быть учтены в процессе деплоя. С одной стороны, даже запланированный даунтайм может дорого обойтись бизнесу, а уж для больших компаний и подавно. С другой стороны, применение миграций на боевой системе может порушить веб-приложение самым неожиданным образом.

Работаем с PostgreSQL из psql

Оригинал: ‘PostgreSQL on the Command Line’ by Philipe Fatio Мне настолько понравилась эта статья, что я решил её перевести. Получилось весьма вольно, но сама суть сохранена. Я уже больше 4 лет работаю с PostgreSQL. В начале использовал графические программы, сейчас же обхожусь только встроенными утилитами командной строки. Так получается более эффективно. Этот пост разделён на несколько секций согласно задачам, которые можно решать с помощью psql: настройка psql получение справки возня в песочнице описание БД построение запросов сравнение вывода клонирование базы данных получение данных Настройка psql 🔗psql отлично настроена и из коробки, однако я бы хотел остановиться на 2х вещах, которые использую каждый день и которые делают psql более удобным инструментом.

Реализация telegram bot через setWebhook

Не так давно Telegram открыл API для написание ботов. Примеры уже существующих можно посмотреть на их сайте. Всё общение сводится к отправке команды, её параметров и получение ответа, вот и меня попросили разобраться с этим и написать пример бота. Ну ok, почему бы и нет? :) Регистрация нового бота telegram 🔗Начнём, как полагается, с документации. В ней сказано, что для регистрации своего бота надо обратиться к @BotFather с оной просьбой (/newbot).

Мой Hello world на rust

Итак, у меня наконец-то появилось немного свободного времени, а значит пришло время попробывать rust. Давно хотел познакомиться с этим языком, т.к. разработчики обещают очень много плюшек: безопасный код, компилируемый в нативный, под кучу архитектур, интегрируемый с C/C++… В общем, попробовать стоит! В качестве туториала взял статью на Хабре. Установка 🔗В репозитории ubuntu 14.04 пакета с именем rust не нашлось. Странно, вроде уже не молодой язык… Хотя там проблемы совместимости были до версии 1.

Работа с шебенг (#!)

Уже второй раз за выходные натыкаюсь на особенность моей ОС - работа с шебенг. Это понятие применительно исключительно к миру *nix. Если вкратце, то это первая строка в файле, которая говорит с помощью какой программы оный запускать. Наверняка сталкивались с нечто похожим: #!/bin/bash или #!/usr/bin/python- это оно и есть :) Вернее, не совсем так, должны быть соблюдены следующие условия: файл исполняемый (**x); файл не бинарный (в противном случае он запустится “как exe-шник”); первые 2 байта должны быть # и !

Значения по умолчанию в python

Проходил как-то собеседование на должность python-разработчика, одним из вопросов был что выведет следующий код: def f(value=[]): value.append(1) print value f() f([1]) f() К сожалению, хоть я и знал в чём подвох (значения по умолчанию в python не так уж просты :) ), но ответил неправильно. Что же тут не так можно посмотреть под катом. Всё дело тут в т.н. значении по умолчанию, которое на самом деле не совсем уж значение, а очень даже переменная.

Выступление на GDG Краснодар

Всем привет, прошу прощения, что так долго не писал, но на то были веские причины. За последние пару месяцев я узнал столько всего нового, написал кучу полезных вещей… Увы, времени и сил на то, чтобы оформить это в статью уже не остаётся :( Но обо всём по-порядку. GDG Краснодар: начало положено 🔗С месяц назад в IT-парке Краснодара состоялось собрание, посвящённое созданию GDG движения в Краснодаре. GDG расшифровывается как Google Development Group - собрания программистов, на которых обсуждаются технологии Google.