• Событийный цикл в Node.js?

    @Coder321
    5a3d080aa9763119480381.png
    process.nextTick, setImmediate и setTimeout обрабатываются в первом тике eventloop
    Ответ написан
    Комментировать
  • Зачем прописывать методы в Interface когда можно так же в классе?

    @Mercury13
    Программист на «си с крестами» и не только
    Ответ явоспецифичный. Потому что один класс может реализовать сколько угодно интерфейсов, но наследуется лишь от одного класса.

    Ответ концептуальный. Ромбическое наследование. От А наследуются B и C, от них обоих наследуется D.
    1) Если в A есть поле, в D что, это поле будет в двух экземплярах? А если оно protected и в B мы добавили метод, который его меняет?
    2) Если B и C переопределяют какой-то метод foo(), как быть D? А если нужна и версия B.foo(), и C.foo(), и они обе вызывают A.foo — получатеся D.foo вызовет A.foo дважды? А если в C есть второй метод bar(), который вызывает foo() и начинает вести себя не так, как надо, если мы берём реализацию B.foo()?
    В общем, множественное наследование — хорошая штука, но ромбическое — штука опасная. В языке, где любое множественное наследование неизменно ромбическое, всё, что остаётся — делать такие условия, при которых ни 1, ни 2 не сработает.
    Одно из таких условий — унаследоваться от одного класса и нескольких интерфейсов. 1) У интерфейса нет полей, и 2) эталонная реализация, существующая в некоторых языках программирования, в любом случае менее приоритетна, чем конкретная реализация из класса. Вызывать ту и другую нет смысла: если программист написал свою сверх эталонной — значит, он хочет сделать то же другим путём.
    Ответ написан
    Комментировать
  • Как закэшировать DNS для запросов из PHP CURL?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    При DNS запросе происходит следующее:
    1. Проверяется /etc/hosts
    2. Проверяется локальный кеш
    3. Выполняется DNS запрос на ваш DNS сервер (он все это повторяет, если что, делает запрос к своему DNS серверу и так до рута)

    Соответственно самые простые варианты - или пропишите в запросах айпишники, или пропишите в /etc/hosts
    Или обычный DNS кеш клиента сам разберется.
    Ответ написан
    5 комментариев
  • Что за шум вокруг темы, что программисты скоро не нужны?

    Vlad_IT
    @Vlad_IT
    Front-end разработчик
    программисты не будут скоро восстребованы.

    Когда мне было 16, я начинал только программировать, меня волновал тот же самый вопрос. Вот даже тему создавал на форуме www.cyberforum.ru/job/thread127123.html (сильно не читайте, мне стыдно за свои сообщения того времени =) ) Это было 7 лет назад, за это время особо ничего не изменилось, поэтому думаю через еще 7 лет будет все нормально.
    Работы для программиста море, а работники нормальные как правило отсутствуют. Понятное дело, что программирование стало "мейнстримом", делать сайты идут все кому не лень, т.к. везде кричат "Программирование сделает вас богатыми! Всего за месяц вы научитесь создавать сайты за деньги!", благо майнинг переманивает людей, желающих легких денег (не в обиду профессиональным майнерам). Но скажу точно, если вы прочитали хоть одну книжку по своему языку программирования, можете писать без использования jQuery и Boostrap (не в обиду этим технологиям, просто часто вижу, что люди учат не JS/CSS, а jQuery/Boostrap), умеете ставить правильные сроки, сможете написать игру "змейка" - то вы уже лучше 90% программистов, а то и больше.
    будут такие инструменты

    Помню 7 лет назад писали "Вот совсем скоро создадут программу, с помощью которой дизайнеры будут рисовать дизайн, и он сразу будет сохраняться в HTML или шаблон движков". Вроде бы не соврали, такие есть, но качество выходного продукта подкачало, что даже часто хуже качества работы школьника.
    будут такие инструменты, которые заменят программеров", ИИ и все такое...

    Так будет с большинством профессий, даже со специалистами по машинному обучению. Но надо понимать, что это случится еще не скоро, лет 10 у вас есть, а там сделают безусловных доход в развитых странах, а в менее развитых, сделают закон, требующий чтобы более 50% сотрудников были не ИИ :-)
    Скажу точно, если вам программирование не очень нравится, то советую уйти в другую профессию, т.к. без любви к этой профессии будет сложно часами сидеть и учить материал (когда тебя не заставляют). Деньги легкие вы тут тоже не сделаете.
    Ответ написан
    10 комментариев
  • Двойной запрос MySql?

    Astrohas
    @Astrohas
    Python/Django Developer
    лучше сделайте несколько и заверните в транзакцию
    Ответ написан
    3 комментария
  • Почему Object.assign не клонирует __proto__?

    @RidgeA
    потому что `__proto__` ни собственное ни перечисляемое свойство
    Ответ написан
    1 комментарий
  • Как правильно составить запрос для взятия первого значения из группы?

    Melkij
    @Melkij
    PostgreSQL DBA
    Ну а когда станет скучно перебирать всю таблицу - обращайтесь :-)

    Postgresql 9.4 и выше, выбор по известному диапазону дат через index scan по timestamp полю:
    select day, data 
    from generate_series('2017-12-10', '2017-12-12', interval '1 day') as day, 
    lateral (
        select data from tablename 
        where "timestamp" between day and day + interval '1 day' 
        order by "timestamp" desc limit 1
    ) ljd;


    Все дни из таблицы по индексу:
    with recursive t as (
    (select "timestamp"::date as day, data from tablename order by "timestamp" desc limit 1)
    union all
    select bpt.* from t, lateral (
    select "timestamp"::date as day, data from tablename where "timestamp" < t.day order by "timestamp" desc limit 1
    ) as bpt
    )
    select * from t;

    Используя loose index scan
    Ответ написан
    7 комментариев
  • Есть ли слайдер на jquery с миниатюрами?

    owl-carousel - там, вроде как, нельзя добавить миниатюры, хотя слайдер замечательный

    Можно:

    А еще если почитать внимательно документацию, то можно легко реализовать самому.
    Ответ написан
    Комментировать
  • Как вставить скриншот экрана в поле ввода при нажатии CTRL+V?

    @Artray
    ;(function ($) {
      $(".input").bind("paste", function(evt) {
        var item = (evt.clipboardData || evt.originalEvent.clipboardData).items[0] || null;
    
        if (item && item.kind === "file" && item.type.indexOf("image") !== -1) {
          var file = item.getAsFile(),
              data = new FormData();
    
          data.append('file', file);
    
          $.ajax({
            url: "/upload",
            type: "POST",
            data: data,
            contentType: false,
            processData: false,
            success: function (r) {
              // ...
            }
          })
        }
      })
    })(jQuery)
    Ответ написан
    Комментировать
  • Стоит ли поднимать свой сервер для проекта с большой нагрузкой?

    Sanes
    @Sanes
    Обычно администраторы HiLoad стоят так дорого, что разница между Dedicated и AWS почти не заметна.
    Ответ написан
  • Как запретить доступ в NGINX ко всем несуществующим доменам третьего уровня у сайта по SSL (443 порт)?

    castomi
    @castomi
    Серверный администратор - tickets.settin.ru
    Всё достаточно банально.
    https://nginx.ru/ru/docs/http/request_processing.html
    Вот тут расписано как Nginx обрабатывает запросы. Теперь тут сразу понятно на чём Вы встряли, ведь если не сконфигурированный поддомен обращается по порту 80, тут достаточно просто, можно сконфигурировать дефолтный виртуальный хост и в нём к примеру редиректить на основной или запрещать доступ, да вообщем-то как угодно. Но если обращение идёт по 443 по ssl, значит чтобы соединение состоялось нужен сертификат, которого для каждого не существующего поддомена у Вас нет. Выходов из положения несколько.
    1. Вот в эту конфигурацию добавить настройку с с самоподписным сертификатом, минусом будет то что если перейдёт человек он увидит что сайт не безопасен и бог знает что может подумать про основной домен) Вдруг он не достаточно образован чтобы понимать почему ему показывается это сообщение и примет Вас за мошенника.
    server {
    listen 443 default_server;
    server_name _;
    access_log /dev/null;
    error_log /dev/null;
    return 403;
    }

    Вопрос, на кой отправлять логи в нули??? Не проще их выключить, что за дикость)

    2. Купить сертификат который сразу защищает и сам домен и все его поддомены и прикрутить его туда, в этом случае всё будет так же гладко как и в случае с портом 80, если конечно кто-то не надумает ломиться на домены третьего уровня)))

    3. В DNS направить на сервер только те домены и поддомены которые реально есть, в этом случае всем остальным будет показываться вот это.59d221dc7703c988268112.png

    Читайте больше документации)
    Ответ написан
    6 комментариев
  • Как перенести базу postgresql из нерабочей системы, если в chroot сервис не запускается?

    Melkij
    @Melkij
    PostgreSQL DBA
    Найдите, где datadir базы. Скорей всего /var/lib/postgresql/(версия базы)/main, но могла была быть перемещена, так же может стоять несколько кластеров базы и разные версии базы - в дебианах и убунтах это делается легко.

    Далее установить на новой системе postgresql идентичной major версии и не ниже minor версии что была там. Какая была major версия - смотрите файлик PG_VERSION в datadir. minor версию ставьте последнюю актуальную.
    Так понимаю, старая система в принципе не работает? Т.е. старая база выключена? Выключите и новую (пока пустую) базу. Проверьте, если не уверены, обе базы должна быть выключена.
    Переименовываете datadir на новом сервере (вообще, можно удалить, но можно и ошибиться консолью и дропнуть не то =) )
    Копируете каталог базы: rsync -a /olddatadir /newdatadir
    Копируете и правите если надо конфиги из /etc/postgresql/версия_базы
    Если каталог pg_tblspc/ в datadir не пуст - скопируйте и симлинки из него и все данные по этим симлинкам в аналогичные места на новой машине.
    Если pg_xlog/ является симлинком - его необходимо скопировать. Можно оставить симлинком, можно содержимое перекопировать.
    Пробуете запустить базу на новом месте. Смотрите в логи. Если на старом месте база не была повреждена (и ничего нужного скопировать не забыли) - то она запустится.
    Ответ написан
    1 комментарий
  • Как организовать синхронизацию сертификатов на разных OpenVPN серверах?

    chupasaurus
    @chupasaurus
    Сею рефлекторное, злое, временное
    Никак не синхронизировать. Приватный ключ не должен покидать места, где был сохранен после генерации, кроме 2 ситуаций: угроза хранилищу с ключом и угроза кражи. Для того, чтобы баловаться с огнём, придумали цепочки сертификатов: создавайте отдельный корневой CA и им подписывайте сертификаты остальных серверов.
    Ответ написан
    2 комментария
  • Как сделать 301 редирект для всего сайта с http и www на https без www?

    castomi
    @castomi
    Серверный администратор - tickets.settin.ru
    if ($http_host != "site.ru") { rewrite ^ $scheme://site.ru$request_uri? permanent; }
    if ($scheme != "https") { rewrite ^ https://$http_host$request_uri? permanent;}

    Ещё можно для http сделать отдельный виртуальный хост и редиректить с него по этому правилу
    rewrite ^ https://$http_host$request_uri? permanent;

    И аналогично сделать виртуальный хост для www отдельный и редиректить там так
    rewrite ^ $scheme://site.ru$request_uri? permanent;

    Поясню разницу подходов, если будут отдельные виртуальные хосты будет оптимальнее. Ведь if проверяется при каждом открытии тратя ресурсы, а если редиректы распиханы по виртуальным хостам ресурсы не тратятся)
    Ответ написан
    Комментировать
  • Сколько будет стоить уязвимость?

    chupasaurus
    @chupasaurus
    Сею рефлекторное, злое, временное
    Цена будет разниться от 13337$ в случае с Гуглом (если они не решат щедро осыпать выплатой в размере π сотен тысяч долларов, например) до чека на сумму стоимости лечения последствий терморектального криптоанализа (исходя из того, что вы подобные вопросы задаёте здесь, то именно таким способом спецслужбы "оплатят" уязвимость).
    Ответ написан
    Комментировать
  • Функция typeof(a) Почему не работает?

    drugoi
    @drugoi
    Front-end Developer
    typeof это не функция, её надо использовать вот так:
    typeof a;
    Ответ написан
    6 комментариев
  • Перспективы embedded разработки?

    Но многие говорят
    - кто эти многие? Диванные эксперты? Или результаты неких исследований?
    С точки зрения количества рабочих мест, веб, C#, Java и т.д. очевидно обгоняет и будет обгонять количество вакансий для программистов роботов и микроконтроллеров.
    Интересность - вообще чисто субъективное дело.

    Мой совет, не слушай многих, и занимайся тем, к чему душа лежит.
    Ответ написан
    Комментировать