Обновить
4
@Alex_MEread⁠-⁠only

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

7
Подписчики
Отправить сообщение

Смотрел много роликов про лёгкие пенопластовые самолёты. Люди летают там на десятки км. С автопилотом. При этом их в воздухе ощутимо колбасит.

А зачем? Почему не Linux под ARM?

Шел 2020 год… Я гуглил QCZEK и наткнулся на этот пост, который сам и комментировал. В мире активно распространяется цифровой видеолинк от DJI, который, вроде как, даже не особо медленный. :)

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

Почему только CPU-bound? Производительность и отзывчивость в реальных задачах зависит от многих факторов, таких, как работа памяти.

а мы хотим измерять быстродействие устройства или, скажем, процессора? Я бы не хотел чтобы мой бенчмарк процессора на деле отражал быстродействие SSD.

Как минимум, речь идет о подсистеме памяти. Memory-bound задач очень, очень много, а память существенно медленнее CPU. Поэтому то, как процессор оптимизирует работу с памятью (кэши, префетчинг, реордеринг, параллельные запросы итп итд), может существенно влять на производительность. Глупо это не учитывать. Да, я понимаю, что сама ОЗУ может быть с разной частотой и латентностью. Щито поделать.


На IO-bound задачи тоже можно смотреть. Например, на задержки и скорость обмена по PCIe шине. Потому что работа контроллера PCIe, как он общается с памятью и с ядром — это микроарихеткутрные детали, и от них может зависеть производительность в определенных задачах. Особенно с учетом того, что практически все устройства, которые не являются ядром, так или иначе сидят на PCI(e) шинах (втч внутренних). Во всяком случае, в интелах.

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

Кстати, у меня вопрос. Большие RISC-процессоры с конвейеризацией, реордерингом и спекулятивным выполнением оперируют непосредственно инструкциями системы команды, или тоже разбивают их на более мелкие uOps?

Есть еще RescueTime: работает автоматически, автоматически категоризует большое количество приложений и веб-сайтов, а те, что он не знает, можно добавить ему в базу. Недостаток — ручного трекинга нет (во всяком случае, в бесплатной версии)

В C/C++ подобный способ инициализации (кстати, как он называется) чреват отстрелом ног — порядок можно перепутать, если типы позволяют:


typedef struct Dto {
    int foo;
    int bar;
}
const Dto make_dto(int bar, int foo)
{
    Dto ret = {bar, foo};
    return ret;
}

Либо есть designated initializers (C99, C++20):


{.foo=123, .bar=456}

которые возвращают проблему дублирования, о которой вы говорите. Так что, ИМХО, в Rust сделано неплохо.

А тут проблемы с платформой — в C# с моками всё очень плохо — если захочешь делать мок не на интерфейс, а на класс с не виртуальными свойствами и методами — пойдешь в жопу.

Это не проблемы, это хорошо. Я видел код на Python (в котором можно мокать почти всё), в котором для тест кейсов описывали штук пять-десять декораторов unittest.mock.patch (которые подменяют класс/метод на мок-объект), в том числе, мокающие некоторые приватные функции модуля при тестировнии его самого. Я вообще не уверен, что такой тест способен что-то отловить. Особенно, если учесть, что у питона динамическая типизация и даже изменение сигнатур зависимостей мы не заметим (они же замоканы!). mypy есть, но помогает не всегда.

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

https://ru.wikipedia.org/wiki/%D0%9A%D1%83%D0%BA%D0%BE%D0%BB%D0%BA%D0%B0

Разве старлинк не работает как большой высотный ретранслятор, т.е. требует базовую станциую для покрытия некоторой области?

Linux: Мы решили отказаться от Gnome, теперь у нас будет новый GUI! (Да, кстати, мы снова сломали network manager)

Какой дистрибутив из более, чем пары десятков только более-менее популярных? За последнее время помню только, как только Ubuntu отказалась от Unity в пользу Gnome в версии 18.04. Ну и да. Винда стоит немалых денег, при этом умудряется показывать рекламу (к счастью, ее хоть отключить можно) и собирает данные, а подавляющее большинство дистрибутивов бесплатны и разрабатываются на энтузиазме/пожертвованиях/итп.

ИМХО, с каждым обновлением Windows 10 выкатывают какие-то ненужные вещи, которыми не пользуюсь. То улучшают Edge, то какой-то бесполезный Paint3d, режим планшета, Game Bar, Windows Hello, какая-то мультимедиа, синхронизация, облачные функции, социальные функции итп итд. Единственное изменение, которое мне хотелось увидеть — это sets, и как раз его не сделали. Я не припомню ни одного полезного обновления, кроме, разве что, WSL2 (которым все равно не пользуюсь, потому что основная моя ОС и так линукс). Стала ли система работать быстрее*? Не заметно. Улучшилась ли стабильность? Не заметно, новости о том, что очередное обновление все сломало, продолжают регулярно появляться.


Оффтоп*
  • Субъективно о скорости. Вроде как я не вижу очевидных лагов и тормозов системы, но при переходе из линукса, возникает ощущение неторопливости. Приложения запускаются медленнее, различные меню и панели появляются с задержкой (К примеру, Пуск, сеть, центр уведомлений, календарь).
Предположим, у вас есть клевая библиотека по сериализации и есть другая не очень клевая легаси библиотека ORM, которая фигачит вам кучу POJO объектов. И вам стало нужно эти объекты сериализовать первой библиотекой. Но вот беда: ваши POJO объекты не реализуют нужный интерфейс MyCoolSerializable.

Если я вас понял, то у в этом примере у Вас есть библиотека с тайплкассом, библиотека со структурой и вы реализуете тайпкласс из одной библиотеки для структур из другой. В Rust это называют Orphan Rules, которые заключаются в том, что либо нельзя реализовать "чужой" трейт (==тайпкласс) для "чужой" структуры. Что кажется печальным и, на мой взгляд, снижает гибкость.


Вопрос: а как с этим обстоят дела в более труЪ ФП языках, таких как Haskell, Scala итп? Насколько это реализуемо и насколько это распространенная практика?

Ужасное будущее, имхо. Ради каждой маленькой программы тащить не просто полный набор библиотек рядом, как в винде, но и аж целый контейнер.

Я думал, тут про one shot learning, а тут такое...

Может, Arch/Mandjaro, если нужны свежие версии пакетов и/или минимализм?
Плюсы:


  • можно взять голый арч и настроить все так, как хочется
  • роллинг релиз, новые версии пакетов
  • бинарные пакеты, не надо собирать долго
  • много пакетов
  • если всё-таки пакетов мало, есть aur

Информация

В рейтинге
Не участвует
Откуда
Волгоградская обл., Россия
Зарегистрирован
Активность