• Как сложить объекты в JS?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    function Foo(value) {
        this.value = value;
    }
    Foo.prototype.valueOf = function () {
        return this.value;
    };
    
    var first = new Foo(2) // first.val = 2
    var two = new Foo(3) // first.val = 3
    
    alert( first + two ) // должно вывести 5
    Ответ написан
    4 комментария
  • Как поживает sylus?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    3 130 downloads in the last day
    48 091 downloads in the last week
    190 401 downloads in the last month


    Скажем статистика для less

    5 752 downloads in the last day
    102 954 downloads in the last week
    421 915 downloads in the last month


    и для scss/sass

    125 downloads in the last day
    2 258 downloads in the last week
    10 445 downloads in the last month


    так что можно сказать что у sylus все очень даже неплохо с популярностью. Что до отсутствия материалов на русском, ну это во первых не показатель. во вторых sylus использует тот же yandex ну и в третьих на русском информации о нем предостаточно. Просто в этом мало смысла.
    Ответ написан
    3 комментария
  • Что необходимо понимать при реализации криптоалгоритма?

    @throughtheether
    human after all
    У меня релевантного образования нет, выскажу свое мнение дилетанта.
    Чем, например, моя реализация хуже той, что представлена в каком-нибудь криптопровайдере (я говорю не о скорости работы, а о безопасности)?
    Тем, что существующие реализации имеют некоторую историю эксплуатации или даже прикладного криптоанализа. Поэтому авторы этих реализаций имеют внешнюю оценку своих решений. У вас такой оценки, я полагаю, нет. Будет очень грустно, когда об уязвимости вы узнаете уже после того, как при помощи эксплуатации этой уязвимости будет нанесен ущерб.
    В общем, что стоит помнить/знать/понимать, чтобы сделать свою реализацию такой же надёжной, как и промышленные аналоги?
    Следует иметь в виду, что одна лишь математически корректная реализация не гарантирует надежности/безопасности. Следует учитывать поведение системы в целом. Если ваше решение - некий общедоступный сервер, то имейте в виду, что третья сторона может с некоей точностью замерять ответы вашей системы на поступающие запросы и делать из этого выводы. Если ваше решение - смарт-карта, то будьте готовы к тому, что третья сторона может измерять потребление электричества в разные моменты времени и делать из этого выводы, целенаправленно изменять напряжение питания и тактовую частоту процессора, подвергать систему воздействию ионизирующего излучения с целью нарушения работы алгоритма и анализа данных, полученных в ходе наблюдения. Если вы даже всего лишь пишете простую программу на языке высокого уровня, будьте готовы к тому, что нюансы этого языка приведут к некоторым последствиям.
    Вкратце, наивное математически корректное решение не защитит вас, в общем случае, от атак по времени и прочим сторонним каналам.
    Вышесказанное не означает, что кто-то в общем случае вправе вам запретить самостоятельно реализовывать криптоалгоритмы, но с вашей стороны было бы разумно оценить возможные последствия.
    Ответ написан
    Комментировать
  • Как заставить на винде работать Nginx быстрее ?

    @neol
    В настоящий момент в качестве метода обработки соединений используется только select(), поэтому не стоит ожидать высокой производительности и масштабируемости. В силу этого и ряда других известных проблем версия nginx под Windows рассматривается пока как бета-версия.

    nginx.org/ru/docs/windows.html
    Ответ написан
    Комментировать
  • Как настроить Nginx reverse proxy для всех портов?

    shurph
    @shurph
    Похоже, что проксировать все порты автоматически не получится. Для каждого порта нужно будет прописывать в конфиге строчки отдельно. Для вашего примера понадобится что-то такое:
    server {
        listen 22;
        server_name example1.com;
        location / {
            proxy_pass http://192.168.1.1:22;
        }
    }
    server {
        listen 22;
        server_name example2.com;
        location / {
            proxy_pass http://192.168.1.2:22;
        }
    }


    про remote_addr почитайте вот это:
    habrahabr.ru/post/177113
    На сколько я понимаю, поместить в remote_addr адрес пользователя не получится на стороне nginx'а.

    UPD (на основе дискуссии в комментариях):
    у меня есть сомнения, что такое возможно настроить с помощью nginx (да и вообще — настроить).
    Во первых, nginx — это http сервер и, соответственно, http прокси (разве что ещё почтовые протоколы он поддерживает). Если нужны другие протоколы, то и использовать стоит другие решения.

    Во вторых, я очень не уверен, что при подключении по другим протоколам вы сможете определить, что пользователь подключается к домену example1.com, а не к example2.com.
    Ведь как определяется домен в случае http? Браузер передаёт такой запрос на сервер, подключаясь к example1.com:

    GET / HTTP/1.0
    Host: example1.com
    Ответ написан
    3 комментария