• Генерация кода из AsyncAPI для Golang?

    paramtamtam
    @paramtamtam Автор вопроса
    Нашел такую историю, и её как раз и заюзал - https://github.com/spiral/asyncapi-go-template
    Ответ написан
    Комментировать
  • Как понять в форму регистрации ввели телефон или email (одно поле)?

    Однозначно стоит данную проверку реализовывать как на бэкэнде, так и фронте. Готовых решений для валидации email и там и там даже больше, чем надо (всё зависит от того, что вы уже используете).
    Ответ написан
    Комментировать
  • Можно ли использовать laravel withoutOverlapping метод вместе с временем?

    Быть может вам есть смысл уйти от использования крона в принципе, посмотрев в сторону queue (+ horizon, опционально)?

    Такое решение получится горизонтально масштабируемым, и (правда-правда) не таким сложным и "страшным" в реализации :)
    Ответ написан
    Комментировать
  • Как изучить некоторые архитектуры в пхп?

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

    (с) Этож очевидно
    Ответ написан
    Комментировать
  • Как сохранить прежние url изображений при изменении их путей?

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

    Может быть лучше использовать комплексный datetime, или ещё лучше хранить как без-знаковый unixtime (работать будет быстрее, а научить модели при чтении из этого поля возвращать корректный DateTime объект - не так то уж и сложно).

    И я бы хранил в UTC, всё верно, и у пользователя отдельное значение - смещение от него в ту или иную сторону. Тогда от огромной кучи проблем избавишься, главное лишь чтоб на серверах (app + db) время корректно стояло - строго по UTC.
    Ответ написан
    3 комментария
  • Проксирование изменений вложенного объекта в JavaScript?

    paramtamtam
    @paramtamtam Автор вопроса
    В общем пошел по пути не самому лучшему, но более стабильному. Все настройки привел к "плоскому" виду, и обернул всё это дело в прокси для отлова событий. Так и к опциям общения происходят "прямо" - Settings.value1, и к методам Settings.onSet. По хорошему это лютый говнокод, но как лучше сделать - ещё не придумал.

    var Settings = new Proxy({
      data: {
        value1: 'some text',
        value2: true,
      },
    
      /**
       * Callback - on any property/value read
       *
       * @param   {string} name
       * @returns {void}
       */
      onGet: function(name) {
        console.log('Property "' + name + '" read action');
      },
    
      /**
       * Callback - on any property/value write
       *
       * @param   {string} name
       * @param   {mixed} value
       * @returns {void}
       */
      onSet: function(name, value) {
        console.log('Property "' + name + '" write "' + value + '" action');
      },
    
      /**
       * Load settings from storage
       *
       * @param   {callable} callback
       * @returns {void|object}
       */
      load: function(callback) {
        // Code
      },
    
      /**
       * Save settings in storage
       *
       * @param   {callable} callback
       * @returns {void}
       */
      save: function(callback) {
        // Code
      },
    
      /**
       * Remove all settings from storage
       *
       * @param   {callable} callback
       * @returns {void}
       */
      clear: function(callback) {
        // Code
      }
    }, {
      /**
       * Getter
       *
       * @param   {object} target
       * @param   {string} name
       * @returns {mixed}
       */
      get: function(target, name) {
        var result = undefined;
        if (name in target.data) {
          result = target.data[name];
        }
        if (name in target) {
          result = target[name];
        }
        if (typeof target.onGet === 'function') {
          target.onGet.call(target, name);
        }
        return result;
      },
    
      /**
       * Setter
       *
       * @param   {object} target
       * @param   {string} name
       * @param   {mixed} value
       * @returns {mixed}
       */
      set: function(target, name, value) {
        if (name in target.data) {
          target.data[name] = value;
          // Save changes in storage
          target.save.call(target, name, value);
        }
        if (name in target) {
          target[name] = value;
        }
        if (typeof target.onSet === 'function') {
          target.onSet.call(target, name, value);
        }
        return true;
      }
    });
    Ответ написан
    Комментировать
  • Помощь в обработке массива PHP?

    Вы серьезно?

    foreach ($array as $item) {
      if (isset($item['City'])) {
        echo $item['City'];
      }
    }
    Ответ написан
    1 комментарий
  • Как предотвратить доступ к удалению чужих записей на сайте?

    Логи доступа по HTTP проверьте в первую очередь, грепая их по словам `deletePost`, `delete`, `id=` и т.д.
    Ответ написан
    Комментировать
  • Как переобразовать word в xml формат через php?

    По идее документ формата docx уже является xml документом, только сжатым алгоритмом zip. Всё что вам потребуется, это:

    $zip = new ZipArchive;
    $doc_file = './publisher.docx';
    $zip->open($doc_file);
    $zip->extractTo('./tmp');


    После чего глянуть на содержимое и воспользоваться функцией simplexml_load_file:

    $xml = simplexml_load_file("./tmp/path_to.xml");
    $xml->registerXPathNamespace('w',"http://schemas.openxmlformats.org/wordprocessingml/2006/main");
    $text = $xml->xpath('//w:t');
    echo '<pre>'; print_r($text); echo '</pre>';


    Stackoverflow
    Ответ написан
    Комментировать
  • Как обратиться к объекту, зная его название в виде строки?

    Если я правильно понял ваш вопрос, то знайте что к элементам объекта можно обращаться как с элементами массива. Пример:
    var source = {
    	'one': {
        id: 1,
        name: 'Name1',
      },
      'two': {
        id: 2,
        name: 'Name2',
      }};
    
    console.log(source['one']['name']);
    console.log(source['two']['name']);


    Вернет:
    Name1
    Name2
    Ответ написан
    3 комментария
  • Какой самый быстрый способ поиска по массиву объектов?

    Если в проекте используется jQuery то, думаю, есть смысл обратиться к jQuery.grep:
    var source = [{
        id:123,
        name: 'Name1'
      },{
        id: 321,
        name: 'Name2'
      }];
    
    function getObject(source, id) {
    	return jQuery.grep(source, function(e){ return e.id == id; });
    }
    
    console.log(getObject(source, 321));


    Если массив не очень большой, то простого перебора возможно будет вполне достаточно:
    function getObject(source, id) {
      for (var i = 0, len = source.length; i < len; i++) {
        if (source[i].id == id) {
          return source[i];
        }
      }
    }

    Если есть возможность использовать ECMAScript 6, то можно обратиться к его нативной функции (для "старых" браузеров можно подключить этот полифил):
    function getObject(source, id) {
      return source.find(function (el) {
        return el.id === id;
      });
    }

    Или прибегнуть к хорошо поддерживаемому методу filter:
    function getObject(source, id) {
      return source.filter(function(el) {
        return el.id === id;
      })[0];
    }


    Какой из методов покажет покажет себя лучше у вас - тот и используйте. Для тестов просто прогоните каждый, например, так:
    console.time('test_func_exec');
    for (var i = 0; i < 10000000; i++) {
      getObject(source, 123);
    }
    console.timeEnd('test_func_exec');

    Запустив каждый с десяток раз на "боевых" данных, и взяв среднее время выполнения каждого (тестирование, как я полагаю, вы будете производить в браузере).
    Хорошего вам дня!
    Ответ написан
    Комментировать
  • Как правильно передать query SQL из jQuery в PHP?

    Нельзя так делать! SQL-injection - это, конечно, всё выдумки и враки, да-да.

    Сделайте публичный API, который принимая необходимые параметры, после их последующей фильтрации, после их проверки на валидность будет собирать и выполнять SQL запрос, отдавая ответ в json-формате, который клиент без проблем поймет и разберёт.
    Ответ написан
    Комментировать
  • DataPicker, не могу правильно подвесить, где ошибка?

    Если бы you задавали questions в more читабельном format, то it will be проще understand и respectively отвечать. Hope на yours понимание.
    Ответ написан
  • Как запустить Silex?

    Быть может не хватает AllowOverride All?
    Ответ написан
    Комментировать
  • Как заставить phing удалять все комментарии из php фалов?

    paramtamtam
    @paramtamtam Автор вопроса
    Ответ: глючит функция <stripphpcomments />. Итоговый вид:
    <target name="protect_php" depends="make_copy">
        <echo>Protect PHP files</echo>
        <reflexive>
          <fileset dir="${build_dir}">
            <include pattern="**/*.php" />
          </fileset>
          <filterchain>
            <stripwhitespace />
            <tabtospaces tablength="1" />
          </filterchain>
        </reflexive>
      </target>
    Ответ написан
    Комментировать
  • Как правильно поставить yandex maps в подвале лэндинга?

    Поверх карты один div, который скрывается (дестроится) по клику и имеет надпись "Нажмите для доступа к карте". Нет?
    Ответ написан
    Комментировать
  • Странное поведение iptables - в чем может быть причина?

    paramtamtam
    @paramtamtam Автор вопроса
    Дело было во включенном firewalld, простого chkconfig firewalld off && reboot оказалось достаточно. Спасибо ldvldv за ответ!
    Ответ написан
    Комментировать
  • WD My Book Live - клиент более жив ими мертв?

    paramtamtam
    @paramtamtam Автор вопроса
    В общем, решилась проблемка, дело было в ошибке компиляции swap.c. A теперь чуть подробнее о том, что было сделано в итоге:

    Перед подключением винта к пк была создана загрузочная флешка с live образом imuxmint. Образ был взят с оффсайта, для записи использовал Universal-USB-Installer-1.9.5.5. В "стандартном" режиме запускаться отказалась, но в "безопасном" - запустилась на ура.
    Далее - был немного исправлен скрипт debrick.sh (убрано создание бинарника "swap", вместо этого использовал готовый), и написан скрипт для автоматизации, который ставит mdadm и извлекает образ и deb "прошивки". И сам скрипт, и "прошивка", и бинарник - в общем всё выложил по этой ссылке (zip архив, прямая ссылка).

    Спасибо всем, всё работает.

    a36ad09b4a20411e84e98541d7ea0278.png
    Ответ написан
    Комментировать
  • Как запретить доступ к сайту по критерию принадлежности к стране?

    paramtamtam
    @paramtamtam Автор вопроса
    В общем, друзья, решение. Спасибо всем откликнувшимся!

    Можно сэмулировать заботу php в "прозрачном режиме". Можно, но это очень ресурсоемко. В 2х словах алгоритм должен выглядеть следующим образом - все запросы перенаправляются к index.php; Если запрашиваем существующую директорию - выводим листинг; если запрашиваем файл - по кускам его читаем и выдаем (предварительно выставив необходимые заголовки). Но, т.к. запросов много, а файлы - довольно большие - решение бы положило сервер минуты за две. Работало бы, было бы гибкое, но положило. Очень хреновое решение в данной ситуации, надо сказать.

    Что было сделано - так как хостинг от "руцентра" (nic.ru) - режим работы был переведен в ручной, собран из исходников модуль mod_geoip, и подсунут апачу из не "родной" директории (родные все ридонли). Апач его съел, модуль был настроен, всё заработало. Родной "мануал" на форуме "руцентра" крайне не полный, сделал о всем процессе заметку по ссылке. Саппорт руцентра так и не ответил на письма. Шли третьи сутки.
    Ответ написан
    Комментировать