Задать вопрос
  • Почему при ls с указанием пути получаю Permission denied, но находясь в этой же папке и выполнив ls без указания пути - команда работает?

    При указании полного пути требуются execute права ("x") на каждую папку в цепочке родителей.
    Ответ написан
    Комментировать
  • Из-за чего программа C++ на amd работает быстрее чем на intel?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Из-за того, что процессоры от разных производителей обладают разной производительностью, внезапно, из-за отличий в архитектуре, командах, транзисторах, частотах, кэшах и во всём остальном. Сюрприз! А еще есть такие факторы как: кэши, оперативная память, дисковая подсистема, запущенные приложения, сервисы, разные ОС, разные чипсеты, разные биосы, да даже вентилятор на процессоре может влиять на производительность, из-за которого турбобуст какой-нибудь включится или выключится, и еще целый вагон других факторов.
    Ответ написан
    5 комментариев
  • Чем отличается функция от конструктора и где применять то или это?

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

    И вот в один момент разработчики спецификации ECMA-script решили, а давайте мы всё же оправдаем первые 4 буквы в названии языка, а именно "Java", и дадим пользователям сахарок, нарисованный над нашим прототипным наследованием, чтобы они могли везде писать class, extends и implements, как и все остальные ООП-динозавры. И сделали это.

    И с этим решением в наш прекрасный язык пришло понимание конструктора, как метода, создающего экземпляр класса. Конструктор очень сильно помогает с инкапсуляцией. В языках, имеющих настоящий ООП, есть приватные поля, которые не могут быть инициализированы прямым присваиванием в какой-то внешней функции, создающей объект, потому что к ним нет прямого доступа, и для такого придётся писать публичные сеттеры. А это плохо, потому что кто угодно сможет менять при помощи этих сеттеров то состояние, которое менять не надо.
    А вот из конструктора к приватным полям прямой доступ имеется. В Javascript приватные поля появились, кстати, вот буквально совсем недавно.

    class ClassWithPrivate {
      #privateField;
      publicField;
    
      constructor() {
        this.#privateField = "Доступ только изнутри класса";
      }
    }
    
    const instance = new ClassWithPrivate();
    
    instance.publicField = "Доступ извне класса";
    instance.#privateField; // Ошибка: SyntaxError: Private field '#privateField' must be declared in an enclosing class


    Еще одной особенностью конструктора является то, что он активно используется при наследовании (крестится и плюётся через левое плечо от отвращения). Если в дочернем классе не описан свой конструктор, то будет использован конструктор родителя. Это упрощает ООП.

    class Animal {
    
      constructor(name) {
        this.speed = 0;
        this.name = name;
      }
    
      run(speed) {
        this.speed = speed;
        alert(`${this.name} бежит со скоростью ${this.speed}.`);
      }
    
      stop() {
        this.speed = 0;
        alert(`${this.name} стоит.`);
      }
    
    }
    
    class Rabbit extends Animal {
      hide() {
        alert(`${this.name} прячется!`);
      }
    
      stop() {
        super.stop(); // вызываем родительский метод stop
        this.hide(); // и затем hide
      }
    }
    
    let rabbit = new Rabbit("Белый кролик"); // используется конструктор родителя
    
    rabbit.run(5); // Белый кролик бежит со скоростью 5.
    rabbit.stop(); // Белый кролик стоит. Белый кролик прячется!


    Таким образом, если вдарились в классический ООП, пользуйтесь везде конструктором, потому что ООП развивается десятилетиями, люди прошли сквозь страдания и выработали определённые "лучшие практики" для ООП.
    Если же вы используете объекты в основном как очень простые структуры без классической инкапсуляции с приватными полями, не используете наследование, а весь ваш код написан, в основном, на функциях, то делайте, ради бога, что вам вздумается, и отдельная функция-фабрика для создания объектов - это тоже вариант.
    Ответ написан
    Комментировать
  • Чем отличается функция от конструктора и где применять то или это?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    зачем нужны конструкторы если можно пользоваться функциями и реализовать тот или иной код с помощью функции без надобности вызова его через new

    Да, можем. Точно так же можем записать всю программу в один файл и в одну функцию, в которой использовать простой goto. Вместо продуманной структуры классов. Как и не использовать фреймворки, стандартную библиотеку или можно для скорости работы программы писать её на ассемблере или даже машинных кодах сразу. Вместо простого и понятного кода в несколько слоёв абстракций, который понятен, легко сопровождается и позволяет не писать очередной велосипед в миллионный раз. Аналогично и с new Foo() - это просто всем понятная абстракция, говорящая "эта инструкция создаст объект такого-то класса и выполнит все необходимые инструкции для инициализации объекта". Думаю, мысль вполне ясна и детального объяснения не требует?
    Ответ написан
    Комментировать
  • Может ли телеграм бот начислить пользователю звезды?

    @Everything_is_bad
    Достаточно открыть офдоки и прочитать там:
    Bots can't use paid reactions.
    Для рефанд звезд указывается только id платежа.
    Ответ написан
    3 комментария
  • Как добавлять нейросети в игры Unity/UE5/GODOT?

    GavriKos
    @GavriKos Куратор тега Unity
    Нейросеть - это обычный алгоритм +база весов. Поэтому и внедряется как обычный алгоритм - пишется код и все.
    Как вариант - писать код на стороне условного сервера, а из игры обращаться к нему опять таки классическими сетевыми запросами.
    Ответ написан
    8 комментариев
  • Какие есть программы для симуляции физических процессов?

    @CBET_TbMbI
    Слишком общий вопрос. Любая инженерная программа моделирует физические процессы.
    В одних рассчитывают прочность и устойчивость строительных конструкций. В других моделируют деформации автомобилей при авариях. В третьих моделируют течение воды в самых разных условиях. Они все готовы на уровне "купи и пользуйся".
    Если хочешь делать своё, то надо отлично знать 3 вещи: физику, математику, программирование. Простенькие задачи на уровне движения точек или столкновения шариков написать не проблема. Если моделировать упругие сложные тела, то задача становится тем сложнее, чем ближе к реальности хочешь получить решение.
    Ответ написан
    Комментировать
  • Почему тепловизоры не делают на основе принципа пирометрического клина?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Потому что пирометрический клин - это зелёное стекло обладающее разными оптическими характеристиками в соотношении частей спектра пропускаемого света в зависимости от толщины. А тепловизор - это детектор инфракрасного света и конвертер его в видимый спектр. Инфракрасный спектр лежит за пределами видимого спектра излучения. И зелёное стекло к конвертации из инфракрасного в видимый спектр не имеет никакого отношения. Достаточно посмотреть через зелёное стекло ночью - видимость лучше не станет. Суть же использования пирометрического клина в том, что раскалённый предмет излучает свет с определённой интенсивностью, которая зависит от температуры, а в зелёном стекле красный свет и зелёный свет затухают с разной интенсивностью. Пара секунд гугления: Наука и жизнь 1967 № 5 - первая же ссылка. Надеюсь, полное объяснение механизма работы клина самостоятельно сможете прочитать?
    Ответ написан
    Комментировать
  • Cheat Engine устанавливает рекламные вирусы? Насколько безопасна эта программа?

    @elderl
    Программа, которая ищет и меняет значения в памяти других программ, не может считаться "чистой" по поведению. В установке "лихих" друзей замечена не была.
    Ответ написан
    Комментировать
  • Как в столбце excel найти строки меньше 15 минут?

    ProgrammerForever
    @ProgrammerForever Куратор тега Excel
    Учитель, автоэлектрик, программист, музыкант
    Нужно преобразовать в нормальный вид Excel-времени/продолжительности. А потом уже можно фильтровать. Или фильтровать той же формулой, на месте. В формулу можно добавить аналогично недели, сутки, месяцы, декады и прочее-прочее, по аналогии
    =arrayformula(let(
      author;         "@ProgrammerForever";
      header;         "Продолжительность";
      ВремяБуквами;   $A$2:$A;
      
      dd;             ЕСЛИОШИБКА(REGEXEXTRACT(ВремяБуквами;"(\d+)\s+(?:дней|день|дня)");0);
      hh;             ЕСЛИОШИБКА(REGEXEXTRACT(ВремяБуквами;"(\d+)\s+час");0);
      mm;             ЕСЛИОШИБКА(REGEXEXTRACT(ВремяБуквами;"(\d+)\s+мин");0);
      ss;             ЕСЛИОШИБКА(REGEXEXTRACT(ВремяБуквами;"(\d+)\s+сек");0);
      
      time;           dd + hh/24 + mm/(24*60) + ss/(24*60*60);
      
      vstack( header; ЕСЛИ(ВремяБуквами="";;time))
    ))
    Ответ написан
    Комментировать
  • Как коммутатор понимает, что к нему пришел именно DHCP-пакет?

    @SunTechnik
    Этот коммутатор, хоть он и L2 может анализировать содержимое пакетов. (реально, надо проверить, что протокол UDP, и это пакет dhcp offer. Если порт не доверенный, то пакет отбрасываем. Проверять надо конкретные несколько байт в пакете).
    Но так как этот коммутатор на может маршрутизировать трафик, то до L3 он не дотягивает..

    Границы - они всегда условны и есть куча переходных состояний...
    Ответ написан
  • Как сделать физику в игре про вертолёты?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Можете, конечно, сделать моделирование воздушных потоков с разным составом газов, их температурой, а так же физику отталкивания винтом от воздуха при противодействии гравитации и других сил, при наличии у вас под рукой мощного суперкомпьютера и соответствующего ПО. А вот в играх обычно винт представлен простенькой анимацией или статической текстурой с некоторыми эффектами, а вот вертолёт двигает игровой движок по простейшей формуле расчёта скорости и ускорения в зависимости от текущего состояния пользовательского ввода. Как и любой другой игровой объект. Воздуха в абсолютном большинстве игр нет и всякая трава и деревья колышутся по простейшим формулам с некоторой рандомизацией для того, чтобы оно было более-менее похоже на ветер.
    Ответ написан
    Комментировать
  • Какой отечественный linux выбрать для веб-разработки?

    @AlexVWill
    Какой отечественный linux выбрать для веб-разработки?

    Никакой. Для web-разработки абсолютно фиолетово какой у тебя Linux, отечественный или нет. И если нет какой то особой осознанной нужды в использовании именно отечественных изделий, то лучше держаться от них подальше.
    Ответ написан
    3 комментария
  • Нормально ли, что стоят две системы на разных дисках?

    @apppostol
    Скинуть нужные файлы для работы файлы на SSD.
    Полностью форматировать HDD.
    Положить файлы на HDD.
    Опционально переустановить ОС на SSD.

    "Мастеру" вырвать ноги.
    Ответ написан
    2 комментария
  • Ноут вырубается со свистом, что делать?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    возможности в ремонт отдать нету

    В таком случае тут остаётся только один вариант: выкинуть его. Раз вы смогли разобрать, но дальше не осилили и спрашиваете тут, что дальше делать, а не на узкоспециализированных форумах электронщиков - то навыков диагностики и ремонта железа у вас, вероятно, нет, как и нужного для этого оборудования. Мультиметр у вас ещё может быть, а вот осциллограф - вряд ли завалялся. А так же паяльный фен, термостол, микроскоп и прочее. Без опыта и знаний сами вы его вряд ли отремонтируете. Не, если очень хочется его дальше ковырять, то алгоритм примерно следующий: провести диагностику каждой отдельной железки на работоспособность, проверить температуру электронных компонентов на тепловизоре (либо методом пальпации), проверить цепи питания и их контроллёры, потом переходить к остальной рассыпухе и чипам в поисках неисправностей, вероятно придётся выпаивать чипы и проверять их отдельно на доноре или через программатор (и которые у вас тоже вряд ли есть в наличии). Если, конечно, проблема железная. Там могло сдохнуть что угодно и как угодно.
    Ответ написан
    Комментировать
  • Бэкенд или фронтенд должен объединять таблицы по FK?

    xez
    @xez
    TL Junior Roo
    Нет никаких причин оперировать понятиями бд на фронт-энде.
    Ответ написан
    1 комментарий
  • Кто блокирует сертификат и что делать?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Вариант того, что если сертификат отозван, то он действительно отозван - не рассматривается я так понимаю? :-)
    Уверены, что это один и тот же сертификат на проблемной машине и остальных? Thumbprint сравнивали?
    Вангую, что на проблемную машину не прилетают обновления\не установилось обновление корневых сертификатов, а на остальные остановилось.
    Ответ написан
    2 комментария
  • Как объявить лицензию ПО?

    CityCat4
    @CityCat4
    Дома с переломом ноги
    Это в точности BSD 3-clause Непонятен только пункт про "сохранение лицензии". Сохранение типа лицензии, то есть запрещается менять условия лицензирования?
    Ответ написан
    2 комментария
  • Где пройти производственную практику?

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

    Если у вас поднялся вопрос с выбором места практики, и вы его не можете решить, то он решается вот таким рутинным способом.
    Ответ написан
    Комментировать
  • Удаленная работа из Казахстана в российской компании с официальным трудоустройством?

    CityCat4
    @CityCat4
    Дома с переломом ноги
    Может быть возможно. Все зависит от того, что за компания, где она работает и насколько сильно хочет Вас взять.
    Ответ написан
    Комментировать