Как вы понижаете версии программ?
Неважно какой дистрибутив, интересно знать ваши решения сей проблемы)
Неважно какой дистрибутив, интересно знать ваши решения сей проблемы)
Товарищ тут замучал ChatGPT и другие нейронки, но они ничего внятного не дают. Нужно коллективное бесознательное ЛОРа.
* * *
Короч ищу рассказ/повесть/роман из журнала Техника-Молодёжи. Или похожего. Сюжет там типично Крапивинский.
Там дети нашли летающую тарелку на окраине деревни. Вроде даже невидимую. Ну или это они потом научились ее невидимой делать. Внутри, по моему, гравитация отсутствовала. А попадали они в нее подлазия снизу через какую-то мембрану.
Ну и детвора начала на ней летать, делать добрые дела. Или может просто дурачиться. Это не помню. Но от взрослых факт нахождения тарелки скрывали.
И есть параллельная линия, где на орбите находится какая-то космическая станция, чи лаборатория. И там чуваки то ли с черными дырами эксперементируют. То ли с телепортацией. И вот у них происходило странное. Из воздуха появлялась какая-то черная пыль. И даже вроде пока один из чуваков спал насыпалась на него. По составу оказалось просто какое-то черное стекло.
Кто-то помнит такую книгу?
У меня в локалке лежат допиленные террайорм-провайдеры по пути следующего формата:
https://nexus-host/repository/raw/<project>/terraform/providers/<provider_codename>/<provider_version>/<files_of_repository>
Соответственно <files_of_repository>
darwin_arm64.zip
index.json
linux_amd64.zip
linux_arm64.zip
terraform-provider-<provider_codename>_0.0.35_SHA256SUMS
windows_amd64.zip
0.0.35.json
Как прописать terraform.rc и main.tf, чтобы terraform находил пакеты в локальном репозитории?
Сейчас они имуют следующий вид:
> cat ~/.terraformrc
provider_installation {
network_mirror {
url = "https://nexus-host/repository/raw/<project>/terraform/providers/"
include = ["nexus-host/*/*"]
}
direct {
exclude = ["nexus-host/*/*"]
}
}
и
> cat ./main.tf
terraform {
required_version = ">= 1.5.0"
required_providers {
<provider_codename> = {
source = "nexus-host/<project>/<provider_codename>"
version = "0.0.35"
}
}
}
Ошибку ловлю такую:
│ Error: Failed to query available provider packages
│
│ Could not retrieve the list of available versions for provider nexus-host/<project>/<provider_codename>: provider nexus-host/<project>/<provider_codename> was not found in any of the search locations
│
│ - provider mirror at https://nexus-host/repository/raw/<project>/terraform/providers/
Допустим, имеется на локалхосте или виртуалке коллекция видеофайлов. Я хочу сделать её доступной для себя из любого места и, главное, чтобы, как на Youtube, можно было начать смотреть на одном устройстве, а потом открыть на другом, и чтобы воспроизведение началось с того же места, что и прекратилось на первом устройстве.
Есть ли какое готовое решение для этой задачи?
Если есть знатоки таури, скажите мне про вот такую ересь:
[Error] MediaManager connection failed: – UnsupportedError: device not supported
UnsupportedError: device not supported
(anonymous function) (logger.js:55)
connect (MediaManager.js:23)
connect (MediaManager.js:7)
joinRoom (VoiceChatClient.js:1458)
[Error] Error: Media connection failed: device not supported — MediaManager.js:24
(anonymous function) (logger.js:55)
(anonymous function) (RoomManager.js:468)
Ошибка UnsupportedError: device not supported означает, что браузерный движок (WebView2 на Windows, WebKitGTK на Linux) не разрешает iframe с внешним источником использовать getUserMedia, даже если в CSP прописано media-src mediastream:. Это связано с политикой безопасности: внешний iframe должен иметь атрибут allow="microphone", а также родительское окно должно запросить разрешение и явно разрешить его дочернему фрейму.
И второе:
Проблема в том, что tauri-plugin-media версии 0.1.1 не компилируется на вашей системе из-за несовместимости зависимостей (особенно dbus). Это известная проблема, и плагин пока нестабилен. Вместо борьбы с ним проще использовать отдельное окно Tauri для войс-чата
Что из этого правда и можно ли как то всетаки показать нормально микрофон WebKitGTK? Хоть как то.
Учитываем, что собранный под винду абсолютно тот же проект работает без вые проблем. Что не так с линуксом? Или это не так с таури?
У них идентификация вообще работает когда-нибудь?
В последнее время всё чаще начал глючить официальный клиент Яндекс.Диска для Linux:
https://yandex.ru/support/yandex-360/customers/disk/desktop/linux/ru/installation
Без видимой причины отваливается авторизация. Использую Debian 13 KDE. Насколько я понимаю, проблема в том, что официальный клиент давно не обновлялся и в нём накопились проблемы совместимости.
На обновление официального клиента надежды нет, поэтому ищу альтернативные решения. Что можете порекомендовать?
Требования: все файлы должны быть доступны как онлайн, так и офлайн. Если я работал без сети, то при её появлении изменения должны корректно синхронизироваться без потери данных.
Вариант с монтированием по WebDAV не рассматриваю, так как он не обеспечивает работу офлайн.
@dataman, прошу пояснить за ‘4.2 Вызывающе неверная информация (-7)’ в этом топике: https://www.linux.org.ru/forum/linux-org-ru/18253464
Что именно было «вызывающе неверной информацией»?
Пароль выкладывать принципиально не буду, но уважаемый модераторский состав может сделать это и без выкладываний пароля!
Язабан!
https://habr.com/ru/news/1016846/
https://finance.yahoo.com/sectors/technology/articles/openai-funding-fears-hit-memory-154500748.html
OpenAI ухудшило прогноз окупаемости, снизило расходы (закрыло Sora, отложило расширение дата-центра) и сомневается, выкупать ли всю законтрактованную память (40% мирового производства). DDR5 на Amazon подешевела на четверть.
Операторы связи введут плату за использование VPN-сервисов, а цифровые платформы не будут пускать пользователей, заходящих через средства обхода блокировок. Об этом в субботу попросил представителей бизнеса глава Минцифры Максут Шадаев, сообщили Forbes несколько источников.
Как рассказали Forbes три источника, в субботу, 28 марта, глава Минцифры Максут Шадаев провел два совещания с бизнесом. Максут Шадаев попросил принять меры против использования их клиентами средств обхода блокировок. В частности, операторов связи глава Минцифры попросил ввести плату за использование более 15 Гб международного трафика в месяц на мобильных сетях, сообщил источник Forbes, знакомый с ходом обсуждения. Еще один собеседник Forbes в телекоммуникационной отрасли подтвердил это, добавив, что такая опция должна заработать до 1 мая.
Опередил нашего дорогого мента @unclestephen’a.
Не знаю, может я не туда пишу… Это мой первый пост. В общем вопрос такой: поставил endevaouros titan, но проблема с вай-фаем. Видит все окружающие сети, всей пятиэтажки. Видит мобильные раздачи, но не видит моих. Ни два роутера, ни с телефона. Может кто знает решение?
А как это делают , в смыле как защититься? У знакомой взломали и рассылались просьбы о переводе. Там же типа привязка к номеру.
вообще есть ли такие, и чтобы не требовали node.js, JVM или «сверх продвинутый защищённый стек» на каждом пире ?
задача довольно просто формулируется, но что-то решений не находится: есть произвольное число пиров, у каждого опциональные наборы данных(измерений) {ид,время_utc}=>{данные}. Если для расчётов нужны данные которых своих нет, можно запросить у пиров чтобы закрыть дырку.
централизованно или общее облако не подходит - 1) эталонов по природе нет, у каждого {данные} слегка отличаются. 2) объёмы. время часто, идентификаторов много 3) точка отказа это плохо
// === КОНФИГУРАЦИЯ === var CONFIG = { ACTION_DELAY_BASE: 100, LONG_DELAY: 1500, SCROLL_DELAY: 2000, CHECK_INTERVAL: 30000, STABILITY_DELAY: 2000, BREAK_CYCLE: 25, BREAK_DURATION: 60000, MAX_IDLE_TIME: 120000, ANTICHEAT_LEVEL: ‘EXTREME’, RANDOM_MOVEMENTS: true, JITTER_MOVEMENTS: true, RANDOM_BREAKS: true, HUMAN_VARIATION: 120, COLOR_TOLERANCE: 15, MAX_PURCHASES_PER_HOUR: 45, MIN_PURCHASE_INTERVAL: 45000, ERROR_TOLERANCE: 3, AUTO_RECOVERY: true, ADAPTIVE_SCROLLING: true, ENABLE_DEBUG: true, };
// === КООРДИНАТЫ (Адаптивные) === function getAdaptiveCoordinates() { var w = getScreenWidth(); var h = getScreenHeight(); var sx = w / 720; var sy = h / 1600;
return {
pricePoint: {x: (500 * sx) | 0, y: (1200 * sy) | 0},
buyButton: {x: (500 * sx) | 0, y: (1400 * sy) | 0},
closeButton: {x: (60 * sx) | 0, y: (80 * sy) | 0},
lobbyCheck: {x: (360 * sx) | 0, y: (50 * sy) | 0},
errorCheck: {x: (360 * sx) | 0, y: (900 * sy) | 0},
scrollDown: {x: (360 * sx) | 0, y: (1550 * sy) | 0},
randomArea1: {x: (200 * sx) | 0, y: (800 * sy) | 0},
randomArea2: {x: (400 * sx) | 0, y: (600 * sy) | 0},
};
} var COORDS = getAdaptiveCoordinates();
// === ЦВЕТА === var COLORS = { colorPrice_0_03: [parseInt(«FFFFD700», 16), parseInt(«FFFFD800», 16), parseInt(«FFFFD600», 16), parseInt(«FFFFD900», 16)], colorBuyActive: [parseInt(«FF333333», 16), parseInt(«FF343434», 16), parseInt(«FF323232», 16), parseInt(«FF353535», 16)], };
// === СОСТОЯНИЕ === var STATE = { lastActionTime: Date.now(), isMarketActive: false, cycleCounter: 1, totalPurchases: 0, purchaseTimes: [], lastScrollTime: 0, consecutiveErrors: 0, }; var ADAPTIVE_SETTINGS = { currentDelay: CONFIG.ACTION_DELAY_BASE, };
// === УТИЛИТЫ ===
function getCurrentTime() { return Date.now(); }
function log(msg, lvl) { if (lvl === undefined) lvl = ‘INFO’; if (CONFIG.ENABLE_DEBUG || lvl !== ‘DEBUG’) { log(’[’ + lvl + ’] ’ + msg); // Используем встроенный логгер Perfect Click } }
function isColorMatch(x, y, targets, tol) { tol = tol || CONFIG.COLOR_TOLERANCE; var actual = getPixelColor(x, y); // Функция Perfect Click
if (!Array.isArray(targets)) targets = [targets];
for (var tgt of targets) {
var r_tgt = ((tgt >> 16) & 255);
var g_tgt = ((tgt >> 8) & 255);
var b_tgt = (tgt & 255);
var r_act = ((actual >> 16) & 255);
var g_act = ((actual >> 8) & 255);
var b_act = (actual & 255);
var distance = Math.sqrt(Math.pow(r_tgt - r_act, 2) + Math.pow(g_tgt - g_act, 2) + Math.pow(b_tgt - b_act, 2));
if (distance <= tol) return true;
}
return false;
}
// === ЛОГИКА ===
function simulateHumanCursor() { if (!CONFIG.RANDOM_MOVEMENTS || !CONFIG.JITTER_MOVEMENTS) return; var points = [COORDS.randomArea1, COORDS.randomArea2]; for (var p of points) { setMousePos(p.x, p.y); // setMousePos вместо moveTo for (var j=0; j<2; ++j) { var jitterX = Math.floor(Math.random()*ADAPTIVE_SETTINGS.currentDelay/4 - ADAPTIVE_SETTINGS.currentDelay/8); var jitterY = Math.floor(Math.random()*ADAPTIVE_SETTINGS.currentDelay/4 - ADAPTIVE_SETTINGS.currentDelay/8); moveRel(jitterX, jitterY); sleep(Math.random()*ADAPTIVE_SETTINGS.currentDelay/2|0); } sleep(ADAPTIVE_SETTINGS.currentDelay); } }
function checkMarketState() { STATE.isMarketActive = isColorMatch(COORDS.lobbyCheck.x, COORDS.lobbyCheck.y, COLORS.colorBuyActive); }
function findAndBuy() { // Проверка на ошибку if (isColorMatch(COORDS.errorCheck.x, COORDS.errorCheck.y, COLORS.colorBuyActive)) { STATE.consecutiveErrors++; if (STATE.consecutiveErrors >= CONFIG.ERROR_TOLERANCE && CONFIG.AUTO_RECOVERY) { log(‘Критическая ошибка. Перезапуск.’, ‘ERROR’); sleep(CONFIG.LONG_DELAY); STATE.consecutiveErrors = 0; return false; } log(‘Ошибка интерфейса.’, ‘WARN’); mouseClick(COORDS.closeButton.x, COORDS.closeButton.y); sleep(CONFIG.LONG_DELAY); return false; }
// Проверка цены и кнопки покупки
if (isColorMatch(COORDS.pricePoint.x, COORDS.pricePoint.y, COLORS.colorPrice_0_03)) {
if (isColorMatch(COORDS.buyButton.x, COORDS.buyButton.y, COLORS.colorBuyActive)) {
mouseClick(COORDS.buyButton.x, COORDS.buyButton.y);
STATE.totalPurchases++;
STATE.purchaseTimes.push(getCurrentTime());
log('Покупка #' + STATE.totalPurchases);
sleep(CONFIG.STABILITY_DELAY);
mouseClick(COORDS.closeButton.x, COORDS.closeButton.y);
sleep(CONFIG.ACTION_DELAY_BASE);
return true;
}
}
return false;
}
function scrollIfNeeded() { var now = getCurrentTime(); if (CONFIG.ADAPTIVE_SCROLLING && now - STATE.lastScrollTime > CONFIG.SCROLL_DELAY) { mouseClick(COORDS.scrollDown.x, COORDS.scrollDown.y); STATE.lastScrollTime = now; if (CONFIG.RANDOM_BREAKS && Math.random() < .2) { sleep(Math.random()CONFIG.ACTION_DELAY_BASE2|0); simulateHumanCursor(); } log(‘Прокрутка’, ‘DEBUG’); } }
function takeBreak() { STATE.cycleCounter++; if (STATE.cycleCounter >= CONFIG.BREAK_CYCLE) { log(‘Перерыв’, ‘INFO’); sleep(CONFIG.BREAK_DURATION); STATE.cycleCounter = 1; } var now = getCurrentTime(); STATE.purchaseTimes = STATE.purchaseTimes.filter(t => now - t < 36e5); if (STATE.purchaseTimes.length >= CONFIG.MAX_PURCHASES_PER_HOUR && STATE.purchaseTimes.length > 1) { var oldestIndex = STATE.purchaseTimes.length - CONFIG.MAX_PURCHASES_PER_HOUR; var timeSinceOldest = now - STATE.purchaseTimes[oldestIndex]; var waitTime = CONFIG.MIN_PURCHASE_INTERVAL - timeSinceOldest; if (waitTime > 5) { sleep(waitTime); } } }
// === ГЛАВНЫЙ ЦИКЛ === function mainLoop() { while(true) { try { checkMarketState(); if (!STATE.isMarketActive) { sleep(CONFIG.CHECK_INTERVAL); continue; } scrollIfNeeded(); simulateHumanCursor(); var success = findAndBuy(); takeBreak(); sleep(ADAPTIVE_SETTINGS.currentDelay); STATE.lastActionTime = getCurrentTime(); if (success) STATE.consecutiveErrors = 0; } catch(e) { log(‘Критическая ошибка цикла’, ‘ERROR’); sleep(CONFIG.LONG_DELAY); } } } log(‘Скрипт запущен’, ‘INFO’); mainLoop();
Мартин Уимпресс (Martin Wimpress), основавший проект Ubuntu MATE в 2014 году, объявил о намерении передать руководство новым мейнтейнерам. За 12 лет он провёл редакцию от стартового релиза до статуса официальной редакции Ubuntu, но теперь признаёт, что потерял интерес к проекту и не располагает временем для его развития. Выпуска Ubuntu MATE 26.04 LTS не будет — проект не подал заявку на квалификацию. Уимпресс ищет преемников с опытом поддержки пакетов в архиве Ubuntu.
Копируешь из браузера, тащишь, например, в VSCode – вставляет то, что было в буфере с прошлого раза, или наоборот срабатывает корректно. В пределах одного приложения буфер работает корректно. А вот перенос из одного в другое, хромает.
Так и не понял от чего это зависит.
Помогает копирование по несколько раз, но бесит.
Что предлагают человеки?
user@void **** > git push -u origin master
(тут примерно минут 10 ждал)
Connection closed by 46.23.81.155 port 443
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
userr@void **** >
пинг проходит, ssh рукопожатие тоже, но сразу после рукопожатия все зависает, думал дело у меня в настройке но нет.
Делимся хорошими бесплатными играми в Steam, в которые можно поиграть
Перемещено CrX из talks
Всем привет. Какой модем взять, чтоб завёлся в Lenovo T14 gen. 5 и заработал в РФ?
Ноут серый, поэтому Quectel EM061K-GL, с которым он продавался, сигнал не ловит. Рискнул и купил Quectel EM12G - с ним ноут даже не запустился, пришлось извлекать.
Или посоветуйте умельца (если нужно везти - то Москва), который умеет прошивать модемы (для работы в РФ) и/или современные ноуты.
Антенны в ноуте проведены (2 штуки).
Для !Ъ: Addressing global removal race in Wayland
Для Ъ:
Композитор wayland может добавлять и убирать глобальные объекты налету. Например, таким объектом может быть второй монитор, и при его отключении возникает состояние гонки.
Вопрос к специалистам по костылестроению. А как на самом деле нужно было сделать: чтоб клиент мог крашиться из-за гонки, или чтоб в сервере могла течь память из-за клиента?
| следующие → |