Обновить
-3

Пользователь

0,1
Рейтинг
1
Подписчики
Отправить сообщение

Наверное, это одна из самых отвратительных структур данных для современных процессоров. Основная проблема здесь — cache locality: элементы списка могут лежать в памяти где угодно, поэтому процессору приходится постоянно прыгать по адресам вместо того, чтобы эффективно читать данные последовательно.

std::unordered_set<std::shared_ptr>

🫡

так и не понял в чем принцип вашего решения и почему OBS так не может… Было бы неплохо разобраться в этом, раз уж пишете об этом статью. А так получается просто самореклама какая-то.

А по скринам и не скажешь что ваша программа особо лучше. Хоть я бы не стал так прямо доверять цифрам в task manager, но там разница в 2 раза примерно.

Это хорошо, но не особо помогает слабым пк. Потому что те же игры на них сжирают скорее всего 90% и тут уже неважно хочет OBS 50% или ваша 30%. Так и так не хватит.

Есть небольшая прослойка студий, сохраняющая инженерную культуру и не боящаяся писать свой железобетонный говнокод, […]

кто же они?

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

Возможно, проблема в том, что разработчики любят чрезмерно экспериментировать, мечтая придумать что‑то лучшее. […]

Каким должен быть идеальный язык? В моем представлении идеальный системный язык должен быть классическим и простым. Чтобы потом не возникало сожалений о каких‑то сомнительных решений. И конечно же, чтобы каждый мог за час разобраться в нем.

Мне кажется или вы в своем дизайне сделали все да наоборот? И поэксперементировали и ушли от классики и простоты.

Вот если бы вы сделали точь в точь Си, но поправили ошибки, которые описали вначале. Вот тогда это было бы “классически” и “просто” и: каждый мог за час разобраться в нем

Гугола это google? который купил, а потом закрыл (ну тут вернул)

интересно было бы посмотреть на ваш язык.

Для if(x>0) y; else z; возвращаемый тип это тип-сумма typeof(y) + typeof(z)

кстати, тоже об этом подумал пока читал статью, но сейчас задумался - а бывает ли необходимость в типее произведении typeof(y) * typeof(z)? И что этот тип вообще из себя представляет… Сумма то понятно, уже много где есть, а вот произведение или другие операции нигде не видел чтобы применяли в системе типов.

Но статья не о том, что шаблоны опасны сами по себе, но что вывод типов через шаблон меняет, как читается const T& и разработчик перестаёт держать в голове вопрос “а что мне реально прилетело”.

мне кажется или как раз с const& шаблон ничего не меняет? Тут мне всегда прилетает константная ссылка. А что там в объекте за mutable и const_cast - это его проблемы. Он должен сам свои инварианты соблюдать.

А вот с T& вы правы. Не совсем очевидно что тут может прилететь константная ссылка. Но, с другой стороны, - это имеет какое-то значение? Кроме как для чтения кода. Ведь если кто-то передаст const int&, то код просто не скомпилируется (если и правда обращается к неконстантным методам).

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

Кажется тут просто логическая ошибка. Переведем на людей:

  • любая человек никогда не будет знать все об окружающем мире

  • Без этого никогда не будет экспертности в проекте или части кода

=> вывод: не существует людей с окспертностью в проекте… Вывод, очевидно ложный. В реальности это неправда.

по-моему вы упускаете тот же самый момент что и автор статьи:

Проблема всё равно остаётся: откуда берётся эта точная спецификация

Во-первых, спецификация и есть по сути код.

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

Т.е., то что вы упускаете - почему этим “современным разработчиком” должен быть человек? Что мешает следующему или N-ому клоду быть достаточно сообразительным чтобы заниматься этим? Правильно - ничего.

P.S. хотя похоже иммено это и пытается сказать @amazingname, пусть и в не очень сдержанной манере.

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

знаем мы эту профессиональную лень. Через 5 лет этих разработчиков уже и след простыл, а тебе разгребать.

Важное уточнение - вместе с навыком профессиональной лени идет навык профессиональная бдительность. Важно не проморгать момент, когда эта “упрощенная” модель, которая работала тогда, начинает расти во что-то серьезное, чтобы успеть переписать еще пока небольшую систему в что-то сносное и расширяемое, чтобы не получился монстр…

Но если ivan попробует прочитать файл – получит Permission denied. Почему? Ядро проверило: EUID процесса совпадает с UID файла – совпадение на шаге 2. Применило биты owner – —. Остановилось. Биты group rwx даже не рассматривались. ivan является владельцем, но у владельца нет прав. Группа имеет полный доступ – но до неё проверка не дошла.

Решение – дать владельцу права явно:

какое ж это решение…

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

Оказывается все не так просто… Было бы интересно узнать какое решение правильное. Либо для чего нужны группы тогда…

так и не понял, что мешает появиться в нашей вселенной разуму, но на планете которая вообще не попадает на ось зла…

почему? разве пересечение оси зла с солнечной системой это обязательное условие для зарождение жизни там?

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

О том, что результат операции над float нельзя сравнивать с целым, включая 0, мне рассказывали на лекции в году эдак 2003-ем

и, к сожалению, лгали. Сравнивать float с целыми числами вполне можно. Вот, даже статейку недавно постили неплохую - https://news.ycombinator.com/item?id=47767398

P.S. каюсь, увидел что написано “результат операции”. Но статейка все равно полезная)

не знаю почему вы не можете услышать мою мысль…

  • С чего вы взяли что подсознательно это работает через оценку обоих вредов и сравнение?

  • зачем это сравнение формализовывать? Мой первый же коммент про то что необязателльно это специфицировать/формализовывать чтобы оно работало. Думаете кто-то в моей голове это формализовал? пока я спал, разве что)

не думаю что это была причина такого дизайна. Скорее тогда не придумали ничего лучше. Были тогда уже языки, которые делали вывод через форматную строку вроде print(“Hello, {}!”, “World”) ? - не уверен.

Думаю тут ещё сыграло то что тогда не было возможностей для compile-time разбора форматной строки. Предложу что главной целью стримов было уйти от printf чтобы обеспечить безопасный вывод.

причем здесь сравнение количества вреда…

я не сравниваю в голове количество когда думаю про химиотерапию или нападающего с ножом - чаще всего на уровне интуицию понимаю правильный ответ.

не понимаю вас, изложите ваши мысли яснее, пожалуйста.

Я, как человек (надеюсь), легко могу ответить что на ваши что на вопросы @konst90 выше. И для этого мне все еще не нужна спецификация ни вреда ни человека

1
23 ...

Информация

В рейтинге
3 320-й
Зарегистрирован
Активность