Analitycs

вторник, 29 ноября 2011 г.

Как включить показ ошибок PHP в браузере?

Классический вопрос всех похапешников - "как показать ошибки PHP скрипта в окне браузера"

error_reporting(E_ALL);
ini_set("display_errors", 1);

P.S. Причем сам постоянно забываю, как точно пишется эта конструкция - особенно после переключения с языка на язык. Ненавижу переключать контекст мозга ;-)

четверг, 24 ноября 2011 г.

Почему не любят SEOшников?

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

Как и везде - люди бывают разные, но похоже, что ни одна профессия не вызывает такой нелюбви, как SEOшники.

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

Причин подобной нелюбви много, перечислю основные.

1) Маленький возраст бОльшей части сеошников

Когда 14 летний парень начинает строить из себя специалиста по SEO, SMM и контекстной рекламе, имея за душой один мелкий бложик и 20 фидов в ГуглоРидере как источник знаний - это еще ладно, допустим.

Но ведь это только начало, "возраст - это единственный недостаток, который проходит сам по себе - со временем" (с)

Дальше начинается - хуже.

2) Неумение писать и нежелание это делать

Знаете, что я больше всего ненавижу в сети? Копи-паст и рерайт, в который воткнуты реферральные ссылки. Если тебе нечего сказать/написать - так может - не стоит и браться?

Что, денег захотелось? Ну так иди работай - пиши, рисуй, код лабай, точи на заводе что-нибудь, переводи что-нибудь на худой конец - но не засирай интернет копи-пастой, пожалуйста.

Все равно вылетишь из индекса рано или поздно, так что время мое не трать на прочтение этого дубликата, ценность которого ноль целых, ноль в периоде.

Да и своего времени хотя бы пожалей - уж если чужого не жалко.

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

3) Вопиющий непрофессионализм/профанация

Чем больше человек знает, тем меньше в нем уверенности, что он знает много. Обратное - верно Как не почитаешь очередного мегасеошника - знает все обо всем, правда - преимущественно по другим блогам ;-)

4) ТИЦедрочерство

Простите мой французский, это вообще смешно. Будете писать интересно - будут ссылки, будет трафик, будет ТИЦ.

5) Нарушения причинно-следственной связи - ярко выраженный "культ карго"

Когда я смотрю якобы аналитическую статью, в которой человек пишет про исследования CTR объявлений Яндекс-Директа, основываясь на данных порядка 600 показов до изменения и потом 600 показов после...  вот именно тут хочется биться головой о стену...

Потому что финальный вывод  - "вот CTR подрос, значит мое предположение верно - все делайте как я"... Неверен в принципе!

Мальчики и девочки!

На статистических данных меньше 100 000 показов любые псевдоаналитические построения - пустая трата времени. Туева хуча случайных и неучтенных вами факторов полностью уничтожают всякую логическую конструкцию - там могло произойти все что угодно

Вот, например:
 * в прошлый раз пришло 3 человека с английских IP, которые вообще ни фига не понимают по-русски - зачем им кликать?
* и вообще - таки показалась ли подобным людям реклама?
* время в которое смотрели? Из дома или с работы? Параметры поведения - разные
* с каких устройств ходили люди?
* что это были за люди? Гики рекламу почти игнорируют, в отличии от простых людей...

И так далее - продолжать набор таких факторов можно почти до бесконечности.

Вы все это учли? - Нет? Ну так значит грош цена вашим подобным исследованиям.

Единственная возможность как-то нивелировать подобные нюансы - брать длительные промежутки времени и большое количество показов. Ну не 600 же штук!!!

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

Тут нужно смотреть не пиковое значение величины сразу после изменения - а последующую за ним плавную кривую - на протяжении хотя бы месяца при учете набора достаточного количества показов.

Уф, "доклад окончен" (с) - сегодня что-то прорвало.



Как сделать автодополнение git в MacOS X?

При установке git возникает ошибка и автодополнение не работает

-bash: __git_ps1: command not found

Лечение (работаю со SnowLeopard)

Ставим MacPorts из .dmg, затем в консоли

$ sudo port selfupdate
$ sudo port install git-core +bash_completion

Если нужна дополнительная работа с SVN и docs, вторую строчку заменяем на:


$ sudo port install git-core +bash_completion +doc +svn

Затем добавляем в ваш ~/.profile или ~/.bash_profile:

# MacPorts Bash shell command completion
if [ -f /opt/local/etc/bash_completion ]; then
    . /opt/local/etc/bash_completion
fi

среда, 23 ноября 2011 г.

Как распаковать содержимое rpm-пакета?

Довелось недавно устанавливать дополнительный софт на одну виртуалку со сломанным дистрибутивом. Предыдущий админ воткнул посторонние пакеты, переломав зависимости. Так как надо было поставить обычную софтинку на PHP - решил просто расковырять RPM пакет.

Обычный rpm-пакет - это архив формата cpio вместе с некоторым набором метаданных.

Распаковать его можно

# rpm2cpio package.rpm | cpio -dimv

Параметры и флаги



  • имя rpm-файла, который необходимо распаковать и перенаправить вывод на архиватор cpio.
  • -i - распаковать архив,
  • -d - сохранить структуру директорий.
  • -v - вывести список распакованных файлов,
  • -m - наследовать даты модификаций извлекаемых файлов.
  • PHP - хак быстрого логгирования в файл


    Если вам в зубы выдали какой-то очередной супер-мега-пупер проект на PHP, в дебрях которого нет возможности и желания разбираться, однако нужно что-то быстро пофиксить с отладкой, (причем доступа к php error_log нету) - то можно быстро воткнуть небольшой полезный хак.

    Это дополнительный метод в класс (или просто - функция) с минимальным количеством кода.

       function log($msg) {
           file_put_contents(SUPER_CMS_ROOT_PATH.'/cache/php-debug.log',"\n".$msg, FILE_APPEND);
       }
    

    Соотвественно, после отладки ее можно либо убить, либо оставить, закомментировав содержимое.

    P.S. И да -про некошерность данного метода и недопустимости этого при учете всех методик программирования - я в курсе, не нужно возбуждаться. ;-)
    Просто нужно пофиксить и отладить - БЫСТРО.

    воскресенье, 20 ноября 2011 г.

    Как на python проверить, открыт ли какой-то port?


    from socket import socket, gethostbyname, AF_INET, SOCK_STREAM
    
    target = "localhost"
    targetIP = gethostbyname(target)
    port = 80
    s = socket(AF_INET, SOCK_STREAM)
    
    result = s.connect_ex((targetIP, port))
    
    if(result == 0) :
     print 'Port %d is open' % (port,)
    s.close()
    

    суббота, 19 ноября 2011 г.

    Как запустить приложение MacOS X из terminal.app с передаваемым файлом?

    Когда работаешь в консоли - иногда лень тянуться к мышке, а запустить какой-то сложный редактор нужно. Тогда используется полезная программа open

    $ open -a TextMate ./README