• Как получить соседние элементы?

    @alexalexes
    Если убрать синтаксический сахар, то получим такой код.
    // [...e.parentNode.children] -- преобразуем коллекцию узлов children в массив
    let child_count = e.parentNode.children.length;
    let child_arr = [];
    for(let i = 0; i < child_count; i++)
      child_arr.push(e.parentNode.children[i]);
    
    // .filter((child) => child !== e) -- фильтруем детей, которые не относятся к текущему узлу
    
    let filter_child_arr = [];
    for(let i = 0; i < child_count; i++)
    {
      let curr_child = e.parentNode.children[i];
      if(curr_child !== e)
        filter_child_arr.push(curr_child);
    }
    Ответ написан
    Комментировать
  • Не отображаются латинские символы и цифры на нектр. сайтах во всех браузерах, кто подскажет что делать?

    @alexalexes
    Проверьте по стеку, где несоответствие в извлекаемой кодировке.
    База данных -> Веб-сервер -> Браузер.
    По обилию диакритических знаков и съехавшего регистра есть подозрение, что где-то в стеке перепутали cp1251 и cp1252 кодировку (или другую cp125x - разные однобайтовые кодировки под разные европейские языки).
    Ответ написан
    Комментировать
  • Потребление ресурса записи ssd и как потребление памяти уменьшить?

    @alexalexes
    1. Не заморачиваетесь с ресурсами SSD или HDD. Они успеют морально устареть до того момента, как начнут проявляться признаки износа. Скорее вы захотите купить новый накопитель, потому что емкость/скорость, принцип расположения в новом корпусе вас не устраивает.
    Но не стоит сбрасывать со щитов тот фактор, что диски могут быть с заводским браком, либо могут произойти случаи, когда они выходят из строя. Поэтому резервная копия ваших личных файлов, которые не выкачаешь из интернета, должна быть всегда на другом носителе или компе.
    2. Штука называется - сетевое NAS хранилище. Используется как файловый сервер (+ в некоторых есть встроенная торрент-качалка), чтобы можно было смотреть фильмы из любого утюга в доме (телевизор, смартфон). Придуман, чтобы тупо был один общий источник данных, а не ради экономии ресурсов отдельных дисков.
    Ответ написан
    Комментировать
  • Нормально ли так делать на Vue?

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

    @alexalexes
    Вероятно, проще использовать виртуальную машину, например, VirtualBox, переконфигурировав идентификаторы оборудования на образе виртуальной машины.
    Гуглите как ставить Mac OS, если у вас нету железа от Apple, там как раз хорошо расписаны этапы, как сделать виртуальное железо валидным для проприетарной ОС.
    Ответ написан
    Комментировать
  • Есть ли батарейка биоса на новых ноутах на материнке?

    @alexalexes
    Еще бывает впаяна в плату. Без паяльника не снимите.
    649fa6a9d33d1870926444.jpeg
    Ответ написан
    Комментировать
  • Здравствуйте, нужно связать два роутера на расстоянии ≈150 метров, как это сделать?

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

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

    @alexalexes
    Ну, если буквально понимать задачу, и у вас нужная характеристика имеет конкретное значение, то сортировать список нужно так:
    select *
      from <таблица/соединенные таблицы для выборки товара> Tab1
    where <условия фильтрации>
    order by
    case
      when Tab1.Приоритетное_свойство = :входная_приоритетная_характеристика
      then 1 -- запись с приоритетным свойством получит повышенное очко для первичной сортировки
      else 0 -- запись с неприоритетным свойством получит пониженное очко для первичной сортировки
    end desc,
    <Другие условия сортировки (по дате добавления, имени и т.д.)>

    Если таких приоритетных характеристик несколько и они равнозначны, то можно сортировать по количеству подходящих под условие характеристик:
    select *
      from <таблица/соединенные таблицы для выборки товара> Tab1
    where <условия фильтрации>
    order by
    case
      when Tab1.Приоритетное_свойство_1 = :входная_приоритетная_характеристика_1
      then 1 -- запись с приоритетным свойством получит повышенное очко для первичной сортировки
      else 0 -- запись с неприоритетным свойством получит пониженное очко для первичной сортировки
    end
    + -- очки приоритетов складываем
    case
      when Tab1.Приоритетное_свойство_2 = :входная_приоритетная_характеристика_2
      then 1 -- запись с приоритетным свойством получит повышенное очко для первичной сортировки
      else 0 -- запись с неприоритетным свойством получит пониженное очко для первичной сортировки
    end
    + 
    -- ... и так далее все характеристики
     desc, -- 
    <Другие условия сортировки (по дате добавления, имени и т.д.)>

    Если приоритеты имеют иерархию, то через запятую в order by раскладываем case от важной характеристики, к менее важной.
    select *
      from <таблица/соединенные таблицы для выборки товара> Tab1
    where <условия фильтрации>
    order by
    case
      when Tab1.Приоритетное_свойство_1 = :входная_приоритетная_характеристика_1
      then 1 -- запись с приоритетным свойством получит повышенное очко для первичной сортировки
      else 0 -- запись с неприоритетным свойством получит пониженное очко для первичной сортировки
    end desc, -- эта более важная характеристика
    case
      when Tab1.Приоритетное_свойство_2 = :входная_приоритетная_характеристика_2
      then 1 -- запись с приоритетным свойством получит повышенное очко для первичной сортировки
      else 0 -- запись с неприоритетным свойством получит пониженное очко для первичной сортировки
    end desc, -- эта менее важная характеристика
    -- ... и так далее все характеристики
    <Другие условия сортировки (по дате добавления, имени и т.д.)>

    Можно комбинировать подходы, если есть куча характеристик на одном уровне иерархии.
    Ответ написан
    1 комментарий
  • Как подписать документ простой электронной подписью?

    @alexalexes
    Простая электронная подпись - это просто фиксация факта, что такой-то авторизованный пользователь сделал определенное действие (разместил файл, утвердил файл, сказал что "копия верна") над объектом (точные координаты размещения файла) тогда-то.

    Вам нужно любым способом создать реестр для фиксации таких действий, в которую будете записывать параметры:
    - идентификатор сессии пользователя;
    - идентификатор пользователя;
    - дата и время действия;
    - вид действия (размещение)
    - параметры объекта, над которым совершено действие (идентификатор файла или путь на диске, желательно md5 файла).
    - статус действия (осуществлено, отклонено, устарено, ошибка и т.д.)

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

    Также нужен бот, который будет следить за хранилищем файлов и сравнивать параметры файла с реестром, чтобы сбрасывать статусы, если файлы менялись.
    Ответ написан
    2 комментария
  • Как сделать слайдер со сменяющимся текстом внутри?

    @alexalexes
    Учить основы CSS - с чем едят свойство position.
    В данном случае для вас неожиданностью является поведение свойства position: absolute; у контейнера .header__slider-text.
    Чтобы абсолютное позиционирование было относительно слайда, дайте контейнеру слайда .header__slider-item свойство position: relative;
    Ответ написан
  • Верстка сложных кнопок адаптив?

    @alexalexes
    64997c8329d1e269390254.png
    Если без svg, то можно сделать 3-мя текстурами.
    Кнопка будет фиксированной высоты, но безразмерна по горизонтали.
    Ответ написан
    1 комментарий
  • Код из файла *.js выполняется после формирования DOM?

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

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

    @alexalexes
    О порядке добавления записей не нужно заботиться.
    У СУБД нет задачи хранить записи в строгом порядке, ваша задача понять, удовлетворит ли вас результат сортировки, если при выборке задать сортировку по darg-w:
    select *
      from verbs
    order by darg-w

    Если хотите получать список в порядке добавления, то логично сортировать по id:
    select *
      from verbs
    order by id

    Если хотите особую сортировку, которая не подчиняется ни id, ни естественному весу строк, то можете ввести новую колонку и следить за позиционированием строк при выборки сами, или по каким-то другим правилам вычислять позицию:
    select *
      from verbs
    order by position -- дополнительное поле, в которое будете сами или программно вбивать порядок сортировки

    Или запрос может выдергивать сам определенные строки, давая им высший приоритет (можно написать любое правило, что требует бизнес логика, или что в голову сбредет):
    select *
      from verbs
    order by case when id = 100 then 0 else 1 end -- даем записи id=100 наивысший приоритет, в любом состоянии списка она будет на 1 месте!
            , id -- остальные записи отсортируются в порядке добавления

    PS: Важно, чтобы поля, которые применяются в сортировке, были проиндексированы (в схеме СУБД были созданы индексы по данным полям и они своевременно пересчитаны).
    Ответ написан
    1 комментарий
  • Можно ли как-то получить html до определенного тега?

    @alexalexes
    1. Получить объект дерева документа d1.
    2. Создать пустой объект документа d2.
    3. Получить непосредственных детей объекта d1.
    4. Перейти к обработке очередного ребенка d1.
    4.1. Ребенок не содержит в себе признаков искомой ссылки - да, идем на шаг 4.2, нет - идем на шаг 5.
    4.2. Копируем ребенка в d2, идем на шаг 4.
    5. Прекращаем обработку детей d1, преобразуем объект d2 в текст.
    Ответ написан
    Комментировать
  • Как проверить принадлежат ли массивы из одной таблицы массивам в другой?

    @alexalexes
    С помощью функции json_to_recordset проводите нормализацию таблиц, чтобы на выходе pair получилась вот такая псевдотаблица-выборка:
    pair
    id_group, name
    1, "ананас",
    1, "апельсины",
    2, "ананас",
    2, "арбуз"
    ...
    Дальше тоже самое делаете с order_list.
    Ну, а дальше все приведено в 3-ю нормальную форму, можно, наконец, использовать SQL-ные сравнения/соединения этих псевдовыборок и высчитывать кол-ва того-сего.
    PS: Такое решение годится как разовое для получения результата, например, если вам нужно срочно сделать нестандартный отчет для руководства, а структура таблиц спроектирована из рук вон плохо.
    Нужно изначально планировать структуру базы так (приводить к 3-й нормальной форме), чтобы не прибегать к декомпозиции полей с помощью функций JSON, если компоненты внутри JSON будут использоваться для соединения между таблицами.
    Ответ написан
  • Как передавать один параметр, а не 3?

    @alexalexes
    FROM views v JOIN memes m JOIN comments c
    Вы конечно, не указали, в какой СУБД пишете, но странно видеть JOIN без ON или USING.
    Если это эквивалент синтаксиса с USING, то вы увидите статистику, если по пользователю есть И просмотры, И мемы, И комментарии. Если в одной из таблиц не будет записей, то пользователь вывалится из статистики.
    Если это эквивалент:
    FROM views v, memes m, comments c
    То такое декартово произведение таблиц с использованием distinct будет не производительно.
    Рационально вам написать такое:
    SELECT (select COUNT(v.id) from views v where v.user_id = u.user_id )      AS просмотры,
           (select COUNT(DISTINCT v.meme_id) from views v where v.user_id = u.user_id) AS [уникальные просмотры],
           (select COUNT(m.id) from memes m where m.user_id = u.user_id)      AS [выложено мемов],
           (select COUNT(c.id) from comments c where c.user_id = u.user_id)      AS [написано комментариев]
      FROM users u -- лучше связаться с таблицей users
     WHERE u.user_id = 1

    Тогда каждый подзапрос будет работать по своей агрегации (да, если по какой-то таблице не будет записей, то вы увидите по ней ноль, а не пустую строчку по всем параметрам), дистинктовать вам нужно только по параметру уникальные просмотры - но его использование не связано с размножением записей при объединении таблиц, так что он посчитает его достаточно быстро.
    PS: Если вы не забыли создать индексы для v.user_id, v.meme_id, m.user_id, c.user_id, то должно все летать на космической скорости.
    Ответ написан
  • Как копировать текст вместе с буллитами?

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

    @alexalexes
    1. Вычисляете агрегированную выборку - подзапрос A.
    2. Сортируете выборку в том порядке, как собираетесь нумеровать - подзарос B.
    3. Нумеруете строки доступной функцией в конкретной СУБД (в Oracle это rownum, в остальных средах есть row_number, в MySQL 5 версии нужно делать костыль из пользовательской переменной @ и if-a).
    select rownum, B.*
    from (select A.*
                from (SELECT v.user_id,
                      u.nickname,
                     COUNT(DISTINCT v.meme_id) as meme_count
                    FROM views as v
                       join  users u on u.id = v.user_id
                   GROUP BY v.user_id, u.nickname) A
            order by A.meme_count desc) B
    Ответ написан