• Какие бывают сервисы to-do листов?

    Zifix
    @Zifix
    Barbatum
    Ответ написан
    Комментировать
  • Почему Simple HTML DOM не находит отдельные объекты?

    @Nc_Soft
    phantomjs
    ---
    Ладно, помогу тебе, а то будешь всю жизнь ajax парсить регулярками :)
    1. Создай пустую папку ali
    2. Скачай туда композер https://getcomposer.org/composer.phar
    3. Cоздай файл composer.json с таким содержимым
    {
      "require": {
        "jonnyw/php-phantomjs": "3.*",
        "symfony/dom-crawler": "3.*",
        "symfony/css-selector": "3.*"
      },
      "config": {
        "bin-dir": "bin"
      },
      "scripts": {
        "post-install-cmd": [
          "PhantomInstaller\\Installer::installPhantomJS"
        ],
        "post-update-cmd": [
          "PhantomInstaller\\Installer::installPhantomJS"
        ]
      }
    }

    4. Выполни
    php composer.phar install
    5. Создай файл index.php
    <?php
    
    require __DIR__ . '/vendor/autoload.php';
    
    $client = \JonnyW\PhantomJs\Client::getInstance();
    $request = $client->getMessageFactory()->createRequest('http://superdeals.aliexpress.com/en?spm=2114.11010108.21.1.v65LIL', 'GET');
    $response = $client->getMessageFactory()->createResponse();
    $client->send($request, $response);
    $html = $response->getContent();
    
    $crawler = new \Symfony\Component\DomCrawler\Crawler($html);
    $div = $crawler->filter('div.pro-msg');
    if($div) {
        echo $div->first()->text();
    }

    6. Выполни его php index.php и смотри результат
    /usr/local/bin/php /Users/evgenij/projects/untitled/index.php
    
    				Today Only
    				
    					Boy's Coat
    					>  Synthetic leather> Motor jacket style> Available in black and red
    					share:
    
        vk
            pinterest
            facebook
            Twinner
            Google+
            Email
        Sign in and share the website for a chance to get Points, which you can then convert to coupons.
    
    					US $9.74
    					
    						US $32.48 / piece | 70% Off
    					
    					
    					
    					
    						0486Left					
    					Buy Now
    					
    				
    			
    Process finished with exit code 0
    Ответ написан
    3 комментария
  • Как сделать модель на нестандартный запрос в Yii2?

    sanchezzzhak
    @sanchezzzhak
    Ля ля ля...
    через модель yii\base\DynamicModel

    для yii\base\Model
    создать в текущей модели public свойства для алисов $value_alias
    еще способ это в запросе алиас назвать также как и атрибут . SUM(`table`.`value`) as value
    Ответ написан
    5 комментариев
  • Как подключить nodejs-пакет в проект на yii2?

    sanchezzzhak
    @sanchezzzhak
    Ля ля ля...
    npm-asset ассеты не подходят как обычные JS для браузера это все для server-side nodejs
    Ответ написан
    Комментировать
  • Тенденция к перехвату проектов/клиентов сотрудниками с последующим увольнением. Что делать?

    Я вам могу только одно сказать - если человеку так легко уйти и открыть свою компанию, еще и вашего конкурента, то возможны три случая:
    1) человек - идиот, совершенно не оценивает свои возможности и не понимает, какую работу по созданию фирмы ему предстоит выполнить (весьма частый случай);
    2) человек настолько желает создать свою фирму и/или ему настолько скучно у вас, что он готов выполнить эту работу (достаточно редко);
    3) на самом деле открыть свою фирму по вашему роду деятельности не составляет труда, и по сути и этот человек, и вы сами просто пытаетесь "быть на коне" по принципу кто первый встал - того и тапки.

    Подробнее по последнему пункту.
    Я вот сейчас даже представить себе не могу, насколько невероятный объем сил мне нужно будет вложить, чтобы попытаться создать хотя бы подобие конкурента той фирме, где я работаю. Т.е. если я решу уходить - это будет уход в какой-то совершенно отдельный проект, гораздо меньшего масштаба, и не имеющий ничего общего с текущим рабочим местом, но очень интересный для меня (т.е. как раз случай 2).
    Поэтому ВАМ вопрос: а что вы сделали такого невероятного в рамках своей фирмы? Вы нашли уникальные проекты? Уникальные связи, приправленные вашей проверенной репутаций (важнейший момент)? Вот на моем рабочем месте это все есть. А на рабочих местах в вашей компании это есть?
    А если нет, то чего вы удивляетесь? Вы делите легкодоступные ресурсы, также как и двухмесячные вебстудии вырывают друг у друга сайты-визитки за три тыщи. Тогда вы должны уже привыкнуть к "закрыванием подписями".

    Нет, ну серьезно, как вы вообще ведете бизнес, если главное для вас - юридическая клетка работника? Почему в вашем вопросе вы говорите об этом, а не о том, что у вас в руках лучшие клиенты города?
    Ответ написан
    3 комментария
  • Тенденция к перехвату проектов/клиентов сотрудниками с последующим увольнением. Что делать?

    @komjaga
    Программист встроенного ПО
    Разделять проекты на части, полный контроль только самим или доверенным лицом
    Ответ написан
    Комментировать
  • Чистый JavaScript, он жив?

    @sanex3339
    Пишу на TypeScript'е, с августа. Больше на чистый JS не вернусь, (только если не будет крайней необходимости), если кто то будет втирать что мол "ты сейчас работаешь, пишешь на TS, а потом уволишься и тот, кого возьмем после тебя, все это дело разгребать будет" - отвечу 2 вещи:
    - (увольняться я не собираюсь =)) тот, кто будет все это дело разгребать мне потом спасибо скажет за нормальную архитектуру проекта.
    - фичи TS учатся за 1 день.

    PS: мне не нравится реализация классов на основе прототипов, без использования синтаксического сахара.
    В es2015 почти нормально, но там пока нет вот такого https://github.com/jeffmo/es-class-static-properti...
    Ответ написан
    Комментировать
  • Какой редактор php для работы в фтп?

    jacksparrow
    @jacksparrow
    Php storm, по ктрл+s умеет заливать изменённые файлы, с 9 ой версии можно редактировать файлы на сервере
    Ответ написан
    Комментировать
  • Yii2 как правильно выполнять выборку данных из БД и отображать её?

    @Bojczuk
    all/one после where забыли:
    $answers = Answers::find()->where(['ticket_id'=> '47'])->one();
    Ответ написан
    1 комментарий
  • Есть ли научно-фантастические книги с обоснованием событий на уровне "Марсианина"?

    skobkin
    @skobkin
    Гентушник, разработчик на PHP и Symfony.
    Вообще, немного не в кассу, но не так давно товарищ Юдковский закончил писать "свою версию" Гарри Поттера - Гарри Поттер и Методы Рационального Мышления (Harry Potter and Methods of Rationality). Начиналось это как безобидный фанфик, но в итоге вылилось в огромную книгу. Науки там не зашкаливающее количество, но она там есть. Есть логика, рациональность и отсутствие роялей в кустах.
    Так что могу порекомендовать и её. Читать интересно, а местами - даже смешно, так как есть масса отсылок к оригиналу с намёком на некоторые глупости.
    Ответ написан
    6 комментариев
  • Где лучше всего хранить sass и coffee файлы в Yii2?

    SamDark
    @SamDark
    Yii2 core team
    Вне вебрута потому как в вебруте они не нужны. Я храню в `/assets/`, где `` — `js`, `css`, `less`, `ts` и т.д.
    Ответ написан
    2 комментария
  • Есть ли адекватный парсер кинопоиска?

    kurbpavel
    @kurbpavel Автор вопроса
    Спасибо за участие в решении моей задачи, но как это часто бывает, помощь пришла от гугла.
    kparser.pp.ua
    Ответ написан
    2 комментария
  • Как решить эту задачу без «подбора» значений?

    @MarkusD
    все время мелю чепуху :)
    Легко. Но для этого на циферблат надо посмотреть под разными углами.

    Сперва давай поглядим на него как на арифметическую прогрессию. А1 == 1; А12 == 12; D == 1.
    Формула суммы прогрессии: S = (A1 + An) * n / 2;

    Вычисляем сумму нашего ряда, она равна 78. И дальше все становится очень просто.

    Теперь давай посмотрим на циферблат как на циферблат. У него 12 значений, связанных в кольцо.
    Проведя линию и поделив циферблат на две части, мы как бы создаем две области арифметических прогрессий.
    При чем сумма сумм этих прогрессий будет равна той сумме, что мы уже посчитали.
    Стало быть, нам достаточно найти такой участок на циферблате, сумма чисел которого была бы равна ровно 39 - половине уже рассчитанной сверху суммы. Иначе условие задачи не выполнить.

    Выходит так, что элементов в искомой последовательности у нас становится не 12, а 6. D тот же, а вот A1 и A6 у нас неизвестные. Найти их можно через все ту же формулу суммы.

    39 == (A1 + A6) * 6/2
    13 == A1 + A6
    A6 == A1 + D*5
    13 == 2*A1 + 5
    8 == 2*A1
    A1 == 4
    A6 == 4 + 5 == 9

    Всё. Первая группа - это [4..9], вторая - это [1..3,10..12], суммы обеих последовательностей будут равны 39, а вместе - 78.

    UPD:
    Почему именно 6 элементов... Смотрим.

    Для множества циферблата сумма такова:
    78 == ( 1 + 12 ) * 12 / 2

    Для подмножества должна выполняться такая сумма:
    39 == ( 2A1 + N - 1 ) * N / 2

    Определим N из тожественного равенства двух сумм с поправкой что от первой нам надо только половину.
    ( 1 + 12 ) * 12 / 4 == ( 2A1 + N - 1 ) * N / 2

    Замечаем тождественность составляющих выражения и теперь рассмотрим это равенство как систему уравнений:
    1 + 12 == 2A1 + N - 1
    12 / 4 == N / 2

    Вуаля!
    N == 6; а из первого равенства очень легко вывести A1, который равен 4.
    Ответ написан
  • Как подружить swiftmailer с яндекс.пдд?

    hell0w0rd
    @hell0w0rd Автор вопроса
    Просто разработчик
    Оказывается вот как надо:
    protected function execute(InputInterface $input, OutputInterface $output)
    {
        $mailer = $this->getContainer()->get('mailer');
        $transport = $mailer->getTransport();
        $transport->start();
        $message = \Swift_Message::newInstance(
            $input->getOption('subject'),
            $input->getOption('body'),
            $input->getOption('content-type'),
            $input->getOption('charset')
        )
            ->setFrom(['mail@nkt.me' => 'Admin'])
            ->setTo($input->getOption('to'));
        $output->writeln(sprintf('Sent %s emails', $transport->send($message)));
        $transport->stop();
    }
    

    Смысл в start-stop
    Ответ написан
    Комментировать
  • Как ограничить доступ для разработчика-стажера?

    foxmuldercp
    @foxmuldercp
    Системный администратор, программист, фотограф
    1. Чтобы я бы сделал — разграничил всё решение — на отдельные проекты — компонентов, в отдельные репозитории.
    2. Дал доступ новому разработчику на нужные ему репозитории, пусть развлекается там, изменения его кода пусть апрувят более продвинутые разработчики после проверки его кода, например.

    3. Из суровых вариантов защиты — ведение разработки на виртуалке через тот же vnc/rdp с запретом синхронизации буфера обмена терминального соединения и машины на которой оно запущено, т.е стандартная фича скопировать в буфер обмена код в рдп сеансе и вставил его в блокнот на рабочей машине, с которой подключаешься по rdp — уже не получится — чтобы вытащить код придется очень много скриншотить, — такое у подруги в конторе практиковалось, но там и софт очень банковско-хитроспецифический, и виртуалка после окончания рабочей сессии сбрасывалась в состояние по умолчанию и имела доступ только на сервера разработки, продакшен сервера обслуживались и код на них выкладывался проверенными сотрудниками в другом подразделении.
    Ответ написан
    Комментировать
  • Sleep(delay) в javascript?

    SpeCT
    @SpeCT
    Не слушайте никого и делайте так, как считаете нужным. Про синхронный XHR тут уже упомянули, так что ниже код, что вы просили:

    function sleep(ms) {
    ms += new Date().getTime();
    while (new Date() < ms){}
    } 
    
    Ответ написан
    2 комментария