• Как в руби удалить массив с пустым элементов из массива массивов?

    0xD34F
    @0xD34F
    arr.delete_if{|n| n.include?('')}
    Ответ написан
    Комментировать
  • Как лучше реализовать хранение данных в БД? Какой стек технологий выбрать?

    XXXXPro
    @XXXXPro
    Fullstack Web developer
    А зачем такое делать на NoSQL? Тут реляционные базы вполне подходят.
    Я бы вообще ограничился тремя таблицами:
    1) сайт
    2) товар вообще (по сути, там хранится только его id и наименование)
    3) товар на конкретном сайте (тут хранится id товара, id сайта, цена, дата парсинга).
    Ответ написан
    7 комментариев
  • Откуда взять мотивацию?

    Кажется, эти вопросы задаёт себе каждый человек в своей жизни. Есть хорошее правило по этому поводу: не хочешь ничего делать - ничего не делай! :) Ибо зачем вам какая-то мотивация? Вам что - обязательно нужно делать сайты? Если бы это было так - вы бы не задавали этот вопрос. Так что хватит уже красноглазить - займитесь тем, что вам по-настоящему хочется делать!
    Ответ написан
    Комментировать
  • Как сравнить таблицу с её предыдущим состоянием?

    blackst0ne
    @blackst0ne
    Фулстэк-разработчик
    1. Можно добавить таблицу историй движений.
    2. Можно добавить поле "предыдущее значение". И при отображении каждой команды проверять текущую позицию со значением из поля "предыдущее значение".
    3. Можно использовать рельсовые "грязные методы".
    Ответ написан
    Комментировать
  • Заказчик хочет больше работы за фиксированную сумму и не хочет доплачивать. Как урегулировать спор?

    x67
    @x67
    Ваш договор не имеет юридической силы в силу того, что в нем не прописаны ключевые условия. Например, если заключить договор, что Маша должна пачку молока Саше потому что он бука, то такой договор прокатит только в детском садике (потому что у них все серьезно). Правда еще следует поискать что нибудь подобное в законодательстве той страны, в юрисдикции которой может быть рассмотрен договор и действий которой вы опасаетесь ( если возвести все до крайней степени, то Россия, потому что ваша страна и Индия, потому что его страна, а вы хотите когда-нибудь там побывать и опасаетесь что из-за тяжб вам может быть отказано в получении визы).
    С психологической точки зрения наверное стоит спокойно объяснить заказчику, что он чудак, вы сделали то и то, потому что это было обговорено до начала проекта в скайпе, как вы и договорились в договоре, за это он должен вам денег и дальше вы можете сотрудничать на новых условиях или не сотрудничать вообще. В крайнем случае может стоит чуть пригрозить, сказав что у вас есть записи разговоров в скайпе и он полностью отвечает за свои поступки перед законом, а вы принципиальный человек. Если не получается найти точку взаимодействия, то просто прекращайте общение и удаляйтесь искать более адекватных клиентов и писать себе памятки о том, как не стоит заключать договора)
    Ответ написан
    Комментировать
  • Почему PHP закешировал один файл?

    djQuery
    @djQuery
    "Кодируем помаленьку" ("Сказка о Тройке")))
    А ещё бывает так: правишь код на локалхосте, а результат смотришь на продакшене ;-)
    Ответ написан
    Комментировать
  • Как правильно превратить строку в массив?

    @aleksey_komyakov
    Зачем читать файл в строку и потом его разделять??

    $arr = file('test.txt');#Читаем файл в массив. 1 строка = 1 элемент
    print_r($arr);#выводим в браузер
    Ответ написан
    Комментировать
  • Как грамотно оформить выделение текущего пункта меню в навигации сайта?

    nbekseitov
    @nbekseitov
    Ruby developer
    Просто создайте хэлпер. Пример:
    def nav_link(link_text, link_path)
      class_name = current_page?(link_path) ? 'current' : ''
    
      content_tag(:li, :class => class_name) do
        link_to link_text, link_path
      end
    end

    nav_link 'Home', root_path
    Ответ написан
    1 комментарий
  • Как бы вы организовали выдачу уникального кода?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    Вариантов много. Самое простое - использовать UUID, с ними можно предполагать, что дублирования не будет. Можно генерировать код каким-то другим способом и проверять, нет ли его уже в БД (повторять, пока не сгенерируется уникальный код, но тут всё-равно могут быть коллизии).
    Ответ написан
    3 комментария
  • Как понять это регулярное выражение?

    qork
    @qork
    { background: #F00B42 }
    I know regexp!

    Первый символ I
    Далее пробел
    Не менее одного символа из [w,o,n,k]
    Пробел
    Не менее одного символа из [p,x,e,g,e,p,r]
    Восклицательный знак
    Ответ написан
    Комментировать
  • Что работодатель ожидает от верстальщика без опыта?

    @evgeniy_lm
    Как и везде "смотреть и слушать, смотреть и слушать". И главное слушать внимательно - сказали идти за пивом, значит идти за пивом, сказали за сигаретами, значит за сигаретами. В этом деле главное не перепутать
    Ответ написан
    Комментировать
  • Почему не работает код (Не бойтесь, 20 строк) на php?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    else if ($D=0)
    Используйте сравнение (===), а не присваивание (=).

    $x == $b/(2*$a);
    Используйте присваивание (=), а не сравнение (==).

    abcx($a=2, $b=-4, $c=3);
    При такой записи вы создаётё вне функции переменные $a, $b и $c, а потом передаёте в неё их значения. Переменные при это продолжают болтаться снаружи и никак не связаны с одноименными локальными переменными функции. Это не ошибка, код будет работать, но действие бессмысленное и потенциально вредное. Вызывайте функцию как обычно: abcx(2, -4, 3);

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

    P.S. Что же вы лесенку-то не достроили? :)
    $D = sqrt($D);
    $x == ($b + $D)/2*a;
    $x2 === ($b - $D)/2*a;
    Ответ написан
    3 комментария
  • Как "пройти" по ключам массива?

    для этого узкого примера как-то так:
    $array = array(
      'one' => 'hi',
      'two' => 'privet',
      'three' => array('three_1' => 'hi', 'three_2' => 'privet'),
    );
    
    $str = 'three|three_1';
    
    $keys = explode("|", $str);
    
    var_dump($array[$keys[0]][$keys[1]]);


    Updated 1:
    <?php
    
    function foo($array, $str){
    	$keys = explode('|', $str);
    	
    	$keysCount = count($keys);
    	
    	$result = $array;
    	for($i = 0; $i < $keysCount; $i++){
    		if(!is_array($result) && $i < ($keysCount - 1)){
    			throw new Exception("Array depth not expected");
    		}
    		
    		if(!isset($result[$keys[$i]])){
    			throw new Exception(sprintf("Key '%s' not found", $keys[$i]));
    		}
    		
    		$result = $result[$keys[$i]];
    	}
    	
    	return $result;
    }
    
    $array = array(
      'one' => 'hi',
      'two' => 'privet',
      'three' => array('three_1' => 'hi', 'three_2' => 'privet'),
    );
    
    $str = 'three|three_1';
    
    var_dump(foo($array, $str));
    Ответ написан
    4 комментария
  • Как вырезать это с помощью регулярки?

    miraage
    @miraage
    Старый прогер
    Немного извращенский вариант, но не забывайте, что в PHP существуют такие возможности.

    <?php
    
    $html = <<<EOF
    <img height="720" src="http://www.example.com/static/ckef/img/2_122.jpg" width="960">
    <img height="720" src="http://www.example.com/static/ckef/img/2_122.jpg" width="960">
    <img height="720" src="http://www.example.com/static/ckef/img/2_122.jpg" width="960">
    EOF;
    
    $dom = new DOMDocument();
    $dom->loadHTML($html, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
    
    $images = $dom->getElementsByTagName('img');
    $result = '';
    
    /** @var DOMElement $image */
    foreach ($images as $image) {
        $image->removeAttribute('width');
        $image->removeAttribute('height');
        
        $result .= $dom->saveHTML($image);
    }
    
    echo $result, PHP_EOL;


    <img src="http://www.example.com/static/ckef/img/2_122.jpg"><img src="http://www.example.com/static/ckef/img/2_122.jpg"><img src="http://www.example.com/static/ckef/img/2_122.jpg">
    Ответ написан
    1 комментарий
  • Возможно ли написать универсальный парсер сайтов?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    И да, и нет: у вас очень расплывчатая формулировка. Непонятно, насколько осмысленным и обработанным должен быть итоговый результат, насколько допустим мусор.

    Скачать страницу, построить дерево документа и какими-то элементарными эвристиками вырезать ненужное (меню, сайдбары, подвалы, рекламу и т.п.) относительно просто, но результат будет довольно грубый с неудовлетворительным соотношением сигнал/шум.

    Для повышения универсальности инструмента, потребуется увеличивать количество и сложность этих эвристик. А ещё можно подключить туда машинное обучение, чтобы они сами себя улучшали.
    И вот вы уже хотите написать что-то вроде поискового паука. Представьте, сколько сил вложено в разработку паука Яндекса или Гугла. У вас есть такие возможности? А ведь мало его просто написать, надо поддерживать, следить за новыми стандартами...

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

    Поднимаете второй сервер с debian8 делаете реплику БД, заливаете на новый сервак, заливаете файлы, мигрируете полностью. Переключаете сайт со старого сервера на новый. PROFIT! ))
    Ответ написан
    5 комментариев
  • Должен ли RoR разработчик знать SQL?

    mbeloshitsky
    @mbeloshitsky
    Вебдев, систем оперейшонс, ж.д. автоматика
    Предполагается, что идет по-умолчанию. Писать на рельсах на чистом SQL, приходится в редких случаях, и вообще в некоторых проектах необязательно. Но без понимания принципов работы СУБД (что является неким синонимом "знаю SQL") разработчик не будет осознавать, что он делает.
    Ответ написан
    Комментировать
  • Должен ли RoR разработчик знать SQL?

    @chronic86
    Ruby on Rails junior
    В основном предполагается использование ORM.
    Но по своему небольшому опыту советую Вам подтянуть SQL, так как:
    1. Иногда составить сложный запрос легче на SQL
    2. Бывает, что производительность запроса на ORM намного ниже чем на чистом SQL.
    Ответ написан
    Комментировать
  • Как создать похожие Select box-ы?

    Ilnar25
    @Ilnar25
    Опиши задачу по конкретнее, что хочешь сделать? Опиши модели, какие связи они имеют, поля если они могут быть необходимы для решения вопроса. Исходя из них тебе подскажут верное направление...
    Ответ написан
    Комментировать