LINUX.ORG.RU

18
Всего сообщений: 480

Хочу собрать свой linux

Привет всем!!! Сейчас пробую силы в сборке Linux From Scratch на реальном железе, разбираюсь в кишках linux’а. Стало интересно. И меня начал мучать вопрос: а почему бы не собрать свой linux велосипед с небольшими репами на git’е. С чего начать, на чем лучше писать/основываться, куда двигаться?

Примечание: не юзаю всякие конструкторов linux и надо мне их навязывать. Предпочитаю писать с нуля (над ядрышком linux)

 , , ,

AlphaComputer ()

Софт для набрасывания интерфейсов, включая мобильные

Есть такое? Вот чтобы просто запустить программулину, накидать на форму кнопок (на активность виджетов) и получить набор «скринов» экранов будущего приложения?

Нужно под андроид/яблоось в первую очередь, хотя не помешало бы и под десктоп.

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

 , ,

Zhbert ()

GNOME против Unix-way

Доброго дня вам, ЛОРчане!

Что такое этот мифический «Unix-way»? Вероятно, однозначно на этот вопрос не ответит никто, т.к. каждый понимает под данным термином что-то своё, и определение не имеет чётких границ. Поэтому для установления общего базиса в данной теме предлагаю заглянуть в Wikipedia. Кроме трёх базовых понятий о программах делающих что-то одно, работающих вместе и использующих текст (Malcolm Douglas McIlroy), там есть такие мысли, как:

  • «Избегайте пользовательских интерфейсов, ограничивающих возможности пользователя по взаимодействию с системой» - Mike Gancarz
  • «Позвольте пользователю настраивать окружение» - Mike Gancarz
  • «Правило прозрачности: Разрабатывайте прозрачные программы для облегчения последующего пересмотра и отладки» - Eric S. Raymond


С настраиваемостью и GNOME, думаю, давно всё понятно. Разработчики явно решили, что многообразие опций напугает пользователя. А что с прозрачностью? На мой взгляд, неоспоримым преимуществом систем GNU/Linux по сравнению с Windows и macOS является то, что в случае поломки пользователь может разобраться в её причинах прямо здесь, на месте. Либо, если ему интересно, может узнать что и как устроено внутри. Пользователь GNU/Linux в праве ожидать от программ ясных и подробных логов, тогда как в Windows чаще можно увидеть «Произошла ошибка 0xBADS0F1. Обратитесь к системному администратору». Я уже как-то писал на ЛОРе, что GNOME развивается в сторону от прозрачности системы. Проблема заключалась в отображении грустного смайлика (выглядит это вот так) вместо нормального сообщения об ошибке, и это сообщение показывал не «обновлятор» Ubuntu, а GNOME. Самое стрёмное тут это невозможность отказаться от завершения сеанса. Т.е. другие программы могут вполне работать, но поверх их висит окно, которое блокирует весь ввод. Я сам так же попадал в подобную ситуацию, когда пользовался QEMU. При том не было даже никакой ошибки, просто QEMU захватил ввод, я решил переключиться на другую виртуальную консоль (Ctrl+Alt+F3) и обратно, а GNOME почему-то решил, что ему стало плохо. После этого я с воплями убежал на KDE. Это было не единственным примером, а скорее, последней каплей. До этого я ещё стойко терпел выпиливания функционала. Достаточно сравнить диалоги выбора файлов в GNOME и KDE - вполне наглядный пример.

И вот, некоторое время назад мне опять понадобилось писать ПО с использованием GTK. К слову, к самому GTK я пока отношусь положительно. Достаточно неплохой тулкит, нормальная идея с GObject introspection и привязками к другим языкам. Хотя уже закрадываются сомнения... Раньше я уже использовал Glade, чтобы нарисовать интерфейс. Местами плевался от него, но в целом ничего. А сейчас решил попробовать GNOME Builder. Запустил, открыл в нём пример приложения (одна из причин зачем ставил - потыкать разные примеры в одном месте, а не собирать их по GitHub, документация разработчика для GTK как-то не очень). Builder попросил поставить некоторые SDK. По названиям я предполагаю, что это делается через Flatpak. Хотя не факт. В общем, у него это не получилось. Да, ошибки в ПО встречаются, этого не избежать. Где нормальное сообщение об ошибке? Почему вместо него вот это. Конечно, я нагуглю и разберусь, что там случилось. Но, почему? Это ведь уже не текстовый редактор, где «важно» (хотя на самом деле не важно и даже вредно, пользователь должен знать) не напугать неподготовленного пользователя обилием опций и сообщениями с подробностями. Это IDE для разработчика. Всё, что тут можно сделать - нажать на кнопку, которая убирает пункт из списка. Зато есть удобное меню-гамбургер, а там есть пункт «Generate support log». Ура? Нет, это было бы слишком просто. В логе нет ничего по теме ошибки. В окне с «Failed to install» даже текст нельзя выделись и скопировать. Казалось бы, при разработке интерфейса надо просто поставить галочку «Selectable». Мелочь, но сколько раздражения доставляет. Вообще, что мешало в интерфейс выдать сразу какую-то внутреннюю ошибку? Ведь она там есть. Место закончилось или прав не хватило? Запустить Builder через sudo? Или что? Хоть бы errno показывали...

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

 , , , ,

ls-h ()

Разумно ли держать открытыми множество соединений TCP?

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

Итак, есть физические девайсы, которые по TCP шлют данные в виде массива байт на сервер. Есть сервер, который принимает присланный массив, парсит его и сохраняет в БД.

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

Когда все это начинало программироваться, речь шла о том, чтобы посылать команду устройству вместе с ответом (на каждый коннект сервер отвечает «ОК»). То есть поймал соединение, открыл сокет, получил входящий поток, в исходящем ответил, закрыл. Соединения происходят раз в минуту, то есть устройство включится, по сути, не сразу, а по прошествии некоторого времени (меньше минуты). Это не какие-то системы быстрого реагирования, в основном при этом рядом с ними вообще никого не будет, чистая «удаленка».

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

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

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

Вопрос - может, что упускаю?

 , ,

Zhbert ()

Не запускается eclipse JAVA MESSAGE FrameworkEvent ERROR

SESSION 2021-01-26 09:57:22.521 ———————————————– eclipse.buildId=unknown java.version=11.0.9.1 java.vendor=Debian BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=ru_RU Command-line arguments: -os linux -ws gtk -arch x86_64 -clean

!ENTRY com.e1c.g5.dt.cloud.launcher.application 4 0 2021-01-26 09:57:25.499 !MESSAGE FrameworkEvent ERROR !STACK 0v

<——>at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:345) Caused by: java.lang.NoClassDefFoundError: javafx/collections/ObservableList <——>at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)

Caused by: java.lang.ClassNotFoundException: javafx.collections.ObservableList cannot be found by com.e1c.g5.dt.cloud.launcher.application_0.2.0.171

 , , ,

xchat ()

А вы пользуетесь утилитой namecheck?

Собственно сабж. Если да, то как регулярно и в каких корыстных целях?

 , ,

splinter ()

Предложение: разделение Development

На Вопрос/Ответ часть и «общие вопросы/треп». В Вопрос/Ответ закрывать тему после получения отметки «решено». Оффтопик просто удалять.

 

seiken ()

Как подставить переменную в аргумент команды?

Нужно удалить самый новый файл. Нашел как выводить имя этого файла, записал в переменную, но последняя команда(find) не срабатывает. Если вручную ввести аргумент имени, к примеру file1 все в порядке. Что я делаю не так?

sefi=$(find ./lab2 -type f -printf ‘%f \n’ | sort -r | head -n 1 )

echo $sefi find ./lab2 -name «$sefi» -exec rm -f {} ; #-type f -printf ‘%f \n’

 , , ,

hateallpeople ()

Подскажите где взять инфу по библиотекам GNU Linux?

Меня интересуют уже реализованная ВЫСОКОУРОВНЕВАЯ функциональность, которая представлена в системе в виде библиотек. Например, я в своем приложении хочу использовать шифрование, архивирование или просмотр видео. Я не хочу все это реализовывать с 0, а хочу взять готовые библиотеки GNU, в которых все это уже давно написано и просто вызвать их методы. Т.е. я не хочу изобретать велосипедов и попробовать сильно ускориться в разработке за счет переиспользования существующего кода.

Если взять книжки по программированию под Linux, то у всех будет примерно одинаковое НИЗКОУРОВНЕВОЕ содержание: создание потоков, сетевые соединения, операции ввода / вывода, межпроцессорное взаимодействие… Меня все это совершенно не интересует.

Есть какие- то книги по описанию уже реализованного потенциала мира GNU Linux?

 ,

AlekseyLinux ()

Создаю QBS плагин для VS Code

Народ, всем не хворать.

Тут недавно решил попытать счастья в Node.js и создать плагин для всеми любимго VS Code с поддержкой QBS.

И вуаля, что уже можно:

  • Открыть папочку с файлом проекта QBS (пока что отображается структура текущего открытого каталога со всеми файликами в нем «как есть» на ФС) .
  • Выбрать нужный проект для сборки (если в папочке несколько файлов).
  • Выбрать профиль для сборки (по рабоче-крестьянскому - комплект с компиляторами).
  • Выбрать конфигурацию сборки (по рабоче-крестьянскому - дебаг/релиз).
  • Выбрать продукт для сборки (или все продукты).
  • Выбрать продукт для запуска.
  • Выбрать продукт для отладки.

Работает автоматическая «интеллектуальная» подсветка хидеров компилятора и прочее.

Я пока еще не релизил ничего в маркет VS Code, т.к. пока все еще в процессе тестирования/разработки.

Вот сам исходный код плагина (делал на основе плагина CMake):

Вот сам бинарь плагина, который достаточно только установить в VS Code:

Парни, нужна Ваша помощь в/на потестинге, генерации новых идей и прочего. По крайней мере замолвите доброе словцо. :)

Баг-репорты слать сюда:

PS: По крайней мере я смог собрать QtCreator и сам QBS при помощи этого плагина на Windows && MSVC. Также тестил и на Linux - вроде работает.

 , , ,

kuzulis ()

Хочу перейти в направление game development

День добрый. Начну с краткой исторической справки, вот уже лет 7 занимаюсь программированием для веб, это был и чистый backend и full stack, последние годы чисто frontend. Но как-то периодически засматривался в сторону игровой индустрии - сам являюсь поклонником игр разного жанра ну и играю в свободное время. Последнее время смотрю разные материалы, дабы очертить для себя потенциальный спектр для изучения, но есть пара вопросов. Скажу сразу, в индустрии смотрю в сторону инженерных специальностей, то есть не звукорежисура для игр или 3D хужожник, и заметил что очень много акцента делается на C++, ну и разве что Unity на C#. Вот первый вопрос - имею крайне базовые знания по C, и что подскажут люди с форума, может даже кто работает в этой индустрии и может поделиться опытом, начинать с C и дальше на плюсы, или все еще подхватить C# и потом знакомиться с одним из движков дабы понимать основные моменты? И второй, как с работой - я сам из СНГ и у нас, увы, нету тех студий чьи продукты мне интересны как игроку, и я в случае чего готов пробовать свои силы и релоцироваться в страну где есть офисы студии, игры которой к примеру мне интересны. В целом буду рад услышать мнения и опыт людей из индустрии, интересно как все устроено и так далее.

 , , ,

Berdin ()

vim назначить разные действия на одну кнопку

Доброго времени суток! Подскажите, Вимеры, как можно назначить на одну кнопку (к прмеру C-R) выполнениe запуска для JS в виде !node %, a в случает python !python % Заранее благодарен!

 , , ,

q13 ()

Срок выполнения проекта

Всем привет!

Возможно ли достоверно рассчитать срок разработки программного продукта? Особенно, если частично состоит из ресерча =(

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

 ,

AntonyRF ()

Интервью с разработчиком игр Денисом Грачевым (Retrosouls)

Стрим с разработчиком. Гость - Денис Грачев(Retrosouls).

Очень интересное интервью с Денисом Грачевым, разработчиком популярных игр YAZZIE, GLUF, OLD TOWER и т.д. для различных платформ.

Денис очень талантливый разработчик и просто интересный человек. В своих играх под спектрум умело обходит ограничение по количеству цветов, используя мультиколор. В интервью делится интересной информацией о программировании под ZX Spectrum и не только. Распространяет свои игры не только бесплатно, но и с открытыми исходными кодами!

Ознакомиться с творчеством Дениса, скачать его игры, пограть онлайн и скачать исходные коды игр можно на его личном сайте RetroSouls.

P.S. Не реклама. С автором канала и Денисом не знаком. Но контент настолько понравился, что решил поделиться.

 , , , ,

Axios ()

Алгоритм отложенной подписки на событие

Подскажите паттерн/способ «отложенной подписки на событие».

Предположим есть событие 'sample_event'. И подписка на это событие, но факт подписки случается ПОСЛЕ ТОГО как событие было разослано всем тек. слушателям:

// эмиттер разослал событие текущим "слушателям"
emitter.emit('sample_event');

...
спустя минуту появляется новый "слушаетель" и хочет подписать на событие 'sample_event'

emitter.on( 'sample_event', some_function_reference );

Хочется, чтобы при таком раскладе данный «слушатель» ПОЛУЧИЛ реакцию на это событие, несмторя на то, что событие было разослано минуту назад.

Какие есть ли алгоритмы/паттерны/подходы для реализации такой хотелки?

Спасибо.

P.S. Не имеет значение на каком ЯП это реализовано.

 , , ,

djnoob ()

Нужен php или js скрипт для вычисления позиций в натальной карте.

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

 

XoFfiCEr ()

Qt5, приплыли?

добрый день

за новостями не слежу, был немного удивлен:

http://download.qt.io/official_releases/qt/5.15/5.15.0/OFFLINE_REAMDE.txt

Due to The Qt Company offering changes, open source offline installers are not available any more since Qt 5.15. Read more about offering changes in the https://www.qt.io/blog/qt-offering-changes-2020 blog.

If you need offline installers, please consider our new Qt for Small Business offering: https://www.qt.io/blog/available-now-qt-for-small-businesses

ваше мнение, комменты...

спасибо

 , ,

sunjob ()

Nvidia CUDA 2020 минимальная карта для разработчика

Добрый день! Никогда для видеокарт ничего не писал, но пришла мне в голову интересная идея которую хочу реализовать и для которой очень бы подошла CUDA, но я совершенно не разбираюсь в современном рынке видеокарт и прошу у сообщества совета - какую видеокарту (чип и производитель) нужно брать в 2020 что бы программировать для CUDA и не разориться? 10тр - это разумный предел цены, теслу брать совсем не хочется, играть на ПК не планирую.

 , ,

matroskin ()

А куда, если не в веб?

Хай, Лор. Давно сюда не писал, многое поменялось, многое перепробовал.

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

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

Подскажите, есть ли истории успеха? Что-то алгоритмическое/техническое? Буду рад всем отписавшимся по вопросу.

 , ,

KrasnoGlazik ()

Права root по необходимости

Добрый день, ЛОР.

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

Как мне реализовать такое в своей программе?

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

Или задача в принципе имеет другое решение?

 , ,

hobbit ()