Архив категории Работа

Снова на связи

12 Апрель 2012

Привет всем. Очень давно не обновлял блог – или написать было не о чем, или от загруженности не было времени, или банально – лень, за что постоянно себя пинаю.

Пролетело полгода… Что произошло за это время? Постараюсь вспомнить как можно больше, не вдаваясь особо в детали. В последующих постах распишу подробнее, если будет интерес.

Осенью запустили партнерку по монетизации сайтов через iframe, но оказалось не рентабельно – закрылись. Сработали «в ноль», хорошо что не в минус. Опыт, какой-никакой – в будущем буду более тщательно обдумывать и планировать все идеи.

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

Еще в прошлом году перенес несколько проектов на выделенный сервер – по немногу осваиваюсь в *никсах, но лезть глубоко не хочу – боюсь стать толстым, отрастить бороду и носить растянутый свитер :)

Пошел в спортзал – решил привести себя в хорошую форму. Особо толстым никогда не был, даже наоборот – в детстве был дрыщ дрыщом. В итоге – сбросил 14кг за 5 месяцев, с 92 до 78, при росте под 190см. Ощущения прекрасные, после тренировки как будто заново родился.

Получил первую выплату с Adsense (на самом деле уже и вторая дошла). Вообще, я никогда не думал, что на  адсенсе можно заработать хоть какое-то приличное бабло, и всегда удивлялся этой графе в финстрипах Ленивого – что он там такого делает? Кто вообще нажимает на такие очевидные рекламные ссылки? Оказалось, не все так плохо – люди кликают по рекламе, на что конечно сильно влияет расположение блока, но главное конечно же – трафик, без него никакого заработка не будет.

С легкого посыла коллеги по цеху нырнул в бочку с… пока не знаю с чем :) но если выгорит – буду рад. Подробностей не будет – можете прочитать в блоге у xporsche.

Активно экспериментирую с закрытыми сетями сайтов, для собственных нужд (загон в индекс, поднятие НЧ-запросов в выдаче и т.д.). Также не исключено, что буду оказывать подобного рода услуги. Поживем увидим.

Также, теперь я участник форума от jonn22 – оказывается, этот перец еще и мой земляк. Форум действительно отличный, куча информации, мануалов и софта – где вот только время найти на все? Контингент также подобрался удачный – за наивный вопрос не засмеют, как кое-где, а дадут развернутый ответ или укажут где его искать.

Подумываю об открытии интернет-магазина(ов). В данный момент прощупываю ниши, общаюсь с друзьями и знакомыми. Идей море, все надо делать и не откладывать в долгий ящик.

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

Ну и с днем космонавтики всех!


Dating Pro и загрузка файлов на сервер

8 Сентябрь 2011

Шалом! Довелось мне тут давеча поработать с движком Dating Pro – если кто не знает, такая большая тяжелая шестеренка для организации сайта знакомств. Не смотря на свои размеры (дистрибутив более 100мб) – работает весьма шустро и не сравнится с джумлой в связке с кривыми модулями от испанских разработчиков-индусов  (был опыт, ага). Так вот, проблема была в том, что при попытке обновить аватарочку вываливалось сообщение об ошибке – попросили исправить.

Начал разбираться. В админке нашлась галочка «Модерировать загружаемые изображения», однако там было все в порядке. С «владельцем» и правами доступа/записи на временную директорию и на директорию назначения самого движка все тоже было в норме. Полез копаться в коде. Выяснилось вот что: загрузка файла происходила нормально, после чего движок пытался изменить размер загруженного изображения ДО его переноса из временной папки темп (общей для всего сервера), т.е. открыть картинку, изменить ее размер и записать обратно. После этого видимо все и ломалось. Показалось мне, не по феншую это, и проблема могла исходить именно отсюда. Для этого сразу после кода загрузки файла, перед всеми остальными действиями движка, я вставил вот такой код:

# --- Перемещаем загруженый файл во временную папку --- #
$new_file_name = $this->GetNewFileName($upload["name"], $id_user);
$upload_path = $_SERVER['DOCUMENT_ROOT']."/images_tmp/".$new_file_name;
$moved = move_uploaded_file($upload["tmp_name"], $upload_path);
$upload["tmp_name"] = $upload_path;
# ----------------------------------------------------- #

Что здесь происходит? В первой строке генерируем имя нового файла, используя стандартную функцию движка – здесь ничего особенного. В массиве $upload хранятся данные по загруженному файлу. Далее собираем полный путь до временной директории в каталоге самого движка чтобы засунуть туда нашу картинку – после всех действий мы ее отсюда удалим. В третьей строке, с помощью стандартной пхп-шной функции переносим загруженный файл из общей папки серевера (например, /var/tmp) в нашу временную директорию. И последней строкой меняем в массиве полный путь с именем загруженного файла на новый, только что созданный. Делается это потому, что далее движок для всех своих действий (ресайза, создания картинок для предпросмотра, большой и маленькой аватарок) использует именно этот массив, и получается что теперь все действия производятся над файлом в локальной директории сайта, где он имеет полные права и может хозяйничать там как хочет. В теории, и во временной папке он имеет достаточные права – но вот как-то так.

После проделанных действий все заработало как надо. Осталось только после всех телодвижений движка удалить файл из временной директории:

# --- удаляем картинку из временной папки --- #
unlink($upload["tmp_name"]);
# ------------------------------------------- #

Готово, теперь картинки загружаются как надо, и временная директория не захламляется ненужными временными изображениями. Все просто :)

Учитесь разбираться в чужом коде – пригодится ;)

Кэш Яндекса, статистика LI и финт ушами

30 Август 2011

Привет. Пишу редко – времени совсем мало. А может просто лень-матушка :)

Хочу рассказать о ситуации, произошедшей на днях. Пусть это не «тема», но возможно кому-то будет полезно.

Есть у меня музыкальный сайт, с поиска идет порядка 1k посетителей в день. И вот, в очередной раз просматривая статистику LiveInternet и проверяя единичные запросы с удивлением обнаруживаю, что по одному из них Яндекс предлагает пользователю перейти на файл *.txt в одной из служебных директорий сайта. Надо сказать, что в robots.txt эта дира не была закрыта от ПСов, но и ссылок на нее нигде не было и не могло быть! Там лежат 2-3 txt-файлика, куда пишутся логи и запросы посетителей. А поскольку сайт музыкальный, то в один из файлов попадали названия треков и исполнителей. Вот эту сборную солянку и раскопал Яндекс, с удовольствием скушал и вываливал в результаты поиска по низкочастотным кеям. Причем, перейдя по этой ссылке, пользователь получал файл в 25 мегабайт, абсолютно никак не структурированный и не форматированный.

Во дела, подумал я. Ведь чел, заходя на сайт и видя такой бардак – сразу сбежит! Плюс к этому, я не знаю сколько таких людей попадает на сайт и скольких потенциальных посетителей я лишаюсь, т.к. кода статистики ЛИ там по просту нет, а с парсерами логов веб-сервера заморачиваться не хотелось.

Что я сделал? Первым делом закрыл директорию от индексации в robots.txt, а потом подумал – стоп! Траф есть – зачем его обрубать? Убрал запрет и сделал следующее…

В файле .htaccess прописал RewriteRule с этого txt-шника на файл с php-кодом. Далее, препарировал достаточно известный модуль для DLE «Переходы», вырезал из него код для определения поискового запроса, и если посетитель пришел с какой-либо поисковой системы – генерировал локальный адрес на сайт и редиректил посетителя туда, где он находил то что ему нужно.

Другими словами, если бы при запросе «Джигурда» ПС выдала ссылку на мой txt-шник и пользователь перешел бы по ней, то скрипт, перехватив поисковый запрос («Джигурда»), отправил бы посетителя на… адрес вида «http://site.ru/search/Djigurda».

Проверил – все работает. Следующий нюанс – если к нам забрел поисковый робот, а не посетитель с поиска – показываем ему содержимое txt-файла. Пусть думает, что все так и должно быть :)

И последний момент – надо же как-то собирать статистику. Т.к. на проекте установлен счетчик LiveInternet – то и сливать посещения нашего txt-шника надо ЛайвИнтернету. Смотрим исходный код счетчика:

<!--LiveInternet counter--><script type="text/javascript"><!--
new Image().src = "//counter.yadro.ru/hit?r"+
escape(document.referrer)+((typeof(screen)=="undefined")?"":
";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth?
screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+
";h"+escape(document.title.substring(0,80))+
";"+Math.random();//--></script><!--/LiveInternet-->

И переносим его на PHP:

$url = "http://site.ru/path_to_dir/txt_file.txt";

$li = "http://counter.yadro.ru/hit?q;r".urlencode($_SERVER["HTTP_REFERER"]).";s100*100*8;u".urlencode($url).";huniquequeries;0.".rand(999999999, 9999999999);

file_get_contents($li);

Разрешение экрана пользователя PHP определять не умеет, поэтому ставим 100х100 – проще будет отслеживать статистику. УРЛ страницы на первое время оставляем оригинальный – чтобы понять, много ли туда народу попадает. С курл’ом заморачиваться не было необходимости, поэтому обошлось малой кровью – file_get_contents(), благо на своем сервере можно делать все что хочешь. Для надежности все же сделал отдельно локальное логирование посещений.

Вот собственно и все. Заливаем файлы и ждем. В итоге за сутки в данный файл тыкнулось порядка 100 посетителей. Немного? 10% от дневного трафа. Файл стал самой частой точкой входа по статистике LI.

Вот такой вот эксперимент, возникший случайно и на ровном месте.  Экспериментируйте, находите нестандартные решения ;)