LINUX.ORG.RU

Сообщения Legioner

 

Сабж

11010000 10100001 00100000 11010000 10110100 11010000 10111101 11010000
10110101 11010000 10111100 00100000 11010000 10111111 11010001 10000000
11010000 10111110 11010000 10110011 11010001 10000000 11010000 10110000
11010000 10111100 11010000 10111100 11010000 10111000 11010001 10000001
11010001 10000010 11010000 10110000 00100001

 цифры

Legioner
()

Что вас раздражает в фреймворках?

Сразу скажу, что пишу про Java. Но интересно и про другое почитать.

Меня раздражают:

  1. Какие-то свои плагины для сборки. Например id 'org.springframework.boot' version '1.4.3.RELEASE'.

  2. Дико бесят какие-то свои выдуманные программки для управления проектом. Вот читаю про Micronaut: mn create-app example.micronaut.micronautguide --build=maven --lang=java и уже начинаю раздражаться.

  3. Магия. Вообще сложно найти фреймворк для Java без магии. Это одна из причин, по которым я долго пользовался спрингом без бута. Там есть возможность писать код почти без магии. Мне нужно, чтобы я написать main, чтобы я там всё сам сконфигурировал и запустил. Никаких автоматических сканирований всех моих классов в проекте. Ничего такого. Всё должно идти из main-а. Весь граф вызовов и прочего должен находиться через Find Usages. Каждый класс должен создаваться через конструктор, или через фабрику, но не через магию.

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

К примеру я пишу interface PersonMapper { PersonDto toDto(PersonDb db); } и использую его в своём коде, а mapstruct генерирует его реализацию, которая делает очевидные вещи. Это в принципе максимум кодогенерации, которую я выношу.

Ломбок должен сдохнуть.

 , ,

Legioner
()

Fedora 34 + Wayland + Discord + Screen Share + Intel GPU

Нет ли какого-то неочевидного секрета, как подружить сабж друг с другом?

Если запускать дискорд из браузера, то всё работает наполовину. Можно транслировать конкретное приложение. Но приложения видны не все. И мне показалось, что из хрома и фаерфокса видны разные приложения, но возможно я тут перепутал что-то.

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

Если переключить сессию в X11, то нативное приложение работает без проблем, по крайней мере на первый взгляд. Но я за прогресс и инклюзивность, поэтому хочу по возможности пользоваться Wayland-ом.

 , ,

Legioner
()

нано-ОС

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

Собственно интересно - не упоролся ли кто-то сделать условно юзабельную ОС для таких слабых процессоров?

Понятно, что оно будет жутко тормозить, ну и ладно.

 ,

Legioner
()

Как сделать ноутбук помедленней?

Подсунули мне какой-то дико быстрый ноутбук. Asus ExpertBook с процессором i7-1165G7. На нём 4 ядра, да ещё и с гипертредингом. В общем всё это счастье завывает при малейшей нагрузке. Причём я даже не пойму какой нагрузке, в System Monitor процессоры особо и не загружены. Мне по сути такая скорость и не нужна, я бы предпочёл тихую медленную работу, мне торопиться некуда. В Dell в биосе были настройки на холодный процессор, я их ставил и вроде такого не наблюдалось. А тут биос какой-то мега-куцый, настроек вообще 0 и ничего подобного в нём нет. Есть ли какие-то способы задушить процессор, чтобы он не грелся и не жужжал?

 

Legioner
()

Самая дешёвая железка с Ethernet, WiFi, Bluetooth, 4G и каким-никаким линуксом

Посоветуйте сабж. Нужно, чтобы хватало места на диске и в памяти для некоторого кастомного софта. Особая скорость не нужна, но какой-то линукс желательно, чтобы крутился. Естественно с полным рутом и тд. Работать будет 24/7 в ответственном месте, падать, зависать и тд не должно, в крайнем случае с вачдогом.

Пока планирую на распберри с SIM Hat это делать, но говорят, он для продакшна не подходит, я так и не понял, почему, но другие варианты интересны. По цене надо, чтобы было недорого, в районе 5-6 тысяч рублей и заказывать можно было сколько угодно устройств.

 

Legioner
()

Насколько «заточен» Raspbian под Raspberri Pi?

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

 ,

Legioner
()

Web IDE это будущее?

Есть такая штука, как GitHub CodeSpaces - щёлкаешь и тебе любой проект из гитхаба прям в браузере открывается в докер-контейнере запущенный удалённо (в VS Code). На твоём ноутбуке кроме браузера вообще ничего не нужно устанавливать. Тут мужик микроконтролер программирует через эту штуковину. Там, правда, через Azure как-то соединяется, я не очень понял всю эту механерию, но в теории можно через WebUSB с программатором напрямую соединяться и тут же прошивать без всяких сервисов.

Вспоминаю, как 15 лет назад я эклипс настраивал. Там целая чёрная магия была, чтобы SVN плагин поставить правильно. Очень сложно было. Вебсферу водрузить на компьютер, чтобы можно было локально разрабатывать софт под неё.

Даже сейчас проект настраивать бывает нетривиально.

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

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

Я это всё пишу к тому, что я поклонник Jetbrains Idea. Но всё-таки в браузере она вряд ли когда-то заработает. В данный момент идея точно не хуже вскода, я считаю, что она во многих отношениях лучше. Но, наверное, вскод достаточно хорош и это «лучше» не так уж и критично. Как вы думаете - стоит перелезать на этот самый вскод в рассчёте на то, что за этими Web IDE будущее? Или это так, баловство.

 , github codespaces, , ,

Legioner
()

Порекомендую хорошую книгу по электронике

Practical Electronics for Inventors. Купил, читаю и очень доволен. На английском языке. Вроде есть русское издание от BHV, его не читал. Объясняется очень доступно, без заумностей. Но в то же время с нужными формулами, есть разделы, где объясняется физика явлений для желающих. Английский довольно простой, я его знаю так себе, но проблем с чтением не возникло.

Оно продаётся в электронном виде, если денег жалко, наверняка есть рипы на торрентах. У меня версия с DRM, к сожалению поделиться не смогу.

 , ,

Legioner
()

Можно ли собирать электричество из радиоволн для микроконтролера

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

 ,

Legioner
()

RAM-only система

Установка федоры с GUI занимает несколько гигабайтов. Современный консьюмерский процессор поддерживает 64 ГБ оперативы и её стоимость в общем-то совсем не запредельная. Также современные ноутбуки неплохо работают в режиме suspend.

Т.е. в целом ничего экстраординарного в том, чтобы установить дистрибутив на RAMdisk и работать без жёсткого диска нет, все технологии вполне доступны.

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

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

Из плюсов - будет максимально возможная скорость работы с диском. Из минусов - диск таки будет довольно небольшой. Если у нас 64 GB оперативной памяти, то больше 48 GB на диск отдавать уже будет затруднительно.

Следующая остановка - установка ОС в кеш процессора. В тредриппере 256 MB L3 кеша. На федору с графикой не хватит, но на что-то миниатюрное и консольное, думаю, должно хватить.

 ,

Legioner
()

От ардуины к ассемблеру

Хочу разобраться с микроконтролерами. Не прям на каком-то серьёзном уровне, но чтобы писать любой код, который мне понадобится и знать, где что посмотреть. Сейчас про них особо ничего не знаю кроме общей эрудиции. Знаю C, сто лет назад знал 8086 язык ассемблера. Конечная цель - писать на ассемблере под STM32 (привет, ув. Assembler). Т.е. не факт, что я буду именно писать на ассемблере конечный продукт, в целом мне хотелось бы писать на Rust, но для этого считаю, что надо уметь писать на ассемблере в первую очередь, чтобы быть способным разобраться. Попутно научиться читать датащиты.

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

В чём смысл темы - хочу понять примерный путь освоения всего этого.

Пока я зашёл в местный магазинчик и купил там набор ардуины с кучей датчиков и на всякий случай Raspberri Pi. Планирую поставить Arduino IDE и потыкать привет-миры по обучалкам, чтобы хотя бы с чего-то начать. В целом хотелось бы побыстрей уйти на обычный консольный проект с Makefile, gcc, vim, в таком наборе мне комфортней работать, т.е. после этого буду пытаться разобраться, как перейти с Arduino IDE на консоль. И после этого хочу постараться сделать примерно то же, что уважаемый товарищ Assembler делает на протяжении последних месяцев, то бишь пытаться писать минимальные примеры на ассемблере, раскуривая спецификации на тот китайский заменитель ардуины, который мне продали. Пока это всё будет происходить, мне может быть доставят плату разработчика STM, на которую я в итоге планирую перейти и я повторю тот же путь уже с STM, предположительно пройдя его быстрей за счёт того, что общие концепции, наверное, будут схожи.

Вопрос по STM: есть ли существенная разница между разными линейками? Есть STM32L, которая вроде как потребляет мало, есть STM32F, которая вроде как более мощная. В чём суть отличий между всеми этими линейками? Просто небольшие отличия в наборе поддерживаемых инструкций? Т.е. если я разберусь с STM32L, остальное понять будет относительно несложно?

И попутно вопрос. Я очень мало знаю про Raspberri Pi, но в целом я правильно понимаю, что это тупо полноценный ARM компьютер с линуксом и вся разработка там это тупо разработка на любом языке под линукс, хоть на джаве, если она уже умеет в такой ARM? Т.е. ничего особо микропроцессороспецифичного там нет и уж точно нет смысла пытаться в какие-то ассемблеры, по крайней мере смысла не больше, чем пытаться в ассемблеры на десктопе.

Есть ли какие-то альтернативные линуксу ОС для Raspberri Pi, которые разумно изучить? Какие-то ОС реального времени, например. Интересуют не академические проекты, а что-то, что реально используется, при этом как минимум должно быть бесплатно для коммерческого применения, в идеале опен сорс, конечно. Слышал про QNX когда-то, или оно из другой области?

 , , ,

Legioner
()

Получить рута на андроиде без взлома

Пытался понять сам, но очень сложно вычленить из всего кулхацкерского спама какое-то разумное звено. Имеется Xiaomi Mi A2 с Android One 10. Хочу получить root. Ничего взламывать не хочу, какие-то сомнительные программы ставить не хочу. В идеале в меню какой-нибудь пункт нажать, но не нашёл такого пункта. Есть ли такой способ или все способы получения рута это по сути взлом устройства?

В Developer Menu есть пункт OEM unlocking, пока его не нажимал.

В целом вообще не до конца понимаю этой фразы «получить рута». Видел команды, что люди устанавливают su и через неё получают рута, но ведь эта команда будет спрашивать пароль рута. Хотелось бы это тоже понять.

 ,

Legioner
()

Добавьте паддинг в форму редактирования сообщения

https://github.com/maxcom/lorsource/blob/master/src/main/webapp/sass/_common.scss#L431 вот тут дописать padding: 1px. В настоящий момент в хроме когда курсор стоит в начале строки, его тупо не видно.

 ,

Legioner
()

Конфигурация контейнера, команды после его запуска

Я хочу сделать контейнер с systemd на основе RHEL ubi8-init. При настройке этого контейнера я хочу выполнить команды, которые должны выполняться уже при запущенном systemd.

Например такой Containerfile:

FROM ubi8-init
RUN ps aux > /root/ps.txt

Если я построю и запущу такой контейнер, то в /root/ps.txt будет что-то вроде

USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.0  0.0  11920  2688 ?        Ss   10:37   0:00 /bin/sh -c ps aux > /root/ps.txt
root           2  0.0  0.0  44668  3460 ?        R    10:37   0:00 ps aux

Т.е. в нём ничего не запущено на этапе выполнения инструкции RUN кроме самой команды.

Мне же нужно, чтобы запустился ubi8-init (с systemd), «сбоку» выполнилась эта команда (аналогично тому, как я это могу делать через podman exec), он остановился и полученный образ уже запаковался в контейнер.

Есть ли такая возможность у docker/podman?

Про то, что я могу это сделать руками/скриптом и потом сделать commit, я в курсе, но хочется это сделать через Dockerfile/Containerfile.

 ,

Legioner
()

Как производительно имитировать :has()?

Хочу скрывать div внутри которого есть определённый элемент. Т.е. условно .parent:has(.child) { display: none; } (скрываться должен .parent). Про то, что :has никто не поддерживает я в курсе, и нужно подключать JavaScript. Вопрос: как это сделать с максимальной производительностью в ванильном JS? DOM может меняться, нужно это учитывать.

Пока единственная идея - держать MutationObserver на body и на каждое изменение прогонять код, но это тормозить будет ужасно.

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

 ,

Legioner
()

Почему линукс так лениво сбрасывает dirty память?

К примеру распаковал я гигабайтный архив. tar уже завершился. Делаю grep Dirty /proc/meminfo, он мне показывает гигабайт. Ну т.е. по сути всё распакованное лежит в памяти. Запускаю я этот grep в цикле раз в секунду, мониторю. И он секунд 10-15 показывает этот гигабайт, вообще не меняя ничего. Потом «просыпается» и быстро к нулю улетает за пару секунд.

В системе ничего не запущено, нагрузка процессора на нуле. Диск быстрый NVMe SSD. Ну единственное - на luks2 шифровании раздел, но по-моему это не влияет. Ну и гигабайт зашифровать 10 секунд не надо в любом случае.

В моём понимании он dirty память должен сбрасывать моментально, тем более, если системе нечего делать в настоящий момент. Почему моё понимание неверно?

Менять я ничего не хочу, я в курсе, что там есть ручки покрутить такое поведение, я просто хочу понять, почему оно вообще так сделано.

Cистема на ноутбуке, но ничего энергосберегающего я не настраивал, может чего там в федоре встроенного есть, не знаю. По-моему нет там ничего.

 ,

Legioner
()

HTTP пока

Increasing HTTPS adoption

Google Chrome в скором времени будет показывать страшную страницу при заходе на сайт, поддерживающий только HTTP. Юзеру нужно будет её прокликать, чтобы зайти, примерно как сейчас с самоподписанным сертификатом происходит.

Firefox это планирует уже давно, кстати: Firefox 83 introduces HTTPS-Only Mode.

Так что, если вдруг кто ещё не перешёл на HTTPS, пора начинать шевелиться!

 ,

Legioner
()

Всегда запускать приложение на текущем рабочем столе

Вопрос про Gnome 40, вроде в предыдущих версиях тоже так работает. Если у меня открыт терминал на другом рабочем столе и я нажимаю на иконку запуска терминала, то меня переключает на другой рабочий стол. Мне хочется, чтобы при нажатии на иконку меня переключало на запущенный терминал только если он уже запущен на этом рабочем столе. Если он запущен на другом рабочем столе, то его нужно игнорировать и запускать новое окно на текущем рабочем столе.

Терминал это для примера, то же самое должно быть для всех приложений.

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

 

Legioner
()

Дистрибутив для программистов

В каком дистрибутиве быстрей всего можно изменить код любого компонента и установить его модифицированную версию?

В моём понимании это должно выглядеть так:

  1. Вместе с софтом ставятся исходники. Не обязательно это подход типа Gentoo, пускай качаются бинарники, но обязательно должны быть все исходники всех бинарников.

  2. Каждый проект лежит в git-репозитории, в котором уже создана отдельная ветка для пользователя.

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

  4. При обновлении делается fetch исходников, если у пользователя есть изменения в его ветке, то данный пакет не обновляется, пока пользователь не сделает слияние своих изменений с апстримом. После слияния компилируется и устанавливается версия пользователя.

  5. Конечно всё собрано с debug-символами изначально.

Почему-то кажется, что в BSD всё примерно так, но я не уверен, т.к. никогда не разбирался в их портах.

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

 ,

Legioner
()

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