Реализация 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.

Работа с odtPHP: подключаем картинки

В последнее время я всё глубже погружаюсь в Yii и вообще php-инфраструктуру. К сожалению, некоторые библиотеки авторы забросили, и приходится их дотачивать под свои нужды. Одной из таких является odtPHP, которая шаблонизирует odt документы. Мне казалось, что такая задача весьма распространена, ан решений всего парочка, и odtPHP понравилось мне больше всего. (Если кто-то использует что-то другое для работы с OOo из-под php, пожалуйста, отпишитесь). Однако, картинки она вставляет настолько криво, что современный LibreOffice напрочь отказывается читать документ.

Деплой Django+uWSGI+Nginx

Несколькими статьями ранее я рассказывал как на одной странице вывести список объектов и форму для добавления нового. Пришло время запульнуть это приложение на сервер :) Для этого нам понадобится nginx (1.4.6), uwsgi (1.0.3), virtualenv (1.7.1.2), supervisor. Определимся, что файлы проекта будут лежать в /var/www/tyvik/markettyvik. Установка виртуального окружения 🔗Любое приложение на Django по-хорошему надо поместить в песочницу, чтобы пакеты, которые оно требует, не конфликтовали с системными. Для этих целей есть специальные пакеты virtualenv и virtualenvwrapper.

Перевод: "Руководство: используем AngularJS вместе с Django"

Данный материал сильно устарел и оставлен лишь для истории Оригинал: ‘Tutorial: Using AngularJS with Django’ by Glyn Jackson Я надеялся написать простенькое руководство по использованию Angular вместе с Django. В том, что получилось, есть заслуга Red Bull. Прошу прощения за несколько скомканный конец! Прочитав несколько статей, посвящённых Angular+Django, мне показалось, что все изобретают свои велосипеды. Пример, приведённый в этой статье, сыроват, но он должен показать как я использую эту связку.

Django: список с формой добавления

Для одного из своих pet-проектов понадобилось реализовать список с формой добавления туда элемента. Как оказалось, в Django это несколько нетривиальная задача. Все, кто работал с этим фреймворком, знают про class-view (CreateView, ListView…): вызываешь as_view с нужными параметрами в urlconf и всё готово :) Но класса типа ListAndCreateView я не нашёл. Хотя, как мне кажется, это довольно распространённая задача. Немного погуглив, я нашёл два ответа на SO (1, 2) на подобный вопрос.

Прощай DynDNS, да здравствует no-ip

В связи с отключением бесплатных аккаунтов на dyn.com появилась необходимость перейти на что-то похожее. Вкратце, этот сервис предоставлял возможность получить статичное имя на динамический белый IP. Было удобно, т.к. он поддерживался моим модемом, который отвечал за это. Увы, халява кончилась :( Первое, что я придумал - написать скриптик, который бы лез на internet.yandex.ru, получал IP и писал его в файлик, который синхронизировался с каким-нибудь облаком. Всё отлично, но на домашнем компе был установлен только клиент Dropbox’а, а он имеет привычку уведомлять о том, что какой-то файлик изменился, что очень раздражает, т.