Search
Write a publication
Pull to refresh
196
0.1
Андрей Дмитриев @AndreyDmitriev

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

Send message

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

Я б просто взял мониторчик чуть побольше. На этом хорошо температуру показывать, а для данной задачи он не очень подходит.

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

Даже позитрон и электрон в процессе аннигиляции превращаются в кинетическую материю двух гамма квантов представляющих собой возбуждение электрической материи.

Энергия каждого их этих квантов равна энергии покоя электрона или позитрона.

\mu_e C^2=h \nu

При этом энергия независимо от знака заряда частиц всегда положительна.

Я ни в коей мере не хочу Вас обидеть, но когда я грыз гранит науки на Физико-Техническом факультете питерского Политеха в начале девяностых, то за подобную формулировку студент сильно рисковал быть изгнанным с экзамена, а зачётка его летела бы следом в открытую дверь, сопровождаемая криком преподавателя "вы не физик, вы — дворник!" (я сам был в числе таких, когда не смог назвать четыре фундаментальных взаимодействия). Ну помилосердствуйте, какие такие "кинетическая и электрическая материи", а? Нет таких в природе. Аннигиляция электрона и позитрона действительно порождает два гамма кванта (обычные фотоны, на самом деле), причём с энергией по 511 keV. Дальше про то, как "не очень энергичные кванты оказываются на одной траектории" я уже не читал, поскольку разлетаются они в строго противоположные стороны. Хотя, как последний шанс, преподаватель мог спросить студента — почему именно 511, откуда она такая получается и почему в противоположные стороны?

Задача вовремя (в смысле заранее) включить поворотник, кстати, нетривиальная сама по себе. И если при проезде перекрёстков можно в теории воспользоваться маршрутом навигации (если она активна), то при обгоне чуть сложнее (если машина не на автопилоте едет). Вообще БМВ должна поупражняться на задачах попроще. Вот у меня Мини Купер гибридный, довольно навороченный, эта марка вроде часть БМВ, так она, к примеру, тупо вырубает радио и климат по таймеру, даже если я сижу в машине. Вот казалось бы, датчик присутствия копеечная штука, да он и есть в сиденье, в пассажирском точно есть, но нет. Самое издевательское, что она отключает всё даже в тот момент, если я в навигации ввожу адрес, или переключаю радиостанции, при этом, зараза, ещё издевательски пишет, мол я через несколько секунд выключу систему, и чтобы включить её обратно, вам надо будет нажать кнопку включения. Там две команды явно софт писали, одна из которых отвечала за таймер и работала в реджиме полного пофигизма. А вы тут про интеллектуальные поворотники...

Немного нагружает, да, но не на "30-70%", я вот вижу процента четыре от силы:

Как говорится — ну да, ну ужас, но не "УЖАС-УЖАС!"...

В LabVIEW в общем всё тоже самое можно устроить, но, пожалуй чуть проще.

Вот смотите, допустим у меня два for цикла, я сделаю ровно такой же вывод, как у вас, только всё же назову это дело потоками, поскольку тут два потока и используется, и вот:

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

А теперь смотрите, я кладу оба эти потока в однопоточный Timed Loop (и заметтьте, что бонусом я могу ещё и ядро проца указать, на котором этот поток должен исполняться), и вот:

Теперь они честно отрабатывают в одном потоке c ID 13116. При этом они друг друга не тормозят, если я сделаю второе "волокно" сильно задумчивым, то первое его ждать не будет, а отработает разом все свои пять итераций:

В GetThreadID () я бросил небольшую задержку, она заставляет вставать "волокно" на ощутимое время, тогда эффект "поочерёдности" при примерно равной скорости исполнения волокон нагляднее получается, вот код, там честный GetCurrentThreadId() из WinAPI:

#include <Windows.h>
#include "Fibers.h"

int GetThreadID ()
{
	Sleep(10);
	return GetCurrentThreadId();
}

Как-то так. NI называет параллельно исполняющиеся несвязанные участки кода "чанками", (chunks), они всегда исполняются в параллельных потоках, пока не исчерпается пул, а дальше будут отрабатывать как "волокна". Эх, было б круто, если б вы вообще всё на чистом асме, включая вывод в консоль. Может в отпуске сделаю, когда заняться будет нечем. И да, спасибо!

Я имел ввиду однократный щелчок по кнопке максимизации. А этой фишкой я эпизодески пользуюсь, но как-то не прижилось, а может оттого, что дома я на Линукс (Pop!_OS) пересаживаюсь, и в Cosmic Desktop оно чуть удобнее решено.

Я ребёнку подарил Sony FDR-AX53:

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

Я держу VS Code слева, консоль посередине и документацию справа — всё видно без скролла.

Вопрос: если вы жамкнете по кнопке максимизации окна в VS Code, консоли, или в чём вы там смотрите доки, то эти окна развернутся соответственно на треть дескопа, или на весь монитор? Я это к тому, что "правильного" менеджера, который бы эмулировал три монитора я в природе не встречал. Я тоже пробовал пересесть на сорокадюймовый монитор, но вернулся к старой конфигурации — тридцать дюймов по центру и два по двадцать вертикально:

Меня гугль в конце прошлого года отчаянно невзлюбил (при этом единственное объяснение - то, что пара страниц с наибольшей посещаемостью ушли с главной, а так там просто блог-записная книжка на hugo, в основном "для себя"). Ну, бывает.

Глядя на статистику, я вспоминаю гениальные слова пьяного наборщика из Вирджиния-сити (из фильма "Марк Твен против"): "...слава — дым; популярность — случайность... Единственное, что прочно на этом свете — это безвестность".

К тому же не просто дубль, есть программы, да тот же far manager, где нажатия правого и левого контрола различаются. У меня дома клава Sun, полумеханика винтажная, но без правого контрола, это неудобно, даже хотя я клавиши переназначил, а вот fn не всегда перенеазначить можно.

Что касается гражданства — тут есть нюанс. Дело в том, что оно даёт не только «плюшки» и безусловные удобства в виде заметного организационного упрощения жизни в стране, но и накладывает, скажем так, определённые обязательства на новоиспечённого гражданина, как к примеру и то, что на протяжении какого-то времени с момента приезда в Израиль молодому репатрианту следует зарегистрироваться в пункте призыва. И вот слушаю я новости по радио — буквально позавчера: «…Сообщается, что Израиль намерен мобилизовать десятки тысяч резервистов. Они должны заменить регулярные войска на Западном берегу, чтобы их можно было отправить в сектор Газа…». Ну так, чисто для информации.

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

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

Мы в прошлом году два раза в Швеции были, ездили на машине из Германии через Данию. Осенью паспорта проверяли на съезде с Эресуннского моста, там будки стоят, причём попросили документы всех сидящих в машине. А вот под Рождество никто не проверял, пограничники, видимо ушли отмечать.

По моему мнению (но я интроверт), у каждого программиста должен быть отдельный кабинет, с закрывающейся дверью, окном и стенами для липких листочков. "Оупен спейсы" — зло страшное, когда нашу компанию купили американцы, они первым делом снесли несколько стен и засадили всех в один зал. Меня вот ровно на три месяца хватило, самых бесполезных месяцев моей жизни. Потом я снова перебрался в кабинет. В домашнем офисе — тоже самое, должна быть хоть маленькая, но отдельная комнатушка. Это притом, что я работаю в промышленном программировании, и иногда приходится работать на заводе, в шумозащитных наушниках, но это другое.

В прошлом году как раз наблюдал моих детей — гимназистов, с рулеткой, изображающих из себя Галилея — один ронял конфету, второй снимал... Я спросил — оказалось, что им задали измерить g в домашних условиях. Я (как закончивший физтех со степенью магистра) заметил им, что это в общем похвально, но сильно точно с метровой высоты не получится, да и конфету лучше заменить на стальной шарик... В голове у меня сразу родилось два плана — либо взять цифрозеркалку на штативе с хорошим объективом, выставить там 60 FPS, затем раздербанить видео на картинки через ffmpeg, там и посмотреть, на каком кадре начинается и заканчивается падение, либо я могу притащить с работы пару ультразвуковых датчиков, прилепить их на стену, подкинуть их на входы ардуинки, или ещё лучше, сRio, там FPGA на 40 MHz, я просто посчитаю такты между фронтами... Я предложил им помочь — Не, пап, спасибо, мы сами... Нам тут в гимназии приложуху выдали... Дальше я с изумлением наблюдал, как прямо на смартофоне отрок загрузил видео, там оно покадрово, затем, вот прямо на экране тыркнул в падающую конфетку, потом ещё раз, и через пару минут выдал — вот, примерно 9,6, да ещё и с графиками зависимости координат и скорости от времени, этой точности нам достаточно, нам важен принцип. Я был впечатлён. Эх, мне бы такие возможности, когда я грыз гранит науки тридцать лет назад.

простите но на С++ есть нюансы,

Ну при чём тут плюсплюсы-то? Я Вас уверяю, интринсики будут одинаковы что там что на Си. Вот, смотрите, код из пятой главы - это ровно тоже что и у Вас, только с FMA до кучи. Тут как раз нет вообще никаких нюансов.

на Расте будет либо так же по скорости либо быстрее ... так же есть разница в платформах,...

Вы мешаете вообще всё в одну кучу.

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

Вы термин "ускоряющихся регистров" сами придумали? Вот я бы порекомендовал раздобыть книжку Даниэля Куссвюрма "Профессиональное программирование на ассемблере x64 с расширениями AVX, AVX2 и AVX-512" и прочесть, хотя бы ради терминологии. Второе издание переведено на руский, третье пока нет, вроде. Лучше возьмите обе, на английском тоже "Kusswurm Daniel — Modern X86 Assembly Language Programming" (там в русском таки есть косяки перевода). Хотя эти книжки и не идеальны, но в них есть ровно всё то, что Вы выше изложили, причём весь код из книги издательством выложен на Гитхабе, включая использование FMA и произвольные размеры матриц. Если на интрисиках, то "Modern Parallel Programming with C++ and Assembly Language" того же автора, а код к ней вот здесь.

1
23 ...

Information

Rating
5,658-th
Location
Ahrensburg, Schleswig-Holstein, Германия
Date of birth
Registered
Activity