Django: Установка

Хотел написать большое предисловие к установке django, но решил начать с цели статьи - ставим django 1.10 в virtualenv.

Читать дальше »

Задачка: обратный(reverse) список

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

Читать дальше »

CMake: Полезные переменные

Я для себя давным давно выбрал в качестве системы сборки - cmake. Случилось так, что часть исходников, пришлось перенести на Windows-платформу и тут оказалось что cmake не такой уж кросс-платформенный. Посему было решено найти более интересные переменные, на основе которых можно было бы подстраивать поведение cmake под ту или иную платформу. Для этого я создал простенький проект и печатал переменные для каждой из интересующих меня платформ.

Читать дальше »

GAE: Новый проект на свой домен

GAE (Google App Engine) - это сервис Google, позволяющий загружать свои приложения, которые хостятся в Google. Для разработчика это выглядит как написание плагина к большому сервису. В смысле, нет доступа к системе или диску, только те вызовы которые предоставляет Google - это минус. Плюс же заключается в том что не надо думать вообще ни о чем, просто загрузил программу как файл и все - она работает. И при этом - бесплатно! У меня так крутится программы года 3, наверное. Единственное условие - надо оставаться в пределах бесплатной квоты. У меня максимум программы съедают не больше 10% этой квоты - так что для меня, GAE очень удобна. Вот и напишу как загрузить новый проект на своем доменном имени.

Читать дальше »

Blog: Прикручиваем комментарии от Disqus

Я очень долго собирался с силами, чтобы прикрутить комментарии к блогу, предвидя достаточно много проблем с безопасностью и авторизацией. Буквально вчера случайно наткнулся на сервис системы комментарий disqus и прикрутил буквально за 5 минут.

Читать дальше »

Kamailio: Пишем модуль на C++

Прошло уже больше года, как я собирался написать модуль на C++ для Kamailio. По моему самое время все такие пролить свет и продолжить серию статей о Kamailio: установка и написание модуля. Единственное, по пришествию этого года - только второстепенный модуль был написан на С++. Как показала практика, лучше писать библиотеку - ее тестировать и подключать к Kamailio. Но тем не менее, случаются и исключения, так что добро пожаловать под капот.

Читать дальше »

Заливка recovery или 100% root для android

Продолжая разговор о прошивке телефонов, остановимся на том как прошить рекавари, а также получение root прав практически на любом android девайсе. В стандартной поставке, существует возможность восстановления телефона с помощью встроенной программы - recovery. Существуют также сторонние проекты - Clockworkmod recovery (CWM) и TeamWin recovery (TWRP) ( мне больше по душе TWRP ). Чтобы запустить recovery надо выключить телефон ( ждать до вибрации ), включаем телефон, одновременно зажав кнопки [ включения ] + [ увеличение громкости ]. Как только появляется заставка отпускаем кнопки и еще раз зажимаем их ([ включения ] + [ увеличение громкости ]).

Читать дальше »

Прощиваем android телефоны на базе MT65xx в Linux

Каждый раз когда необходимо было перепрошить телефон или рутировать, я перезагружался в Windows и думал, когда же наступит день года можно будет перепрошить телефон из Linux, и вот этот день настал. Теперь можно перепрошивать android устройства из linux. Как и древние времена без бубна и танцев перепрошика не обходиться.

Читать дальше »

Scala: Akka с нуля. Часть 1. Приветствие.

Я не обладаю знаниями и опытом программирования на scala, но надо с чегото-то начинать, поэтому планирую написать серию статей, начиная с создание проекта и заканчивая созданием кластера на akka.

Читать дальше »

Django CMS: Установка DjangoCMS 3.0

С последней моей установки DjangoCMS уже вышла новая версия, а я так и не разобрался со старой. Но если и начинать изучать что-то, то как минимум с новой версии, так как информация по старой как правила в скором времени будет совсем не нужна. В виду вышеизложенного, я решил повторить мою статью про установку DjangoCMS но у же с 3-й версией.

Читать дальше »

C++: Реализация Singleton на базе shared_ptr

Шаблон одиночка (или Pattern Singleton) - достаточно известный шаблон программирования, но стандартная реализация имеет ряд недостатков, которые не позволяют в полной мере использовать ее в unit-тестировании. Сам я не сторонник использования одиночки, тем не менее этот шаблон был мной использован в нескольких проектах. Однако моя реализация отличается от стандартной.

Читать дальше »

Hg: Редактируем историю

Mercurial - распределенная система управления версиями, поэтому commit делается сначала локально, а затем только отсылается на централизованный (или не очень) сервер. Со времен использования SVN, описание каждого commit'а должно соответствовать неким требованиям ( например содержать номер задачи или bug в системе bug-tracking ). При использовании SVN все просто - "commit rejected", но как быть с Mercurial когда посылается пачка уже готовых изменений. В такое ситуации к нам на помощь приходит расширение histedit.

Читать дальше »

C/C++: Определение отрезка времени

Выкатываем в очередной раз release, и как водиться перед окончательной отправкой на PRO проверяем performance ( фу, сколько странных слов, но я предпочитаю называть это - проф сленг ). Итак вывод QA - не проходит по скорости - какого ... ведь только добавили проверку на количество свободной памяти. Ладно может действительно пара вычислений + цикл foreach по количеству worker'ов - слишком много? Ok, давайте будем проверять только раз в несколько секунд. Пару часов и стало только хуже? Да, как только такое возможно. Один из моих коллег подсказывает, что time - это системный вызов, много затрачивает времени .... хм давайте разберемся.

Читать дальше »

Kamailio: Установка Kamailio 4.1

Kamailio ( ранее известный как OpenSER) - высокопроизводительный sip сервер, чаще всего используется для балансировки и проксирования SIP трафика, имеет конфиг-сценарий и возможность написания собственных модулей. Посмотрим что за зверь, начнем с самого простого - с установки.

Читать дальше »

Bash: Сколько дней осталось до 19 января 2038 года?

Как-то пришлось писать скрипты для генерации сертификатов для тестов. Теоретически эти сертификаты должны функционировать бесконечно долго, но вот сколько 10, 20 лет? Лично я выбрал дату переполнения timestamp (32х битного типа time_t) - 19 января 2038 года. Для меня это некоторое напоминание, что все имеет свой конец. Итак, далее решение задачи.

Читать дальше »

Цифровая живопись: начало

Недавно купил дигитайзер(Wacom Bamboo Pen CTL-470K) для дочки и жены, ну и собственно сам решил тоже приобщиться к великому. Надо отметить, что дигитайзер завелся без установки каких-либо драйверов, как в винде так и в линуксе.

Читать дальше »

Bash: где лежит мой скрипт ?

Как правило скрипт используется для автоматизации обработки каких либо других файлов. Я, зачастую, использую скрипты для автоматизации сборки, настройки окружение и генерации каких-либо отчетов. Собственно самая первая задача - это найти, а где находятся все эти файлы процесс обработки, которых необходимо автоматизировать.

Читать дальше »

Bash: Грабли set -e и другие способы отладки

Совсем недавно, наткнулся на длинный bash скрипт не своего авторства и долго не мог понять, почему команды/программы возвращающие exit код отличный от нуля в начале скрипта не вызывают завершения скрипта, а в конце прерывают дальнейшие выполнения команд.

Читать дальше »

Django CMS: Установка с помощью virtualenv

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

Читать дальше »

Взгляд программиста на Yandex Music

Попался на глаза мне музыкальный сервис music.yandex.ru, точнее его обертка посвященная закрытию разработки winamp . Примечательно то что она содержала список самых популярных песен за 100 лет. Такого случая составить список самых любимых песен вряд ли представиться когда-либо, поэтому было решено прослушать все и тут же составить свой список. Через пару недели прослушивания список был составлен, но тут же появилась проблема как же выгрузить этот список в виде файла. Было решено расковырять сервис, для получения составленного списка песен. Что из этого вышло, с какими трудностями пришлось столкнуться + список JavaScript движков и как из можно прикрутить к Python вы можете прочитать дальше. (Сразу оговорюсь, что я не имею к yandex никакого отношения и мое субъективное видение сервиса со стороны.)

Читать дальше »

Mencoder: Резка/Склейка/Кодирование видео

Недавно надо было разбить видео на части и потом преобразовать в более компактный размер. Я очень часть использую утилиту mencoder/mplayer, поэтому решил не прибегая к каким либо редакторам вырезать куски видео, а потом склеить их вместе.

Читать дальше »