startx
. Если нет - то смотрите мануал вашего дистрибутива. При условии, что окружение установлено. Если нет - то следует его установить. Вариантов - куча, найти в гугле - не проблема. Рекомендую легковесный xfce. А для упрощения работы с виртуалками рекомендую использовать VirtualBox как наиболее дружественный для простых пользователей инструмент, а так же обладающий кучей нужных фич. docker build:
script: docker build -t my-image:$CI_COMMIT_REF_SLUG .
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- Dockerfile
when: manual
allow_failure: true
docker build alternative:
variables:
DOCKERFILES_DIR: 'path/to/dockerfiles'
script: docker build -t my-image:$CI_COMMIT_REF_SLUG .
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- $DOCKERFILES_DIR/**/*
клиенты [n] -> балансер -> сервера [m]
. Лимит портов в 65к достаточно просто преодолевается путем добавления дополнительных сетевых адаптеров/каналов.Линия напряжения
+12В +5В +3.3В +5VSB -12В
Диапазон отклонений
± 5% (± 0.6В) ± 5%(± 0.25В) ± 5%(± 0.165В) ± 5%(± 0.25В) ± 10%(± 1.2В)
Минимальное напряжение
11.4В 4.75В 3.135В 4.75В 10.8В
Максимальное напряжение
12.6В 5.25В 3.665В 5.25В 13.2В
// ==UserScript==
// @name Исправление текста
// @namespace http://tampermonkey.net/
// @version 2024-10-22
// @description Заменяет все английские буквы во всех текстах на русские
// @author VoidVolker
// @match https://24forcare.com/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=24forcare.com
// @grant none
// ==/UserScript==
;(function () {
'use strict'
$(function () {
console.log('Скрипт запущен в работу...')
// Английские символы
let en = 'ABCEHKMOPTXYabcehkmoptxy'
// Русские символы
let rus = 'АВСЕНКМОРТХУавсенкмортху'
// Таблица замены en -> ru
let map = {}
en.split('').forEach((char, i) => (map[char] = rus[i]))
// Счетчик замен
let charsCounter = 0
let nodesCounter = 0
// Нормализовать текст
// В идеале следовало бы извлечь из текста слова
// И уже в словах проверять наличие разных символов
function normalizeEn2Rus(str) {
// Конвертируем строку в массив
let arr = str.split('')
// И проходим по всем символам в массиве
for (let i in arr) {
// Получаем символ
let char = arr[i]
// Если символ найден - заменяем его, если нет - оставляем оригинальный
arr[i] = map[char] ?? char
charsCounter++
}
// Конвертируем массив в строку и возвращаем результат
return arr.join('')
}
// Получаем список всех элементов на странице
let items = $('*', document.body)
// Проходим по всем элементам
items.each((i, item) => {
// Исключаем ссылки, скрипты и стили из поиска
if (item.nodeName === 'A' || item.nodeName === 'SCRIPT' || item.nodeName === 'STYLE') { return }
// Получаем список детей у элемента
Array.from(item.childNodes)
// Фильтруем только текстовые элементы и те, в которых есть текст
.filter((el) => el.nodeType == Node.TEXT_NODE && el.textContent?.length > 0)
.forEach((el) => {
// Нормализуем текст элемента
el.textContent = normalizeEn2Rus(el.textContent)
console.log(el.textContent)
nodesCounter++
})
})
console.log(`Скрипт завершил работу успешно. Всего заменено символов [${charsCounter}] в [${nodesCounter}] текстовых элементах.`)
})
})()