Задать вопрос
  • Почему дрожит содержимое при измении размера окна браузера?

    По сути может быть только один вариант. Если на тексте установлена анимация через transition и из-за изменения экрана срабатывает breakpoint через media запрос для регулировки стилей на разных экранах с уменьшением или увеличением текста, но в данном случае в зависимости от экрана мы немного меняет размер текста "font-size: calc(16px + 6 * (100vw / 1280))" так скажем динамически и это пересчитывается на каждое изменение ширины экрана, почему просто не сделать статические размеры для разных экранов?
    Ответ написан
    1 комментарий
  • Как выключить докер на макос?

    @tichoblinii
    Cmd (⌘) + Space
    Spotlight.
    >>"Терминал" + Enter.
    osascript -e 'quit app "Docker"'
    Ответ написан
    Комментировать
  • Как победить клавиатуру Apple с клавишами Home, End, Page up, Page down?

    modelair
    @modelair
    unsocial
    это в винде они так работают, у яблочных несколько другие взгляды на этот счет.


    /Library/KeyBindings/DefaultKeyBinding.dict
    {  
    "\UF729" = "moveToBeginningOfLine:"; 
    "\UF72B" = "moveToEndOfLine:"; 
    "$\UF729" = moveToBeginningOfLineAndModifySelection:; // shift-home 
    "$\UF72B" = moveToEndOfLineAndModifySelection:; // shift-end 
    "^\UF729" = moveToBeginningOfDocument:; // ctrl-home 
    "^\UF72B" = moveToEndOfDocument:; // ctrl-end 
    "^$\UF729" = moveToBeginningOfDocumentAndModifySelection:; // ctrl-shift-home 
    "^$\UF72B" = moveToEndOfDocumentAndModifySelection:; // ctrl-shift-end  
    }

    на el capitan не проверял
    Ответ написан
    Комментировать
  • Как правильно настроить Mikrotik Cube 60 Pro?

    @Drno
    Берете стоимость часа своего времени и умножаете...
    Ответ написан
    2 комментария
  • Выбор VPN протокола для сервера на Mikrotik, какой наиболее производительный?

    b1ora
    @b1ora Куратор тега MikroTik
    Контакты в профиле
    MikroTik умеет IPsec аппаратно, а новые модели ещё и SSTP аппаратно

    По этому менять железку, например на RB5009
    Ответ написан
    6 комментариев
  • Тормозят все браузеры но при включение впн или amneziaWG грузится нормально?

    @rPman
    Когда я пытаюсь открыть какую либо новую вкладку с сайтом она грузится примерно секунд 3-5 а потом сайт функционирует нормально и когда я его закрываю а потом открываю он грузится нормально.

    скорее всего косяки с настройками dns (указан неправильный или точнее сбойный), при подключении к vpn, обычно автоматически настраивается уже его dns сервер, а затем возвращается назад.

    Что бы удостовериться, нужно открыть консоль разработчика браузера (F12), зайти на вкладку Сеть и зайти на сайт который должен глючить, в списке подключений выбрать самое первое (или то что долго по времени грузится) и посмотреть внизу вкладку - тайминги, тот что самый долгий и покажет кто виновен
    Ответ написан
    4 комментария
  • Задача на DOSBOX. Почему код выполняется неправильно?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Прочитайте, чем отличается imul cx,bx в вашем вопросе от imil cx на вашей картинке.
    Ответ написан
    3 комментария
  • Почему зависает v2raya на OpenWRT?

    @Drno
    Насчет v2ray не подскажу, но sing-box консольный, в режиме TUN работает отлично...
    правда список сайтов для него указывать чуть посложнее

    Попробуйте режим Tproxy сменить на режим TUN
    Ответ написан
    2 комментария
  • Должны ли совпадать MAC и Radio MAC?

    b1ora
    @b1ora Куратор тега MikroTik
    Контакты в профиле
    Созданные динамически - да. У Мастера MAC Address равен Radio Mac, у вложенных - стоит 00:00:00:00:00:00

    Если созданы вручную - могли исправить Radio Mac
    Ответ написан
    4 комментария
  • Почему запускается скрипт Powershell?

    @Verriant Автор вопроса
    Решение найдено. Я писал скрипты в блокноте, а потом просто менял расширение на *ps1. Надо было код скрипта скопировать в Powershell ISE и оттуда уже сохранить как файл *ps1. Тогда все работает.
    Запуск скриптов был включен изначально.
    Ответ написан
  • Возможно ли добавить дополнительную авторизацию перед доступом к веб-серверу?

    ValdikSS
    @ValdikSS
    Вы можете настроить перенаправление порта, только если запрос пришел с определённого IP-адреса/диапазона.
    Ответ написан
    Комментировать
  • Как работает смена разрешения на MacBook air?

    xez
    @xez
    TL Junior Roo
    В маках это типа «изменение разрешения»
    Так оно и работает.
    Think different)
    Ответ написан
    Комментировать
  • Как вывести путь к файлу дубликату?

    @MaxKozlov Куратор тега PowerShell
    Если вам надо их найти - это одна задача, если синхронизировать - другая
    в целом можно и без powershell обойтись, если синхонизация в одну сторону - robocopy

    Если же просто найти и powershell, то для каждой из папок
    $list = get-childItem $Path -recurse | select-object -expandproperty fullname

    и потом отрезать от имён $Path и сравнить как тут
    Как найти и вывести повторяющиеся строки в текстовом файле?
    Ответ написан
    Комментировать
  • Почему RouterOS на VirtualBox не получает ip-адрес?

    nops
    @nops
    Системный инженер.
    нужно включить dhcp-client на роутерос
    /ip/dhcp-client/add interface=ether1
    Или подключитесь через инбокс по маку и добавляет клиента dhcp через интерфейс
    Ответ написан
  • Почему даже после отключения SIP не получается удалить файлы на macOS?

    BjLomax
    @BjLomax
    TV.app входит в базовую поставку OS. А оно целиком read-only, на уровне отдельного раздела APFS.
    Ответ написан
    2 комментария
  • Как я могу создать такую логику?

    @catch-a-chalk
    Привет, стоит ввести еще одну функцию positionMarkerдля такой задачи:

    const items = [
        { name: "100 000", reward: "100000_sr", chance: 5 },
        { name: "VIP (14 дней)", reward: "14_vipsr", chance: 3 },
        { name: "1000 Алмазов", reward: "1000_az", chance: 2 },
        { name: "75 000 ", reward: "75000_sr", chance: 10 },
        { name: "VIP SILVER (7 дней)", reward: "7_sl", chance: 8 },
        { name: "500 Алмазов", reward: "500_az", chance: 7 },
        { name: "1000 Пыли", reward: "1000_ds", chance: 6 },
        { name: "25 000 ", reward: "25000_sr", chance: 15 },
        { name: "200 Алмазов", reward: "200_az", chance: 15 },
        { name: "300 Пыли", reward: "300_ds", chance: 15 },
        { name: "Ускорение (3 lvl)", reward: "3_boost", chance: 10 },
        { name: "Улучшение (3 lvl)", reward: "3_imp", chance: 10 },
        { name: "VIP SILVER (2 дня)", reward: "2_sl", chance: 10 },
        { name: "10 000 ", reward: "10000_sr", chance: 20 },
        { name: "5 000 ", reward: "5000_sr", chance: 20 },
        { name: "100 Алмазов", reward: "100_az", chance: 20 },
        { name: "Ускорение (2 lvl)", reward: "2_boost", chance: 20 }
    ];
    
    const caseContainer = document.getElementById("caseContainer");
    const scrollingItems = document.getElementById("scrollingItems");
    const resultText = document.getElementById("resultText");
    const openCaseButton = document.getElementById("openCaseButton");
    const marker = document.getElementById("marker");
    let populatedItems = []; // Массив для хранения созданных предметов
    let winningIndex = 0; // Индекс выигрышного предмета
    
    function populateItems() {
        for (let i = 0; i < 151; i++) { // Создаем 151 предмет
            const item = items[i % items.length]; // Используем элементы из массива
            const div = document.createElement("div");
            div.className = "item";
            div.innerText = item.name;
            scrollingItems.appendChild(div);
            populatedItems.push(item); // Сохраняем предмет в массив
        }
    }
    
    function animateScroll(duration) {
        const itemWidth = scrollingItems.children[0].offsetWidth; // Ширина одного предмета
        const totalItems = scrollingItems.children.length;
    
        // Позиция, на которую нужно прокрутить, чтобы выигрышный элемент оказался под стрелкой
        const targetPosition = (winningIndex * itemWidth) - (caseContainer.offsetWidth / 2) + (itemWidth / 2); // Центрируем выигрышный элемент
        const scrollWidth = totalItems * itemWidth; // Общая ширина прокрутки
        const startTime = performance.now();
    
        function scrollAnimation(currentTime) {
            const elapsedTime = currentTime - startTime;
            const progress = Math.min(elapsedTime / duration, 1);
            const easeInOutQuad = (t) => t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;
    
            const easeProgress = easeInOutQuad(progress);
            const currentPosition = -scrollWidth * easeProgress + targetPosition; // Прокручиваем к целевой позиции
            scrollingItems.style.marginLeft = `${currentPosition}px`;
    
            if (progress < 1) {
                requestAnimationFrame(scrollAnimation);
            } else {
                // После завершения анимации, показываем выигрышный элемент
                showWinningItem(); // Показываем выигрышный элемент
                positionMarker(); // Позиционируем маркер над выигрышным элементом
            }
        }
    
        requestAnimationFrame(scrollAnimation);
    }
    
    function showWinningItem() {
        const winningItem = populatedItems[winningIndex]; // Получаем выигрышный предмет
        resultText.innerText = `Вы выиграли: ${winningItem.name}`;
    
        // Изменяем текст выигрышного предмета в scrollingItems
        const winningElement = scrollingItems.children[winningIndex];
        winningElement.classList.add("winning-item"); // Добавляем класс для стилей
        winningElement.innerText = winningItem.name; // Обновляем текст
    }
    
    function positionMarker() {
        // Ширина одного предмета
        const itemWidth = scrollingItems.children[0].offsetWidth; 
        // Центрируем маркер над выигрышным элементом
        const markerPosition = (winningIndex * itemWidth) - (caseContainer.offsetWidth / 2) + (itemWidth / 2); 
        // Устанавливаем позицию маркера
        marker.style.left = `${markerPosition}px`; 
    }
    
    openCaseButton.addEventListener("click", () => {
        // Очищаем текст результата
        resultText.innerText = ""; 
        // Очищаем массив предметов
        populatedItems = []; 
        // Очищаем элементы прокрутки
        scrollingItems.innerHTML = ""; 
        // Заполняем предметами при загрузке страницы
        populateItems(); 
    
        // Выбираем случайный индекс выигрышного предмета
        // Случайный индекс в пределах массива items
        winningIndex = Math.floor(Math.random() * populatedItems.length);
        // Запускаем анимацию прокрутки (уменьшено время)
        animateScroll(2000); 
    });


    И ее же добавляем в анимацию скролла.
    Ответ написан
    Комментировать
  • Есть такой сервис для Blender?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Для этого не нужны особенные стоки. Почитайте, посмотрите туториалы, про анимацию в Блендере, что-нибудь простенькое можно срендерить уже после нескольких часов обучения.
    А если отвлечься от Блендера, то для этой задачи (создания видеозаставок), в Microsoft Clipchamp есть шаблоны, в том числе и бесплатные.
    Ответ написан
    Комментировать
  • Как убрать лишний вывод в консоль?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Регулировать вывод команд можно через коммандлеты Out-* , используя их через пайп
    Например в вашем случае
    $computer_sys.Put() | out-null

    P.S. спасибо за исправление, ранее в ответе был пример с присвоением, для которого этот out-null не нужен, по причинам указанным в комментарии. Надо, блин, проверять что копипащу )
    Ответ написан
    1 комментарий
  • Как подключить 4G модем к Wi-Fi роутеру так, чтобы интернет не падал каждые несколько часов?

    pindschik
    @pindschik
    ФЫВА ОЛДЖ
    USB-"свистки" часто нестабильны, при чем одна и та же комбинация может работать в одном месте и не работать в другом. Очень часто им кратковременно не хватает питания на порту роутера, после чего впадают в состояние "он лежит и еле дышит, ручкой-ножкой не колышит".
    Существенно лучше и гораздо стабильнее работает, если использовать внешний модем, подключающийся по витой паре во входной порт роутера, и питающийся через PoE (и заодно можно выносить его туда, где лучше приём). Рекламировать конкретные модели не буду, обратитесь в "секту свидетелей микротика" (там будет относительно сложная настройка, а срок работы в суровых условиях... ну как повезет, хотя на авито полно рабочих модулей модемов для них). В этом варианте можно достать 4G даже до базовой станции, расположенной в 10 км за лесом.

    Еще вариант - поменять роутер на модель с прямой поддержкой SIM-карт, с ними как правило, тоже минимум проблем.
    Ответ написан
    Комментировать
  • OpenWRT- обращаться к устройствам подсети?

    ValdikSS
    @ValdikSS
    Вам либо нужно настроить роутер-шлюз на маршрутизацию нужных вам VPN-подсетей через шлюз-VPN (тогда сам роутер-шлюз будет правильно маршрутизировать трафик внутрь VPN), либо в настройках DHCP-сервера локальной сети указать опцию 121 Classless Static Route, с указанием подсети VPN и адресом роутера VPN, чтобы клиенты знали о наличии VPN-шлюза в сети и сами маршрутизировали трафик на него.

    Первое настраивается статическими правилами маршрутизации в самом роутере, второе настраивается опциями DHCP-сервера локальной сети. Настройка DHCP предпочтительней в плане скорости и нагрузки на роутер-шлюз.
    Ответ написан
    Комментировать