Задать вопрос
  • Как вычислить виновника из-за которого отваливается интернет с какой-то периодичностью в маленькой сети?

    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 комментариев
  • Как Кинопоиск делает черный квадрат в захвате экрана?

    DMGarikk
    @DMGarikk
    Lead Software Developer
    Тут прям все теории заговора придумали с DRM (хотя доля истины в этом тоже есть)

    но никому не приходило в голову что видео в некоторых форматах через оверлей отображается, который не попадает в скриншоты и в захват экрана тупо потому что через отдельный механизм видеоподсистемы компа на экране отображается? (и не для целей drm, а просто потому что так устроено)
    Я такие удивленные вопросы еще лет 15 на форумах читал, когда drm-ом еще и не пахло (массово), а mpeg-ускорители уже во всех практически видеокартах были

    в линуксе это работает в т.ч. потому что там видеоподсистема по другому работает и велика вероятность что ускорение видео тупо не функционирует
    Ответ написан
    Комментировать
  • SVG Анимация, как установить z-index?

    RAX7
    @RAX7
    В svg нет z-index, как и многих других свойств, потому что это css свойства. Элементы рисуюся в том порядке, в котором они находятся в DOM.
    Как сделать тень смотри тут:
    https://developer.mozilla.org/en-US/docs/Web/SVG/E...
    https://www.w3schools.com/graphics/svg_feoffset.asp
    Ответ написан
    Комментировать
  • Как создать HTML элемент с нестандартными атрибутами с помощью JS?

    black1277
    @black1277
    Вольный стрелок
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Title</title>
    </head>
    <body>
    
    <script>
      const url = "//assets.pinterest.com/js/pinit.js"
      const newScript = document.createElement("script")
      newScript.setAttribute("async", "true")
      newScript.setAttribute("defer", "true")
      newScript.dataset.pinHover = "true"
      newScript.dataset.pinTall = "true"
      document.head.appendChild(newScript)
      newScript.src = url
    </script>
    </body>
    </html>

    А в чем сложность была?
    Ответ написан
    Комментировать
  • Как убрать крашнутые картинки?

    @GrayHorse
    Используй onerror у img элемента.

    <img src="not-loading-image.jpg" onerror="this.remove();">
    <img src="https://hsto.org/webt/62/a8/df/62a8df7d29053796257182.png" onload="console.log(this);">
    Ответ написан
    1 комментарий
  • Как сделать круговое расположение букв в словах?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Библиотека CircleType (демо)
    Ответ написан
    Комментировать
  • Какие есть толковые курсы по Android разработке на Kotlin?

    @kimstik
    Когда начинал учиться искал хорошую онлайн школу, но отзывы у всех были мягко говоря не очень. В итоге нашел репетитора (middle dev) на profi.ru, через год после начала обучения устроился с уровнем jun+.
    Я бы лично посоветовал бы найти человека который уже работает по специальности которую ты хочешь и перенимать его опыт, естественно не бесплатно.
    Ответ написан
    Комментировать
  • Как обновлять данные без перезагрузки страницы?

    zkrvndm
    @zkrvndm
    Архитектор решений
    Пример функции для выборочного обновления контента:
    async function elementUpdate(selector) {
    	try {
    		var html = await (await fetch(location.href)).text();
    		var newdoc = new DOMParser().parseFromString(html, 'text/html');
    		document.querySelector(selector).outerHTML = newdoc.querySelector(selector).outerHTML;
    		console.log('Элемент '+selector+' был успешно обновлен');
    		return true;
    	} catch(err) {
    		console.log('При обновлении элемента '+selector+' произошла ошибка:');
    		console.error(err);
    		return false;
    	}
    }

    Вызывайте функцию elementUpdate() передав внутрь него CSS-селектор того элемента, который вы хотите обновить.

    Например, если хотите обновить div-блок который имеет класс test, то достаточно выполнить:
    elementUpdate('.test');

    Если хотите выполнять обновление каждую секунду, можно использовать цикл:
    // Запускаем функцию autoUpdate по готовности страницы:
    
    document.addEventListener('DOMContentLoaded', autoUpdate);
    
    // Функция для запуска цикла:
    
    async function autoUpdate() {
    	
    	// Бесконечный цикл:
    	
    	while (true) {
    		
    		// Обновляем блок .test:
    		await elementUpdate('.test');
    		
    		// Выжидаем 1000 миллисекунд перед повторением цикла:
    		await new Promise(function(s) { setTimeout(s, 1000); });
    		
    	}
    	
    }
    
    // Функция для обновления контента:
    
    async function elementUpdate(selector) {
    	try {
    		var html = await (await fetch(location.href)).text();
    		var newdoc = new DOMParser().parseFromString(html, 'text/html');
    		document.querySelector(selector).outerHTML = newdoc.querySelector(selector).outerHTML;
    		console.log('Элемент '+selector+' был успешно обновлен.');
    		return true;
    	} catch(err) {
    		console.error('При обновлении элемента '+selector+' произошла ошибка:', err);
    		return false;
    	}
    }
    Ответ написан
    2 комментария
  • Как сделать динамическое обновление контекта, запрашиваемого через JSON?

    Keenest
    @Keenest
    Решил с помощью setTimeout и рекурсии функции, которая делает getJSON.

    Рекурсия-то там зачем?..

    Интересует как осуществить это правильней? И как похожие вещи сделаны в том же ВКонтакте (получение сообщений, комментарии), GMail и так далее?

    Как правильно уже сказали, лучше через websocket.
    Вот например была статья хорошая: habrahabr.ru/post/127525/
    Ответ написан
    Комментировать
  • Как правильно вставлять большие изображения на страницу?

    @bubn0ff
    it-шник
    img {
        max-width: 100%;
        height: auto;
        object-fit: cover;
    }
    Ответ написан
    Комментировать
  • Как правильно вставлять большие изображения на страницу?

    AntonLitvinenko
    @AntonLitvinenko
    HTML coder
    cracker-test, глобально пишем такие стили
    img {
    	max-width: 100%;
    	height: auto;
    }

    если картинка меньше контейнера а нужно растянуть на всю ширину, то можно добавить картинке класс
    img.full-width {
    	width: 100%;
    }
    Ответ написан
    Комментировать
  • Существует ли система управления софтом для Android?

    elchako
    @elchako Автор вопроса
    Python разработчик
    Пожалуй отвечу на свой вопрос ссылкой
    https://h-mdm.com/ru/home/
    Ответ написан
    Комментировать
  • Что произошло с дизайном веба — почему стали такие большие разрешения для мобильных устройств?

    @deliro
    1. Доля мобильного трафика достигает 80-90% на большинстве ресурсов
    2. Минимальное десктопное разрешение, которое есть у 99% десктопных юзеров — 1366х768 (самые дешёвые 15.6 дюймов ноутбуки, которым уже 10 лет от роду. Я не шучу, с таким разрешением я первый ноут купил в 2010. А в 2009 на ПК уже был моник 1440х900). При этом самое частовстречаемое — Full HD (1920x1080). Всё что ниже — таблетки

    Отсюда вытекает вопрос: а зачем ради полутора землекопов сжигать деньги кастомеров/инвесторов, разрабатывая им отдельный интерфейс, если они и мобильной версией могут пользоваться, т.к. сейчас они полнофункциональные? Либо, если не разрабатывать отдельный, то зачем проектировать интерфейсы, ориентируясь на тех 1.5 землекопов, заставляя страдать (условно) остальные 99%?

    Более того, эти 1.5 землекопа обычно оказываются неплатёжеспособной аудиторией (раз уж у них до сих пор монитор/ноут старше 10 лет).
    Ответ написан
    6 комментариев
  • Что произошло с дизайном веба — почему стали такие большие разрешения для мобильных устройств?

    pavelsha
    @pavelsha
    Кот Жрëдингера. Только добрый.
    Дизайнеры и верстальщики работают на понтовых мониторах 27+ с высокими разрешениями
    Руководство, которое принимает их работы сидит за такими же мониторами или на мобильных устройствах с Retina-дисплеями ;-)
    Если дизайнер и верстальщик работают в офисе, то так и надо "дизайн у некоторых сайтов делают настолько крупным, чтобы его с 10 метров было видно на мониторе". ПРОДАКТ--гОВНЕР идет по опенспейсу, сразу видит что работа идет в нужном ключе и на душе у него благостно.

    Исследования целевой аудитории и их устройств также проводятся для галочки.

    А результат ты описал выше.

    Экономия трафика??? Обработать, сжать/оптимизировать графические элементы перед публикацией? Зачем??
    Везде 5Джи и Wifi 6.
    Ответ написан
    Комментировать
  • Как анимировать svg?

    PhoenixX33i
    @PhoenixX33i
    Думаю, ЭТО должно Вам помочь.
    Всего доброго :)
    Ответ написан
    Комментировать
  • Правильная локализация в Modx при работе с множественными числами?

    @Tiamorphis
    В репозитории есть пакет Units - аккурат то, что нужно в таком случае.
    Ответ написан
    1 комментарий
  • Как валидировать форму на чистом css при помощи псевдоклассов invalid и placeholder-shown?

    profesor08
    @profesor08 Куратор тега CSS
    Ответ написан
    Комментировать
  • Как анимировать linearGradient в svg при hover?

    RAX7
    @RAX7
    Либо использовать js

    либо smil https://css-live.ru/articles/rukovodstvo-po-svg-an...
    Ответ написан
    Комментировать