LINUX.ORG.RU

Сообщения lesopilorama

 

А расскажите про Торвальдса? Он правда сам мёржит руками и читает код до сих пор?

Форум — Talks

Вот он прямо реально сам сидит за компом целыми днями, вычитывает какие-то патчи, смотрит чо как? Или есть назначенные бояре на нужные участки ядра, а он особо не вникает?

Просто в таком возрасте и с таким уровнем мировых заслуг уже обычно лично руками не работают. Ясно конечно, что это крайне скучно и умный человек всегда будет хотеть поработать, но вот просто хочется понять как реально живёт торвальдс в 2024, читает ли лично код, осознаёт ли что там коммитят?

(мем про киану: «а что если TOR - образовано от Torvalds»)

 

lesopilorama
()

Тяжёлые рациональные препятствия использования Rust вместо C++

Форум — Talks
  1. Язык, ограничивающий работу с сырой памятью, сырыми аллокациями, сырым владением - уже есть внутри C++: это такое его подмножество, где аллокации заменены на make_shared-подобное, сырая память/ресурсы - на всякие там контейнеры/инкапсуляции/RAII, владение - на смартпоинтеры и подобное. Если я как-то «нормально» знаю C++, включая и «сырое» и «хорошее», то получается мне не надо осваивать никакой другой язык, чтобы начать пейсать не-говно. Зачем вводить в инструментарий что-то ещё, если такое уже есть? Отказаться от C++ в пользу Rust - это какой-то сложный манёвр, совершаемый гораздо проще не уходя от C++ и не ДОБАВЛЯЯ ничего нового, а только УБИРАЯ что-то: достаточно отказаться от ЧАСТИ C++, не изучая ничего нового вообще. Не пиши на C++ и пиши на Rust - это строго сложнее и страннее, чем «пиши на С++, но без сырых указателей и сырых аллокаций». Rust уже есть внутри C++, что моментально заненужнивает какой-то отдельный Rust. Более того, для начала можно даже не ходить так далеко как отказ от куска C++, а взять свежайший C++ компилятор, врубить последний стандарт, врубить все параноидальные warning по максимуму, приравнять их к ошибкам компиляции (-Werror) и компилятор подробно расскажет тебе, какая ты дура, пока не перепишешь нормально.

  2. Ясно, что Rust нужен, чтобы набрать много макак с рынка, которые ПРИ ЖЕЛАНИИ не смогут сломать память. Теоретически, вредное подмножество Rust (unsafe) в разы меньше, чем вредное подмножество C++. По задумке, ревьюить Rust - проще, ведь надо просто отследить наличие unsafe, а ревьюить C++ макака не может. Ну ХЗ - в статический анализатор кода запихнул правила забраковки кода с сырыми указателями в С++ и готово. Ну и последний совет из пункта (1) даст 100 лет строгача с конфискацией за малейшую попытку побега - всё как в Rust: небезопасненько: не соберётся.

  3. Но Rust не простой, под него макака не подходит изначально. Rust варится в такой же задротской атмосфере, как и C++. Для макак инструмент надо ещё более тупой - что-то типа JS, где «что ни написал - всё работает», а к памяти доступа ВООБЩЕ нет ни через какое волшебное слово (unsafe). Если надо, чтобы быстро исполнялось, то в бинарный код мы уж как-нибудь скомпилируем/оттранслируем любой кал - в пределе (в прекрасной России будущего) волшебные оптимизаторы LLVM разрулят всё неоптимальное, что макака написала. Транслируем любой макачий кал в строго корректный машинногенерируемый С++ и его скомпиляем.

  4. Даже из принципа нужности управления битиками в крайне узкоспециальной части проекта мне не нужно много гениев. А это «мало гениев» я наберу с рынка вообще без проблем - и по зарплате там не сильно важно в чём он там гений - C++, Rust. Rust-задроты даже больше просят из-за модности.

  5. Супер железное правило, которое не перебивается вообще ничем логически: если вы затеяли лабать что-то уровня собственной СУБД с транзакциями и запутались в циклических ссылках, то вы уже давно перешли порог гениальности, после которого вам уже вообще насрать на чём это пишется. Эпичный баг, который вы будете искать дольше суток, с утечками/циклическими ссылками/порчей памяти вы в этом большом проекте поймаете за жизнь 2 раза от силы, остальное проблемное какой угодно сложности вы в дебаггере отловите за пару часов и это будет случаться раз в полгода - вообще экономически не повод менять инструмент. Да и то, затрачиваемое время на поиск багов растянется только потому, что на вашем уровне развития вы не могли пройти мимо очередного срача «C++ vs Rust» и отвлеклись на 4 часа от дебаггера.

UPDATE

Мне накидали в панаму разумных куёв, поэтому давайте выведем топик на новый уровень. Напишите не суперсложный кусок кода на C++, который потенциально вызывает проблемы и тот же кусок кода на расте, который никак не бомбанёт.

 

lesopilorama
()

Посоветуйте ThinkPad с авито тыщ за 20-30 более-менее современный по железу.

Форум — Talks

Ну типа i5-8XXXXU серия проца, 16 гигов памяти, IPS матрица. Чо смотреть? T480, E14, X1? Мобильность слабо важна, всю жизнь будет на столе в основном, иногда на диване.

 

lesopilorama
()

Научите пользоваться GPG, что я делаю не так.

Форум — Talks
  1. Создал ключ на BLABLA@BLABLA.COM, пройдя этапы –full-generate-key.
  2. Тестирую echo "HELLO WORLD" | gpg -r BLABLA@BLABLA.COM --encrypt --armor Выдаётся годнейший ASCII блок.
  3. Тестирую расшифровку: echo "HELLO WORLD" | gpg -r BLABLA@BLABLA.COM --encrypt --armor | gpg. Провал:
gpg: encrypted with 1024-bit RSA key, ID 1234524526262626, created 2024-08-06
      "POLUSUKA (PIDAR) <BLABLA@BLABLA.COM>"
gpg: public key decryption failed: Operation cancelled
gpg: decryption failed: No secret key

Чо делать-то.

 

lesopilorama
()

А какая бизнес-модель у Яндекс Браузера и перспективы?

Форум — Talks

Иногда происходит попытка завлечь некого C++ разраба на собес в Яндекс-Браузер и этот разраб думает: «а оно ещё живое? А зачем оно на планете есть»?

Оно в природе есть, чтобы существовал некий браузер с правильными государственными сертификатами? Движки же гуглы и файрфоксы наверняка пилят активнее и эти движки же наверняка воруют в свою репу яндексисты, не с нуля же пишут. Вряд-ли ведь яндексисты пилят прямо собственные глубоко оригинальные алгоритмы рендеринга, ибо зачем? В гугле ж наверняка с их ресурсами запилят интереснее и всё равно потом бэкпортить в себя, нет?

В общем, нафига ещё жив яндекс-браузер и каковы перспективы?

Тексты от HR монут выглядеть так:

Из интересного: Яндекс браузер – самый большой проект на С++ в мире. 
Есть несколько команд: 
те, кто делают ядро; 
рендеринг-движок; 
те, кто реализуют бизнес-логику; 
те, кто делают UI 
Стек: С++ ( минимум 11, кодовая база в проекте обновлена до 20 стандарта)
Браузер кроссплатформенный - это надо учитывать при разработке фичей

Там прям какие-то команды. Ядро, рендеринг и т.п. Зачем? Разве это не просто клон хрома?

 

lesopilorama
()

Ubuntu 20.04: запретить менять вывод звука на воткнутые USB-наушники.

Форум — Desktop

Слушаю музон в браузере через встроенный в ноут jack 3.5. Втыкаю USB-наушники с микрофоном ради того, чтобы в ffmpeg позаписывать звук с этого микрофона явно выбирая hw:1,0. Музон в старых наушниках пропадает, поток перенаправляется в USB-наушники. Падла! Хочется запретить это жопное поведение.

В файле /etc/pulse/default.pa закомментил вот это:

# load-module module-switch-on-port-available
# load-module module-switch-on-connect

Сделал pulseaudio -k – но всё по-старому! Что делать? Самозарубиться топором по темени?

P.S.

Блеат, pulseaudio -k - для бомжей. Помогло только

killall -9 -r pulse
pulseaudio -k
pulseaudio --check

Жесть треш угар содомия. Заработало: USB звуковуха перестала воровать звук при втыкании.

Но теперь другая проблема: кнопки регулировки громкости ушли в USB-звуковуху, ноутбучные клавиши громкости не крутят звук у встроенной в ноут звуковухи! Тварь!

P.P.S.

Нет, не помогло нифига. На самом деле у меня просто умер pulseaudio навсегда и спокойно работает ALSA. Всё что связано с pulseaudio отказало катастрофически навечно. Поэтому-то ничего и не переключилось, бугагагагага.

 ,

lesopilorama
()

Цифровая обработка сигналов: фильтр Баттерворта, вопрос по амплитуде

Форум — Development

Вопрос крайне туп. Если взять рандомную хорошую и правильную реализацию фильтра баттерворта рандомного порядка (или запилить самостоятельно) и загонять на вход фильтра семплы нашего сигнала, то на выходе мы получаем семплы правильно отфильтрованного сигнала, НО с какой-то дикой амплитудой. Вопрос в том, что я не понимаю связи размерности семплов входа и семплов выхода. Например, имея на входе нормализованный сигнал (со значениями между 0 и 1), в выходных float-значениях семплов я получаю какие-то адовые миллионы. При этом эти значения не являются бредом: если найти на рандомном участке максимум и нормализовать выходные семплы по этому максимуму, то мы имеем вполне себе адекватный выходной сигнал, отфильтрованный как ожидается. Хочется понять почему так происходит: значения выходных семплов никак не связаны по размерности со значениями входных. На входе может быть и не нормализованный сигнал, а прямо сырые PCM-значения: фильтр тоже исправно работает, просто на выходе уже «сотни миллионов» )

 ,

lesopilorama
()

gvim с вертикальными табами. Есть такое?

Форум — Talks

:tabe открывает новый файлик в табе.

Не, я понимаю что там не «табы», а view какие-то, или буферы или как там его. Это всё не суть. Табы есть табы, пофиг в данном контексте, что там внутри и какая за ними философия.

Вот в gvim есть табы, но они горизонтальные.

А есть gvim с вертикальными? Я хочу видеть все открытые табы как вертикальную стопку кнопочек, на каждой написано имя файла и вся эта вертикальная колонка регулируется по ширине.

Спасибо.

 ,

lesopilorama
()

Bluetooth-адаптер: выдаёт звук на jack 3.5 гарнитуру и видит её микрофон? Посоветуйте.

Форум — Talks
  1. Есть обычная jack-3.5 4-контактная гарнитура.

  2. Надо коробочку, которая цепляется по BT, в которую втыкаешь гарнитуру и наушники в ней становятся BT-наушниакми, а микрофон гарнитуры видится в телефоне.

  3. Тестил такое: https://aliexpress.ru/item/1005005760011304.html - прямо то что надо, интересны альтернативы и аналоги. Аналоги интересны, потому что тут нет регулировки громкости и микрофон с задержкой пробрасывается, хотя это наверное везде так. Но то, что оно увидело микрофон в гарнитуре - уже суперплюс.

  4. Тестил такое: https://aliexpress.ru/item/1005003127873046.html - микрофон только встроенный и качество у него полная жопа. Каменный век, звук как из унитаза. Я конечно понимаю что стандартный телефонный канал - это 300-3400 гц, но не в 21 веке же, когда кругом «HD-кодеки», даже в любом телеграм звонке и LTE. Внешний микрофон (на гарнитуре) оно не видит. А надо чтобы видело.

Вопрос в советовании альтернатив и проверенных аналогов (3). Спасибо.

 

lesopilorama
()

Апгрейд старого LCD 1280x1024 монитора на LED.

Форум — Linux-hardware

Есть старые LCD мониторы с катодными трубами.

  1. Монитор состоит из матрицы, которая снизу и сверху подсвечена трубами.

  2. Из платы БП, который отдаёт 5В, 12В и высокое напряжение на трубы. Можно попробовать отрезать на плате дорожки, которые запитывают высоковольтную трубную часть, потому что она жрёт ток. Там пара трансформаторов повышающих, пара мосфетов, генератор какой-то.

  3. Из платы адаптера DVI/VGA -> шлейф матрицы (LVDS)? Тут модификаций не надо. Это поставщик сырого сигнала в матрицу по нескольким диффпарам, как я понял. Ещё там BIOS монитора - проц, который рисует менюшку.

  4. Надо выдернуть катодные лампы и запихнуть светодиодные ленты. Питания на них уже может и не хватить конечно, если пытаться запитываться от встроенного БП, но это не точно. Можно их сделать не яркими.

Вопрос: а кто делал подобное? Выкидывать монитор жалко, а катодные трубы своим нагревом бесят и когда-нибудь всё равно сдохнут. Греются они как печь просто жесть. А ещё на плате БП в той части, которая питает трубы подсветки, на плате от нагрева уже пожелтение, там скоро какие-нибудь диоды сдохнут уже, они устали это тянуть.

А ещё такой вопрос: а реально сырую матрицу монитора накормить картинкой не от мониторной платы «скалера», от от условной ардуины? Чё там за протокол?

 

lesopilorama
()

thinkpad X230. Чёрный экран ноута в некоторых случаях, в остальном нормальный. Подёргал шлейф матрицы - починилось! Что было?

Форум — Linux-hardware

Древняя убунта на thinkpad X230.

На экране дёргалась пара «строк» изображения, как будто помеха на телеке. Как будто каждый кадр изображения получал стабильно по времени наводку в одних и тех же местах картинки. Просто пара строк немного съехала влево и «дрожит». Пара строк в сантиметре от верха экрана и ещё пара строк через 2 сантиметра от первой пары строк.

Открываем хром/телеграм, крутим контент с картинками - хоба экран полностью чёрный. Закрываем приложение alt + f4 - хоба картинка возвращается. Наводим мышь на убунтушный «пуск», вылезают иконки приложений, хоба чёрный экран. Убираем оттуда мышь, хоба картинка оживает. Открываем какой-нибудь яндекс-дзен, крутим-крутим, хоба чёрный экран.

Разобрал ноут, продул пыль, разобрал крышку экрана, шлейф от матери до матрицы отключил, подключил обратно. В районе матрицы не отключал, но немного подёргал.

Собрал ноут, работает идеально как ничего не было. Вот интересно чисто физически-радиотехнически: а как это вообще такое возможно? Это чо было? Это какой контакт должен отходить, чтобы такое получить? Любопытно тут то, что оно реагирует на некое состояние системы/приложений. При этом если пойти в «фреймбуферный режим» нажатием CTRL + ALT + F2 и увидеть там login: залогиниться и поработать в консоли, то вообще всё идеально. Переключаемся обратно на иксы - снова этот прикол с чёрным экраном. (сейчас после «починки» проблемы исчезла, это было описание происходившего до).

 

lesopilorama
()

Пет-проджекты и зарабатывание денег в вебе. Как можно денег позарабатывать в вебе сейчас? Лендинги клепать или подобное.

Форум — Talks

Хочется помимо основной работы фоново немного позарабатывать денег в вебе на предпринимателях или рекламщиках, используя весь свой программистский талант и мощь в разработке быстрых отказоустойчивых нересурсоёмких серверных приложенек/фронтенда. Умею бакенд, TS/JS/JSX/react-like фронтенд, базы данных, в общем всё что надо. Но позарабатывать так, чтобы не тратить в сутки больше часа времени в перспективе. В бекенде могу всё: от говнокода на PHP+MySQL до разработки кастомных HTTP-серверов на C++20 для микросекундного задроча и модификаций PostgreSQL. На фронте в принципе тоже всё, но без дизайна. Вот эти фичи моей личности и хочется поэксплуатировать.

Ясно, что пойти клепать лендинги - это не то. Потому что хочется продавать что-то полуавтоматически, а клепка хороших лендингов - вполне себе фуллтайм работа, часто штучный продукт и много дизайна, а техническая часть давно сделана на тильде и требований к бекенду особо нет: работает и ладно. Хочется, чтобы клиент нажал кнопку «создать что-то», а ты получил бабла, а не сам с этим клиентом общался и рисовал ему лендинг. Минимум вовлечение личного ресурса, максимум автоматизации.

Хочется запилить некую платформу для чего-то такого, связанного с тем, где бабло крутится: лендинги, SMM, реклама, прочий треш и дичь. Некую платформу, на которой желающий может что-то создавать одной кнопкой, настраивать и как-то использовать. Простейший пример: создавалка чатиков: когда нужен чатик в вебе, когда его хочется прикрутить к лендингу, когда хочется через него пообщаться с клиентами. Такое делали в jivosite кажется и других подобных местах. У операторов колл-центра некая админка, куда поступают обращения из чатиков, а чатики прикручены к лендингу и у каждого клиента свой одноразовый чатик без регистрации с СМС в духе «Я Жанна, чем могу помочь».

Я бы рад сделать что-то хорошее для опенсорса или инженеров или разработчиков, а не помогать ссаным рекламщикам и инфоциганам, но на этом рынке бабла мало, а цель бабла срубить. При этом, конечно, готов рубить его максимально этично.

В общем, вопрос скорее про бабло и бизнес-идеи в описанных рамках. Посоветуйте что продавать, куда внедриться-впилиться, какие потоки чего на себя завязывать. Баннерные сети, арбитраж, рекламные клики, посты и прочая вся вот эта вот хренотень интересна. Не надо меня рассматривать как пособника тех, кто засирает прекрасный вебчик рекламой, возможно я как раз тот, кто агрегирует и приберётся в потоках этого говнища, рассортирует, порежет, причешет.

Нет требований придумать инновационную идею. Наоборот: какую существующую идею или реализацию повторить эффективнее, чтобы пошли ко мне, а не в какое-то текущее кривое решение. Банально, я могу сделать сервис, который просто не тормозит и он будет приятнее. Например есть всякие платформы nocode, где неграмотные гуманитарии кликами кнопок создают какие-то странички или сайтики. Вот можно поработать в этом направлении, сделать какую-то свою отечественную платформу, которая чем-то лучше других. Ну и так далее, масса направлений размышлений. Возможно и правда надо клепать лендинги, просто автоматизировать это. Они будут все на одно лицо, зато быстро и за 500 рублей штука.

Правда ли, что в целом всё вышеописанное - путь вникуда и делать нужно какой-то узкоспециализированный хороший качественный сервис, который физически тяжело повторить и из этого извлекать профит?

 ,

lesopilorama
()

TypeScript: импортить модули, лежащие где попало по абсолютным путям.

Форум — Development

Есть программа: /home/me/project/main.ts

import {Sobaka} from "./auto/sobaka.js"
import {Blabla} from "./auto/blabla.js"
console.log("hello")

Проблема в

/home/me/project/main.ts:N:M - error TS2307: Cannot find module './auto/sobaka.js' or its corresponding type declarations.

потому, что на самом деле никакого ./auto/ в текущем поддереве нет и никогда не будет! Это самое интригующее и раскрыто далее после заголовка «ЦИМЕС ВОПРОСА». Что там за Sobaka и Blabla читателю не важно, суть не в них, они норм. Если их положить в текущий каталог с main.ts и написать «./sobaka.js», то всё работает.

Так же есть /home/me/project/tsconfig.json:

{
  "compilerOptions": {
    "target" : "ES2016",
    "module" : "nodenext",
    "noImplicitAny": true,
    "removeComments": true,
    "preserveConstEnums": false,
    "moduleResolution": "nodenext",
    "sourceMap": false,
    "strictNullChecks" : true,
    "strictPropertyInitialization" : true,
    "outDir" : "/tmp/some/output/dir/blabla",
    "rootDirs" : [
       "/tmp/generated",
       "/home/me/project"
    ]
  },
  "include" : [
    "/home/me/project/main.ts"
   ]
}

Запускаю обычно так и всё собирается: tsc --build /home/me/project/tsconfig.json. Обычно, это когда не нужны были извращения из этого треда.

цимес вопроса:

Есть некий автосгенерированный .ts код, можно сказать «модуль» (при моём слабом понимании теории модулей TS): .ts файлы в папочке /tmp/generated/ или в любом другом одноразовом месте, про которое (место) базовый код знать не хочет:

/tmp/generated/auto/sobaka.ts
/tmp/generated/auto/blablabla.ts

Вот их инклудить я и хочу в main.ts, но не знаю как. Класть эти файлы в основное дерево (в репу) нельзя. Они генерятся при каждой сборке, там всякие актуальные константы и одноразовые интерфейсы.

  1. Пробовал добавить /tmp/generated/ в rootDirs как показано в tsconfig.json выше - не взлетело/

  2. Пробовал такое:

import {Sobaka} from @auto/sobaka.js

И добавить в tsconfig.json такое:

...
"baseUrl" : "/home/me/project/",
"paths" : {
   "@auto/*" : ["/tmp/generated/auto/*"]
}
...

Ошибка та же.

Помогите научиться инклудить валяющуюся где угодно по абсолютному пути фигню успешно, не указывая абсолютных путей в коде? Спасибо.

 

lesopilorama
()

Allwinner A20 - определить где на плате UART и определить почему девайс может виснуть.

Форум — Development

Есть платка. Типа cubietruck, на самом деле «вариация на тему», некая очередная итерация cubieboard, сделанная в виде некого A19 Android TV Box, который потом под заказ компании АТОЛ был чуть перепилен в продукт «Атол Хаб-19».

http://at89.ru/wp-content/uploads/2019/02/word-image-20.png

http://0x0.st/XZ-O.png - копия если первый урл сдох.

Хочется там найти UART, который при вдумчивом осмотре никак никуда не выведен и не распаян.

Единственное похожее на него место: смотрим на самый левый чип RAM, поднимаем взгляд чуть вверх - там кварц, идём от кварца влево - там нераспаянный трёхдырочный разьём. Это может быть оно? Дорожки идут прямо в камень. Если глянуть на даташит проца, где все ножки подписаны https://www.olimex.com/Products/SOM/A20/_resources/A20-Brief-2013-02-27.pdf - UART там явно не обозначен, ну может через GPIO реализован как-то какой-то, хз.

Так вот, задача проверить эти три дырки на то, являются ли они UART. Берём USB->TTL 3.3V штуку, втыкаем GND, TX, RX в эти дырки в разных комбинациях и пытаемся увидеть выхлоп. Вопрос: достаточно ли будет напихать на линии TX, RX по резистору в 1 кОм дабы не спалить этот A20 проц в случае чего?

Второй вопрос: как вообще дебажить такого рода железки на предмет зависания? Даже не кернел-паника, а просто впадания в говнище? Работала-работала день, херак стала кирпичом. Питание выдернули, вернули - дальше работает. Народ на форумах что-то там обсуждает про игры с параметрами U-Boot в области частот RAM. Вот думаю какой-бы физический интерфейс с такого рода железкой иметь, чтобы понимать что же в ней происходит. Пока что самым очевидным приколом кажется проблема с питанием, типа нагрузить оба ядра какой-то хренью и БП просаживается, от чего всё встаёт колом. Но там БП штатный, 5V 2A, должно хватать…

Выкинуть и купить нормальное - совет понятный.

 

lesopilorama
()

2 тупых вопроса про Bluetooth и кодеки, про BT-звук, про наушники и микрофоны.

Форум — Talks

Вопрос про энергетику блютуса, так сказать. Может быть так, что загон музла в BT-наушники для телефона энергетически эффективнее, чем качать звук в проводные наушники?

Слегонца представляю как BT работает радиотехнически, ППРЧ там всякое, отличия некоторые BT 5 от BT предыдущих, примерно представляю почему это может быть очень эффективно. Хочу спросить про «кодеки». Вот бывает, что на блютус-наушниках написано, что они поддерживают всякие там кодеки: SBC, AAC, aptX, aptX HD. А правильно я понимаю, что эти кодеки «стоят» прямо в том же кристалле Qualcomm, который реализует ВООБЩЕ ВСЮ Bluetooth машинерию - радиотехническую, шифровальную? Правда ли, что на входе у такого Bluetooth-чипа, который пихает звук в «эфир» просто сырые семплы? А на выходе у такого же приёмного чипа тоже уже сырые семплы, которые осталось только запихнуть в DAC?

А правда ли, что такой Bluetooth-5.0 чип в режиме передачи звука по блютусу со всеми этими кодеками может жрать меньше тока, чем если бы мы попытались этим звуком качать наушники на средней громкости?

Вопрос-2: а посоветуйте Bluetooth-5 коробочку, куда втыкается старая гарнитура и позволяет по этой гарнитуре говорить, как если бы эти наушники втыкались прямо в звуковуху. Знаю такие коробочки, но там микрофон в виде дырки не самой коробочке, что немного не то: пример Ugreen CM402.

 

lesopilorama
()

Мамкины криптографы. AES.

Форум — Development

Щас будет тупой вопрос. Режимы ECB, CBC и т.п. тут не суть.

  1. Сам по себе AES блочный симметричный: если ключ не меняется, то для одного и того же шифруемого текста выход алгоритма (шифротекст) будет один и тот же. То есть, посылая через такую сырую хрень одинаковые HTTP-запросы, перехватчик будет видеть, что запросы идут одинаковые. Или что у них одинаковое начало)

  2. Поэтому добавляют всякие там initialization vector и подобные приколы.

  3. Вопрос треда в том, насколько нижеописанная идея избавления от повторяемости нормальна, годна, жизнеспособна и криптостойка в целом.

—- Описание идеи —-

  • обмена ключами нет: никакого Diffie–Hellman. Ключ известен двум сторонам заранее, он достаточно длинный и его точно никто не знает, кроме админа Васи, который руками сходил разложил. Ясно, что тут АНБ уже Васю завербовало, но не суть.

  • когда одна сторона хочет законнектиться, то она генерит рандомную строку 1024 байтиков, шифрует её ключом, отправляет другой стороне.

  • Далее эта строка в комбинации с ключом (xor например) уже используется как ключ для всей дальнейшей коммуникации.

  • Всё. В этом месте достигнут кайф. Повторяемости гарантированно взяться неоткуда при не меняющемся ключе. Вопрос в том, верно ли это, что кайф произошёл. В чём тут проблемы, где жопа?

Возможно это уже как-то называется и реализовано, но вопрос школьный и тупой, поэтому автор не в курсе. Спасибо.

 

lesopilorama
()

Китай, политота, микросхемные заводы, техпроцесс 1995

Форум — Talks

Кто достаточно стар и умён, помните в девяностые на китайских базарах в России можно было купить помимо тряпочек, тапочкек и водяных пистолетов разные электронные игрушки: брелки с мелодиями («echo killer»), калькуляторы, повторялки звуков, пиу-пиу пистолеты, тетрисы, клоны тамагочей?

Проц. Он был у них. Такая черная капля на плате (чёрная капля - это компаунд, а под ним кристалл, из которого wire bonding прямо на плату захерачен). Ну микроконтроллер. Неважно как называть. Система на кристалле.

Так вот, чо это было? На каком заводе делались эти кристаллы, что по нанометрам? Какие люди их разрабатывали? Подозреваю, что клоны тамагочей могли клепать на тех же 4-битных процах Epson некитайского производства, но что по всем этим чирикалкам брелкам и тетрисам?

P.S. Ответ: халтек, тайваньский монстр чипостроения, клепавший дешевые чипы миллионными тиражами произвольного назначения: контроллеры дисплеев, модемы, факсы, ЧТО УГОДНО, любые SOC ЛЮБОГО назначения, ограниченного только интеллектом разрабов и твоими деньгами…

 

lesopilorama
()

tcp/udp/OTHER сервер: таймауты, закрытие коннектов

Форум — Development

TCP или не TCP в целом не ясно - это может быть и самодельный UDP шайтан-протокол. Connection - абстракция. В целом ясно, что стурктура данных heap AKA priority queue. Хочется простого: 10 сек не было данных от клиента - close() ему на сокет. Архитектура традиционная - однопоточный евент луп - сидит в epoll_wait() с пробуждениями, скажем, 10 раз в сек, чтобы поделать служебное (позакрывать по таймауту кого-то, другие таймеры попроцессить). Входящих коннектов могут быть тыщи. Обычно для такого юзают heap (min-heap например): пихаешь в эту структуру коннекшены, впереди лежат те, у которых значение time_close_nanosec меньше. time_close_nanosec - это такое uint64_t значение у объекта-connection, которое апдейтится каждый раз, когда из коннекшена выпали байтики и означает «monitonic время, при наступлении которого коннект надо закрыть». Соответственно апдейтится оно на now_nanosec + 10 * 1000 * 1000 * 1000 всякий раз, когда от клиента что-то прилетело.

Проблема в том, что time_close_nanosec таки апдейтится. Прилетели из сокет байты - время close() этого сокета надо отложить до now + 10 * 1000 * 1000 * 1000 как выше сказано. А это значит, в heap его надо перевставить, ведь старая позиция в priority queue уже не валидна. А значит в объекте Connection будет лежить индекс этого Connection в нашем heap (чтобы сходить по этому индексу в этот heap для удаления этого Connection). А ещё, heap должен быть так реализован, что при каждом перетасовывании объектов в нём, heap ходит по указателям в тасуемых и апдейтит им индексы-в-себе на новые (ведь могут вставить кого-то на позицию 0 и я стану допустим 1). То есть, если из клиентов просто регулярно спокойно летят байтики, то эта heap постоянно шевелится и идёт возня с памятью. Это не православно.

Вот пришла в голову оптимизация: time_close_nanosec в объекте Connection апдейтить, а в heap этот Connection не перевставлять. Тогда heap будет постоянно «ложно» срабатывать. И вот в этом ложном срабатывании мы и будем делать всю работу в heap - если срабатывание реально ложное (time_close_nanosec ещё не достигло текущего момента), то передобавлять его в heap, иначе это не ложное и делать close(). Ясно, что в такой heap надо будет хранить не просто указатели на Connection * (по которым будет лазить компаратор, чтобы посмотреть на time_close_nanosec (это вредно, они постоянно меняются и структура развалится)), а ещё и копию time_close_nanosec_COPY которая верна на момент вставки и по которой компаратор работает.

В результате этой оптимизации число операций с heap наверное минимально возможное и постоянно нормально льющиеся байтики от клиентов никак её не трогают, но всё работает как задумано. «Срабатывание heap» - это не что-то плохое, это один if в евент лупе: текущее время с корнем кучи сравнить.

(UPDATE: сделал эту идейку, работает на первый взгляд норм)

Штош, может кто что посоветует по этой теме? Как то же самое сделано в ядре например или где-то ещё в похожем месте. Додумался ли я до чего-то крутого или есть ещё круче оптимизации?

 

lesopilorama
()

Как сидя в убунте скачать какой-то пакет для дебиана?

Форум — Admin

apt download libsobaka

Скачает мне пакет под мой jammy или как там его.

А хочется:

  1. Посмотреть под какие дебианы этот пакет вообще есть.

  2. Скачать под выбранный.

Как?

 

lesopilorama
()

Вопрос: а что внутри у RAW .dng файлов с флагманских телефонов?

Форум — Talks

Вычислительную фотографию понимаю, да.

Но что внутри .dng файла, полученного из современного топового смартфона? Там же не прям сырые значения субпикселей? Там же уже что-то слегка отпроцессенное, всмысле байеровская решётка пикселей смёржена в «простые» RGB пиксели ведь? То есть, совсем сырые-сырые данные с камеры там сконверчены в что-то, что можно упихать в стандарт .DNG с потерей инстинной «сырости», да? Там в .dng ведь не лежат прям истинно супер сырые данные с железа же?

Я почему спрашиваю: когда «встроенная» приложенька камеры делает фотку, то там процесс отличается от «получить dng, потом запроцессить dng» же? Такое может и происходит в софтине «Expert RAW» на самсунгах: там по-сути есть автоподкручивалка уровней поверх dng файла. Но истинно родная приложенька работает же с реально сырыми данными с матрицы, которые ещё не стали DNG и может делать совсем не одну фотку, чтобы потом совместить несколько рядом по времени сделанных и расширить ДД или ещё что-то поделать/поусреднять. Она может даже померять степень резкости на разных кусках фотки в разных фотках и тягать из разных фоток разные куски наверное согласно «годноте» - короче чего там только нет наверное, но никто такого не расскажет, это самсунговая и айфонная тайна.

Вопрос о том, чо там в DNG файлах, насколько оно близко к железу. DNG файлы очень приятны, в них ещё остаётся незамыленный алгоритмами шум с матрицы и повышенная битность, можно пересвет убирать и тени вытягивать, но тем не менее кажется что DNG уже не совсем железные данные.

 

lesopilorama
()

RSS подписка на новые темы