Задать вопрос
  • Можно ли создать беспроводной USB "провод"?

    @alexalexes
    Ответ, на самом деле, не тривиален.
    USB хаб, который можно подключить к компу без проводов, - это единичные решения отдельных фирм.
    Например, IOGEAR Wireless USB Hub and Adapter Kit (GUWH204KIT).
    Скорее всего такое выпускалось когда-то, и только на всемирной барахолке найдете, типа, ebay.
    Если нужно собирать современное решение, то скорее всего вам понадобиться usb сервер в форм-факторе wifi-роутера или Малинки (Raspberry Pi). И собственно, уверенные знания linux, чтобы это настроить. https://habr.com/ru/companies/selectel/articles/668590/
    Ответ написан
    Комментировать
  • Как рассчитать нагрузку веб сервера?

    @alexalexes
    Ну, если все лежит в базе данных, то вопрос глупый.
    SQL в руки, и вперед получать статистику:
    select max(t1.url_count_per_second) as max_count, -- макс. значение в рассматриваемом периоде
              avg(t1.url_count_per_second) as avg_count -- среднее значение в рассматриваемом периоде
    (
    select t.log_date, -- нужно смотреть, в каком формате выводится отметка времени, нужно добиться такого формата, чтобы там были секунды
               count(distinct t.url /*тут, возможно, нужно вычленять интересуемый фрагмент url, без "шелухи" из параметров*/) as url_count_per_second
    from log_table as t
    where t.log_date between  :beg_date and :end_date -- предусмотреть конвертацию значений меток в нужный формат log_date
    group by t.log_date -- тут тоже нужен тот формат, который выводится в select
    ) as t1
    Ответ написан
    2 комментария
  • Почему такие большие значения SMART?

    @alexalexes
    На мой вкус, если предполагается хранить данные, которые не подлежат восстановлению при полной утере всех копий, то скупиться на новый диск не стоит.
    Этот вроде не сильно использовался, но не стоит из него делать холодное хранилище последней копии.
    Он годится для роли флешки - для переноса данных сойдет, но если разбил диск, то не жалко.
    Ответ написан
    Комментировать
  • Как взять максимальный квартал в каждом году?

    @alexalexes
    select B.*
    (select A.*,
                max(A.Квартал) over (partition by A.Год) as Макс_Квартал
      from A) B
    where B.Квартал = B.Макс_Квартал
    Ответ написан
    Комментировать
  • Есть ли разница в производительности при запуске функции ил SQL запроса или в цикле php?

    @alexalexes
    1. На 3-10 позициях не имеет значения реализация.
    2. На 100...1 млн лучше экономить трафик между PHP сервером и СУБД.
    3. Если нельзя избежать транссистемой обработки задачи на 100...1 млн, то разбивайте задачу на пакеты в 100...1000 ед. Пакеты ставьте в очередь на обработку. Делайте диспетчер очереди.

    В общем, какой бы замер не сделали бы. Вы придете к одному из этих решений.
    Ответ написан
    Комментировать
  • Произошло ли повреждение материнки в сокете?

    @alexalexes
    Пару раз выдирал проц. AMD с радиатором, когда был не опытным, но никогда это не приводило к повреждениям.
    Если радиатор не отклеивается, то небольшие движения на кручение (в пределах люфта защелки радиатора) помогут расслабить термопасту, и радиатор отклеится.
    Ответ написан
    Комментировать
  • Какой нужен БП?

    @alexalexes
    Под Rx570 - не менее 600 Вт в независимости от остальной комплектухи.
    Расчетные 500...550 вам дадут запустить систему, но питание будет тухнуть через полчаса в 3D нагрузках.
    Ответ написан
    1 комментарий
  • Где ошибка в SQL запросе к полю содержащему XML?

    @alexalexes
    SET QUOTED_IDENTIFIER ON;
    -- create
    CREATE TABLE entity (
      xml ntext
    );
    
    -- insert
    INSERT INTO entity(xml) VALUES ('<r><authCard>abc123slip4</authCard><authCard>abc1234</authCard></r>');
    
    -- fetch 
    SELECT * FROM entity
    where cast(xml as xml).value('(/r/authCard)[1]', 'nvarchar(max)') LIKE N'%slip%';
    Ответ написан
    3 комментария
  • В какой программе делается такая анимация?

    @alexalexes
    Любой 3d редактор, плюс какой-то набор готовых моделек. Небольшая усидчивость для Ctrl+С - Ctrl+V.
    Моделируете траекторию камеры и можете пилить видосик.
    Вам даже просматривать обучающие ролики не нужно, как трансформировать начальные модели, все примитивно.
    Ответ написан
    1 комментарий
  • Как правильно сгруппировать данные двух таблиц чтоб записи соединялись по количественному номеру записи?

    @alexalexes
    Чтобы любую таблицу обложить историей изменения, нужно создать следующую обвязку:
    1. Создать таблицу <название исходной таблицы>__history
    Поля таблицы:
    Первичный ключ - history_id,
    Копируем названия полей исходной таблицы как есть (всем полям даете возможность быть null).
    Делаем внешние ключи таблицы истории к исходной таблице (обычно id- исходной таблицы нужно привязать) и к другим таблицам, такие же как в исходной таблице, но опускаем ограничение уникальности ключей. Не используем каскадное обновление значение ключей.
    Добавляете поле - вид операции над строкой исходной таблицы (вставка, обновление, удаление).
    И самое главное, в таблице истории должно быть поле next_history_id - делаете по нему связанный список истории изменения одного поля. Как это поле работает? - см. пункт 2.
    2. Создаете триггер/ы на события вставки, изменения, удаления для исходной таблицы в ней пишите тело со следующими действиями:
    Читаете id тронутой событием записи из исходной таблицы.
    Определяете history_id по данной id, где next_history_id is null - запоминаете в локальной переменной как before_history_id.
    Если действие не удаление, то создаете запись в таблице истории из new-полей, которые пришли в insert/update для исходной таблицы, добавляете значение поля вида действия, next_history_id делаете null, получаете history_id этой вставленной записи - записываете в переменную new_history_id.
    Если действие - удаление, то new поля вычитывать не нужно, нужно записать значение поля вида действия, next_history_id делаете null, получаете history_id этой вставленной записи - записываете в переменную new_history_id.
    Делаете обновление поля next_history_id = new_history_id у записи истории со значением ключа before_history_id.
    Тело триггера готово.
    На любое действие в исходной таблице будет создаваться запись в истории, с указанием действия, а также будет формироваться цепочка изменений конкретной записи через атрибут next_history_id.
    Чтобы вычитать последнее изменение по строчке исходной таблицы, нужно обратиться в таблицу истории по id от исходной таблицы и next_history_id is null.
    Ответ написан
    Комментировать
  • Безопасно ли делать копирование файлов с телефона, где может быть вирус, и переносить их на телефон со сброшенными настройками?

    @alexalexes
    Копию файлов всегда полезно делать в любой непонятной ситуации - вы это и сделайте.
    А вот с восстановлением телефона лучше обратитесь к специалистам.
    Ответ написан
    1 комментарий
  • Как найти минимальное свободное значение в диапазоне?

    @alexalexes
    WITH RECURSIVE
    -- Тестовая выборка. Если есть "живая" таблица, то эту выборку можно убрать  
     t as (select 10.000 value union
               select 10.001 union
               select 10.002 union
               select 10.003 union
               select 10.005 union
               select 10.009 -- специально добавил контр. пример
              ),
    -- Таблица-генератор последовательности чисел от min(t.value) до max(t.value) с шагом 0.001 с помощью CTE (есть ограничение по глубине рекурсии!)
    num_series AS (
      SELECT (select min(value) from t)  AS num
      UNION ALL
      SELECT num + 0.001 FROM num_series
       WHERE num < (select max(value) from t)
    )
    -- Запрос, в котором сопоставляем таблицу генератор и исходную таблицу, чтобы найти недостающие кванты
    SELECT * 
      FROM num_series
     where not exists(select t.value from t where t.value = num_series.num)
         and num_series.num >= 10.000

    PS: Нужен MySQL 8 версии и выше, postgres, или СУБД из интерпрайзного сегмента.
    Ответ написан
  • Подойдет ли SSD к материнской плате H370 AORUS GAMING 3 WIFI?

    @alexalexes
    Да, до 4 Гбайт/с можно выжать из разъема M.2 этой материнки. Вы ограничены только возможностями данного SSD.
    Ответ написан
    Комментировать
  • Как деревья из иерархического справочника сохранить в структуры вложенных словарей?

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

    @alexalexes
    Чтобы ответить на ваш вопрос, не перелопачивая кучу литературы, достаточно изучить вопрос, что такое суперскалярность.
    Ответ написан
    Комментировать
  • Как мне поделиться моей курсовой работой с преподавателем?

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

    @alexalexes
    Первый слот всегда продвинутый по характеристикам, остальные даются - лишь бы были, или в замен использования SATA и некоторых линий PCI-E.
    Ответ написан
    Комментировать
  • Cуществует ли менеджер изображений для сайта в связке с БД?

    @alexalexes
    Нет, ручками.
    Копируете в тестовый каталог сервера картинки.
    Копируете таблицу базы данных в тестовую таблицу.
    В таблице создаете колонку любого типа, где будете ставить пометку, что запись обработали (картинка перемещена).
    Берете ваш любимый PHP/Python/NodeJS.
    Читаете по одной строчке табличку, где стоит атрибут, что картинка не обработана.
    Копируете средствами скрипта файл из одного места в другое (не забываете, что по ходу углубления путей нужно прописать команды на создание подкаталогов).
    Если копирование прошло успешно, то делаете update этой строчки - вставляете новое значение пути, и помечаете, что строчку обработали.
    Пишите в файл лог обработки - какие строки обработали удачно, или пишите текст ошибки, если что-то пошло не так.
    Когда потренируетесь на кошках, делайте тоже самое на боевых таблицах. Естественно, сделайте копию ресурсов всего сайта, даже если ваши действия не затрагивают их, на всякий случай.
    Ответ написан
    3 комментария
  • Как передать верстку заказчику?

    @alexalexes
    У вас полностью клиентский контент без серверной части.
    Передаете каталог с файлами любым способом. Только убедитесь, что все необходимые ресурсы страниц имеют относительные ссылки, и они располагаются в данном каталоге.
    Ответ написан
    Комментировать
  • Как составить SQL запрос с разбиением дат на несколько?

    @alexalexes
    -- Тестовая выборка
    with t as (select to_date('2024-09-17 11:52:17', 'yyyy-mm-dd hh24:mi:ss') begin_date, to_date('2024-12-17 11:52:17', 'yyyy-mm-dd hh24:mi:ss') end_date, 3 Cnt from dual union
    select to_date('2024-06-10 14:52:19', 'yyyy-mm-dd hh24:mi:ss') begin_date, to_date('2024-07-10 14:52:19', 'yyyy-mm-dd hh24:mi:ss') end_date, 1 Cnt from dual)
    -- Иерархический запрос
    select distinct T.*,
           add_Months(T.Begin_Date, Level - 1) as Current_Date, -- отсчет месяцев
           Level as Current_Val  -- текущее значение отсчета
      from T
      CONNECT BY add_Months(T.Begin_Date, Level) <= T.End_Date
    order siblings by T.Begin_Date desc
    Ответ написан
    Комментировать