Задать вопрос
  • Почему заведомо неверно if?

    @kaka888
    C, C++, Qt, Python, Flask, aiogram, MySQL, Redis..
    Ой хоспаде, что это такое :DD
    "#команда" - это команда (директива) препроцессора, и это совсем не та часть языка C++, которая помогла бы тебе сделать то, что ты пытаешься сделать.

    Правильно было бы вот так:
    if ((number > 1) && (number < 5))
    {
        printf("Вы ввели правильное число");
    }
    else
    {
        printf("Вы ввели неправильное число");
    }
    Ответ написан
    Комментировать
  • Как отработать клик вне блока?

    Paramid
    @Paramid
    jQuery(function($){
    	$(document).mouseup(function (e){ // событие клика по веб-документу
    		var div = $("#popup"); // тут указываем ID элемента
    		if (!div.is(e.target) // если клик был не по нашему блоку
    		    && div.has(e.target).length === 0) { // и не по его дочерним элементам
    			div.hide(); // скрываем его
    		}
    	});
    });
    Ответ написан
    6 комментариев
  • Чем отличается XEN от OpenVZ?

    @rPman
    Вот популярные системы в порядке понижения функционала:
    Xen — на порядок сложнее и функциональнее, имеет помимо режима паравиртуализации (как openvz) режим полной виртуализации (в т.ч. поддержка соответствующих фич процессоров), есть механизмы переброса железа внутрь виртуалки (например, поддержка не самых слабых intel видеокарт), снапшоты, миграция,… много много вкусных фич.

    VMWare — как и xen, сложен, наворочен, приправлен соответствующей инфраструктурой и хорошими забористыми ценами :) режима полноценной паравиртуализации не имеет

    kvm/qemu — полная эмуляция процессора (а так же виртуализация через поддержку процессорами), есть вкусности от 'старших братьев' вида миграция запущенной виртуалки по сети, переброса железа (сильно хуже поддержка чем xen/vmware) и т.п. можно считать бакэндом, так как GUI в идеалогии не имеет, оно пилится желающим

    VirtualBox — эмуляция процессора, в т.ч. использование поддержки виртуализации процессоров, идеален как отдельное десктопное приложение, миграции по сети нет, есть снапшоты, некоторые вкусности скрыты от GUI в коммандной строке

    OpenVZ — это работа всех машин на одном ядре (патчи к нему так и зовутся openvz), нет виртуализации, максимальная скорость (так как фактически это расширенный chroot с изоляцией). Для запуска модуля ядра на поклон нужно идти к хост системе и ее администратору (например tun/tap адаптер у firstvds дают по запросу)
    Снапшотов нет (но их реализуют через lvm), миграция есть, есть сброс состояния контейнера на диск и возобновление работы…

    Lxc — еще проще чем openVZ, нет даже грамотной изоляции (если подсуетиться, можно, имея рут в контейнере, выйти в хост систему с рутовым доступом), прямой аналог jail во freebsd, имеет смысл для хитрых сетевых конфигураций, тестов и т.п.

    Chroot — это даже не виртуалка, это просто простейшая изоляция в пределах файловой системы, подмена путей в вызовах функций работы с файлами.
    p.s. lxc называют еще 'chroot на стероидах'

    OpenVZ/lxc/chroot поддерживают почти полноценное каскадирование виртуалок (т.е. к примеру можно внутри контейнера openvz запустить kvm/virtualbox при наличии модулей, даже с поддержкой аппаратного ускорения)
    Ответ написан
    6 комментариев
  • Какие книги посоветуете по нейросетям?

    Maksim_64
    @Maksim_64
    Data Analyst
    Для новичков ответ очевиден, нет ничего и близко равного Deep Learning with Python, Second Edition . От инженера гугла и создателя Кeras François Chollet. Она и на русском есть, если не владеешь английским. Не много не мало гениальная книга, и доступна для людей без математического бэкграунда.
    Ответ написан
    1 комментарий
  • Как сделать кросc доменную авторизацию на Flask?

    @MartinX
    Для Flask есть расширение Flask-Session, которое предоставляет более продвинутый функционал сессий. Если авторизация на поддоменах делается проще, так как поддомены имеют доступ к кукам родительского домена и сессию легко подцеплять.

    Но если домены разные, то, в целях безопасности, куки между ними никак не передаются при запросах. Тут обычно выходят тем образом, что где-то есть единая страница входа (у хабра, например, это id.tmtm.ru). На нее ведут авторизационные ссылки со всех сайтов. После успешной аутентификации на этой странице, происходит переадресация на исходную страницу. При этом обычно передается короткоживующий токен, по которому сессия и прокидывается на сторонний домен.

    Сайты то наверняка имеют доступ к общей базе с сессиями и пользователями, так что по токену опознают пользователя, поставят свою куку и будут поддерживать сессию пользователя. Дополнительно еще встраивают JS код, который в фоне может проверить есть ли готовая сессия на странице авторизации. Если она есть, то просто производим редирект и передаем токен без запроса авторизации со стороны пользователя.
    Ответ написан
    Комментировать