LINUX.ORG.RU

Сообщения seiken

 

Реклама Питона лезет из всех щелей

Форум — Talks

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

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

Дальше говорят, что вот, типа научим основным навыкам, нужным для профессии. Типа, средняя з.п. начинающего питониста 150т.р. Мне вот, что не понятно. Если всё так просто, и в среднем начинающий питонист получает 150т.р., почему нет толп неайтишников, горбатящихся до сих пор на з.п. 100т.р., ломящихся получать эти 150т.р., ведь нужно всего лишь окончить такие курсы? Или основная часть людей настолько далека от логического мышления, что даже основы программирования на Питоне осилить не в состоянии? Или понимают, что лохотрон?

Самый главный вопрос: когда уже этот хайп с питоном, ИИ и «науке» о данных сдуется к чёртовой матери?

 , ,

seiken
()

Переставить элементы контейнера в фиксированной последовательности

Форум — Development

Вопрос знатокам стандартной библиотеки для C++ до 20. Есть ли такая стандартная машинерия, которая переставляет элементы контейнера в порядке указанных индексов?

Что-то типа:

std::list<int> xs{1, 2, 3, 4, 5};
std::vector<int> xsIndices{2, 0, 3, 1, 4};
std::reorder(xs.begin(), xs.end(), xsIndices.begin());

и в результате в xs будет 3 -> 1 -> 4 -> 2 -> 5.

 ,

seiken
()

Linux 0.01, кто бы тогда подумал...

Форум — Talks

Современные версии ядра под 35 млн строк кода и выше. А вот человек заглянул в v0.01, и улыбнулся: (https://seiya.me/blog/reading-linux-v0.01)

 *  'schedule()' is the scheduler function. This is GOOD CODE! There
 * probably won't be any reason to change this, as it should work well
 * in all circumstances (ie gives IO-bound processes good response etc).

Всё прибито гвоздями к i386, a ОС называлась даже не Linux, a:

# Makefile for the FREAX-kernel.

Стиль кодирования уровня «Бог»:

(void) open("/dev/tty0",O_RDWR,0);
(void) dup(0);
(void) dup(0);

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

Кто бы тогда подумал, во что мутирует наколеночная поделка…

 , копролит,

seiken
()

Что вы делаете при неудачном close?

Форум — Development

Системный вызов close возвращает код ошибки:

https://man7.org/linux/man-pages/man2/close.2.html

Опустим тривиальные случаи типа EINTR. Например, возвращается EIO - «An I/O error occurred», что не сильно более информативно, чем «иди на …». Фактически, ничего дельного, кроме разве что отправки лога (или попапа об ошибке, если это гуишное ПО), сделать нельзя. Можно попытаться повторить операцию close. Но откуда мы знаем, что во второй раз она завершится удачно? В общем случае она теоретически может завершиться удачно на (N+1)’й попытке, где N может быть произвольно большим числом.

UPD: а ещё не специфицировано, освободится ли дескриптор файла при EIO, так что в такой ситуации ещё может быть исчерпание лимита открытых файлов.

А вы что делаете в таких случаях, когда вообще непонятно, как программе обработать ошибочное состояние?

 надёжное по

seiken
()

ИИ разрабатывает процессоры

Форум — Talks

Учёные спроектировали ЦП при помощи ИИ, и запустили на нём Linux.

https://arxiv.org/abs/2306.12456

This approach generates the circuit logic, which is represented by a graph structure called Binary Speculation Diagram (BSD), of the CPU design from only external input-output observations instead of formal program code. During the generation of BSD, Monte Carlo-based expansion and the distance of Boolean functions are used to guarantee accuracy and efficiency, respectively. By efficiently exploring a search space of unprecedented size 10^{10^{540}}, which is the largest one of all machine-designed objects to our best knowledge, and thus pushing the limits of machine design, our approach generates an industrial-scale RISC-V CPU within only 5 hours. The taped-out CPU successfully runs the Linux operating system and performs comparably against the human-designed Intel 80486SX CPU. 

Как вам такое?

 ,

seiken
()

Опять уязвимость в этом Линукс

Форум — Talks

Никогда такого не было, и вот, опять. Оказалось, что реализация maple tree, которые добавили вместо rb tree для более отзывчивой рулёжки виртуальной памятью (в 6.1?), подвержена проблеме use-after-free. Исследователи утверждают, что у них есть готовый эксплоит, который позволяет локальному пользователю повысить привилегии. В соответствие с политикой выкладывания таких эксплоитов, опубликован код будет не ранее конца июля, но исправление уже смерджили.

https://github.com/lrh2000/StackRot

 

seiken
()

Время в комментах коммитов

Форум — Development

Какое время используете, настоящее или прошедшее?

Например:

Add feature XYZ

(в смысле «добавить фичу») или:

Added feature XYZ

(в смысле «добавлена фича»)

 коммиты

seiken
()

Linux под водой

Форум — Talks

Слышали новость? Какие-то богатые туристы залезли в батискаф, и решили погрузиться в океан, чуть ли не до Титаника. Ну и пропали без вести.

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

 

seiken
()

Гениальное открытие

Форум — Talks

Какое по-вашему самое гениальное открытие в математике за всю историю науки?

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

 гениальное, ,

seiken
()

Архитект или кто?

Форум — Talks

Как считаете, это нормально от архитекта требовать:

The Software Architect will be expected to conduct root cause analysis on defects,
identify interim and permanent fixes 

Понятно, что для каких-то нетривиальных багов нужна помощь всей команды технарей, но как понять, что у конторы просто нет программиста, и требуется «и швец, и жнец, и на дуде игрец»? Или в наступившем мире нет больше фиксированных ролей в ПО-инженерии?

 

seiken
()

Увеличить время видимости нотификации для usb-носителей

Форум — Desktop

Можно как-то увеличить время видимости нотификации, которая появляется при подключении usb-диска? Пока я доставляю мышь, чтобы открыть корень, нотификация уже исчезает. KDE той версии, которая в KUbuntu 22.04.

 ,

seiken
()

RISC-V набирает обороты

Форум — Talks

Под эгидой The Linux Foundation собрались большие акулы (Intel, Samsung, Nvidia, Google, Qualcomm, RedHat) и будут выделять деньги, координировать дальнейшую разработку софта (llvm, gcc, linux, android, python, openjdk, openblas и др.).

RISE is dedicated to enabling a robust software ecosystem specifically for application processors that includes compilers, toolchains, system libraries, kernel, virtualization, programming languages, Linux distribution integration, and tools for debug and profiling.

https://riseproject.dev/

Так что глядишь, лет через 5 очередной самсунговский смарт уже на RISC-V будет, а не на ARM. Ну а там и Apple подтянется, и «сделает всё, как следует».

 ,

seiken
()

CPS в нефункциональных ЯП

Форум — Development

Вопрос тем, кто использует (изначально, преимущественно) не функциональные ЯП (C++, Java, Python). Как вы относитесь к CPS (Continuation-Passing Style)?

Для тех, кто не в курсе, например, есть некая операция, которая может завершиться удачно, а может с ошибкой, и вместо:

Result performOperation()
{
	return doOperation();
}

...

Result result = performOperation();

if (OK == result)
{
	std::cout << "OK" << std::endl;
}
else
{
	std::cout << "NOK" << std::endl;
}

Делается так:

void performOperation(Func onSuccess, Func onFailure)
{
	if (OK == doOperation())
	{
		onSuccess();
	}
	else
	{
		onFailure();
	}
}

...

performOperation([]() {
			std::cout << "OK" << std::endl;
		},
	         []() {
			std::cout << "NOK" << std::endl;
		});

Заранее пардон, если какие-то синтаксические ошибки, это чисто концептуальные примеры.

Даже предлагаю варианты ответов:

  1. Код с этими лямбдами сложно понимать, всегда объявляю все функции и методы по-старинке, вызываю явно в императивном стиле;

  2. Да, только так и делаю. Умные люди придумали ФП не просто так и гораздо нагляднее, не то, что у дурачков с императивной лапшой;

  3. Мне всё равно, могу/делаю и так, и сяк.

 ,

seiken
()

Какие теперь Линуксы серверы использовать?

Форум — Talks

Вопрос админам и околоадминам. А так ли нужна была эта платная поддержка дистрибутивов типа RHEL, SuSE Enterprise (или как там его)? И теперь, в связи с прекращением ее на территории РФ, какие дистрибутивы использовать для серверов? Или всё пофиг, и всё то же самое, но без платной поддержки производителя?

 ,

seiken
()

Проверьте смену пароля в 802.1x

Форум — Desktop

Кто-нибудь с Убунтой 22.04 может такое проверить? Речь о сетевом интерфейсе с 802.1x (можно проверить с USB-to-Ethernet адаптером).

У меня на 20.04 вот такое: Устанавливаю пароль, сохраняю его, выхожу (до этого 8021x security не был включен). Далее, захожу опять в настройки интерфейса, меняю пароль, жму «Apply». Захожу опять, смотрю пароль - не поменялся!

Никак не меняется пароль в NetworkManager. Только если удалить профиль и создать новый.

Перемещено hobbit из general

 , ,

seiken
()

Что это за аутентификация?

Форум — Talks

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

Пароли люди выбирают плохие, или поддаются на удильные атаки, а с помощью ИИ так вообще… А на второй фактор тоже существуют свои атаки.

https://security.googleblog.com/2023/05/so-long- passwords-thanks-for-all-phish.html?m=1

 ,

seiken
()

Итоги ежегодного глобального опроса пользователей C++

Форум — Talks

Опубликованы: https://isocpp.org/files/papers/CppDevSurvey-2023-summary.pdf

Ничего нового особенно: 10-20 лет опыта работы на C++, 20+ общего опыта программирования, MSVC, десктопная винда, линукс, инженерия (авионика и проч.), ембеддед, исходники зависимостей - часть билда, напрягает менеджмент зависимостей и время сборки, большинство используют C++11.

 

seiken
()

Режим радио при заблокированном экране

Форум — Talks

Почему в Андрюше нет такого режима, как subj.? Например, Я включаю Ютуб, но мне не нужно видео, а только аудио, и соотв. не нужен включенный экран, и в то же время, Я например кладу смарт в карман или в машине в кармашек, и я не хочу, чтобы случайно нажалась какая-то кнопка.

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

Почему нет таких режимов?

 

seiken
()

Страуструп реагирует на критику безопасности C++

Форум — Talks

Отовсюду мы слышим стоны: C++ небезопасен! хватит использовать C++! АНБ призвало отказаться от C++, европейские законодатели готовят CRA, чтобы закрутить гайки для разработчиков небезопасного софта. Страуструп реагирует, вот его беседа о «Hardening C++»: https://youtu.be/eLLi0nWMUMs .

Начало:

  1. Когда я задумал C++ в 1979г., я взял C за основу. У меня не было знаний, чтобы создать ЯП с нуля;

  2. Я с самого начала всячески выступал за гораздо более строгую систему типов в C++;

  3. Меня раздражает, когда люди говорят о каком-то C/C++, это мифический ЯП, его не существует;

  4. Если мы говорим о безопасности, есть подмножество языка, которым можно ограничиться при написании безопасного софта. И тогда статические анализаторы типа clang-tidy или от MS позволят привести код довольно близко к виду «безопасный». Мы можем почти гарантировать, что в нем нет утечек памяти, болтающихся ссылок, и проч. Также можно опираться на безопасные библиотеки типа span, которые проверяют например границы доступа. И мы видем, что и другие ЯП прибегают к тем же мерам;

  5. другия ЯП, которые утверждают, что они безопасные и у них нет небезопасного кода… если в них есть способ вызвать C или C++, они уже не безопасные;

  6. Можно определить различные профили безопасности, которые определяют, какие фичи можно использовать, а какие - нет, чтобы избежать проблем, которые возникают из-за использования данных фич. Подобный подход используется в Ada. Но в принципе, это же делают статические анализаторы;

  7. Мы пишем библиотеку поддержки GSL, в которой есть такие вещи как span, которые позволяют избежать проблем с указателями;

  8. Если вы посмотрите на проблемный код, о котором все вопят, который приводит к проблемам, о которых вопят, это старый код, написанный в старом небезопасном стиле. Если посмотреть на то, как подобный код выглядит в новом стиле, этот новый код безопасен;

  9. Необходимо запретить разрабам компиляторов использовать UB как предлог для оптимизации;

и т.д. и т.п.

Выглядит довольно слабо. С самого начала был выбран небезопасный C в качестве основы системы типов. Как можно «выступать за безопасную систему типов» в ЯП, в котором в центре небезопасное ядро? Почему бы не набраться смелости и не сказать «да, C++ не безопасен, и никогда не будет безопасным; безопасность я выбросил, потому не нужна была, да и не потянул бы». Потом прошло много времени, проблемы набирались, как снежный ком, и теперь, когда C++ в каждой дырке, они начали чесаться: ой, нам нужны профили, нам нужно запретить небезопасные фичи; нам нужно то, это, третье, десятое, но вот статические анализаторы, они же примерно и делают необходимые проверки…

Особенно смешно выглядит сравнение с Адой и ее профилями. Потому что стандартная Ада, без всех ограничений, качественно безопаснее C++, и дело не в «безопасных библиотеках», а в более продуманной с самого начала системе типов. Но Страуструп не зря ссылается на Аду, скорее всего, понимает, что есть с самого начала грамотно спроектированные ЯП, а есть C++.

 ,

seiken
()

seLinux из коробки

Форум — Talks

Есть ли дистрибы Линукса кроме Федоры (ну и соотв. РэдХэт) на которых seLinux в режиме enforced работает из коробки? Или все кроме RH и ко на него забили в пользу apparmour или вообще без MAC? Пробовал врубить seLinux на убунте, вместо apparmour, и оно даже не загрузилось.

 ,

seiken
()

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