LINUX.ORG.RU

Сообщения lesopilorama

 

Хочу ARM-плату с парой eth интерфейсов 100-1000 мегабит, которая вычислительно будет способна эти 100 мегабит пороутить или зашифровать.

Форум — Linux-hardware

Хочется ARM плату без FPGA, на которой есть пара eth интерфейсов и на которой можно поиграться в мамкиного создателя крутых роутеров, которые уделывают микротик. Пошифровать на лету, порасшифровывать, поискать ключевые строки в пакетах на лету на 100 мегабитах и прочее такое. На что годное с алиэкспресса обратить внимание? На гигабите заниматься извратом нет желания, достаточно тяги в 100 мегабит, например. Тяги - всмысле вычислительной. То есть, пускай при доходе до 100 мегабит реального трафика оно ещё способно полностью пробежать по всем байтикам каждого пакета, а после 100 мегабит уже пускай загибается - такое сойдёт.

Или может есть правда какой-то микротик конкретный, который на авито можно недорого купить и снести ему routerOS в пользу OpenWRT и который железно это всё потянет?

 , ,

lesopilorama
()

Культура разработки. Написание тестов на каждый пук своего кода, фаззинг и т.п. Почему это НЕНУЖНО.

Форум — Talks

Некоторые разводят срачи, мол как можно в 2025 писать без полного покрытия тестами, фаззинга и не на Rust. Стоит бурлёж до неба. Факт бурлежа указывает на неоднозначность вопросика и на отсутствие чётких формулировок у каждой из сторон, скорее всего у той, которая предлагает забить на тесты хрен.

Пришла в голову чёткая понятная формулировка НЕНУЖНОСТИ. Потому, что это как предварительная оптимизация. Аналогия абсолютно точна! Утверждать, что всё должно быть покрыто тестами и фаззингом и быть написано на rust - то же самое, что утверждать, что всё должно быть написано крайне оптимально сразу, ведь ты не знаешь решат ли твою функцию повызвать 1 млн раз в наносекунду и дадут ли потом время переделать!

И предварительно оптимизировать можно, и писать на всё тесты, но у этого есть ЦЕНА. В среднем платить её никому не усралось, ценнее выкатить фичу. Упадёт на проде - тогда и починим (убьют - тогда и приходите). Бизнесу дешевле полдня полежать, чем инвестировать в сотни кнопкодаво-часов, которые будут полгода всё обмазывать своими автоматическими технологиями доказательсва корректности всех веток кода на всех данных, а потом потерять бизнес вообще по другой причине.

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

Короче, краткий ответ: НЕНУЖНО, потому что не бесплатно.

 

lesopilorama
()

Zynq XC7z010 FPGA + linux - насколько это адская жопа по сложности, кто пробовал?

Форум — Talks

Есть платка, на борту у которой

  • zynq xc7z010 - там FPGA
  • Cortex-A9 два ядра в том же чипе
  • 512MB DDR3L памяти
  • microsd
  • ethernet
  • какая-то припаяная NAND флешка с которой грузится сейчас какой-то busybox-овы линукс.
  • куча всяких проводочков выведено из FPGA переменного назначения. Нет USB, но через эти проводочки можно заимплементить наверное, но не суть.

Есть идея поднять на этом чипе любой рандомный armbian и запустить в нём в юзерспейсе такой процесс, который сделает mmap 128 мегабайт ОЗУ и дальше самое интересное - как-то пробросить эти 128 мегабайт в FPGA и на FPGA реализовать некий сложный DSP на этом куске памяти. Сообщать FPGA о том что нужно начать обработку и от FPGA в «линукс» о том, что обработка завершена незнаю как пока, не понимаю бывают ли в этом мире какие-то прерывания между ними.

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

На C++ писать могу, линуксы на ARM-ы накатывать могу, осциллографом и паяльником даже умею пользоваться, но вот с FPGA работал последний раз на детском уровне в универе на каком-то курсаче, а тем более не трогал современные FPGA технологии и особенно их связность с линуксами.

Финально чо хочется сделать: поток IQ семплов с rtl-sdr USB-приёмника процессить на FPGA в задачах корелляции сигналов, спрятанных под уровнем шума, типа попробовать программно подетектировать LORA посылки - для этого надо запустить несколько тысяч параллельных корелляторов наверное, проц такое не потянет, FPGA вполне может, но только с внешней памятью. USB на плате не выведено, ну может по ethernet поток семплов запихаю туда. Процессить IQ-семплы с rtl-sdr на обычном железе алгоритмами на C++ пробовал, но ARM-ядра в этой задаче хватит не на особо амбициозные задачи. Заранее чувствую, что это такая невероятная жопа, что проще помоделировать свои идеи в условном матлабе и успокоиться, но всё равно прикольно было бы поиграться в FPGA хоть как-то.

 

lesopilorama
()

Вот иногда бывает нытьё про авито. А что если сделать сайт торговли-обмена старым электронным хламом чисто наш пацанский свой?

Форум — Talks

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

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

Так вот, чо если сделать чисто такую вот нищеганскую радиобарахолку без пафоса? Телефонных перекупов там щемить на взлёте, держать атмосферу чисто митинского радиорынка той поры, когда там ещё не понастроили ларьки и жёсткими НКВД методами держать именно такой дух. То есть, все сервисы сайта бесплатны, но только для реальных барахольщиков, потому что держать мощный сервак куда влезли бы все перекупы и филиалы М-Видео уже будет платно. Ну и чтобы тебя не сильно щемил РКН, личных данных там не хранить - регистрация чисто по капче и хешкоину (ну типа заставить браузер один раз при реге 10 секунд хеши матчить и потом пропускать, чтобы скриптами много не нарегали) без e-mail, SMS и прочего (просрал пароль - соболезнуем тебе, никакого восстановления, зато бесплатно). Можно в профиле будет сделать возможность задать три пароля, мастер-пароль дома на бумажке запишешь как в биткоене короч. Сила будет в некой небольшой армии модераторов, как на лоре, которые будут резать зло, пропускать добро. Все объявления в выдачу - после премодерации. Ну и наверху сижу я (ну или какой-то другой нормальный господь-вседержитель), который уже пасёт модераторов и инквизирует геев, которые пропустили порево.

Да, скромный объём модераторского корпуса добровольцев не позволит создать быстрый оперативный рынок, но тебе какая разница когда твой старый системник попадёт в поиск - щас или через неделю, он всё равно у тебя валялся 2 года в кладовке. Зато барахолка будет истино барахольной - там можно будет наплодить прям много объявлений про весь свой хлам и свести всё в картотеку. Старые динамики, провод оторванный от мышки, пробитый ломом ноут, старый павербанк. Ну и пусть картотека так лежит - через полгода может кто вблизи тебя такое захочет и хоба вечером зайдёт заберёт.

Ну и модераторскую технологию можно выстроить хитро. С кармой, баллами, белыми списками и т.п. - ну например про тебя известно, что ты не вредитель, потому что у тебя уже 10 раз покупали и ты 10 раз приносил нормальные объявы в течении года, ну значит твоя объява без модерации может идт.

С одной стороны, всё это сивый тупой бред, потому что:

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

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

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

Но с другой стороны, тренды гламуризации авито идут семимильными шагами. Например сегодня там тупо нет раздела «радиодетали». Чтобы это продать, надо долго чесать голову в какую категорию это запихнуть. Если не угадал - модеры отключат. Потом снова сиди гадай - трансформатор от телека - это в акустические системы лучше запихать или в автозапчасти или в канцелярию или в коллекционирование? Хрен разберёт. И с этими трендами лет через 10 там может вообще не остаться вариантов куда запихнуть трансформатор, авито может превратиться в вайлдберрис - нет чека на товар - пошёл нафиг.

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

 ,

lesopilorama
()

Armbian: а как там вообще организована apt-репа? Где там искать .deb пакеты?

Форум — General

https://www.armbian.com/kernel/ – вот у них тут опубликованы две репы. Хочу найти wpasupplicant-blabla-*.deb какой-нибудь. Иду сюда: https://netcup-02.armbian.com/apt/pool/main/ а там каталога с именем «w» вообще нет. Чё вообще происходит, как они там живут?

Пойти покопаться в apt install не могу, я сломал себе apt, lists я тоже дропнул, ничего не вижу из самого apt, переустанавливать нет желания, есть желание понять как оно работало.

 

lesopilorama
()

U-boot и Cubieboard. Одноплатники. SD-карты. Загрузка.

Форум — Development

Allwinner A20 процы и подобные им семейства sunxi имеют где-то внутри прошитый на заводе загрузчик BROM прямо на кристалле, который при наличии SD-слота и правильно выставленных пинах смотрит в этот SD-слот на блочное устройство по смещению 8 килобайт, читает оттуда то-ли 8, то-ли 32KB так называемого SPL-загрузчика (Secondary Program Loader) и далее тупо исполняет код оттуда. Этот SPL может быть хоть вашей инновационной OS мигающей светодиодами, хоть тупым кодом который грузит ещё 100 мегабайт с флешки и исполняет их. Но обычно SPL содержит код, который загружает по какому-то смещению лежащий там где-то дальше U-Boot с жирностью до 32 КБ, который уже умеет парсить прям настоящие ext4 (не в полном смысле монтировать и запускать журнал, а просто хотя-бы читать), этот U-Boot выковыривает из ext4 всякие нужные ему вещи из /boot, главным образом исполняет /boot/boot.cmd, грузит ядро и дальше уже передаёт управление на linux и далее завертелось.

Так вот, вопрос в том, откуда U-Boot знает что на флешке читать надо именно ext4 раздел и на этом разделе что-то там ещё находить.

Взял я исходники U-Boot с гитхаба, кросс-компилял их с помощью arm-linux-gnueabihf-gcc-12 вот таким макаром:

export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-
make Cubieboard2_defconfig
make -j2

и получил файлик

u-boot-sunxi-with-spl.bin

который закинул на SD-карту таким макаром:

sudo dd if=~/src/u-boot/u-boot-sunxi-with-spl.bin of=/dev/sda bs=1024 seek=8

На данной SD-карте 1 раздел ext4, в которой лежит корень от armbian покоцаный, но настроенный и рабочий. Воткнул это в cubieboard2 железку и она успешно загрузилась.

Я вот не пойму как этот U-Boot понял, что надо парсить именно ext4 FS на этой флешке? Я не нашёл в каких конфигах при сборке у него это было явно записано, в Cubieboard2_defconfig например этого нет.

Там в U-Boot какое-то тупое эвристическое сканирование-перебор всех разделов с попыткой их попарсить и поискать /boot/boot.scr?

 , ,

lesopilorama
()

Взять Armbian и вырезать всё лишнее. Работа на одноплатнике.

Форум — Development

Хочется взять armbian последний-предпоследний, загрузиться с него и на живой системе начать вырезать всякое ненужно. Цель - получить минималистичный дистр, наиболее быстро грузящийся с SD карты на одноплатнике, который ничем особо не занят, кроме отправки бекапов куда-то раз в час и кое-каких фоток с камер видеонаблюдения. Девайс стоит на полке в прихожей, его не трогают.

Хочется оставить:

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

  • wi-fi дрова и в принципе «всю сеть», но без NetworkManager, а через /etc/interfaces + /etc/wpa_supplicant + ifup + ifdown - такой стиль работы с сетью

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

  • родной apt, чтобы могло что-то установить-проапдейтить из armbian репы родной

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

Или какой алгоритм действий - смотрим на каждый стартанувший сервис, гуглим нафиг он нужен и режем его? Но это мне не даст возможности сократить объём хлама на SD карте, который там может лежать просто втихаря незамеченным.

Я тут нашёл контрольную плату от биткоино-майнера какого-то, там на борту zynq-ПЛИС+ARM два ядра, 512мб ОЗУ и флешка какая-то. Включил, оно заргузилось, по dhcp адрес получило, root по ssh пустило - а там

BusyBox v1.25.1 () built-in shell (ash)

   ____            _ _              ______   _____
  |  _ \          (_|_)            /  __  \ /  ___|
  | |_) |_ __ __ _ _ _ _ __  ___  |  |  |  |  (__
  |  _ <| '__/ _` | | | '_ \/ __| |  |  |  |\__  \
  | |_) | | | (_| | | | | | \__ \ |  |__|  |___)  |
  |____/|_|  \__,_|_|_|_| |_|___/  \______/______/  by Braiins for Slush Pool
 -----------------------------------------------------------------------------
  2022-02-18-0-b63a6c87-22.02-plus
 -----------------------------------------------------------------------------

Круто это конечно, но до такой степени я armbian врядли урежу да и apt там никакого нет встроенного, вдруг захочется какие-то либы поставить libusb-dev например…

Корень у меня вообще как RO монтируется и я живу в рамдиске, чтобы SD-карту не портить, да и как-то привычнее и стабильнее - мало ли какая тварь в корне что испортит, а так хоть гарантия что ты сегодня загрузился с того же, с чем в чера.

 ,

lesopilorama
()

Качественная запись звука на 2 встроенных MEMS-микрофона Android-смартфона.

Форум — Talks

Есть в нынешних телефонах по 2 и более очень хороших MEMS-микрофона в разных концах корпуса, что позволяет довольно неплохо записывать стереозвук. SONY PCM-D50 с собой уже можно не таскать в большинстве случаев, птичку на дереве записать технически можно достаточно неплохо, употребимо в видеопродакшене и музыкальном творчестве любой степени профессиональности в целом - мужик со спектроанализатором заметит что у тебя на 16.5 кгц обрезано всё и дырки в спектре от пожатия, но никто из нормальных людей в любых наушниках это не услышит. Для собирании семплов для электронной музыки, собирания звуков для видеофильмов и т.п. уровень уже точно преодолён. Я даже кайфую от качества записи «тишины» в парке в дефолтном самсунговом «диктофоне» с выставленным «stereo/256kbps» на топовых самсунгах - очень дофига шороху слышно вкруг. Оперативно телефон всегда с собой, а SONY PCM-D50 оперативно не всегда с собой, поэтому таки телефон. Проблема телефона только в отсутствии ветрозащиты, по качеству звукозаписи уже происходит офигение конечно.

Проблема в софте. Большинство софта берёт какой-то дефолтный input «camcorder» и как-то пожато в AAC 256 kbps пишет в m4a. С включенным AGC, с включенным авто-эквалайзером, который глушит НЧ при задувании ветра в микрофон и прочее такое иногда встречается. А хочется софтину, которая получает поток с этих MEMS-микрофонов как можно более сырой с отключенным авторегулятором уровня, с отключенными авто-эквалайзерами и жмёт само через libopus с указанным битрейтом в два канала, а юзеру выдан регулятор усиления.

Есть чё подобное из софта у кого-то на примете? Спасибо.

 , , , ,

lesopilorama
()

Читал про UEFI, много думал.

Форум — Talks

Господа, читайте и изучайте UEFI, если всё ещё не. Это базовая база нынче!

Я когда-то писал на ассемблере в школе-универе для развлечения бут-сектора для дискет и HDD, MBR это называлось - это такой 512-байтный самый первый сектор диска, который автоматически считывался BIOS на x86 в память по фиксированному адресу и управление туда передавали. У меня был ThinkPad 755C для развлечений. Далее ты всё должен был делать сам. В 512-байтный код надо было запихнуть самодельный примитивный парсер корня FAT12/FAT32, чтобы он нашёл в корне ФС некий условный файл /kernel.bin и передал туда управление - это твой условной grub или вообще сразу же ядро самописной маленькой OS - я писал детскую OS, которая переводила cpu в protected mode и умела параллельные задачи запускать - мигание какой-то лампочкой клавиатуры и считывание каких-то байтиков с неё и какой-то крутящийся курсор. Это был мой kernel.bin бугага.

А нынче эти времена поменялись. Теперь нет никакого BIOS - точнее теперь эту сущность стали называть просто бездушно firmware и это firmware должно соответствовать спецификации UEFI. UEFI - это стандарт внешних и (где-то внутренних) признаков, которые этот BIOS должен проявлять. Раньше как было - BIOS на каждой матери был устроен как захотят, главное чтобы умел int 10h (видео), int 13h (диск), int 16h (клавиатура) и какие-то другие программные прерывания обрабатывать. Ну и ещё было выражение «зайти в BIOS» - это какая-то F1 клавиша и синий экран с менюшками и там можно было save changed and exit - но такой фигни могло и не быть и BIOS всё равно у тебя был. Внутри этих прерываний был чёрный ящик тащемта и работало оно только в 16-bit real mode. Теперь всё это выкинуто нахер. UEFI - это прям как маленькая OS, которая изначально работает в protected mode, там есть концепции драйверов, даже приложений. Есть разные фазы загрузки всего. Оно умеет парсить FAT32 и доставать оттуда загрузчики и приложения и исполнять всё это.

UEFI умеет парсить FAT32, в которой лежат файлики .efi в формате windows PE (MZ в начале файла, микрософт оставила свой след, бугага). В FAT32 есть разные папочки, в них разные .efi файлики, часть из которых имеет фиксированные имена и содержит дефолтные загрузчики и загрузчик этой вашей убунты оформлен как /boot/efi/EFI/ubuntu/grubx64.efi а сама /boot/efi есть точка монтирования vfat-раздела на диске, и этот раздел «осознаётся» UEFI firmware на старте системы.

Ещё у UEFI есть стандарт на хранение кучи key=value переменных - «efivars» которые открыты на чтение-запись, часть из которых имеет фиксированные имена и форматы, а часть пользовательские, можно даже туда телефон бабушки положить и он будет лежать во флешке на матери. Эти переменные можно в линуксах увидеть тут: ls -l /sys/firmware/efi/efivars - оно невозбранно смонтировано как type efivars. В этих переменных лежит и порядок загрузки с разных разделов и ещё всякой дофига фигни, а GUI вашего BIOS нынче просто просматривет эти переменные, а не хранит «настройки BIOS» в каком-то своём формате в чёрном ящике.

Вместо BIOS-прерываний типа int 16h теперь какая-то там системная таблица протоколов, в которой можно найти EFI_SIMPLE_TEXT_INPUT_PROTOCOL и поюзать клавиатуру.

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

Короче господа, изучайте UEFI чтобы не быть чертилой. Это нечто неиллюзорно большое, куда АНБ конечно же напихала своих драйверов и приложений и пока ваш ноут грузится, он может успеть и в интернет сходить, но хорошая новость может быть в том, что UEFI позволяет вам там это выключить или поменять логотип вашего тынкпада на загрузке.

 , ,

lesopilorama
()

Электронщики и обладатели 3D-принтеров, давайте намутим мелкий бизнесок на аккумуляторах для раций. Спрос есть.

Форум — Talks

Суть: ко многим популярным рациям не найти аккумов, выполненных как модуль из пары сменных 18650 с зарядкой по USB-C, а очень надо.

Нужно взять оригинальный аккум, содрать размеры «стыковой» части, смоделировать корпус аккума, который будет стыковаться в рацию как родной (скиллы умения пользоваться штангеном и 3d-воображением) и иметь внутри пару сменных 18650 (без крышки, жёстко на винтах) и надёжно оформленный порт USB-C и вариация TC4056A в как зарядник.

Например, есть популярные рации Vertex Standard VX-231 или vx-120 или vs-261 и подобное. Аккумы, которые с ними продаются или которые можно найти в продаже сейчас, рассчитаны на зарядный стакан. Стакан удобен и прост в максимально хардкорных условиях - воткнул и забыл - нефтяник в масляных руках не будет тыкать usb-c с напиханной в него землёй в порт. Но эти условия далеко не всегда такие и полно пользователей этой техники во вполне офисных условиях или походах без экстрима, когда одним powerbank ты можешь зарядить и телефон и это. Как и на посту охраны в «пятёрочке» у охранника на столе валяется usb-c шнурок для зарядки мобилы. Да, штатные аккумы не Li-Ion, а Ni-MH, чтобы не бояться мороза. Но мороз часто нафиг не интересен и много штатных уже переходят на li-ion, но всё ещё жрут стакан.

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

Основные хитрые нюансы:

  1. Снять размеры с сабжа и смоделировать что-то, что надёжно защёлкивается в рацию. Держится оно железным крючком-защёлкой, как крышка в старых ThinkPad. Если вы в Питере, могу лично отдать на изучение.

  2. USB-порт в модели должен быть хорошо запроектирован, чтобы не провалился внутрь и все кабели подходили.

  3. Рация питается формально от 7.4 V. Ворочать DC-DC понижайку с 8.4 до 7.4 - плохо, потому что ШИМ неплохо нашумит в радиотракт - пробовали; экранировать - треш и гимор-какой-то. Можно дедовским способом ронять напряжение диодами. Короче, тут нужно микро-исследование. Неизвестно есть ли у рации запас прочности до 8.4 из коробки, надо читать форумы.

В общем, смысл этого поста в том, что

  1. Дофига кому такое надо.
  2. Некоторые такое печатают и продают за пару тыр. Но не под те модели, что нужно лично мне - я бы побыл первым покупаном.
  3. Пара тыр - это заметная маржа за небольшую кучку PETG-пластика, разьём, шурупы и пару аккумов.
  4. Если у вас будет проект и налаженный техпроцесс сборки этого девайса, то через авито у вас будут некоторые продажи достаточно продолжительное время, потому что раций этих развелось достаточно дофига. Не говоря уже про всякие баофенги. Сложность в том, что каждая новая модель рации - всё сначала, замеры и тесты с нуля. Но чем для большего количества разных популярных моделей вы сможете предложить решение, тем у вас чаще продажи. Спрос на такое подыхать пока не собирается.

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

 , , ,

lesopilorama
()

html canvas, линии, координаты, пиксельные буферы, OffscreenCanvas и прочее безумие.

Форум — Development
  1. Известно, что <canvas> 2d context считает центром самого первого пикселя координату (0.5, 0.5), потому что координаты он считает не как индексы пикселей, а как координаты, мать её, сетки, между которыми пиксели стоят. Координата (0, 0) обозначает не самый верхний левый пиксель, а верхнюю-левую вершину этого пикселя. Поэтому если ты пустил линию (0, 0, 10, 0), то получишь что-то размытое антиалиасингом серое между двумя рядами пикселями. Причём, верхнюю половину размытой линии ты не увидишь, у ибо она будет тянуться до -0.5, а экран у тебя от 0. Некоторые делают context.translate(0.5, 0.5) и так живут, а некоторые + 0.5 везде пишут. Дурка, короче, но не суть.

  2. Но есть ещё OffscreenCanvas, чтобы в памяти рисовать спрайты (например), быстро рисуемые на другом канвасе.

Теперь зацените прикол:

  1. Выключаем на главном наэкранном канвасе всякий там context.stanslate(0.5, 0.5) и рисуем линию по целочисленным координатам. Ожидаемо видим размытую хрень. Ладно, понятно.

  2. Теперь, берём и то же самое рисуем на OffscreenCanvas, ожидая что в памяти в пиксельный буфер будут отрендерены такие же размытые линии. Далее методом context.drawImage(my_offscreen_canvas) пихаем нарисованное на нашем OffscreenCanvas главный канвас. И хоба, никакого размытия мы не видим, все линии чоткие пацанские.

Как так-то?

 ,

lesopilorama
()

Поверхностный вопрос к знатокам Lanczos даунскейла картинок.

Форум — Development

Попробовал тут реализовать на сишечке lanczos3 и получается вот такое:

оригинал: http://0x0.st/KTx6.png

результат: http://0x0.st/KTxE.jpg

Вопрос пока без исходников - правда ли что такого мерзского алиасинга в нормально реализованном lanczos3 даже близко быть не должно? Артефакты сжатия джипегом во второй картинке тоже есть, но основные претензии к этим ссаным лесенкам на тонких линиях. Если кто реализовывал lanczos-based downsampling в обозримом прошлом, можете примерно подсказать отвал жопы в каком месте мог привести к подобным приколам?

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

UPDATE Как обычно был обманут DeepSeek. Оно мне в качестве примера выдало некий кусок кода, который вот так с артефактами работал, на первый взгляд выглядело годно. Но оказалось, что оно забыло увеличить размер ядра. То есть, идеально-математическое представление ядра свёртки 3*3 в физической реализации для конкретного ratio ресайза не растягивается как нужно. Условно говоря, вам надо свернуть полоску пикселей в один пиксель, но длина этой полоски не должна быть константной в 6 пикселей, а должна растянуться плавно на «сколько нужно» если ratio больше единицы. Так-то. Короче, забыл подумать не-жопой! После допила напильником заработало идеально, прям цимес! Дипсиком я пользовался для уточнения некоторых физических смыслов, было полезно, но когда дошло до реального кода у него жопа отвалилась.

 ,

lesopilorama
()

WebAssembly - соединение двух миров. Пишем на сишечке, кимпиляем clang, исполняем в вебчике.

Форум — Talks

Советую осилить эту технологию тем, что считает что веб для даунов, а настоящие суровые челябинские мужики пишут только на си. Можно кидаться мегабайтами байтиков из JS в сишечку, делать сложные вычисления и пихать результат обратно. Можно невозбранно таскать огромные массивы данных туда-сюда много раз в секунду, например полностью перерисовывать канвас быстрее чем за движение мыши. Фотошопные сложные кисти так реализуются без проблем, прям со смешиваним в сишечке буферов и прозрачностями. В особо упоротых случаях можно реализовывать чуть более чем всю логику веб-приложенечки в сях или крестах, а из JS только окончательные инструкции «чо делать» забирать. 5 мегабайтный джипег и айпхона, породивший ~51 мб сырых пикселей в памяти JS, улетел в webasm и преобразовался там в чёрно-белую фотку где-то за 35.9 мсек. При этом сам jpeg в сырые пиксели в js вызовом window.createImageBitmap() конвертился 125 мс.

В современных JS есть ещё API для воспроизведения сырых семплов звука. Я знал мужика, который в 2005 году умел в JS из памяти .wav файлы порождать, а щас-то вообще жесть содомия начнётся!

Безопасность: плоская модель памяти. Нет malloc()/free(), просто плоский шмат памяти от нулевого смещения и живи там. Нельзя увеличить память изнутри wasm-машины. Все указатели - смещения от этого нуля. Нет никой кучи, точнее этот шмат и есть куча и ты вечно в ней живёшь. Размер этого шмата можно увеличить извне wasm-машины, из того JS-кода, который машину запускает и использует. Можно даже реализовать в wasm функцию, которую вызывать из JS и которая будет говорить хочет ли wasm увеличить себе память или нет, а js будет подкручивать рубильник. Все аллокаторы - сам реализуй или линкуйся с каким-то malloc(), но он будет по-сути резать эту кучу на куски и тогда тебе в бинарник просто накладут всякого кала типа стандартных библиотек и будет не цимес. А цимес-то делать бинарники на пару килобайт, реализуя только нужную обработку байтиков. Аллокатор обычно не нужен - назаписывал что-то там в памяти и выкинул всё в конце.

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

 

lesopilorama
()

Максимизация текстовости загрузки ядра и системы и сокращение времени.

Форум — Talks

ThinkPad T480. Иногда врубаешь (обычно конечно месяцами не вырубается и по гибернациям сидит), а там чёрный экран по 6 секунд чё-то делает, потом хоба чё-то молча вжух-вжух там провернулось и ты будто бы видишь dmesg не с самого начала. И пингвины не нарисованы сверху как в старые добрые времена. В общем, посоветуйте куда покопать, чтобы.

  1. Грузилось всё это максимально быстро без е**ли вола на какие-то молчаливые паузы.

  2. Было максимально динамично текстово, чтобы простыня ядра с самого начала лилась по экрану и пингвины присутствовали.

Ubuntu. Ну я их не отличаю, дебиан он и в африке дебиан, скажем так. Просто плохо шарю в загрузчиках, отошёл как-то от админства. Спасибо.

 ,

lesopilorama
()

А посоветуйте наушники со сменным проводом вставные

Форум — Talks

Возможно арматурные заодно, но помню в них баса не было, а навороченные дорого. Звук хочется иметь типа как у комплектных от samsung galaxy note 9, но чтобы провод был на разьемах сменный заменяемый в случае истирания, но из разьемов при этом не выпадал.

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

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

UPDATE

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

ТРЕД не ставит задачу срачь про звук. Звук какой мне надо я уже сказал - типа того что есть в поделии под названием «Samsung AKG EO-IG955» - кладётся в коробку к топовым телепхонам samsung.

ТРЕД презирает блютус наушники, не потому что блютус что-то там искажает - нет, это отличная технология, а потому что я не хочу иметь что-то, что надо заряжать - я и телефон-то забываю зарядить, а тут ещё одна хрень! Тем более, в мелких наушниках такие слабые аккумуляторы умирающие через год работы, что грустно будет жить. А большие наушники мне не комфортны физически - одна мысль о том, что на тебе будет какая-то крупная хрень, которой ты можешь зацепиться об забор, когда будешь через него перелазить, убегая от гопников и её нельзя свернуть и положить в карман джинсов расстраивает меня до оцепенения, я даже рюкзак никогда не ношу поэтому. Так-то. С блютусом иметь дело всё равно надо, потому что в современных топовых телефонах с хорошей камерой (наиболее нужная вещь в телефоне для меня) уже нет дырок под наушники и эта задача решается всякими дешёвыми fiio BTR11 за тыщу рублей или аналогами за 500 с тем же упехом. То есть, какая-то тупая хрень, которую НАДО ЗАРЯЖАТЬ уже вошла в жизнь и это грустно, но она хотя-бы заменяема и эти наушники хотя-бы можно переткнуть в ноут из неё.

 

lesopilorama
()

Безопасность хаты. Скрытый электрозамок с выдвижными ригелями, управляемый ардуиной или прочей хренотенью.

Форум — Talks

Посоветуйте скрытый электрозамок с выдвижными ригелями⁠⁠. Интересует только сам исполнительный механизм, а не модное законченное решение с модной ручкой и кнопочками. Кнопочек не будет и наружу торчать ничего тоже.

Проблематика вопроса:

  • примерно любой квартирный механический замок, даже твой любимый итальянский за 50 тыр, умельцы открывают тихо без шума за 20 секунд. Смотрите ютубчик. Кроме отмычек уже напридумывано всего такого, что просто засунул и покачал и оно открылось. Давно уже байки ходят, что все эти ваши железные ключи - только против пьяных соседей.

  • есть редкие малоизвестные замки с очень хитровы**ными ключами (змейка, магнит, всякие погремушки), но страдает надёжность самих ключей или возможность их копирования и вообще не факт, что злоумышленник не видел такой и не позучал. Интересными наверное являются магнитные ключи, у которых внешняя поверхность просто плоская без всяких бороздок и дырочек, а физически представляют собой серию по-разному ориентированных магнитных полей, поворачивающих набор ответных крутилочек внутри замка в нужное положение. Но они не переживут внезапно попадание в сильное ЭМ поле или в высокую температуру и т.п. и вообще, по меркам современной криптухи, маловато комбинаций. Опять же, возможно создание физической копии с электромагнитиками внутри, на которых ардуинка выставляет разные поля брутфорсом.

  • становится совершенно очевидно, что единственным нормальным неломаемым всякими рукастыми умельцами (в наколках) средством является математика/криптуха/алгоритм/пароль. pow(2,256) комбинаций ещё ни один медвежатник не перебрал. Интерфейс замком должен быть в виде как можно менее отслеживаемого потока битов, а не физический. Тут скажут, что «все эти ваши электронные замки имеют уязвимости и их тоже научатся ломать», но как раз никакого электронного замка не будет. Всмысле, не будет известного, будет самодельная ардуинная херня - хрен ты узнаешь где у неё баги и уязвимости. Физический интерфейс - начиная с банальной Mifare карты/брелка, защищённой от копирования - это крайне удобно (пикнул - вошёл) и максимально безопасно (отпечатки могут не сработать, если палец в штукатурке, а на кодовых кнопках остаются потёртости, выдавая комбинацию или камера-жучок недалеко от панели ввода, а перехватить обмен с mifare сильно сложнее, если не лепить фальш-панель, что нереально при монтаже считывателя вплотную под передней поверхностью двери). Ясен хрен, секретности можно добавлять и комбинировать, это не тема разговора.

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

  • центральным местом во всей этой теме является, собственно, механический исполнительный девайс, выдвигающий ригеля. Это такая штука, которая выглядит, плавает и крякает как обычный замок, но дырки для ключа нет. Я уже понял, что он должен быть с шаговым двигателем, потому что при повреждении одной обмотки в нём, он всё равно работает, а в случае с соленоидом происходит полный отказ. Хотя соленоида можно поставить три дублирующихся. Плюс, есть нюансы монтажа - очень грустно, если ты не смог попасть в хату и пришлось пилить дверь, потому что перетёрся проводок в замке. Ещё, конечно, непонятно как эту хрень смазывать. Консистентная смазка, конечно, прослужит десятки лет, но всё же…

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

Управляющий сигнал на данный девайс будет подаваться от запараллеленных продублированных решающих систем. Грубо говоря, несколько разных MOSFET ключей, растущих из разных ардуин, любой из которых может открыть замок. Один нормальный, другой резервный, третий тоже резервный, чтобы по хитрой SMS-комбинации хату открыть если у основного жопа отсохла.

Спасибо.

P.S. Дед слесарем был на ЧТЗ, шарил в металлообработке. Замок в той хате был самодельный с хитрым ключом, но рассчитано такое было только на того, кто не видел ключа и не снял размеры его частей. Но вот электронные комбинации всё же гораздо жощще.

P.P.S. Ещё раз - «умные» замки с озона не интересуют. Там полный комплект всего «установил и забыл». Хрен знает какие там баги и вообще там навеное есть заводской пароль для китайского Моссада типа IDDQD и любая хата открывается. Интересует только сам исполнительный механизм, причём достаточно брутальный и суровый, ригелей на 5 и тяжелый как твоя мамка.

 , ,

lesopilorama
()

Посоветуйте какую-то мать и проц для сервера видеонаблюдения.

Форум — Talks

Нашёл пустой корпус JONSBO rm2: Mid-Tower, Micro-ATX, Mini-ITX, Standard-ATX. Подумал сервер видеонаблюдения собрать для дома, записывать несколько стримов с H.265 4K камер, например. С софтовой частью как-нибудь разберусь, нужны советы по железу, а именно по процу и матери. Хочется найти на авито что-то недорогое, потому что всё новое в продаже в основном рассчитано на бешеных лютых геймеров, а нужно что-то не такое упоротое. И ещё интересен проц, который мало жрёт. Ну это как если бы при выборе между ноутбучными процами я бы выбрал intel с индексом U на конец. Но intel atom - слишком детский, да и сдох вроде давно. От матери наверное нужна возможность воткнуть два sata диска, но такое наверное есть где угодно, то есть особых требований нет, кроме «дёшево / надёжно / просто».

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

 , ,

lesopilorama
()

Стартап. Рубка бабла. Пет-проджект. Телеграм-боты.

Форум — Talks

Есть самодельный C++ движок для написания сетевых приложений с корутинами и прочими там приколами. Юзал его для разных пет-проджектов в последние 10 лет. В последнее время было интересно перепилить свой старый Python-телеграм-бот на этот С++ движок и постепенно это получилось, в результате стало как-то няшнее и железобетоннее что-ли.

Появилось две идеи нарубить бабла.

  1. Сделать некий такой лёгкий сайтик, куда клиент кидает telegram API token своего бота, который он создал в botfather только что и далее в неком конструкторе создаёт какие-то менюшки и ветвления между ними. В этом конструкторе будут такие шаги, как set(key, value), get(key) и прочее простейшее. В результате ты сможешь пилить простые логики для своих телеграм-ботов, а потом смотреть чё там понажимали люди, например заказ сделали в твоём малом бизнеске и телефон оставили чтобы ты перезвонил.

  2. Самому делать ботов, общаясь с заказчиком. Вывесить объяву, мол, клепаю ботов, 5 тыр за штуку в среднем и делать такие заказики. Раньше сайты клепали, а я ботов буду клепать на своём фреймворке и запускать на своей виртуалке за 300 руб. Абонентская плата рублей 100-200 в месяц с чувака. Один процесс, наблюдающий сразу за рядом ботов будет жрать крайне мало ресурсов, на виртуалку за 300 рублей я могу упихать достаточно много ботов разной сложности, профит должен ощутиться.

Чо думаете. Делали кому-то телеграм ботов на заказ? Сколько бабла нарубили? Ну и поделитесь, после какой доходности налоговая начинает звонить.

А ещё идея 3. Бросить ботов для телеграма и писать ботов для московской биржи или через tinkoff-инвестиции API. Чтобы акции ФосАгро и Яндекса туда-сюда продавало в каком-то ленивом режиме. Не HFT, просто какая-то такая хренотень - да-да, знаю, народ целые диссеры пишет с дифурами на эту тему, просто так тебя там высушат, но вот будет повод заняться ML.

 

lesopilorama
()

Посоветуйте ThinkPad с Авито на достаточно свежем проце, матрице 2...4K IPS и 15...17"?

Форум — Talks

Сабж. Сижу на T14 i7-1260P / 32G / 4K IPS - хочется такого же приблизительно, но экран побольше. Чо бывает? Спасибушко.

Пока что вижу только такое: https://www.avito.ru/sankt-peterburg/noutbuki/thinkpad_p1_gen_7_ips_165h64rtx_3000_ida1121_7390448832?context=H4sIAAAAAAAA_wE_AMD_YToyOntzOjEzOiJsb2NhbFByaW9yaXR5IjtiOjE7czoxOiJ4IjtzOjE2OiI1d20xZlpWUUNwNlNpR2JUIjt96veWiD8AAAA но чё-то 250 тыр не хочется инвестировать в железку, это целый квадратный метр недвиги!

 

lesopilorama
()

Стоит ли пойти работать туда, где пилят форк PostgreSQL на Си, если до этого я всю жизнь просиживал жопу C++20 разрабом в яндексе?

Форум — Talks

Яндекс или его аналог создаёт зону комфорта с кофепоинтами, когда не нужно интересоваться тем, что происходит в мире, потому что всё внутри написано на своих костылях и если чего-то не хватает, то эт могут написать. Вокруг ходят самоуверенные гении, которых сюда соизволили взять, потому что только они смогли прорешать весь литкод. Эффектно создаётся ощущение богоизбранности, поэтому когда хочется уволиться, тебя останавливает мысль, что ты лох, раз решил уйти из элитного клуба! Некоторым даже платят хорошую зарплату, которой хватает на недвигу (со скидками), особенно если ты пробился в тимлиды. Есть много творчества - пишутся велосипеды с использованием современных компиляторов, можно реализовать гениальную идею - пофиг, что она где-то уже сделана или что это страшное ненужно и велосипед, оправдывающий себя только в данном проекте на данной нагрузке. Минус в том, что нигде больше на рынке знание этих костылей не оценят и выходя оттуда ты не эксперт примерно ни по чему, кроме своих ссаных высоконагруженных костылей.

Но если ты пошёл пилить какой-то форк PostgreSQL, то никакого C++ тебе не будет, будет старый сишный легаси специфический код с собственными механизмами аллокации или исключений и логирований. Это всё не плохо, в яндексе оно тоже всё свое, но там хотя-бы оно завёрнуто в конструкторы-деструкторы и ты можешь что-то творить как настойщий гений художник-я-так-вижу! В постгресе творчества и РАЗРАБОТКИ как таковой скорее всего не будет - MVCC придумали давно до тебя, разрабатывать новые оптимизаторы тебе тоже никто не даст, не до этого, а вот мёржить новую версию постгреса в свой форк ты будешь полгода как обезъяна и тут нужно иметь просто каменную жопу и отсутствие всяких амбиций. В оставшееся время ты будешь фиксить какие-то баги с забытыми указателями, чтобы распутать которые ты будешь сидеть в gdb как тварь неделю. Зато возможно ты станешь экспертом мирового уровня по внутренностям постгреса и в какой-то момент тебя возьмут в перспективный HFT-криптостартап за 800к/наносек, чтобы запилить свой перспективный форк, поддерживающий какой-то особый тип таблиц, но тебе к тому времени будет уже 72 года. Либо ты сможешь после этого уйти куда-то экспертом по оптимизации производительности популярного во всём мире движка СУБД, видя движок насквозь и понимая во что скомпилировался запрос?

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

 

lesopilorama
()

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