• Как работать с 2 GIT проектами в одном проекте?

    @artinnok
    бекенд-программист
    Субмодули - палка о двух концах.
    Плюсы:
    1. Версионирование нескольких проектов

    Минусы:
    1. Неявные зависимости между проектами (изменение в одном проекте, приводит к изменениям в другом)
    2. Повышение порога входа в проект (мало кто из разработчиков использует субмодули)

    Когда я работал в проекте, в котором использовались субмодули это был ад - чтобы сделать коммит в субмодуль, приходилось копаться в 2-3 проектах, которые ты в первый раз видишь. Также, приходилось постоянно просить пермишены на заливку в эти проекты, чтобы обновить версию субмодуля.

    Если есть возможность сделать без субмодулей - сделайте без них. В Python есть пакеты - готовые к продакшену библиотеки, наверняка, и в PHP есть аналоги пакетов / библиотек.
    Ответ написан
    Комментировать
  • Как работает электронная почта?

    Возьмём двух почтовых провайдеров: mail.ru и gmail.com.
    На них зарегистрировались соответственно два пользователя: А@mail.ru и Б@gmail.com
    Чтобы А успешно оправил письмо получателю Б, а тот его принял, происходит следующее.

    Схема довольно проста:

    Отправитель А@mail.ru посылает письмо получателю Б@gmail.com

    Сервер mail.ru (MTA), получив задание с помощью почтового посредника MUA (клиентская почтовая программа (The Bat, Mozilla Thunderbird)) по протоколу SMTP, ищет почтовый сервер gmail.com (MTA) по доменной части адреса (в нашем случае gmail.com) через DNS. SMTP сервер mail.ru ищет в DNS для домена gmail.com запись MX (mail exchange), она и указывает на MTA сервер получателя Б@gmail.com (в простом случае).
    Далее MTA mail.ru связывается с MTA gmail.com по протоколу SMTP, происходит ряд проверок со стороны обоих серверов, если все успешно, то письмо передается в почтовую очередь сервера gmail.com.
    Затем MTA gmail.com доставляет письмо на сервер входящей почты (называющийся MDA, то есть агент доставки электронной почты), который хранит письмо в почтовом ящике пользователя Б@gmail.com в ожидании его приема пользователем. Далее с помощью MUA (клиентская почтовая программа (The Bat, Mozilla Thunderbird)) пользователь Б@gmail.com извлекает из MDA письмо по протоколу POP или IMAP.
    В качестве MUA может выступать веб-интерфейс, использующийся для взаимодействия с сервером входящей почты (MDA) и сервером исходящей почты (MTA).
    Ответ написан
    1 комментарий
  • Как связать puppeteer с PHP?

    Поднять отдельно ноду на любом свободном порту, написать небольшое API, из php делать запросы по api получать ответы
    Ответ написан
    Комментировать
  • Как правильно учиться PHP / mySQL?

    Thief
    @Thief
    не совсем для начинающих но в будущем советую прочитать «Matt Zandstra / Мэтт Зандстра — PHP Objects, Patterns, and Practice / PHP. Объекты, шаблоны и методики программирования»
    Ответ написан
    1 комментарий
  • Как учат в МГТУ им. Баумана, или стоит ли получать второе высшее именно там?

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

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

    LucasP
    @LucasP Автор вопроса
    Попробовал еще один виджет execut/yii2-widget-bootstraptreeview, однако всё равно остановился на kartik-sidenav.
    Похожий вопрос: В чем ошибка при построении nested sets menu Yii2?
    public static function getTree($categories, $left = 0, $right = null, $depth = 1){
    
            $tree = [];
    
            foreach ($categories as $index => $category) {
                if ($category->lft >= $left + 1 && (is_null($right) || $category->rgt <= $right) && $category->depth == $depth) {
                    $tree[$index] = [
                        'label' => $category->name,
                        'url' => '/shop/catalog/root?id='.$category->id,
                        'items' => self::getTree($categories, $category->lft, $category->rgt, $category->depth+1),
                    ];
                }
            }
    
            return $tree;
    
        }
    
        public static function getFullTreeStructure(){
    
            $roots = self::find()->roots()->addOrderBy('root, lft')->all();
            $tree = [];
            foreach ($roots as $root){
                $tree [] = [
                    'label' => $root->name,
                    'url' => '/shop/catalog/root?id='.$root->id,
                    'items' => self::getTree($root->children()->all()),
                ];
            }
    
            return $tree;
        }
    Ответ написан
    Комментировать
  • Нейронная сеть на python - стоит ли браться?

    Что за данные? – хотя бы примерно. Может, там в линейную модель укладывается (все точки кучкуются вокруг некой прямой).

    Браться стоит – лучше, чем не браться ) Есть готовые библиотеки, есть онлайн курсы и короткие уроки. И именно по питону. Простейшую сеть для распознавания цифр написать – несколько строк кода (например, MNIST на Tensor Flow). Может, это и ваш случай.
    Ответ написан
    3 комментария
  • Конвертер готового исходного кода PHP/JS в трудозатраты (специалисты: часы и рейт по каждому)?

    Negwereth
    @Negwereth
    lvivcss.com.ua
    Эммм. Из личного опыта - любая попытка подобных расчётов это натяжка совы на глобус и измерение получившегося в британских попугаях.

    Одна и та же задача может занять как день, так и неделю. И в выхлопе кода тоже где-то 10 строк, где-то 100.
    Ответ написан
    7 комментариев
  • Как указать контроллер по-умолчанию в yii2 для подкаталога?

    @BorisKorobkov
    Web developer
    Точно так же. Свойство defaultRoute в WebApplication.
    Для модуля - это же свойство в Module.
    Ответ написан
    1 комментарий
  • Где найти примеры исходного кода HTML5 CSS3 сеньерского уровня?

    Negwereth
    @Negwereth
    lvivcss.com.ua
    Ответ написан
    Комментировать
  • Где найти примеры исходного кода HTML5 CSS3 сеньерского уровня?

    Maksclub
    @Maksclub
    maksfedorov.ru
    www.kaerus.de/ebay
    обратите внимания -- переключение фото товаров без единого символа на js (вообще ничего на странице нет на js)
    переключение размера и цвета -- все на голом HTML, увеличение фото по кклику
    и при этом слайдер адаптивный еще в добавок, чистый html

    также посмотрите на работы Артемия Лебедева -- там с версткой у них вышка
    Ответ написан
  • Что за фигня с приравниванием в js?

    Все нормально, просто объекты передаются ссылками, вам нужно создавать новый объект, если хотите управлять им независимо.

    Например:
    let anotherObj = Object.assign({}, obj)

    Или более продвинутые методы отсюда underscorejs.org или его форка https://lodash.com/docs/4.17.4 (рекомендую), в последнем есть и рекурсивный merge может быть полезным, так же стоит помнить что assing не работает в IE 10-11
    Ответ написан
    8 комментариев
  • Говнокод или нет?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Код г-но неидеален, и вот, почему:
    см. комменты в коде
    let a = prompt("Enter a value", 10); // a, b, c дальше не меняются
    let b = prompt("Enter b value", 10); // поэтому можно
    let c = prompt("Enter c value", 10);  // const
    let result;
    let discr = (b * b ) - 4 * a * c;
    let sqrtDiscr = Math.sqrt(discr); // при отрицат. discr здесь NaN
    if(a === 0 && b === 0 && c === 0) { // проверяем уже после вычислений
      throw new Error("The values must be bigger than 0");
    } else if(discr < 0 ){ // проверяем уже после вычисления sqrtDiscr
      throw new Error("This Equation have not solution");
    } else if(discr === 0 ){
      console.log("This Equation have only 1 solution")
      result = (-b) / (2 * a);
    } else if (discr > 0){
      console.log("This Equation have 2 solution");
      result = (- b + sqrtDiscr) / (2 * a) + ";     " + (- b - sqrtDiscr) / (2 * a);
    }
    
    console.log(result);


    По функциям разбивать есть смысл если из нескольких мест идёт обращение, код повторяется более двух раз. Тут можно в двух последних случаях считать два корня одной формулой, и при нулевом дискриминанте брать только одно из двух равных значений. Но это излишняя, дурная, вредная переоптимизация.

    Ещё вы не проверили случай, когда a === 0: у вас будет деление на ноль.
    Ответ написан
    2 комментария
  • Как убрать линейки в vs code?

    alvvi
    @alvvi
    export default apathy;
    "editor.renderIndentGuides": false
    Ответ написан
    2 комментария
  • Как предсказать время поломки/срок службы оборудования?

    begemot_sun
    @begemot_sun
    Программист в душе.
    Нужно почитать теорию надежности.

    Как выше написали.
    Вероятность поломки может быть описана приближенно такой формулой:
    p(t) = a/(b*t) + c*exp(d*t) + e
    Ответ написан
    Комментировать
  • Какой алгоритм подойдет для описания полета насекомого?

    sergiks
    @sergiks Куратор тега Алгоритмы
    ♬♬
    Можно сделать цепочку преследования: к случайной точке тянется одна, к ней другая, и т.д., а последняя – муха.

    Очередную точку ставить на плоскости случайно, в любом месте внутри допустимой области. Эта точка – цель, к которой стремится следующая, невидимая точка: каждый следующий кадр её координаты изменяются на k * векторИзТекущегоПоложения-в-Цель:
    x = x + k * (xTarget - x);
    y = y + k * (yTarget - y);

    Так «преследователь» замедляется, по мере приближения к цели, никогда её не достигая.

    Эта невидимая точка – не одна. К ней, как к цели, стремится следующая. К той ещё одна. Наконец, сама муха по этому закону стремится к хвосту этой цепи - очередной точке.

    Чем больше звеньев в такой цепи, тем плавнее получается кривая. При приближении мухи к цели ближе, чем на D, генерится следующая случайная цель.

    Сделал рабочий пример.

    Можно поменять алгоритм и сделать, скажем, линейную скорость постоянной. Или случайно варьировать параметры k и D – от этого поменяется скорость и траектория от плавной ближе к ломаной.
    Ответ написан
    Комментировать
  • Бредом ли мне ответил провайдер?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Давненько я не видел ПК с подключением оптики :-) поддержка жжёт! На bash.org.ru место этому ответу.
    Ответ написан
    8 комментариев
  • Что посоветуете еще подучить что бы тянуть на Junior PHP разработчика?

    qonand
    @qonand
    Software Engineer
    1. Что нужно знать обязательно еще джуну по PHP?

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

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

    Для этого можно просто погуглить: ссылка раз, ссылка два

    3. Что можно почитать по юнит-тестам т.к. с ними не работал и пока не имею предствления?

    Документацию по phpUnit

    4. Страшно ли, что работал все время в phpmyadmin, а не в консоле?:)

    Не важно с помощью какого средства Вы работали в базе данных, главное что бы у Вас были навыки написания запросов на SQL

    5. Нужно ли джуну знать, как настраивать сервер (тонкости) апача?

    Нет
    Ответ написан
    Комментировать
  • С чего начать изучение C++?

    @D3lphi
    Посоветуйте пожалуйста книги по изучению C++

    Бьерн Страуструп язык программирования с++

    И вообще можно создать при помощи C++ красивые приложения, или без C# некак?

    Qt
    Ответ написан
    Комментировать