LINUX.ORG.RU

Сообщения 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
()

Автообновление и перезапуск бинарников в линуксе.

Форум — Development

Есть софтина, которая может себя скачать и запустить новую версию. Типа как телеграм, который иногда просить нажать на кнопку. После чего он сразу перезапускается на новую версию, что какбэ намекает нам на то, что кнопку эту он рисует только когда новую версию уже скачал и положил рядом.

Только здесь обсуждается серверная софтина, у которой нет GUI и у которой нет необходимости кого-то предупреждать о перезапуске - перезапуститься можно в любой момент, когда новый бинарь подвезли.

Теперь внимание вопрос. Как лучше всего делать такой перезапуск?

  1. Примерно как телега. Если я правильно догадываюсь, то там базовый/основной бинарник не является приложением, а микро-приложением или скриптом, который смотрит в спецпапочку с бинарниками и запускает самый свежий, который уже таки приложение. Для обновления нужно просто скачать новую версию себя и положить рядом со старой, а потом просто сдохнуть с условным кодом «-5» - родительский микробинарник пойдёт снова запускать и поднимет самую свежую версию. Тут даже можно строить приколы с откатами: если после запуска новой версии какие-то условия не были выполнены, то посчитать её багованной, переименовать в .trash и снова уйти в перезапуск, запустив в итоге предыдущую.

  2. Скачать новую, положять рядом. Но не сдыхать, а провести некое освобождение ресурсов, позакрывать сокеты и файлы и просто вызвать execve(). PID останется тот же, но «все структуры» старого приложения заместят новым стартующим. Почему это плохо? Кажется только тем, что (1) проще и понятнее: и pid меняется и не надо париться о том, что ты там недозакрывал из дескрипторов и т.п.

 , ,

lesopilorama
()

Автоматически качать новые версии бинарей и перезапускать

Форум — Admin

Юзкейс.

Есть 10 серваков с readonly корнем.

На них через systemd всегда запускается некая софтина, которой дается имя Name и путь Root (смотрит в ramdisk).

У каждой железки разный Name.

Железка приходит на сервер, говорит свое Name и получает пачку бинарей с аргументами для них, качают эти бинари в рамдиск и следят за запущенностью их. Иногда какой-то бинарь обновляется на серваке, железка периодически ходя на сервер об этом узнает, качает новый, тормозит старый и перезапускает на новый. Измениться может просто набор аргументов для бинаря, тогда его просто перезапускают на новые аргументы.

Вот посоветуйте такую софтину.

У железок нет белых ип.

 

lesopilorama
()

Посоветуйте софтину для быстрого листания кучи фоток и запуска любого скрипта на текущей.

Форум — Talks

Есть гора фоток. Надо выбрать «хорошие». Надо простую софтину как «eog», но чтобы на текущей фотке можно было нажать клавишу и она mv в указанный в настройках каталог. То есть, я сижу быстро мотаю фотки и на каких-то из них жму спецклавишу, по которой они из «неразобранное» кидаются в каталог «good». Теги не хочу, хочу именно запуск своего спецскрипта. Всё. Спасибо.

P.S. Запустить midnight commander и жать на каждой enter и потом какое-то решение ещё принимать - это в разы медленнее указанного идеального сценария.

«apt install eog-plugins» подвозит плагин «export to separate directory» - оно делает почти что я хочу, но через контекстное меню и КОПИРОВАНИЕМ, а надо именно mv

Самое гениальное решение в текущей ситуации: Delete жать на текущей картинке, она улетает в Trash каталог на том же смонтированно диске. Это почти что приемлемо и годно!

 , ,

lesopilorama
()

Samsung/Android мобила и Factory Reset и безопасность

Форум — Talks

А правда ли, что на современной андроид мобиле данные на флешке шифрованы каким-то ключом, который генерится на этапе последнего factory reset и потом в спецразделе лежит и поднимается оттуда системой при загрузке и ФС расшифровывается наподобие LUKS?

То есть, если мне надо гарантировать, чтобы выпаивание флешки не читало мои фотки, то я просто делаю factory reset, который просирает ключ и вся файловая система остаётся какая и была, просто теперь она нечитаемый мусор?

Или как оно работает - вот это вот «factory reset удаляет все пользовательские данные»? Не флешку же всю нулями затирает - это же долго на 512 гигах было бы. А гарантировать непрочтение данных ловкими выпаивателями nand flash микрухи же как-то нужно, а то паял с фенами много развелось. Так как же это работает?

 , ,

lesopilorama
()

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