• Привильно ли сказать что psycopg2 это ORM?

    dizballanze
    @dizballanze
    Software developer at Yandex
    Нет psycopg2 это адаптер для PostgreSQL, который просто реализует протокол для обмена с СУБД.
    ORM - это когда из таблиц БД создаются объекты. Пример ORM - sqlalchemy, django orm.
    Ответ написан
    Комментировать
  • Почему Не удается открыть Visual Studio Code из-за проблемы?

    akokarev
    @akokarev
    Начинающий программист
    System Integrity Protection: disabled
    Опасненько... лучше бы включить от греха!

    А вот и причина:
    Library not loaded: @rpath/Electron Framework.framework/Electron Framework
    /Applications/Visual Studio Code.app/Contents/MacOS/../Frameworks/Electron Framework.framework/Electron Framework: file too short

    Толи скачалось криво, толи установил не так, но указанный фрэймворк = пустой файл
    Ответ написан
    1 комментарий
  • Ошибка [kextd stall[0], (240s): 'appleacpicpu' [Hackintosh, High Sierra 10.13.3, Kaby Lake]?

    0xcffaedfe
    @0xcffaedfe
    Developer & Reverser
    Иди на профильные ресурсы там есть все ответы, а отсебятиной ничего не заведешь.

    p/s/ kext-dev-mode=1 rooltess=0 давным давно не пашут в macos.
    Ответ написан
    Комментировать
  • Зачем нужен RDP, VNC и вообще разнообразие протоколов?

    NeiroNx
    @NeiroNx
    Программист
    Еще есть X11 forwarding который родственник RDP.
    Ответ написан
    Комментировать
  • Зачем нужен RDP, VNC и вообще разнообразие протоколов?

    @rPman
    Не зачем а почему. Полагаю главная причина - политика монополизации рынка Microsoft, которая на любой чих вместо использования существующих стандартов, изобретает ни с чем не совместимый свой, чтобы добавить как минимум лицензионные ограничения, а так же чтобы среда в организациях была не смешанная (т.е. было сложно одновременно использовать не microsoft решения).
    А еще по умолчанию почти любой инструмент удаленного управления требует особой настройки сети и фаервола (либо работает без проблем только в локальной сети).

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

    Существует еще xwinows протокол, используемый xserver в linux (есть реализации под windows но с ними будут работать приложения заточенные только под его использования, т.е. пришедшие из linux/unix). Это даже не протокол для удаленного подключения, а штатная работа самой системы вывода изображения на экран мониторов - она изначально предполагает работу по сети, даже если работает локально, подключение идет через сокеты. Жутко не эффективный протокол, не умеет подстраиваться под сетевой канал и т.п. например его открытие - понижение уровня безопасности, злоумышленник может навредить или даже проникнуть на сервер (до недавних пор сам сервис xserver даже работал по root со всеми вытекающими от сюда рисками). Благодаря особенности работы, его в т.ч. используют для запуска даже отдельных приложений под разными логинами, подключившись к терминалу удаленно (тот же ssh), мало того возможны обратное направление - вы подключаетесь к серверу и перенаправляете порты своего локального пользовательского xserver на сервер в открытую сессию, и запущенные серверные приложения отображаются у вас (только в пределах вашего нового подключения).

    Поверх xvindow под linux есть протоколы, от почившей NX nomachine и открытый x2go, на порядок уменьшающие требования к сети и терминалу,позволяющие удаленно работать с linux машинами, на мой взгляд наилучшие для слабых сетевых каналов.

    vnc - открытый протокол, это копирование экрана пользователя без блокирования, у него есть различные расширения от того же tightvnc и т.п. главное его отличие - изображение передается не один к одному, возможны пропуски изменений на экране. Используется по умолчанию (но само собой не обязательно) для удаленного управления ubuntu (сервер vino). По умолчанию очень не эффективный протокол, изображение сильно отстает и т.п.

    Еще в windows 7 и выше штатно есть фича - удаленный помощник, работает так - вы отправляете файл настроек администратору, с помощью которого он подключается к вашему экрану, не блокируя его. У инструмента куча ограничений (только администратор может подключиться), есть какие то проблемы при работе на терминальном сервере с пользовательскими сессиями, в остальном - то обычный проприетарный аналог vnc

    teamviewer и тот же anydesk - это комбайны, которые содержат в себе не только удаленное управление но и голосовой и не только чат, vpn, передачу файлов и главное - сервис-прокси для подключения между клиентами без необходимости настройки того же фаервола, т.е. содержат инструменты обхода NAT. Это главная причина популяризации этих утилит - удобная работа, которая не вынуждает клиентов что то где то настраивать (что обычно очень сложно или даже невозможно).
    Будьте осторожны, открывая доступ к машине, вы даете полный доступ разработчикам/администраторам этих решений к вашим машинам. У teamviewer была даже проблема, то ли используя ее уязвимость, толи пароли угадывали, информации было мало, злоумышленники подключались к машинам, выводили деньги из paypal и криптовалюты (обычно у людей локально пароли сохранены). Понятно что возможно это не проблема протокола, но это очередные открытые двери к вашей машине, ключ к которым тоже нужно охранять.
    Ответ написан
    2 комментария
  • Зачем нужен RDP, VNC и вообще разнообразие протоколов?

    DMGarikk
    @DMGarikk
    Lead Software Developer
    зачем? потому что они создавались по этому принципу: https://xkcd.ru/927/
    ==
    http не позволяет в полной мере обеспечить функционал требуемый программами этого класса хотябы потому что http изначально не умел держать постоянно открытое соединение
    Ответ написан
    Комментировать
  • Зачем нужен RDP, VNC и вообще разнообразие протоколов?

    @stratosmi
    Во первых:
    RDP != VNC, TeamViewer - так как RDP работает в отдельной сессии.
    На одном сервере может быть несколько подключений под RDP, они не видят экранов друг друга, их клавишы/мышь передаются независимо, у каждого в свою сессию.

    Во вторых:
    http передавать, например команды, нажатые клавиши и т.д. через JSON, картинки типа рабочий стол в png/jpg. Зачем для этого использовать отдельный протокол?

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

    В третьих:
    http текстовый протокол, не бинарный. Он довольно много передает лишней информации.
    Для того чтобы обеспечить комфортную работу через сеть, чтобы нажал кнопку и увидел отзыв - лишние звенья в передаче данных ни к чему.

    В четвертых:
    http не очень хорош как протокол оперативного двустороннего обмена (что и вызвало появление WebSocket).

    В пятых:
    Team Viewer - http

    Это не так

    В шестых:
    Зачем они используют разные протоколы?

    Ну давайте все будем использовать ту технологию что придумана когда-то.
    Ну например, ездить на автомобилях без пневматических шин, с деревянными колесами.
    Множество протоколов возникает:
    а) как процесс совершенствования, как решение каких то дополнительных уникальных проблем.
    б) некоторые протоколы, как протокол TeamViewer - закрыты и недоступны для других разработчиков.

    Но, к примеру, тот же VNC (это единственных из трех вами упомянутых TeamViewer, VNC, RDP - открытый протокол) - используется в разном софте. Например, в локально запущенных виртуальных машинах для подключения к консоли или у хостеров для подключения к "локальной" консоли сервера клиента.

    А вообще:
    5c2c67f613da8346430356.jpeg
    Ответ написан
    Комментировать
  • В чем отличие LocalDB от Express Core в MS SQL Server?

    @d-stream
    Готовые решения - не подаю, но...
    LocalDB - может использоваться только локально на компьютере, без возможности подключения извне. Но в принципе полноценный sql-сервер. Для одиночного разработчика на слабом компе с малым количеством памяти - оптимум, так как запускается и завершается вместе с отлаживаемым приложением. Express Core - в этом плане совсем полноценный сервер для небольших объемов (искусственное ограничение размера базы в 2..10 гигов в зависимости от версии).
    То есть до тех пор, пока разработка и база живут на одном компьютере - LocalDB предостаточно. Если несколько разработчиков и есть отдельный сервер - Express или что-нибудь из промышленных линеек.
    Ответ написан
    Комментировать
  • Как правильно сравнивать на равенство в Python?

    JRazor
    @JRazor
    Senior StarkOverFlow Programmer
    Операция == - это сравнение значений, а is - это сравнение ссылок внутри памяти. Если значения равны через ==, но не равны через is - они просто хранятся в разных ячейках памяти.

    То есть, == отвечает на вопрос, равны ли объекты? А is отвечает на вопрос - это один и тот же объект?

    Посему, c is можете сравнивать типы, None, False, True, а с переменными используйте ==
    Ответ написан
    Комментировать
  • Почему if в lambda работает нестандартно?

    @MadridianFox
    Web-программист, многостаночник
    Всё в порядке. Просто в питоне вместо тернарного оператора используется конструкция
    variable = value_1 if test else value_2
    Что аналогично традиционному тернарного оператору
    variable = test ? value_1 : value_2
    Работает это не только в лямбдах, а везде.
    Ответ написан
    Комментировать
  • Почему Microsoft Office в розничных магазинах стоит дешевле, чем на официальном сайте?

    @stratosmi
    За счет чего у них дешевле, чем на официальном сайте?

    Вы всерьёз полагаете, что магазины покупают по обычной розничной цене, а потом перепродают с наценкой? Это только мелкие (очень-очень-очень мелкие) лавочники делают.

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

    Это нормальная политика у всех, не только у MS.
    Производителю не имеет смысл занижать цену на своем сайте - иначе товар исчезнет из обычных розничных магазинов (магазинам же будет не выгодно).
    И покупатели постепенно о нем забудут, и производитель будет вытеснен конкурентами.

    Свою долю MS всегда получает, будьте спокойны. Ну чуть меньше, чем при прямой продажи. Зато от огромного числа магазинов. Столько - сколько бы они напрямую никак не смогли бы продать.

    P.S.:
    Оптовая цена на программные продукты бывает и в 2 раза ниже (не знаю как конкретно у MS, но та крупная фирма, программы которой я продавал - отдавала посредникам в 2 раза дешевле; и требовала - категорически - продавать в розницу ничуть не дешевле чем в 2 раза дороже оптовой цены, по которой программы отдавались посредникам).

    И это не только в программах так.
    Сталкивался с таким и с "физическим" товаром.
    Ответ написан
    Комментировать
  • Почему Microsoft Office в розничных магазинах стоит дешевле, чем на официальном сайте?

    Jump
    @Jump
    Системный администратор со стажем.
    но какой смысл Microsoft продавать "Офис" дешевле, чем у себя на сайте?
    А какой смысл торговцам продавать товар дешевле оптовым покупателям, чем розничным?

    Продать товар это непросто и не дешево - куча расходов на рекламу, оформление покупок, зарплату продавцам.
    Если покупатель берет очень большую партию товара - продавец экономит кучу денег, которую ему бы пришлось потратить на реализацию этой партии товара, поэтому готов дать небольшую скидку.

    Например программа фирмы 1с которая на их сайте стоит 20тыс, для партнера стоит 10тыс, поэтому ее можно купить у знакомого партнера за 11тыс, хотя это не приветствуется и рекомендуется продавать именно за 20тыс. Но всем пофиг на рекомендации.
    Ответ написан
    3 комментария
  • Чем отличаются плашечные цвета от триадных цветов?

    PavelK
    @PavelK
    Соответствуют краскам, которыми будет печататься файл.
    Если вкратце, то триадные цвета они смешиваются во время печати, грубо говоря обычный принтер с четырьмя цветами, который по ходу смешивает их.
    планшетные цвета - заранее смешанные цвета, грубо говоря как будто в принтер залили только эти заданные цвета заместо стандартных cmyk.
    Подробнее:
    https://helpx.adobe.com/ru/indesign/using/spot-pro...
    Ответ написан
    5 комментариев
  • Какой стандарт js выбрать для новичка?

    @DenJel
    Ecmascript 6 не исключает а только дополняет 5, за исклюением const и let ( про var можно забыть ) ну и arguments ( вместо него spread операторы ). Критичных исключений из стандарта нет. Так что ES5 полюбому учить придется. Начинай с него, периодически заглядывая в спецификацию 6.
    Ответ написан
    Комментировать
  • В __proto__ хранится объект или ссылка?

    roswell
    @roswell
    и швец, и жнец, и на дуде игрец
    1. В __proto__ ссылка на "родительский" объект.
    1.1. Да.
    2. Да.
    Ответ написан
    4 комментария
  • Зачем нужен Object.create?

    rockon404
    @rockon404
    Frontend Developer
    JS мультипарадигмальный язык. Object.create это, более характерная прототипному программированию, альтернатива оператора new:
    const human = {
      planet: 'Earth',
    }
    
    const tom = Object.create(human);
    tom.name = 'Tom';
    tom.age = 32;
    tom.country = 'UK';
    
    console.log(tom.planet);
    
    // => Earth


    Ключ planet при этом не создается в новом объекте, а берется при вызове tom.planet из прототипа human, пока не будет переназначен в tom.
    5a291ca5a1b64550694668.png
    И если мы изменим прототип human после создания tom, то:
    const human = {
      planet: 'Earth',
    }
    
    const tom = Object.create(human);
    tom.name = 'Tom';
    tom.age = 32;
    tom.country = 'UK';
    
    human.planet = 'Mars';
    
    console.log(tom.planet);
    
    // => Mars


    но если мы переназначим tom.palnet, то:
    const human = {
      planet: 'Earth',
    }
    
    const tom = Object.create(human);
    tom.name = 'Tom';
    tom.age = 32;
    tom.country = 'UK';
    
    tom.planet = 'Jupiter';
    human.planet = 'Mars';
    
    console.log(tom.planet);
    
    // => Jupiter
    
    console.log(human.planet);
    
    // => Mars


    $.extend в свою очередь при вызове:
    const human = {
      planet: 'Earth',
    }
    
    const tom = $.extend({}, human);
    tom.name = 'Tom';
    tom.age = 32;
    tom.country = 'UK';

    создаст новый объект tom включающий в себя ключи human без прототипирования.
    5a291cb3705c0343579580.png
    Надеюсь разница понятна.
    Ответ написан
    Комментировать
  • Почему у созданных объектов нет методов от Object?

    space2pacman
    @space2pacman
    Просто царь.
    Ведь при простом создании объекта у него прототипом становится Object

    Не совсем
    Ведь при простом создании объекта у него прототипом становится Object.prototype


    Но никто не мешает сделать следуюшие)

    Object.prototype.keys = Object.keys
    
    var o = {x:1,y:2};
    o.keys(o) // ["x","y"]


    keys, defineProperty и прочие их нет в прототипе от того и не переносятся.
    Ответ написан
    Комментировать