All streams
Search
Write a publication
Pull to refresh
5
0
Send message
Попробовал qutebrowser из этого списка:
# qutebrowser
Running as root without --no-sandbox is not supported.
# qutebrowser --no-sandbox,
qutebrowser: error: unrecognized arguments: --no-sandbox

Весит более 200МБ. Ссылается на хром. Профессионалы точно таким пользуются? Почему не surf тот же к примеру?
чем не устроило разделение, описанное в википедии? если ПО взаимодействует с пользователем — значит пользовательское ПО, если является прослойкой между пользовательским ПО и железом — значит системное.

Согласно нему база данных попадает под определение системного ПО, тогда как консоль к ней вполне пользовательское ПО. Можно представить гипотетически базу данных как пользовательское приложение, в котором можно работать (и нельзя никак иначе) с базой данных интерактивно, как с вордовским файлом, но не слышал, чтобы кто-то такое реализовал.
Возможно, возникла путаница в понятиях. Что вы понимаете под системным софтом, какой критерий разделения?
да можно. в виндовс в документ будет вставлен объект OLE (если правильно называю), содержащий в себе весь файл.
в линукс это не сработало, зато Drug and Drop сработал — вставилось URL вида file:///
полагаю, программа может обработать данное событие как ей заблогарассудится.
Насколько такая процедура оправдана? Система может и загрузится быстро, но при работе у неё останется меньше памяти для кеширования, что может вызвать больше тормозов при обработке больших файлов… в том числе игр. Если в системе нет фоновой активности записи на диск, то будет ли давать tmpfs преимущество перед встроенным кешированием?
Перезагружаться не проще, но ставить всякую дрянь (виндувсовые приложения) в рабочую систему тоже неприятно. Насколько такие приложения изолированы от остальной системы?
Если не секрет, какой дистибутив/прикладные приложения ставите?
А ведь отлично замечено. Для линукс намного проще купить какой-нибудь nvme на 16,32,64 ГБ, куда целиком встанет система и ещё хватит на всякое, чем для виндовс это превратится в 64-256-1024 ГБ.
Сам не думал, что это возможно, пока не увидел, но:
1) правая кнопка по панели задач -> открепить -> можно перетащить панель на любую сторону экрана
2) закрепить нужные приложения на панели задач -> сочетание win + цифра будет запускать соответствущее приложение.
Ещё правая кнопка по любому ярлыку -> свойства -> быстрый вызов. Если сможете написать скрипт на PowerShell, который отключает звук, то создав ярлык на него и назначив комбинацию клавиш вы можете добиться чего-то похожего.
Не так гибко, как в линукс, но вдруг тоже пригодится…
В связи с коронавирусом сотрудники массово вышли на удалённую работу. Разумеется, их старенькие ноутбуки видовс с трудом переваривают, она у них то виснет, то уходит в перезагрузку по полтора часа, пользователи звонят нам, но мы ничего не можем сделать! Ставим чистый образ — он изначально не работает, драйвера не ставятся, ошибки сыпятся. Так и говорим, что либо вы покупаете новое оборудование, мы его настраиваем, и будет вам счастье, либо терпите. Недавно добавил новую опцию: готовая рабочая станция линукс с предустановленным VPN, RDP, браузером, проводником, плеером ещё всякой мелочи. Для сложных задач вынес на рабочий стол скрипты. Всё делается двойным кликом по соответствующей иконке. Пользователей пока единицы, зато все счастливы. В первую очередь оттого, что им не пришлось угрохать месячную зарплату только из-за того, что микрософт сломали совместимость со старым оборудованием. Пусть решение делалось в очень большой спешке, оно всё-таки работает, причём очень стабильно — ни одной жалобы, и отклик у Х11 несравненно быстрее, чем у винды. У них нет возможности ни включить, ни выключить скринсейвера, и обои на рабочем столе не поменять, но это правда болшая потеря?
Да не сказать, что особо большая нагрузка. Держу отдельный файловый сервер с редкими раздачами, которые тут же и раздаю. Для рабочей станции оборудование слишком слабое, пожалуй, только диски имеют реальную ценность. Из обслуживания разве что время от времени глядеть в dashboard, что никаких алертов нет. Электричество… без монитора и нагрузки на CPU едва ли более 100 Вт будет, может даже 50 (интеренсо померять будет как-нибудь). Интернет остаётся, но исходящий канал обычно свободен, поэтому ведение раздач никак не скажется на загрузке.

Поэтому решив держать какие-то торренты локально, на случай, если в будущем понадобятся, когда раздающих скорее всего не окажется, можно практически без дополнительных затрат и раздавать их всё время.
Видимо, я что-то не понимаю, но почему нельзя сразу исключить все коммиты из основной ветки, тогда никаких уязвимостей в ядро не попадёт? Потом, когда разберутся, какие были добросовестными, повторно включить их.
Непонятно, каким образом автор «код программы — это десятки мегабайт текста», «когда сборка — отдельное приключение», «типа OpenOffice, GIMP-а, KDE или Chrome» соотнёс с Unix-way. Эти приложения сделаны чтобы заменить аналогичные в windows, ни о какой Unix-way в них речи и близко не шло. Соберите систему только из unix-way приложений и попробуйте к нему выдвинуть те же самые претензии. Вдруг проблема как раз в том, что в linux слишком много не unix-way ПО?
пользуюсь, гентуу далеко не 21 год, а лишь 21 день, зато с дебиан просидел лет 6-7, и теперь каждый день закрепляется впечатление, что гентуу очень ¡сложно! сломать. В дебиан как, к примеру, написано в инструкции: поставить пакет такой-то, вроде поставился, или ставлю с --no-install-recommends, а затем вычитываю список рекомендуемых и пытаюсь угадать (ибо из документации совершенно не ясно, как отсутствие или наличие пакета скажется на целевом), стоит ставить или нет, затем править такой-то конфиг, вроде все пункты понятны, исправил, запустить службу, вроде запустилась, но тут начинаются чудеса!
Что получилось с гентуу: ставится он не через какой-то ущербный установщик, а полноценную среду линукс. Здраво рассудив, решил, что не буду скачивать stage3, а использую уже имеющуюся систему вместо него — и никаких сюрпризов, никаких неожиданностей, она поставилась, и даже grub (при установке debian через debootstrap grub отказывается устанавливаться из chroot и первый запуск делал вручную через set root=...), за пол года я не нашёл решения, но сравнив инструкции гентуу и дебиан сразу же понял, в чём подвох.
Если сравнивать флаги USE и пакеты recommended для аналогичных в debian, то первых заметно меньше. Можно за час прочитать описание всех флагов и за день скомпилировать рабочее окружение, в debian описание пакетов ни о чём, а метод проб и ошибок занял трое суток непрерывной установки, восстановления из снапшота и тестирования, что заработало, а что нет, чтобы понять, какие пакеты для чего нужны на самом деле. К примеру, есть неприятная ситуация, когда оконное окружение стартует, но не работает клавиатура и мышь. Исследования показали, что в debian надо ставить пакет xinerama. Почему? — а этого за три дня не успел выяснить. В гентуу тоже есть такая ситуация, но решается она INPUT_DEVICES=«libinput», что логично. Отдельная история скрипты запуска. В дебиан есть даже такой идиотизм: Restart=on-failure \n StartLimitInterval=30min \n StartLimitBurst=5 \n RestartSec=10
читать как: при падении службы у вас будет 50 секунд, на её устранение. кто не успел — ждите пол часа и плевать, что вам надо сейчас.
В гентуу ни разу не возникло желания править скрипты или писать собственные — а это главный источник нестабильностей в любой системе.

Один раз только неприятная ситуация была: при сборке пакета возникла ошибка, при этом никаких сообщений об ошибке не было. Но это никак на стабильность имеющихся программ не влияет. Оказалось, всё дело в флаге j6. Зато в другой раз как спросянья пытался убедить portage, что 14>15, но не тут-то было, никакие дикие комбинации флагов USE, маскированных пакетов и прочего не смогли заставить систему сломаться. Мне пришлось открыть документацию, увидеть, что я смотрел не ту версию, исправить флаги, перекомпилировать world и всё заработало, вообще всё. Дебиан в такой ситуации уже раза три бы откатывал из снапшота. Способность гентуу отправить пользователя читать документацию, даже когда тот упорно отказывается — уникальная способность системы. Но именно благодаря ей следует говорить, что генту сложно сломать — намного сложнее, чем всякие дебианы, центосы и прочее.
— new DateTime().format(«Y»), — отличный пример. В том же си, когда printf парсит строку, чтобы вывести обычное число, практика была признана порочной; в с++, к примеру, механизм заменили. На другие языки программирования это не распространяется?

Вы написали код на 2 строчке короче, чем в си, но какой ценой: создание объекта (наверняка со всякими защитами и кучей служебных полей), использование неявного свойства, что конструктор без параметров инициализирует текущей датой и временем, использование загадочного формата «Y», который не соответствует ISO 8601, в памяти зависает объект на неопределённый срок.

Дял ответа на ваш вопрос следует впомнить, что язык программирования — это просто инструмент, и создавался с определённым намерением. Если намерение человека не согласуется с таковым создателя, значит инструмент ему не подходит. Поэтому вопрос можно свести к тому «с каким намерением создавался тот или иной язык».
Проведя аналогичное размышление (https://habr.com/ru/company/timeweb/blog/551224/) можно сделать вывод, что «целевой» язык должен иметь возможность расширять свой функционал без превращения в новый язык. Логично предположить, что у такого языка должна быть какая-то базовая комплектация. Достаточно минималистичная. Но подождите, такой язык уже существует! Это си. Простенький синтаксис, стандартная библиотека на уровне «минималный набор для выживания» и возможность создавать неограниченное количество собственных библиотек.

Давайте тогда подключим какой-нибудь модуль с уже определённым объектом now, и напишем now->year. Полученное значение, разумеется, будет int. sprintf(buf,"%4d",now->year), я считаю, что писать так — я считаю неуважение к самому себе (и пользователям программы), поэтому подключим ещё парочку модулей и сделаем:
/* Предварительно запишем что-нибудь */
WriteC(stream_object,«Сегодня „);
/* Припишем текущий год в одну строчку */
WriteI(stream_object,now->year);
/* Ещё запишем что-нибудь */
WriteC(stream_object,“ год.»);
Согласен, что на с++ есть дополнительная изящность: stream_object<<«Сегодня „<<(now->getyear())<<“ год»;
но смысл не меняетя.

Если бы мне поставили задачу, что категорически необходимо взять в команду человека/группу людей, с такими данными… я бы смотрел в сторону ГО. У языка хороший манифест, и если заявленное правда, то в языке мало подводных камней.
Рассуждая дальше, я бы выбрал политику +читаемость -низкоуровневая производительность. Каждый алгоритм стараться вместить в стандартные 25, 40, 80 или сколько строк нынче принято считать за 1 экран. Описание алгоритма должно умещаться в 1 тезис, иначе разбивать его на выполнение цепочки алгоритмов, возможно, с условиями и циклами. Обоснование корректности по стандартному списку из школьного курса: граничные значения, проверка ветвей, циклы, обработка ошибок. Написанный и проверенный код убираем под спойлер, забываем весь только что написанный код, и держим в голове (и на экране) только одну строчку с описанием алгоритма. Когда количество алгоритмов становится больше, то организуем их в структуру. N алгоритмов нижнего уровня убираем под спойлер, а над ними пишем верхний уровень из N/10. Если не получается уместиться хотя бы в N/5, то отбрасываем затею и ищем ошибку в архитектуре.

Таким образом на всём процессе разработки в голове необходимо держать только 1 страницу текущего кода и 1 страницу описаний алгоритмов предыдущего уровня. Это вполне реально. Если рассматривать пирамиду из всего трёх уровней и коэффициентом 5, получается 125 алгоритмов по 40 строк без повторений (5000 строк), среди которых вы сможете свободно ориентироваться не более, чем за 3 обращения к собственной документации. КПД такого кода вряд ли превысит 10%, но даже 1% от теоретического максимума было бы больше, чем мы имеем сейчас в популярном ПО.

Конечно, это всего лишь теоретическое рассуждение, не подкреплённое практикой, но… вдруг.
«А я себя хочу ограничивать, потому что внимание у меня так себе, память так себе, концентрация так себе» — существует ли хоть одно направление инженерной деятельности, где не требовались бы сильно развитые перечисленные качества? Получается ли у вас писать хоть на каком-нибудь языке писать с первой попытки без ошибок, пусть даже с помощью всяких утилит?
Наличие некорректных программ, написанных на каком-то языке, не означает, что невозможно писать корректно на нём. Реализация ООП и прочих парадигм на С оказываются изящны и гибки. В конце концов, точно также, как код на С транслируется в ассемблер, код на С++, JAVA, GO и прочих подобных языков может быть транслирован в эквивалентный им код на С. Но если так поступить, увидев результат вы скорее всего захотите выкинуть половину/90%/99.7% получившегося, просто как не выполняющего никакой полезной функции.

В sudo баг нашёлся: переполнение буфера. Сколько раз на всевозможных формумах обсуждалось, как избегать переполнения.
Представление систем как конечных автоматов — это одна из возможных стратегий. Не исключено, что в каких-то задачах алгоритм представится таким громадным автоматом, что анализ станет технически невозможным. Продуктивно расмматривать группы состояний по какому-нибудь строгому признакому (фактр-группы состояний), тогда отдельно доказывается корректность перехода от одной фактр-группы к другой и отдельно доказывается корректность переходов внутри каждой фактр-группы. Но вряд ли машина сможет сама провести такую декомпозицию.

Зато в обратную сторону: если есть конечный автомат, то превратить его в код на одном из популярных языков, не должно состоавить проблем.
Количество багов уменьшит только смена подхода к программированию и тестированию, а ещё лучше — материальная ответственность разработчика перед потребителем. Это вне зависимости от языка. А си — на нём получается компактный код, и сам стандарт компактный. Что сильно облегчает доказательство. Ада не пробовал.

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

Information

Rating
Does not participate
Registered
Activity