Купил Framework Desktop Ryzen395+ 64 GB. В отличии от сабжа статьи и других "литровых" китайцев у Framework полноценная mini-ITX в соответствующем корпусе, полноценный кулер 120 мм + корпусной 80 мм. Есть и порт PCIE. Qwen3.6-35B-A3B-UD-Q4_K_M 75 tok/s, Qwen3.8 - около 20 tok/s. Температура максимум 72° и почти бесшумный. Кстати на этом GPU ollama работает быстрее llama
У меня в авто установлена кастомная трехполосная + саб акустика. Поканальное усиление. Через DSP скомпенсированы задержки от всех динамиков до моих ушей и убраны локальные резонансы. В итоге звуковая сцена, тональная картина для меня просто идеальны.
Почему бы не применить такой подход (поканальное усиление + DSP) для комнатной акустики?
Отличный гайд. Но я не могу пока придумать решение против активного пробинга по разным ip со стороны МАХ и т.п. И я пока перестал маршрутизировать трафик на роутере, пока не найдется решение. Поставил ip MAX в блок, домашних научил выключать wifi, если нужен MAX
У меня с ноутбука доступ по VPN на виртуальное рабочее место в большой корпорации. Прокотол - OpenVPN. Ни в одной сети не блокируется. Почему? Уже сервера в белом списке DPI? Если да - то вот и целевая модель: белые списки. Для избранных и за рубеж будет доступ. Будет и черный рынок таких белых списков, как сейчас за попадание в базу нештрафуемых номеров авто
В возрасте 44 лет, имея исходный ИМТ 37, я за полгода добился снижения веса до показателя 28. Этому способствовал агрессивный дефицит калорий (в пределах 1200–1600 ккал в сутки), что фактически граничило с лечебным голоданием. Фармакологическая поддержка ограничилась дозировкой в 1 мг, что ниже терапевтического максимума (2.5). Однако после перехода на поддерживающую дозу 0,25 мг и возвращения к стандартному рациону последовал закономерный, хотя и плавный, ребаунд: за полтора года ИМТ стабилизировался на отметке 30.
Данные биоимпедансного анализа наглядно иллюстрируют глубину метаболической адаптации: мой базальный метаболизм сократился с 2500 ккал до 1460 ккал при текущем весе в 90 кг. Организм до сих пор пребывает в режиме жесткой энергосберегающей стагнации. Вместе с жировой тканью произошла и существенная деградация мышечной массы, сейчас я сфокусирован на силовых тренировках с тренером. Учитывая мой многолетний опыт борьбы с ожирением, нынешнее состояние с ИМТ 30 воспринимается мной как субъективная стройность)))
Здравствуйте. Мой смелый интернет провайдер обеспечивает работу YouTube. Стоит ли устанавливать Ваше решение на роутер для решения проблем с телегой и т.д.?
Десяток созвездий умею находить с детства. Но когда первый раз оказался в пустыне и когда глаза привыкли, то я растерялся - вместо пары сотни привычных звёзд - мириады!
Deepseek - да. Двумя способами: через подобие треугольников и методом координат с параметризацией. Затем я попросил нарисовать схему - отказ. Взамен я попросил код для отрисовки картинки (промпт в примере), но deepseek выдал интерактивную программку.
Задал следующий промпт (по мотивам домашки с дочкой):
Через точку М, взятую на медиане AD треугольника ABC, и вершину В проведена прямая, пересекающая сторону АС в точке К. Найдите отношение AK/KC если М — середина отрезка AD. Создай html код Android для визуализации задачи.
Deepseek:
Все вершины и точку M можно двигать. Соотношения пересчитываются.
Есть ли клиенты для AWG3.1, которые на Андроид поднимают только SOCKS5 прокси с авторизацией?
Купил Framework Desktop Ryzen395+ 64 GB. В отличии от сабжа статьи и других "литровых" китайцев у Framework полноценная mini-ITX в соответствующем корпусе, полноценный кулер 120 мм + корпусной 80 мм. Есть и порт PCIE. Qwen3.6-35B-A3B-UD-Q4_K_M 75 tok/s, Qwen3.8 - около 20 tok/s. Температура максимум 72° и почти бесшумный. Кстати на этом GPU ollama работает быстрее llama
Спасибо! Было бы здорово увидеть статью как оптимально совместно использовать железо ноутбука на HX370/32RAM со встроенным GPU 5070ti/12VRAM
Нужны ограждающие решетки вокруг трактора. Чтобы физически человек не мог подлезть под колеса. Подъем / открытие решетки разрывает цепь питания
У меня в авто установлена кастомная трехполосная + саб акустика. Поканальное усиление. Через DSP скомпенсированы задержки от всех динамиков до моих ушей и убраны локальные резонансы. В итоге звуковая сцена, тональная картина для меня просто идеальны.
Почему бы не применить такой подход (поканальное усиление + DSP) для комнатной акустики?
Здравствуйте. Сборка 2.0.1 lxBox поддерживает AmneziaWG2? Попробовал конфиг AWG2 - не завелось.
Да, состояние VPN доступно для проверки в обе стороны
Отличный гайд. Но я не могу пока придумать решение против активного пробинга по разным ip со стороны МАХ и т.п. И я пока перестал маршрутизировать трафик на роутере, пока не найдется решение. Поставил ip MAX в блок, домашних научил выключать wifi, если нужен MAX
Нормально работает с fakeTLS proxy
Перепроверил на Самсунг в knox. Приложение в knox видит включенный VPN в основном профиле и наоборот
Получается, что и knox/shelter не панацея... На VPN, включенный в knox, банковское приложение, запущенное в основном профиле, ругается
У меня с ноутбука доступ по VPN на виртуальное рабочее место в большой корпорации. Прокотол - OpenVPN. Ни в одной сети не блокируется. Почему? Уже сервера в белом списке DPI? Если да - то вот и целевая модель: белые списки. Для избранных и за рубеж будет доступ. Будет и черный рынок таких белых списков, как сейчас за попадание в базу нештрафуемых номеров авто
В возрасте 44 лет, имея исходный ИМТ 37, я за полгода добился снижения веса до показателя 28. Этому способствовал агрессивный дефицит калорий (в пределах 1200–1600 ккал в сутки), что фактически граничило с лечебным голоданием. Фармакологическая поддержка ограничилась дозировкой в 1 мг, что ниже терапевтического максимума (2.5). Однако после перехода на поддерживающую дозу 0,25 мг и возвращения к стандартному рациону последовал закономерный, хотя и плавный, ребаунд: за полтора года ИМТ стабилизировался на отметке 30.
Данные биоимпедансного анализа наглядно иллюстрируют глубину метаболической адаптации: мой базальный метаболизм сократился с 2500 ккал до 1460 ккал при текущем весе в 90 кг. Организм до сих пор пребывает в режиме жесткой энергосберегающей стагнации. Вместе с жировой тканью произошла и существенная деградация мышечной массы, сейчас я сфокусирован на силовых тренировках с тренером. Учитывая мой многолетний опыт борьбы с ожирением, нынешнее состояние с ИМТ 30 воспринимается мной как субъективная стройность)))
Здравствуйте. Мой смелый интернет провайдер обеспечивает работу YouTube. Стоит ли устанавливать Ваше решение на роутер для решения проблем с телегой и т.д.?
Очень интересно! У меня сын 12 лет с СДВГ, всё время в своём мире и очень тяжело его оттуда выманить.
Но он вообще на дух не переносит любой музыки, наверное по причинам, которые Вы описали. Попробую Вашу музыку.
Десяток созвездий умею находить с детства. Но когда первый раз оказался в пустыне и когда глаза привыкли, то я растерялся - вместо пары сотни привычных звёзд - мириады!
В жёлтом дизайне грунтовки явно отделялись цветом от асфальта. Теперь всё серое.
Deepseek - да. Двумя способами: через подобие треугольников и методом координат с параметризацией. Затем я попросил нарисовать схему - отказ. Взамен я попросил код для отрисовки картинки (промпт в примере), но deepseek выдал интерактивную программку.
Задал следующий промпт (по мотивам домашки с дочкой):
Через точку М, взятую на медиане AD треугольника ABC, и вершину В проведена прямая, пересекающая сторону АС в точке К. Найдите отношение AK/KC если М — середина отрезка AD. Создай html код Android для визуализации задачи.
Deepseek:
Yandex 5 pro:
Deepseek просто поразил, если честно...
Скрытый текст
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>Геометрическая задача</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
overflow: hidden;
touch-action: none;
background: #f5f5f5;
font-family: Arial, sans-serif;
}
canvas {
position: fixed;
touch-action: none;
}
.description {
position: fixed;
top: 15px;
left: 15px;
right: 15px;
background: rgba(255,255,255,0.95);
padding: 15px;
border-radius: 10px;
font-size: 14px;
line-height: 1.4;
box-shadow: 0 3px 8px rgba(0,0,0,0.15);
z-index: 100;
}
.ratio-container {
position: fixed;
top: 160px;
left: 15px;
display: flex;
flex-direction: column;
gap: 10px;
z-index: 100;
}
.ratio-box {
background: rgba(255,255,255,0.95);
padding: 12px 18px;
border-radius: 8px;
font-size: 16px;
box-shadow: 0 2px 6px rgba(0,0,0,0.1);
min-width: 140px;
}
</style>
</head>
<body>
<div class="description">
Через точку М, взятую на медиане AD треугольника ABC, и вершину В проведена прямая,
пересекающая сторону АС в точке К. Найдите отношение AK/KC при различных отношениях AM/MD
</div>
<div class="ratio-container">
<div class="ratio-box">AK/KC = <span id="ak-kc">0.50</span></div>
<div class="ratio-box">AM/MD = <span id="am-md">1.00</span></div>
</div>
<canvas id="mainCanvas"></canvas>
<script>
const canvas = document.getElementById('mainCanvas');
const ctx = canvas.getContext('2d');
const akKcSpan = document.getElementById('ak-kc');
const amMdSpan = document.getElementById('am-md');
// Инициализация размеров
function initSizes() {
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
}
initSizes();
window.addEventListener('resize', initSizes);
// Конфигурация точек
const pointsConfig = {
A: {x: 0.2, y: 0.8, label: 'A'},
B: {x: 0.8, y: 0.8, label: 'B'},
C: {x: 0.5, y: 0.2, label: 'C'},
M: {t: 0.5, label: 'M'}
};
// Расчет абсолютных координат
function calculateAbsoluteCoords() {
const toAbs = (x, y) => ({
x: x * canvas.width,
y: y * canvas.height
});
const A = {...toAbs(pointsConfig.A.x, pointsConfig.A.y), label: 'A'};
const B = {...toAbs(pointsConfig.B.x, pointsConfig.B.y), label: 'B'};
const C = {...toAbs(pointsConfig.C.x, pointsConfig.C.y), label: 'C'};
// Медиана AD
const D = {
x: (B.x + C.x) / 2,
y: (B.y + C.y) / 2,
label: 'D'
};
// Позиция M на AD
const M = {
x: A.x + (D.x - A.x) * pointsConfig.M.t,
y: A.y + (D.y - A.y) * pointsConfig.M.t,
label: 'M'
};
return {A, B, C, D, M};
}
// Поиск пересечения прямых
function findIntersection(line1, line2) {
const [x1, y1, x2, y2] = line1;
const [x3, y3, x4, y4] = line2;
const denominator = (y4 - y3)*(x2 - x1) - (x4 - x3)*(y2 - y1);
if(Math.abs(denominator) < 0.001) return null;
const ua = ((x4 - x3)*(y1 - y3) - (y4 - y3)*(x1 - x3)) / denominator;
return {
x: x1 + ua*(x2 - x1),
y: y1 + ua*(y2 - y1)
};
}
// Основное обновление
function updateScene() {
const {A, B, C, D, M} = calculateAbsoluteCoords();
// Расчет отношений
const amMdRatio = pointsConfig.M.t / (1 - pointsConfig.M.t);
amMdSpan.textContent = amMdRatio.toFixed(2);
// Поиск точки K
const BM_line = [B.x, B.y, M.x, M.y];
const AC_line = [A.x, A.y, C.x, C.y];
const K = findIntersection(BM_line, AC_line);
// Обновление отношения AK/KC
if(K) {
const AK = Math.hypot(K.x - A.x, K.y - A.y);
const KC = Math.hypot(C.x - K.x, C.y - K.y);
akKcSpan.textContent = (AK/KC).toFixed(2);
}
renderScene(A, B, C, D, M, K);
}
// Отрисовка сцены
function renderScene(A, B, C, D, M, K) {
ctx.clearRect(0, 0, canvas.width, canvas.height);
// Рисование треугольника
ctx.beginPath();
ctx.moveTo(A.x, A.y);
ctx.lineTo(B.x, B.y);
ctx.lineTo(C.x, C.y);
ctx.closePath();
ctx.strokeStyle = '#34495e';
ctx.lineWidth = 4;
ctx.stroke();
// Медиана AD
ctx.setLineDash([10, 6]);
ctx.beginPath();
ctx.moveTo(A.x, A.y);
ctx.lineTo(D.x, D.y);
ctx.strokeStyle = '#7f8c8d';
ctx.stroke();
// Линия BM-K
if(K) {
ctx.setLineDash([]);
ctx.beginPath();
ctx.moveTo(B.x, B.y);
ctx.lineTo(K.x, K.y);
ctx.strokeStyle = '#e74c3c';
ctx.lineWidth = 3;
ctx.stroke();
}
// Отрисовка точек
const drawPoint = (point, color) => {
ctx.beginPath();
ctx.arc(point.x, point.y, 14, 0, Math.PI*2);
ctx.fillStyle = color;
ctx.fill();
ctx.strokeStyle = 'white';
ctx.lineWidth = 2;
ctx.stroke();
};
drawPoint(A, '#3498db');
drawPoint(B, '#2ecc71');
drawPoint(C, '#e67e22');
drawPoint(D, '#95a5a6');
drawPoint(M, '#9b59b6');
if(K) drawPoint(K, '#f1c40f');
// Подписи точек с умным позиционированием
ctx.fillStyle = '#2c3e50';
ctx.font = '16px Arial';
ctx.textBaseline = 'middle';
[A, B, C, D, M].forEach(p => {
let offsetX = 20;
let offsetY = 0;
// Особое позиционирование для точки C
if(p.label === 'C') {
offsetX = -25;
offsetY = 20;
ctx.textBaseline = 'top';
}
// Позиционирование для других точек
else {
ctx.textBaseline = 'middle';
}
ctx.fillText(p.label, p.x + offsetX, p.y + offsetY);
});
if(K) {
ctx.fillText('K', K.x + 20, K.y);
}
}
// Обработка касаний
let activePoint = null;
canvas.addEventListener('touchstart', (e) => {
const touch = e.touches[0];
const rect = canvas.getBoundingClientRect();
const x = (touch.clientX - rect.left) / rect.width;
const y = (touch.clientY - rect.top) / rect.height;
const {A, B, C, M} = calculateAbsoluteCoords();
const points = [
{key: 'A', x: A.x/canvas.width, y: A.y/canvas.height},
{key: 'B', x: B.x/canvas.width, y: B.y/canvas.height},
{key: 'C', x: C.x/canvas.width, y: C.y/canvas.height},
{key: 'M', x: M.x/canvas.width, y: M.y/canvas.height}
];
// Поиск ближайшей точки
const touchThreshold = 0.06;
let minDistance = Infinity;
points.forEach(point => {
const dx = x - point.x;
const dy = y - point.y;
const distance = Math.sqrt(dx*dx + dy*dy);
if(distance < touchThreshold && distance < minDistance) {
minDistance = distance;
activePoint = point.key;
}
});
});
canvas.addEventListener('touchmove', (e) => {
if(!activePoint) return;
e.preventDefault();
const touch = e.touches[0];
const rect = canvas.getBoundingClientRect();
const x = (touch.clientX - rect.left) / rect.width;
const y = (touch.clientY - rect.top) / rect.height;
if(activePoint === 'M') {
// Перемещение точки M вдоль AD
const {A, D} = calculateAbsoluteCoords();
const vecX = D.x - A.x;
const vecY = D.y - A.y;
const length = Math.hypot(vecX, vecY);
if(length === 0) return;
// Проекция точки касания на AD
const touchX = x * canvas.width - A.x;
const touchY = y * canvas.height - A.y;
const t = (touchX*vecX + touchY*vecY) / (length*length);
pointsConfig.M.t = Math.max(0, Math.min(1, t));
} else {
// Перемещение вершин треугольника
pointsConfig[activePoint].x = Math.max(0.1, Math.min(0.9, x));
pointsConfig[activePoint].y = Math.max(0.1, Math.min(0.9, y));
}
updateScene();
});
canvas.addEventListener('touchend', () => {
activePoint = null;
});
// Запуск приложения
updateScene();
</script>
</body>
</html>
Белковые нанороботы, которые создают и контролируют жизнь?