Задать вопрос
  • Как из HTML удалить текст и атрибуты, оставив только структуру?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    https://developer.mozilla.org/en-US/docs/Web/API/D...

    Я бы сделал так загрузил бы документ и прошелся бы по дочерним элементам
    document.html
    и выводил бы только теги
    Ответ написан
    Комментировать
  • Как вычислить виновника из-за которого отваливается интернет с какой-то периодичностью в маленькой сети?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Такого рода проблемы все и всегда решаются однотипно.
    1. Необходимо сформулировать критерии наличия проблемы.
    Как именно пропадает интернет, насколько часто, как надолго. Это нужно для диагностики. поиска причины и определения ушла ли проблема после принятия каких либо мер.
    2. Делить проблему на части и проверять части по отдельности.
    Самый эффективный способ делить - это пополам. Отсекаем часть сети и проверяем наличие проблемы в обеих частях (если есть возможность) или в одной из частей.
    3. Когда найден минимальный проблемный участок, который уже нельзя или бессмысленно делить - заменяем его.
    4. Помним, что чаще всего сложные проблемы - это композиция нескольких более простых. которые по отдельности могут не проявляться. В вашем случае может быть проблема, связанная с нагрузкой на роутер, например, которую создает один из услов из-за плохого контакта обжима и большого объёма биттых пакетов. Устранив одну из причин, вы, может быть, сделаете проявления проблемы реже, но не устраните её полностью. К примеру, если замените ротуер, битые пакеты будут всё равно будут нагружать вашу сеть и портить ее производительность, но это будет не так очевидно. Переобжав коннектор вы избавитесь от части нагрузки, но еслив ваш ротуер работал на переделе, то лишний вафай-клиент или тяжелый видос в сети сможет его снова нагрузить до критического снижения производительности.

    Итак, пробежимся по перечисленным пунктам сначала.
    1. Критерии. Поиск критериев - это часть решения. Обычно в этом случае нуно сорать необходимую статистику. Есть куча софта, который это умеет делать, но пинг есть всегда под рукой.
    Для этой тулзы есть две полезных опции: ключ для бесконечного пинга и размер пакета.
    В разных ОС эти ключи немного разные, поэтому ищите их отдельно, у меня нет винды под рукой, поэтому не стану на этом заострять.
    Скаж лишь, что пинговать лучше большими пакетами, жалетально превышающими размер TTL, прописанный в роутере. Тогда такой пинг будет реже проскакивать в периоды хорошей связи, то есть выловит больше пролблем.
    Пинговать нужно в отдельных окнах сразу несколько хостов:
    - ya.ru - этот хост всегда отвечает на пинги и выявит проблемы с DNS
    - 8.8.8.8 - это гугловый DNS-сервер, тоже всегда отвечает на пинги, покажет, что связь с инетом есть даже если DNS, прописанныйна компе не правильно работает.
    - 192.168.0.1 - или какой там IP у вашего роутера. Нужно. чтбы отделить проблемы с инетом от проблем с внутренней связностью до роутера
    - 192.168.0.x - ip одного из компов в сети. Я обычно пингую несколько компов, доступных через баксимальное число потенциально проблемных узлов - ethernet-розеток, свичей, вайфай-соединений... Этот пинг поможет понять где проблема, во внутрисетевой связности или в последней миле.

    Учтите, что проблемы часто бывают комбинированные и каждое сочетание симптомов будет свидетельствовать о раных проблемах.
    Да, тревожным принаком может служить не только пропадание пакетов, но и скачки в длительности их возврата, особенно если такие длительности достигают 500мс и выше. Но и скачки от 3мс до 250мс тоже будут свидетельствовать о каких-то проблемах.

    Запускать пинг на всех компах лучше одновременно и на некоторое время. Например минут на 20. Потом по статистике будет видно сколько где пакетов пропало.

    2. Если критерии наличия проблемы позволяют, то можно попробовать отрубать части сети и смотреть наличие проблемы. Это я в том смысле, что если проблема происходит в среднем раз в пару-тройку часов, то отрубать на многие часы части сети при диагностикем ожет быть неприемлемым.
    Редкеи пробемы дольше отлавливать. Но напоминаю, что критерии можно детализировать, ведь если пакеты у вас пропадат относительно редко, то скачки времени их возврата могут случаться чаще и подсвечивать проблему. Также можно сделать рамер пакета близким к максимальному, это должно тоже в некоторых случаях участить проявление проблемы.
    Иногда не мешает нагрузить сеть комированием по локалке большого файла. В линуксе можнно с помощью утилиты tc послать большой поток рандомных байт на любой сокет..
    3. Плавающие проблемы случаются из-за плохого обжима, перебитого жверью кабеля, перегрызенного UTP в плинтусе, из-за умиращих конденсаторов в блоке питания роутера (БП может не выдавать необходимого при нагрузках тока, но вольтметром такая неисправность не будет различима без нагрузки). Вообще старые (да и не только) роутеры могут страдать поплывшими электролитическими конденсаторами не только в блоках питания.
    Хорошо, когда можно подменить роутер.
    4. ну с четвертым пунктом ничего не пососветуешь, только разделать и тестировать все по отедльности и в разных сочетания и да поможет нам ктулху.

    А для тех, кто дочитал этот опус до конйа - интересная задачка. Что пингуют эти команды, как и почему?
    ping 1.1
    ping 2130706433

    Тех, кто знает, попрошу не спойлерить=)
    Пусть для кого-то будет сюрпризом этот дивный мир=)

    UPD. Простите за адское количество опечаток в тексте. Писал в спешке и с непривычной клавиатуры. Исправлю всё попозже. Не ожидал, что многим ответ придётся по душе. Вроде ж накапитанил как мог.
    Ответ написан
    5 комментариев
  • Как получить ссылку на гугл таблицу?

    oshliaer
    @oshliaer Куратор тега Google Apps Script
    Google Products Expert
    Эту операция можно произвести только программным способом. Причем, помимо самой формулы можно еще и нажать на кнопку открытия доступа для IMPORTRANGE.

    К сожалению, ваш вопрос недостаточно предметный, чтобы ответить на него более точно.
    Ответ написан
    2 комментария
  • Анимация placeholder?

    Dr_Elvis
    @Dr_Elvis
    В гугле забанен
    Обычный эффект печатной машинки, только примененный к placeholder
    Ответ написан
    2 комментария
  • Как сделать вертикальный отступ между строками в bootstrap?

    iiiBird
    @iiiBird Куратор тега CSS
    Пока ты спишь - твой конкурент совершенствуется
    самому ток задавать. и при этом не трогай классы бутсрапа. оберни row к примеру во что нибудь и им задай.
    <div class="container">
      <div class="lines">
      <div class="row">
        <div class="col-xs-3">3 колонки</div>
        <div class="col-xs-5 col-xs-offset-1">5 колонок</div>
        <div class="col-xs-2 col-xs-offset-1">2 колонки</div>
      </div>
      </div>
      <div class="lines">
      <div class="row">
        <div class="col-xs-3">3 колонки</div>
        <div class="col-xs-5 col-xs-offset-1">5 колонок</div>
        <div class="col-xs-2 col-xs-offset-1">2 колонки</div>
      </div>
    </div>
    </div>

    .lines {margin-bottom: 30px;}
    Ответ написан
    2 комментария
  • Как понять есть ли в схеме запрограммированное устаревание?

    15432
    @15432
    Системный программист ^_^
    В простой схеме вы вряд ли найдете "слабые места", потому что они в другом месте. А именно, перегрузка светодиодов по току (для большей яркости), отсутствие нормального охлаждения (для уменьшения габаритов и экономии металла), использование самых дешевых светодиодов с низкой цветопередачей и т.д.
    Ответ написан
    2 комментария
  • Как скрыть backend своего сайта?

    @rPman
    В общем случае - никак

    Но можно сделать этот процесс на столько сложным, что смысла в этом уже никакого не будет. С помощью обфускации кода и использовании алгоритмов шифрования данных, передаваемых в браузер (не про https а когда данные, загружаемые браузером и передаваемые в скрипты/данные - зашифрованы). А чтобы конечный скрипт нельзя было вытащить через модификацию браузера (например логировать eval) то можно саму виртуальную машину, исполняющую скрипты, реализовать на js (wasm).

    Есть интересное направление - нейронные сети. В браузере вместо полноценного кода работает нейронная сеть, обученная выдавать нужный результат. Реверсить логику ее работы невероятно сложно (читай невозможно). Плюс, нейронные сети, в общем случае, потребуют либо хорошего тестирования либо принимать что их поведение в редких ситуациях может быть непредсказуемо.

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

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

    @swe3etch
    var result2 = fruits5.filter(item => item < maxW && item > minW);
    Ответ написан
    2 комментария
  • Как вывести ключ рандомно из объекта?

    @AlexeySmk
    const keys = Object.keys(yourObj);
    
    const randomNumber = Math.floor(Math.random() * keys.length);
    const randomKey = keys[randomNumber];
    const randomValue = yourObj[randomKey];
    
    console.log(randomKey, randomValue)
    Ответ написан
    1 комментарий
  • Написать функцию возвращающую cумму элементов массива?

    function sum(arr) {
      let result = 0;
    
      for (let i = (arr.length - 1); i !== 0; i--) {
        if (arr[i] === 0) return result;
        result += Math.abs(arr[i]);
      }
      return result;
    }
    
    console.log(sum([2.1, 3.1, 4.1, 6.1, 7.1, 9.1, 11.1, 0.0, 2.2, 1.4])); // 3.6
    console.log(sum([2.1, 3.1, 4.1, 6.1, 7.1, 9.1, 11.1, 0.0])); // 0
    Ответ написан
    Комментировать
  • Существуют логические элементы электроники в типовых корпусах?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    https://www.155la3.ru/

    А оно вам надо?
    Возьмите плисину и сгенерируйте схему, выйдет дешевле
    Ответ написан
  • Работа с объектом и массивом?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    for (let key in objectEmployee) {
    что будет в key?

    objectEmployee.key['age']
    есть ли у objectEmployee свойство key? (нет)

    spoiler
    const filters = {
      age: v => v >= 25,
      education: v => v === 'higher',
      experience: v => v >= 1,
    };
    
    const employee = {};
    const defaultDescriptor = { writable: true, enumerable: true, configurable: true };
    Object.defineProperties(employee, {
      name: { ...defaultDescriptor, value: 'Dmitriy', writable: false },
      age: { ...defaultDescriptor, value: 21 },
      education: { ...defaultDescriptor, value: 'higher' },
      experience: { ...defaultDescriptor, value: 0 },
    });
    
    const hireNewEmployee = (employee, filters) => {
      const errors = [];
      Object.entries(filters).forEach(([name, func]) => {
        if (!func(employee[name])) {
          errors.push(name);
        }
      });
    
      return errors.length
        ? `Not hired: sorry we cannot hire you. Here is why: ${errors.join(', ')}`
        : 'You are Hired! Congrats!';
    };
    
    hireNewEmployee(employee, filters);
    // "Not hired: sorry we cannot hire you. Here is why: age, experience"
    Ответ написан
  • Как расширить список поддерживаемых единиц путём задавания правил конвертации с помощью JSON файла?

    mayton2019
    @mayton2019
    Bigdata Engineer
    const converter = {
      "m":{
        "cm":{k:0.01	},
        "in":{k:0.254	},
        "ft":{k:0.3048	},
      },


    Тут можно улучшить. Если посмотреть на этот JSON документ с "прищуром". То можно увидеть
    полносвязный граф. Например узел футов ("ft") имеет свое ребро в направлении дюймов ("in").
    И все другие также.

    Нужно ли нам описывать так много цифр? Я-бы предложил одну таблицу. Все меры длины отобразить на метры.
    Тогда формула перехода ft -> in будет всегда идти через метрическую систему. ft -> m -> in.

    А ребра графа мы все равно сможем получить но уже путем вторичных расчетов если надо.
    Ответ написан
    Комментировать
  • Насколько правильный код?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Ошибка:
    Не правильно, что backBlock.addEventListener добавляется внутри обработчика клика. Т.е. каждый раз, как нажимаем на openBlock, вешается ещё и ещё один обработчик на backBlock. Достаточно один раз, заранее, так же как сейчас openBlock.addEventListener

    Мелочи:
    1. openBlock и backBlock не меняются, их можно вместо let объявить const
    2. внутри обработчиков событий снова и снова искать document.querySelector('.hidden-block') наверное, не имеет смысла, достаточно один раз, заранее
      const hiddenBlock = document.querySelector('.hidden-block');
      и далее обращаться к этой константе hiddenBlock.

    Культура:
    Хорошо бы песочницу на CodePen, где можно вживую проверить работу этого кода. И вставить её в сам вопрос, через кнопку [ + ]
    Ответ написан
    Комментировать
  • Как сменить заблокированную учётную запись?

    3r1k
    @3r1k
    the quieter you become, the more you hear
    Попробуй так:
    1. Загрузись с любого live linux дистрибутива.
    2. Удали в папке "C:\WINDOWS\system32\config" файл SAM (а лучше переиминуй на sambak)
    3. Из папки "C:\WINDOWS\repair" скопируй файл SAM в исходную папку "C:\WINDOWS\system32\config"

    Вобщем нужно файл "sam" заменить резервным.
    Ответ написан
    Комментировать
  • Как сменить заблокированную учётную запись?

    CityCat4
    @CityCat4
    Жил да был черный кот за углом...
    Берется Hiren, пишется на флэшку. Загружается с флэшки редактор паролей (или как он там называется). Сбрасывается пароль. (Редактировать на самом деле он не умеет, но сбросить пароль в нуль - умеет)
    Ответ написан
    1 комментарий
  • Как восстановить удаленные файлы на старых местах?

    @rPman
    Нет, все утилиты восстановления удаленных файлов копируют данные на новый диск. В теории это возможно конечно, но на практике готового софта нет.

    80Тб это значит несколько дисков. В зависимости от того, как на их основе построен архив, можно попробовать по одному диску от архива отсоединять и на него восстаналивать (так не получится если на всех дисках создан один огромный raid массив)

    на время восстановления массив не перезаписывать и вообще ничего с ним не делать, т.е. режим только чтения.
    Ответ написан
    3 комментария
  • Почему Doom портируют куда только можно?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Doom - это была одна из первых игр где была реализована в полной мере техника BSP (Binary-Space-Partition). Это позволяло в реальном времени очень быстро сортировать и рендерить полигоны без привлечения Z-Buffer. (Рендеринг был чисто прогарммный. На то время еще не было ускорителей 3Д графики и видеокарточка умела только отображать память на экран. ) Игра не была по настоящему трехмерной. А только рализовывала 1 этаж. Рендерить надо было только пол и потолок. Для каждой точки где стоял персонаж. И наклонных горизонтальных поверхностей в ней не было как раз по этой причине. Ее называли 2.5-мерной игрой. Было также много идей оптимизации вычислений. Например вместо вещественных чисел - целые 32х битные с fixed point.

    В скобках замечу что это был 1993 год и на дворе было царство Intel 286/386. Это были машины с тактовой частотой меньше ваших телефонов (Pentium только только релизнулся и еще ни у кого не был). И трехмерный Doom был прорывом. На моем тогда еще 386SX от подтормаживал но играть было можно. И со звуком для SoundBlaster. И конечно это было лучше чем Wolfenstein.

    Аналогичное было реализовано в Duke Nukem 3d. Но Дюк был менее популярен ИМХО. Были и масса других 3д игр в жанке RPG но они были не такие динамичные. Походовые в основном.

    Вобщем сегодня если вы гейм-дев то вам желательно хотя-бы ознакомиться с техниками оптимизации которые были в Doom. Можно почитать и про Quake но это просто развитие идеи BSP деревьев для полного 3D с 5 или 6 степенями свободы. Еще можно почитать про реализацию игры Esctatica. Там не на полигонах а на шариках или эллипсах реализована игровая графика. Тоже интересно.

    UPD: Заменил MMORPG на RPG.
    Ответ написан
    6 комментариев