• Какой код лучше?

    faiwer
    @faiwer
    frontend-developer
    Оба варианта нормальные. Второй уместнее в случае, если планируется много кода по работе со stream-ми и тогда весь дополнительный код выносится в library или helper-file. Первый уместнее, если это просто единичный случай, тогда мишура из генераторов выглядит overhead-ом.

    И зачем было сюда это писать? :) Опросы какие-то создавать. Давайте ещё на stackoverflow топик создадим. А потом на hackernews статью про хипстеров которые всё заполонили. "Як диты малэньки".
    Ответ написан
  • Опрос, зарплаты и хабрахарбр. Уместно ли?

    faiwer
    @faiwer Автор вопроса
    frontend-developer
    Ввиду отсутствия особого интереса со стороны всех кроме меня самого, а также ввиду того, что получившаяся выборка будет слишком слабой ― ответ на вопрос: нет. В таком виде оно не нужно. Спасибо всем за ответы.
    Ответ написан
    Комментировать
  • NodeJS - статистика?

    faiwer
    @faiwer Автор вопроса
    frontend-developer
    Не рестартую, зачем? месяцами не рестартую. Проблема в топике заключалась в том, что OpenVZ — зло. Никогда больше не буду покупать сервера на OpenVZ. Только Xen или KVM.
    Ответ написан
    Комментировать
  • Каким должно быть регулярное выражение для замены относительных ссылок на абсолютные (RSS)?

    faiwer
    @faiwer Автор вопроса
    frontend-developer
    В JavaScript много чего нет в поддержке регулярок. Только самый минимум. Про ретроспективную негативную проверку я знаю, сам же выше и написал про неё :) До сих пор не придумал как её здесь можно развернуть. Зато придумал решение с опережающей позитивной проверкой. Получилось так:

    	static public function relative_to_absolute( $text )
    	{
    		$rg =
    			'#'.
    				'(<\w+\s.*)'. // "<img "
    				'(href|src)\s*=\s*'. // "src = "
    				'(?:'.
    					'\'(?![\w:]+//)/?([^\']+)\''.'|'. // 'relative'
    					'\"(?![\w:]+//)/?([^\"]+)\"'. // "relative"
    				')'.
    			'#';
    
    		$replace = $text;
    		$host = self::base('http');
    
    		do
    		{
    			$text = $replace;
    			$replace = preg_replace( $rg, '$1$2="'.$host.'$4"', $replace );
    		}
    		while( $text !== $replace );
    
    		return $replace;
    	}

    (?![\w:]+//) — «говорит» о том, что после кавычки не будет протокола,
    /? — игнорирует лидирующий слеш на случай если таковой имеется, ибо в $host он уже есть.

    Осталась только проблема с дублированием кода для одинарных и двойных кавычек. Но тут, честно говоря, мне кажется решений в лоб и не существует :)
    Ответ написан