• Как локально перезапустить nodejs?

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

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    Ответ написан
    Комментировать
  • Проверка номера телефона с помощью звонка?

    Kindman
    @Kindman
    А, зачем вообще что-то кому-то там надиктовывать?
    Есть более простое решение: Проверка номера телефона с помощью обратного вызова.

    1) размещаете на сайте форму ввода номера телефона
    2) после нажатия кнопки «отправить» клиенту выдается номер телефона, по которому предлагается совершить «дозвон» (набрать номер, дождаться длинных гудков, повесить трубку)
    3) в случае успешного «дозвона» номер считается «проверенным»
    4) если же в течение некоторого времени звонка с заявленного номера так и не поступило, то, проверка номера считается «проваленой».
    Ответ написан
    6 комментариев
  • Как правильно настроить IDE для работы с golang?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    Прописываешь пути к установленному go:
    ( например если go установлен в папку $HOME/go )
    $ export GOROOT=$HOME/go
    $ export PATH=$PATH:$GOROOT/bin


    далее создаёшь рабочую область:
    $ export GOPATH="$HOME/work"
    $ export GOBIN="$GOPATH/bin"
    $ mkdir -p $GOPATH/src
    $ mkdir $GOBIN

    чтобы каждый раз после перезапуска терминала не прописывать переменные заново добавляем экспорты(export ...) в конец файла ~./.zshrc (для bash это ~/.bashrc)

    Теперь свои проекты на go перемещаешь в папку $HOME/work/src

    Для просмотра переменных go, используй команду:
    $ go env
    Ответ написан
    6 комментариев
  • Как работают сайты, позволяющие запускать код в playground (исполнение на их сервере)?

    @KFan
    Веб-программист
    ссылка (логин и пароль произвольный)

    Проект написанный мною, принцип работы:

    1. Код отправляется на сервер
    2. На сервере крутится С++ демон, который проверяет бд на запросы компиляции
    3. Демон находит запрос на компиляцию, передает его в следующий модуль
    4. Модуль проводит компиляцию после чего изолирует себя, и выполняет программу (компилируемой программе доступны только системные библиотеки).

    Так же для особо придирчивых (если таковые будут), доступны для чтения многие системные файлы (я защищался только от угрозы приченения реального вреда серверу, поэтому не заморачивался установкой прав на чтения на все файлы.
    Ответ написан
    Комментировать
  • Как работают сайты, позволяющие запускать код в playground (исполнение на их сервере)?

    @antonecma
    Nodejs backender
    https://nodejs.org/api/vm.html и ограничение по времени исполнения
    Ответ написан
    Комментировать
  • Почему в Safari тормозит github.com?

    @xtreme
    Снимаю порчу по SSH :)
    Дело в Роскомнадзоре. Видимо, в порыве нежности, они заблокировали ocsp.digicert.com, к которому лезет Safari (да и много кто еще), чтобы проверить отозванные сертификаты.
    Временно решил у себя прописыванием в /etc/hosts другого их адреса
    72.21.91.29 ocsp.digicert.com

    Статья, которая помогла решить вопрос тут:
    www.shortcut.ru/2016/10/03/when-in-doubt-use-sniffer
    Ответ написан
    1 комментарий
  • Как в Scala тип Future[String] преобразовать в String?

    @kondaurov
    Full stack developer
    Единственный способ избавиться от Future и работать непосредственно с результатом это дождаться когда этот результат будет вычислен. Используйте concurrent.Await(f: Future[Any], duration) для этого.
    Внимание: Эта функция кидает исключение если Future не выполнится за duration


    val f = concurrent.Future.successful("myFutureString")
    val notFuture = concurrent.Await(f, 1.second)
    print(notFuture)


    Использовать Await не рекомендуется, делать это нужно в крайних случаях. Я использую Await тогда когда работаю с внешними Api сервисами, чтобы не заддосить запросами, а внутри своего приложения использую map.

    Вышеописанный пример можно выполнить и так(рекомендуется):

    val f = concurrent.Future.successful("myFutureString")
    f.map(res => print(res))
    Ответ написан
    Комментировать
  • Как синхронизировать контакты на android с базой данных на сервере для вывода на сайте?

    gadfi
    @gadfi
    https://gamega.org
    я все чаще пишу один и тот же ответ ─ читайте про REST.
    На сервере любая серверная бд и апи (авторизация тоже по сути просто апи, токен получаете и подписываете им все)
    На телефоне реализуете rest клиент (рекомендую связку retrofit + gson), контакты лежат в бд, доступ по Uri
    Cursor contacts = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null,  null, null);
    Ответ написан
    Комментировать
  • Как проверить шаблон в 1c bitrix?

    @murrometz
    Более верный вариант - сделать тестовую копию рабочего сайта и уже экспериментировать с ней.

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

    Условие к применению шаблона можно поставить например такое:
    Тип условия: Выражение PHP
    Условие:
    $USER->GetID()==<ваш ID пользователя>

    Шаблон будет применяться только у вас, когда вы авторизуетесь.
    Если вам это нужно прям на рабочем проекте сделать.
    Ответ написан
    Комментировать
  • Array.sort или сортировка массивов?

    pashak
    @pashak
    1) Сравнение массивов. Как отмечал haaji, выражение []==[] ложно. Всё дело в том, что сравниваются 2 совершенно разных массива (заданные первыми и вторыми квадратными скобками), а так как массивы являются объектами, то и проверяются они по ссылке, а значит, они в данном случае не будут равны. Если хотите сравнить 2 массива с простыми (нессылочными типами: числами, строками, true/false) значениями внутри, то можно преобразовывать массив в строку, с использованием метода join и потом сравнивать уже строки.

    console.log([1,2,3].join(",")==[1,2,3].join(","));

    Если содержатся ссылочные типы, то в любом случае нужно будет сравнивать поэлементно. Можно использовать JSON.stringify, но там есть свои особенности (например, порядок определения свойств).

    2) Сортировка массивов. Array.prototype.sort может принимать в качестве аргумента функцию, в которую будут переданы 2 аргумента — элементы массива, и данная функция должна вернуть -1, 0, 1 в зависимости от того, какой элемент считать большим, либо равными (0). После вызова sort массив, для которого она была вызвана, будет изменён. Если sort не приняла функцию-сортировщик, то элементы массива сравниваются как элементарные значения.

    Обобщая эти 2 пункта:

    var a = [2, 3, 1],
    	a1= [3, 2, 1];
    console.log(a.sort().join(",")===a1.sort().join(","));
    
    Ответ написан
    6 комментариев
  • Книги по криптографии

    optio
    @optio
    Брюс Шнайер. Прикладная криптография
    Ответ написан
    1 комментарий