• Как зарабатывает adme.ru?

    kopcap_va
    @kopcap_va
    SEO Consultant
    Приветствую, Вика!

    Для начала скажу, что заработать те же 1,5 млн на контексте, еще и с РУ-трафиком - не самая простая задача.
    Статью, которую вам порекомендовали - почитайте конечно, но имхо интерес у нее нулевой.

    Заранее прикинуть сколько можно заработать лучше всего на уже существующих сайтах:
    Идете на биржу телдери и изучаете сайты по интересующей тематике (смотрите трафик, способы монетизации, возраст, доход) - делаете выводы. Туризм далеко не самая дорогая тематика, в РСЯ вангую копеечные клики, в Adsense может ситуация и получше, но тоже не сахар.

    Еще момент - если вы будете делать упор на самостоятельные путешествия, то такие туристы, как правило уже знают сайты где искать дешевые билеты и скидки в отелях, поэтому на партнерку сильно рассчитывать не стоит.
    Ответ написан
    5 комментариев
  • Какие meta-теги вообще актуальны?

    sumanai
    @sumanai
    Веб- программист- самоучка
    Именно мета- теги- только
    <meta charset="UTF-8" />
    <meta name="description" content="Описание" />
    <meta name="viewport" content="Нужные значения" />

    Остальные со страницы
    https://gist.github.com/kevinSuttle/1997924
    Ненужный в 21 веке мусор.
    Ответ написан
    2 комментария
  • Как правильно запускать долгий php-скрипт?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Вообще более-менее правильный подход:

    - пользователь отправляет запрос на сервер
    - сервер добавляет задачу в очередь
    - обработчик-демон берет задачу и делает ее

    По поводу отслеживания прогресса все чуть интереснее. Есть как минимум 4 варианта реализации:
    - пулинг - когда периодически мы шлем ajax запрос на сервер и спрашиваем сколько там сделано
    - лонг-пулинг - оптимизация первого варианта, при которой запрос не сразу отваливается, а отваливается либо по таймауту (скажем прошло 10 секунд) или же изменилось состояние и нам нужно об этом уведомить пользователя. Как только соединение отвалилось мы обрабатываем что там нам пришло или не пришло и повторяем запрос. Профит - реалтайм нотификация, то есть как-только у нас появилась свежая информация мы можем ее получить.
    - Server-sent events, когда запрос отдается нам по кускам с разделителями. Каждый кусок отдается тогда, когда что-то на сервере поменялось. Профит тот же что и в варианте с лонг полингом только не надо разрывать соединение. Но есть куча нюансов (скажем с Apache это не прокатит) и мало кто так делает.
    - web sockets - реалтайм, полнодуплексный, удобный вариант, но нужно заводить отдельный демон.

    Самый простой вариант - простой пулинг, в вашем случае реалтайм вам не нужен, достаточно раз в 10 секунд спрашивать сервер что там как. В этом случае обработчик очереди (или дочерний процесс или еще кто) может записывать в кэш текущий статус джобы, и вы можете получать ее по идентификатору. в качестве хранилища можно использовать redis или memcache, в этом плане они идеальны.
    Ответ написан
    5 комментариев
  • Как правильно сравнить массивы и оценить их схожесть?

    nowm
    @nowm
    Если два массива имеют одинаковую длину, можно просто двигать по кругу первый массив и сравнивать его элементы с элементами второго. Потом можно просто выбрать максимальное совпадение и перегнать в проценты. Примерно так:

    $arr1 = [1,2,3,4,5,7,2,8];
    $arr2 = [2,9,5,5,7,2,8,1];
    
    $len = count($arr1);
    $conformity = [];
    
    for($i = 0; $i < $len; $i++) {
    	/**
    	 * $temp содержит нули в позициях, где числа в двух массивах 
    	 * по одному и тому же индексу не равны. Единицы — там, где равны.
    	 */
    	$temp = array_map(function($x,$y){return intval($x==$y);}, $arr1, $arr2);
    	
    	// Элементы полученного массива суммируются и добавляются в отчётный массив
    	$conformity[] = array_sum($temp);
    	
    	// Массив прокручивается на одну позицию
    	$arr1[] = array_shift($arr1);
    }
    
    //С помощью max($conformity) выбирается максимальное совпадение элементов
    echo sprintf("Max conformity is %s%%\n", number_format(100*(max($conformity)/$len), 2));


    Это конкретно для ситуации, когда длина «колец» одинаковая.

    Update: ещё один вариант:

    $arr1 = [1,2,3,4,5,7,2,8];
    $arr2 = [2,9,5,5,7,2,8,1];
    
    function conformity($arr1, $arr2) {
    	$len = count($arr1);
    	$max = $curr = 0;
    	
    	for($i = 0; $i < $len; $i++) {
    		array_map(function($x,$y)use(&$curr){$curr += intval($x==$y);}, $arr1, $arr2);
    		
    		if($curr == $len) {
    			return 100;
    		}
    
    		$max = $max > $curr ? $max : $curr;
    		$curr = 0;
    		
    		$arr1[] = array_shift($arr1);
    	}
    	
    	return 100*($max/$len);
    };
    
    echo sprintf("Max conformity is %s%%\n", number_format(conformity($arr1, $arr2), 2));
    Ответ написан
    6 комментариев
  • Как с помощью REGEXP вырезать из URL всё кроме домена?

    nalomenko
    @nalomenko
    Руководитель отдела разработок в студии «Lava»
    Вам для какого языка программирования код нужен? На PHP это, к примеру, делается вот так:
    $domain = parse_url($url, PHP_URL_HOST);

    А вот пример для фронтенда на javascript:
    function cleanUp(url) {
        var url = $.trim(url);
        if(url.search(/^https?\:\/\//) != -1)
            url = url.match(/^https?\:\/\/([^\/?#]+)(?:[\/?#]|$)/i, "");
        else
            url = url.match(/^([^\/?#]+)(?:[\/?#]|$)/i, "");
        return url[1];
    }
    
    alert(cleanUp('  http://www.google.com/about.html'));
    alert(cleanUp('  www.google.com/about.html'));


    Для Yahoo Pipes решение тут
    Ответ написан
    4 комментария
  • Как реализовать поле поиска,и реализовать умный поиск?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Еще есть Select2. Он очень гибкий и там совершенно несложно сверстать это дело используя шаблонирование. По поводу размытого поиска используйте расстояние Левенштайна.
    Ответ написан
    Комментировать
  • Как эмулировать браузер на php?

    dizballanze
    @dizballanze
    Software developer at Yandex
    Полностью на php не знаю, но можно взаимодействовать с selenium или phantomjs.
    Ответ написан
    Комментировать
  • IDE для разработки на PHP?

    AlexanderPHP
    @AlexanderPHP
    NetBeans — давно в нем нишу, очень удобно
    Ответ написан
    Комментировать