25 июл. 2012 г.

Продам платформу для создания видео-хостинга

Продам комплексной решение для создания видео-хостинга с UGC, конвертацией файлов, продажей полных версий роликов, интеграцией с социальными сетями, поддержкой HTML5 (если веб-клиент умеет), онлайн-вещание, плагины и др. пр. Цена - жалкие 150 тысяч рублей. Доделка под покупателя в стоимость не входит.
Раннюю-раннюю версию можно посмотреть по адресу http://www.russned.tv/.
Пишите markeev@gmail.com, звоните +79266634080.

16 июл. 2012 г.

Рефлекция

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

ЗЫ. "Соседний офис" тут для красного словца. У меня через стенку сейчас комната охраны, у этих высоко интеллектуально развитых людей тоже наверное можно чему-нибудь научиться, но я ещё не дошел до такого высокого уровня рефлексии.


ЗЫ2. Рефлексия - обращение внимания субъекта на самого себя. В связи с этим новый термин: рефлекция (не путать с эрекцией) - способность субъекта к самопознанию.

12 июл. 2012 г.

Redmine

Так уж вышло, что redmine - своеобразный стандарт в области веб-разработки, при том, на мой взгляд, он абсолютно не юзабелен. Каждый раз, в новом коллективе я вынужден объяснять как пользоваться редмайном правильно, так же как и мне в свое время объясняли это в Deluxe Interactive. Как известно, можно даже зайца научить курить, но зачем? Хуже redmine только trac.
Каждая попытка найти годную альтернативу redmine заканчивается дилеммой вида "стоит ли платить за очередное ЭТО 10$/20$/200$ в день/месяц/год или за голову программиста". Практика продавать saas "в одни руки" для подобных систем вряд ли окупается, но невероятно распространена... Как дальше жить?

11 июл. 2012 г.

MaxMind GeoIP и GeoIPCity на ур-не nginx


Далее заметка в духе "написал, чтоб не забыть"... Хотя, забывать то особо нечего.

Под GeoIP принято понимать набор программных инструментов, позволяющих определить географическое положение клиента по его IP адресу.
Во-первых, у MaxMind есть несколько видов GeoIP баз. В общем случае они делятся на базы со странами и базы с городами. В базах со странами городов нет ), в базах с городам есть не только города но и всякие там metro коды (отдельная ветка баз).



Эти БД нужны, например, для фильтрации трафика по странам, отключению лицензионного контента в России, например, и пр. Для точного таргетинга бесплатные базы без городов, например, не подходят.
В базах по городам данных, например, больше, такие базы чуть тяжелее.

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


http://youtu.be/UJkvjC17epQ.



Установка бесплатной базы maxmind с данными о городах

1. Настраиваем nginx

sudo vim /etc/nginx/nginx.conf

http {
    geoip_city /usr/local/share/GeoIP/GeoLiteCity.dat;
    ...

2. В fastcgi_params добавляем

sudo vim /etc/nginx/fastcgi_params

### SET FASTCGI Variables ###
fastcgi_param GEOIP_CITY_COUNTRY_CODE $geoip_city_country_code;
fastcgi_param GEOIP_CITY_COUNTRY_CODE3 $geoip_city_country_code3;
fastcgi_param GEOIP_CITY_COUNTRY_NAME $geoip_city_country_name;
fastcgi_param GEOIP_REGION $geoip_region;
fastcgi_param GEOIP_CITY $geoip_city;
fastcgi_param GEOIP_POSTAL_CODE $geoip_postal_code;
fastcgi_param GEOIP_CITY_CONTINENT_CODE $geoip_city_continent_code;
fastcgi_param GEOIP_LATITUDE $geoip_latitude;
fastcgi_param GEOIP_LONGITUDE $geoip_longitude;

для uwsgi соответственно 

sudo vim /etc/nginx/uwsgi_params

### SET UWSGI Variables ###
uwsgi_param GEOIP_CITY_COUNTRY_CODE $geoip_city_country_code;

3. Качаем лайт базу (безвозмездно, значит даром)

wget -c http://www.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz

gunzip GeoLiteCity.dat.gz

куда-нибудь в /usr/local/share/GeoIP/

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

sudo apt-get install geoip-bin libgeoip-dev libgeoip1

5. Перезапускам nginx

6. Теперь можно использовать переданные модулем nginx заголовки:

GEOIP_CITY
GEOIP_CITY_CONTINENT_CODE
GEOIP_CITY_COUNTRY_CODE
GEOIP_CITY_COUNTRY_CODE3
GEOIP_CITY_COUNTRY_NAME
GEOIP_LATITUDE
GEOIP_LONGITUDE
GEOIP_POSTAL_CODE
GEOIP_REGION

Вот пример данных из лайт базы для моего рабочего IP
'GEOIP_CITY': '',
'GEOIP_CITY_CONTINENT_CODE': 'EU',
'GEOIP_CITY_COUNTRY_CODE': 'RU',
'GEOIP_CITY_COUNTRY_CODE3': 'RUS',
'GEOIP_CITY_COUNTRY_NAME': 'Russian Federation',
'GEOIP_LATITUDE': '60.0000',
'GEOIP_LONGITUDE': '100.0000',
'GEOIP_POSTAL_CODE': '',
'GEOIP_REGION': ''

Не очень точно, да?

Использование платных версий Maxmind ДБ

Для загрузки баз воспользуйся логопасом, у вас ведь есть подписка MaxMind? http://www.maxmind.com/app/account. Загрузить БД можно по адресу: http://www.maxmind.com/app/download_files. Думаю, опытный пират найдет способ скачать платную версию MaxMind с rutracker.org, но я ни коим образом не поощряю подобное поведение ;).

1. GeoIP Country binary database - база данных стран

http {
    geoip_country GeoIP.dat;
    ...

Доступные параметры:

fastcgi_param GEOIP_COUNTRY_CODE $geoip_country_code;
fastcgi_param GEOIP_COUNTRY_CODE3 $geoip_country_code3;
fastcgi_param GEOIP_COUNTRY_NAME $geoip_country_name;

2. GeoIP City binary database - база данных городов

http {
    geoip_city /usr/local/share/GeoIP/GeoIPCity.dat;
    ...

Пример ответа для того же IP
'GEOIP_CITY': 'Moscow',
'GEOIP_CITY_CONTINENT_CODE': 'EU',
'GEOIP_CITY_COUNTRY_CODE': 'RU',
'GEOIP_CITY_COUNTRY_CODE3': 'RUS',
'GEOIP_CITY_COUNTRY_NAME': 'Russian Federation',
'GEOIP_LATITUDE': '55.7522',
'GEOIP_LONGITUDE': '37.6156',
'GEOIP_POSTAL_CODE': '',
'GEOIP_REGION': '48'

Чуть точней, но все равно "та же х**ня, Миша".

Можно использовать обе базы (country и city) одновременно, но особого смысла в этом нет ).

см. http://wiki.nginx.org/HttpGeoipModule или http://nginx.org/ru/docs/http/ngx_http_geoip_module.html#geoip_country

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

Очевидное наблюдение: MaxMind БД для использования в больших международных проектах с не очень высокой точностью геотаргетирования.

При платной подписке вам дают возможность скачать все данные из базы в формате CSV. В нашем проекте эти данные используются для установки параметров таргетирования баннеров клиентами через соответствующую панель на сайте.

Альфа.Клик и кредиты

"Десять тысяч ли за спиной, — подумал Степа. — А грабли все те же."


Дорогой Альфа банк, почему авторизации по паролю и смс тебе достаточно для того, чтобы позволять знающему паролю и заполучившему телефон человеку распоряжаться деньгами на всех счетах клиента, но мало для того, чтобы дать клиенту кредит? Неужели потому, что важная часть работы кредитного-менеджера это обман будущего клиента?

Не может же быть, что бы условия кредита предоставленные в наглядном печатном виде без ссылок и сносок убедили человека не брать кредит. Ведь кредиты в нашей стране берут по совсем другой причине. Мозг обывателя жаждет наслаждения прямо сейчас, сию секунду. Ждать мочи нет! Поэтому, когда человек приходит к кредитному консультанту он, на самом деле, для себя уже все давно решил. Цифры и числа написанные в договоре не окажут особого влияния на его выбор, а вот не профессиональный консультант может оказать такое влияние. Не говоря уже о том, что среди этих персонажей попадается не малое количество мошенников, жаждущих утянуть у банка деньги по несуществующим паспортам...

Я с легкостью представляю, как в Альфа.Клике появляется раздел "взять кредит", в котором все тот же человек, с логином, паролем и телефоном заполняет анкету и получает после проверки и одобрения кредитный счет, на который можно будет осуществлять переводы со своего текущего счета (лишний пластик не нужен, его и так слишком много). Деньги данные банком в кредит для простоты можно перевести на текущий счет. В чем могут быть сложности при реализации такой схемы?