• Как найти общие поля в таблицах?

    @alexalexes
    Если задача на знание справочника SQL, то есть такая конструкция:
    таблица1 join таблица2 using (общие_имена_полей)
    это эквивалент:
    таблица1 join таблица2 on таблица1.общее_имя_поле = таблица2.общее_имя_поле...

    Вариант с using будет работать, если выдерживается культура именования, при которой в названии поля есть название таблицы.
    Ответ написан
  • Есть ли нарушение 3NF и BCNF в таблице БД?

    @alexalexes
    Если задача автоматизированной системы строить график уровня запаса (выполнять функцию подсистемы аналитики), то такая схема полностью уместна.
    PS:
    Но в реальной жизни у вас на месте таблички "Запас товара" будет "История завоза и вывоза товара", по которой у вас не будет явной цифры остатка товара, вам придется всегда его считать по sum() за период времени.
    Ответ написан
    1 комментарий
  • Как в Notepad++ включить подтверждение сохранения при закрытии?

    @alexalexes
    А зачем ему подтверждение? Он временные правки налету в черновики сохраняет. Еще бы история правок была бы доступна после прерывания работы по навигации Ctrl+Z <-> Ctrl-Y, то было бы замечательно.

    PS:
    Настройки -> Резервное копирование -> снимаете галочку "Запоминать текущую сессию для следующего запуска". Остаетесь без автосохранения черновиков, но имеете при этом предупреждение при закрытии программы.
    Ответ написан
    Комментировать
  • Монитор fullHD 17-19 дюймов, существуют ли?

    @alexalexes
    Действительно, сегмент малых мониторов с FullHD сейчас занимают только сенсорники.
    В качестве исключения можно найти отдельных китайцев, но это исключение из правил, например:
    https://market.yandex.ru/product--monitor-carcam-l...
    Ответ написан
    Комментировать
  • Можно ли делать запрос к промежуточной таблице многие-ко-многим для извлечения конкретной информации?

    @alexalexes
    Что-то много философии про можно/нельзя. Нужно влоб погуглить "join-ы в sql" и набросать что-то такое:
    select b.*, -- все колонки по книге
            a.* -- все колонки по сведениям об авторе
    from books as b
    join book_autor as ba on b.book_id = ba.book_id  -- если у книги может не быть авторов, то нужен left join
    join autors as a on ba.autor_id = a.autor_id -- если у книги может не быть авторов, то нужен left join
    where b.book_id = :book_id -- сюда подставляем параметр нужной книги.
    Ответ написан
  • Как пофиксить баг с постоянным выводом данных из БД?

    @alexalexes
    Прошлые данные выдаются из сессии PHP.
    <?php foreach ($_SESSION['arr'] as $gorod) : ?>
                <tr>
                    <td><?php echo $gorod['id']; ?></td>
                    <td><?php echo $gorod['name']; ?></td>
                    <td><?php echo $gorod['area']; ?></td>
                    <td><?php echo $gorod['population']; ?></td>
                </tr>
            <?php endforeach; ?>

    А вывод всех городов отрабатывает вот этот случай:
    } else if (empty($name)) {
    	$mysql = "SELECT * FROM city";

    Сервер PHP какой получил код, те условия и отработал. Никакой магии тут нет, разбирайтесь, что хотели получить или изменить.
    Ответ написан
    Комментировать
  • Можно ли исползовать презаряжаемое Ni-Mh батарею вместо акумулятора в бытвом устройстве?

    @alexalexes
    Можно, если заменяемый элемент имеет схожие параметры токотдачи (у вас там моторчик работает).
    Ответ написан
    Комментировать
  • Запрос на удаление, что нём не так?

    @alexalexes
    DELETE FROM joom_user_usergroup_map -- m - забудьте про алиасы в делетах, пока работаете в MariaDB !
    WHERE NOT EXISTS (SELECT * FROM joom_users u WHERE u.id = joom_user_usergroup_map.user_id -- будьте добры указывать имя таблицы полностью, которую обрабатывает delete
    );
    Ответ написан
    3 комментария
  • Как узнать частоту работы радичастотного пульта ДУ?

    @alexalexes
    С большой долей вероятности, частота модуляции на той же частоте (или в пределах деления на 2/4/8), что и кварц возле микросхемы.
    Если это десятки МГц, то можно попробовать определить с помощью осциллографа. Если нет осциллографа, то нужен КВ-приемник или использовать USB ТВ-тюнер в режиме SDR, чтобы опытным путем найти частоту модуляции.
    Ответ написан
    Комментировать
  • Что с температурами ноутбука?

    @alexalexes
    Игры никогда не нагрузят процессор, чтобы он выделял максимальное TDP, в отличии от синтетических тестов.
    Это хорошо известный факт. Поэтому и температуры железа в играх меньше, чем при тестировании.
    Ответ написан
  • Как посчитать разницу по координате х за клик мыши?

    @alexalexes
    // инициализация значений по умолчанию (тело конструктора, если использовать ООП. В классе будете использовать this контекст класса вместо window)
        window.is_mouse_catch = false; // зажата ли мышь?
        window.mouse_path = 0.0; // путь мыши
        // предыдущие координаты мыши
        window.cl_X = null;
        window.cl_Y = null;
        // конец инициализации
        // обработчик нажатия кнопки
        document.addEventListener('mousedown', function(e)
        {
          // фиксируем параметры мыши в переменных, за пределами локальной области видимости обработчика
          window.is_mouse_catch = true;
          window.mouse_path = 0.0;
          window.cl_X = e.clientX;
          window.cl_Y = e.clientY;
        });
        // обработчик отпускания кнопки
        document.addEventListener('mouseup', function(e)
        {
          // фиксируем отпускание кнопки мыши в переменной, за пределами локальной области видимости обработчика
          window.is_mouse_catch = false;
        });
        // обработчик движения мыши
        document.addEventListener('mousemove', function(e)
        {
          // если кнопку не нажимали, то прерываем обработчик
          if(window.is_mouse_catch === false)
            return;
          // определяем текущие координаты
          let currentX = +e.clientX;
          let currentY = +e.clientY;
          // считаем дельту пути
          let delta = ((currentX - window.cl_X) ** 2 + (currentY - window.cl_Y) ** 2) ** 0.5;
          // приращиваем дельту пути к общему результату
          window.mouse_path += delta;
          // переопределяем предыдущие координаты
          window.cl_X = currentX;
          window.cl_Y = currentY;
          // пишем в лог
          console.log('currentX: ' + currentX + '; currentY: ' + currentY + ' delta: ' + delta + '; total_path: ' + window.mouse_path);
        });
    Ответ написан
  • Не знаю, нужен ли термоклей в этой ситуации?

    @alexalexes
    Любым способом организовать нижний подогрев до размягчения припоя и посадить светодиод.
    PS:
    Такие светодиоды и приобретают готовыми модулями, чтобы не иметь дело с подогревом.
    Ответ написан
  • Где можно найти бумажную версию книги "C.Petzold - Programming Windows 5th edition"?

    @alexalexes
    С e-bay через посредников заказывать не вариант, т.к. за доставку берут слишком много.

    Добро пожаловать в СССР. Именно так и доставать. Книга не для массового рынка.
    Либо использовать PDF: просто читать с электронной книжки, либо напечатать на принтере, либо иметь знакомого в типографии, который вам самиздатом ее напечатает с минимальными издержками.
    Ответ написан
    4 комментария
  • Можно ли вывести видео с дисплея AP702A?

    @alexalexes
    Смотрите спецификацию или уточняйте у поставщика аналогичной продукции.
    PS:
    По некоторым характеристикам можно предположить, что может воспроизводится видео MPEG.
    automatizacia.ru/mag/detail/50/flypage_images/838....
    Но вам придется опытным путем подобрать расширение файла, характерное для такого контейнера - avi, mpeg, mpg.
    И кодек для содержимого файла - mpeg-2, mpeg-4, divx.
    Ответ написан
    Комментировать
  • Какой стек технологий выбрать для разработки веб-приложения по учету успеваемости студентов?

    @alexalexes
    Это дипломная работа и требований по языку и фреймворку нет. Из-за этого не могу определиться со стеком бэка.

    Пишите пояснительную записку. Вообще не отвлекайтесь на разработку. Оставьте реализацию на уровне статичных HTML. Для защиты диплома что-то реализовывать, кроме проектной документации - только терять время.
    Ответ написан
    Комментировать
  • Как разработчики пользуются Git в компаниях?

    @alexalexes
    В серьезных компаниях невозможно состояние гонки релизов, которую вы описали.
    Во-первых, информационная система используется не в одном экземпляре. Всегда есть как минимум продакшен экземпляр, предпродакшен и девелоп экземпляры системы. В предпродакшен и девелоп версии могут загружаться не только разные релизы кода, но и гонятся разный набор данных для отладки и тестирования.
    К этим экземплярам и набору данных имеют доступ разные работники, с разным уровнем допуска и ответственностью. Рядовой разработчик не будет иметь доступ в продакшен и предпродакшен, для него вышестоящий работник сформирует девелоп версию и подготовит нужный набор данных, который нужен именно для решения его рабочей задачи. Также рядовой разработчик не будет иметь полный доступ к действиям в репозитории, он может действовать только в рамках своей дев ветки, никто ему не даст прав сливать в мастер.
    Для каждой новой разработанной функции пишутся автоматические тесты, как минимум с одним тестом, что она включается, эти тесты пишет отдельный контингент работников.
    Прежде чем код попадет в продакшен, он будет просмотрен вышестоящим работником, его функционал будет протестирован сначала на тестовых данных, потом на боевых, с каждого теста будут сняты метрики не только по возникающим ошибкам, но и по производительности.
    Уже на основе всех этих данных и будет принято решение компетентным работником вливать ваш функционал в прод или нет. Вместе с этим будет принято решение на слияние в мастер в репозитории.
    Ответ написан
    Комментировать
  • Почему ethernet не заменят на type-c?

    @alexalexes
    type-c это не только разъем, но и отдельный стек протоколов от нижнего уровня. Причем он сильно платформозависимый. Ничего не мешает создать роутер с чисто разъемами USB, только вам придется бегать с флешкой к каждому компу и устанавливать драйвер, чтобы обеспечить ethernet over usb. А для передачи по чистому ethernet не нужно даже, чтобы устройство обладало универсальным процессором с ОС на борту, достаточно любого примитивного микроконтроллера, способного воспроизводить последовательность импульсов и выдерживать кадр.
    Ответ написан
    Комментировать
  • Как выставить приоритет подключения(трафика) для отдельного девайса?

    @alexalexes
    Никак, надежность и скорость соединения будет всегда зависеть от уровня сигнала в первую очередь, во вторую очередь от занятости канала связи.
    Необходимо кинуть кабель от роутера до ноута, чтобы не зависеть от состояния эфира.
    Либо все равно кинуть кабель от существующего роутера до комнаты с ноутом и поставить туда еще один роутер - к нему подключаться как к отдельной точке доступа.
    Либо заменить существующий роутер на два новых, которые могут в mesh-сети - чтобы можно было расширить зону покрытия одной сети, а также иметь каналы на 5 ГГц, чтобы потребители трафика не задыхалить от нехватки полосы пропускания (потребители также должны уметь в 5 ГГц, и нужно иметь ввиду, что 5ГГц не такая пробивная, как 2.4ГГц).
    Ответ написан
    Комментировать
  • В чём может быть проблема с интернетом?

    @alexalexes
    Нужно настроить PPPoE подключение на компьютере для прямого кабельного соединения с провайдером.
    Когда нет проблем - подключаться к провайдеру через роутер.
    Когда проблема появится - перейти на прямое кабельное соединение (убрать из подозреваемых роутер).
    Прогнать различные тесты:
    1. Speedtest на разные серверы, а не только на тот, который выбран автоматически.
    2. Покачать торрентом популярную раздачу.
    3. Скачать большой файл. Можно, например, скачать iso образ Ubuntu на пару гигов.
    После этого сделать вывод, какой вид трафика ограничивается (и не виноват ли роутер), и обращаться с этой проблемой к провайдеру.
    Ответ написан
    Комментировать
  • Как вывести по 5 максимальных значений в строках из каждой категории?

    @alexalexes
    select A.*
           from
           (
           select B.*,
                  row_number() over (partition by B.nomin_id order by B.countUser desc) rwnm -- партишином задаем область счета строк, а сортировкой - порядок счета
                  from
                  (
                  SELECT count(user_id) countUser, nomin_id,  film_id
                  FROM votes
                  GROUP BY  film_id , nomin_id
                  ) B
           ) A
    where rwnm <= 5 -- берем по этому количеству от каждого локального счета

    См. оконную функцию row_number для MySQL 8+ версия, либо MariaDB. Но учтите, что MySQL 5 не поддерживает оконки, в ней свои костыли есть в виде использования переменных с @.

    Но всего в таблице 25 000 строк запрос выполняется 30 секунд, а потом крах.

    Индексы на каждый из атрибутов user_id, nomin_id, film_id нужно создать, тогда будет пару сотен миллисекунд выполняться.
    Ответ написан