• Как заменить CURLFile на CURLOPT_POSTFIELDS?

    @Nc_Soft
    if (class_exists('\CURLFile')) {
                curl_setopt($ch, CURLOPT_POSTFIELDS, ['file1' => new \CURLFile($path)]);
            } else {
                curl_setopt($ch, CURLOPT_POSTFIELDS, ['file1' => "@$path"]);
            }
    Ответ написан
    4 комментария
  • Meteor.js расцветает или чахнет?

    PQR
    @PQR
    Не согласен с предыдущим оратором (@geeek), в частности с утверждением
    В общем если хочешь быть в тренде - бери
    - Meteor совсем не в тренде.

    Если дать краткий и резкий ответ на вопрос "расцветает или чахнет?" - отвечу: интерес к Meteor чахнет, не смотря на все усилия команды разработки.

    Компания MDG (Meteor Development Group) подняла $31M инвестиций (https://www.crunchbase.com/organization/meteor) и хотела всё сделать круто, стать мейнстримом, а потом зарабатывать на хостинге Meteor проектов - такой план монетизации. Хостинг они, кстати, сделали. И в какой-то момент было много хайпа вокруг Meteor, казалось, что всё идёт по плану. Полтора года назад вышел Meteor 1.0 (октябрь 2014), потом была пара хороших релизов, которые убрали всю "сырость": Meteor 1.1 и 1.2.

    Но в середине 2015 стало понятно, что никаким мейнстримом они не стали, мейнстрим нынче React!
    Не смотря на простоту старта и скорость разработки с Meteor, были очевидны следующие минусы:

    1. Собственная система пакетов со своим центральным репозиторием https://atmospherejs.com - посмотрите на счётчики скачивания пакетов, это крохи по сравнению с npm. Посмотрите на активность разработки основных пакетов - всё очень тухленько.

    2. Собственная система сборки. С одной стороны всё работает из коробки, с другой стороны в неё не вклинишься (это сложно). Плюс всякие странные условности, что всё в глобальном пространстве имён и ваши js файлы загружаются в алфавитном порядке. В Meteor 1.3 частично решили проблему, ходят слухи, что в будущем будут использовать webpack.

    3. Собственный шаблонизатор blaze (похож на handlebars). В начале blaze выглядел хорошо, но теперь все внезапно пишут на React и многие потирают руки в ожидании Angular 2, в итоге blaze оказался ещё один велосипедом, с которым не понятно что делать.

    4. На бекенде всё ещё Node 0.10. Даже с Node 0.12 Meteor уже не работает из-за некоторых бинарных зависимостей! Обещали в будущих версиях обновиться с поддержкой Node 4.

    5. Метеор сильно завязан на MongoDb. Чтобы реактивно доставлять новые/изменившиеся данные от сервера в бразуер они парсят логи Mongo. Были попытки сделать аналогичное для SQL баз, но не увенчались успехом. В итоге встречайте их новый проект Apollo, который поверх GraphQL и не привязан к конкретной реализации бекенда www.apollostack.com А что теперь будет со старым добрым DDP?

    6. Ваше Meteor приложение одной командой можно упаковать в мобильное приложение Cordova - выглядит круто, но сейчас время ReactNative и вот мы читаем обсуждения на форумах, что возможно, они таки интегрируются с ReactNative, но когда?

    Подводя итог: ребята из MDG подняли кучу денег и хотели сделать всё сами: свои пакеты, свою сборку, свой шаблонизатор, свой реактивный протокол (DDP) и чтобы всё работало из коробки. И они сделали это!

    Только это оказалось никому не нужно, т.к. для пакетов все сидят на npm, сборка должна быть гибкой (и поэтому у нас есть gulp и webpack), самый модный шаблонизатор нынче - это React, реактивный протокол GraphQL и базы на сервере люди любят разные, а не только MongoDb. А Meteor, по сути, остался на обочине всей экосистемы и движухи вокруг JavaScript. Поняв это, MDG начали двигаться в сторону JS комьюнити и первый шаг сделан: Meteor 1.3 поддерживает нормальные модули ES2015, npm пакеты, рендринг через React и Angular. Но Meteor 1.3 - это куча костылей поверх старого велосипедного Meteor. Почитайте их планы на будущее в официальном блоге, хотя бы в этом посте: info.meteor.com/blog/announcing-meteor-1.3 - им по сути предстоит переписать всё заново! И первые ласточки такого "переписывания" - это выделение проекта Apollo.

    Возможно, со второй попытки они всё сделают правильно и Meteor 2.0 действительно выстрелит. Если только у них деньги не закончатся раньше.

    Сейчас можно взять Meteor и эффективно зарабатывать на маленьких/средних фриланс проектах, когда нужно сделать быстро и не думать о долгосрочной поддержке.
    Если же вы делаете большой продукт, то вас ждут большие потрясения и изменения в экосистеме Meteor.
    Ответ написан
    4 комментария
  • Как поступить, если запустили проект- а его кто-то скопировал?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Кусать локти. Сомневаюсь что за вами закреплено какое-то юридическое право за этой идеей.

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

    pozZzitiv
    @pozZzitiv
    Дизайнер и перфекционист
    А что плохого в задачах с небольшим бюджетом? Почему вы их стесняетесь? Это палка о двух концах.

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

    Все просто =)
    PS Я вот не стесняюсь взять заказ даже на 500 рублей.
    Ответ написан
    5 комментариев
  • Как найти пересечение массивов?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    $ids1 = array_column($result1, 'id');
    $ids2 = array_column($result2, 'id');
    // ...
    $idsn = array_column($resultn, 'id');
    
    $intersection = array_intersect($ids1, $ids2, ..., $idsn);


    Или если упростить:

    $ids = array_intersect(
        ...array_map(function(array $collection) {
             return array_column($collection, 'id');
        }, $results)
    );


    updated:

    $result = null;
    foreach($sql_queries as $sql_query) {
      $query_result =  $wpdb->get_results($sql_query);
      $ids = array_column($query_result, 'id');
      if (null === $result) { 
          $result = $ids; 
      } else {
          $result = array_intersect(
                $result, $ids
          );
      }
      $result = array_merge($result, $query_result);
    }
    Ответ написан
    2 комментария
  • Как подключить устройство по USB 2.0 в MAC OS?

    ivanvorobei
    @ivanvorobei
    iOS разработчик, канал https://t.me/sparrowcode
    Хаб в помощь
    Ответ написан
    Комментировать
  • Где хранить бесконечность записей (111 * 10^29)?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Это что вы такое собрались хранить?
    95*111*1029 байт ≈ 1034 байт ≈ 1022 терабайт
    Значит покупаете тысячу миллионов миллионов миллионов винчестеров на 10 Tb и получаете своё хранилище.
    Ответ написан
    12 комментариев
  • Не записывает в базу не выдавая ошибок?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Сам запрос неправильный. INSERT - это добавление новой строки в таблицу, в нём не может быть WHERE.
    Ответ написан
    Комментировать
  • Как запустить bash скрипт сразу после того, как закачается файл через wget?

    selivanov_pavel
    @selivanov_pavel
    Linux admin
    wget -qcO '/var/www/admin/test.yml' http://site.ru/file.yml ; sh '/var/www/admin/command.sh'


    && сработает только, если exit code предыдущей команды 0. ; - всегда
    Если это скрипт, то достаточно написать следующую команду на новой строчке, это то же самое, что ;
    Или можно заэкранировать перенос строки в шеле:
    wget -qcO '/var/www/admin/test.yml' http://site.ru/file.yml \
    sh '/var/www/admin/command.sh'
    Ответ написан
    Комментировать
  • Как отловить консольную команду в onBootstrap?

    27cm
    @27cm
    TODO: Написать статус
    Вопрос понятнее ссформулируйте. Не понятно, что значит отловить? Настроить debugger и поставить breakpoint? Или \Zend\Console\Console::isConsole()?
    Ответ написан
    Комментировать
  • Можно ли вытащить отдельную строчку с помощью IDA?

    @vilgeforce
    Раздолбай и программист
    Можно. Только вы не объяснили откуда и куда, поэтому нельзя.
    Ответ написан
    Комментировать
  • Как сделать редерикт подобный редерикту через hosts?

    alsopub
    @alsopub
    Файл hosts редиректами не занимается.
    Он отвечает только за соответствие domain -> ip.

    Если уж прямо очень нужно, то вам понадобится подконтрольный веб-сервер, который вы пропишите в hosts, и который уже сделает редирект туда, куда вам нужно.
    Ответ написан
    3 комментария
  • Как в jquery узнать время изменения файла на сервере?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Есть специальные заголовки и запрос HEAD, но для того, чтобы это сработало, сервер должен эти заголовки отдавать.
    Если сервер не отдаёт, то вы ничего не узнаете, даже если скачаете весь файл.
    Ответ написан
    Комментировать
  • Laravel подготовка к pduction, как отсечь всё лишнее?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега Laravel
    Должен ли я вообще озадачиваться подобным вопросом?
    Не должны, особенно если вы начинающий. Какой-то микроскопический профит вы сможете получить, но многократно повышается шанс отстрелить себе ногу.
    Ответ написан
    3 комментария
  • Как можно на php файл в кодировке utf8 with bom преобразовать в without bom?

    nazarpc
    @nazarpc
    Open Source enthusiast
    function without_bom ($text) {
        if (substr($text, 0, 3) == "\xEF\xBB\xBF") {
            return substr($text, 3);
        }
        return $text;
    }

    https://en.wikipedia.org/wiki/Byte_order_mark
    Ответ написан
    2 комментария
  • Как удалить слово «она» регуляркой?

    nazarpc
    @nazarpc
    Open Source enthusiast
    function stopWord($query) {
      $reg = "/(она)\b/iu";
      $query = preg_replace($reg,'',$query);
      return $query;
    }
    Ответ написан
    2 комментария
  • Есть ли доступ к PID в linux из PHP?

    nazarpc
    @nazarpc
    Open Source enthusiast
    exec(), shell_exec() & co чем не подходят?
    Ответ написан
    Комментировать
  • Почему не работает GET в RewriteRule?

    shambler81
    @shambler81 Куратор тега htaccess
    Гет не является частью урла
    # 301 --- http://www.test.com/faq.html?faq=13&layout=bob => http://www.test2.com/faqs.html?test=1
    RewriteCond %{HTTP_HOST} ^www\.test\.com$
    RewriteCond %{QUERY_STRING} (^|&)faq=13($|&)
    RewriteCond %{QUERY_STRING} (^|&)layout=bob($|&)
    RewriteRule ^faq\.html$ http://www.test2.com/faqs.html\?test=1 [L,R=301]
    Ответ написан
    2 комментария
  • Как удалить кавычки из строки?

    @VoRez
    Backend web developer.
    В replace первым аргументом можно передавать регулярное выражение, поэтому вместо "\"" стоит передать /"/g
    Модификатор g указывает на то, что будет искать все вхождения.
    https://javascript.ru/string/replace
    Ответ написан
    Комментировать
  • В чём ошибка записи пользователя в бд?

    27cm
    @27cm
    TODO: Написать статус
    steamid, nickname, joined, balance, totalBought, banned, admin -- 7 столбцов
    '$steamid', '$nickname', '$current_date', '0', '0', '0' -- 6 значений
    Ответ написан
    2 комментария