Category: производство

Category was added automatically. Read all entries about "производство".

general

(no subject)

Выходит второе издание довольно сильной книги, с добавившимися авторами

"The Art of Multiprocessor Programming"
Maurice Herlihy, Nir Shavit, Victor Luchangco, Michael Spear

https://www.amazon.ca/Art-Multiprocessor-Programming-Maurice-Herlihy/dp/0124159508

В основном они там занимаются неблокирующими синхронизациями, что очень круто и интересно, но мало соответствует практическим реалиям промышленного программирования и имеет немалый риск написания ошибочного кода. Crossspost: dreamwidth.org
general

ping-ping

Пришла футболочка из Китая, которую я заказывал в феврале.

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

Доставка заняла 4.5 месяца. Из них 3 месяца посылка шла до Канады и ещё 1.5 месяца по Канаде.
В общем, рекорд, если не считать примерно тогда же заказанных медицинских масок, которые, скорее всего, канули в небытие, если вообще существовали в природе.
general

(no subject)

Не слежу давно за развитием С++, но вот немножко огляделся, загрузил себе VS 2017 и с неудовлетворением отметил, что асинхронные функции так и остались "экспериментальными".

Асинхронных функций так в стандарт C++17 и не ввели, и, что забавно, в комитете наметилась
какая-то группа диссидентов, которым не нравится, как асинки сделаны были в C# и они хотят это делать в С++ как-то по другому, какие-то более универсальные coroutines, но пока окончательно непонятно как. Кажется, именно их стараниями асинки не вошли в C++17, хотя, наверняка, были ещё причины.

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

мультитредные бурчалки

1. поразительно, как много людей, особо заточивших свой моск под MS Windows(tm) считают, что достаточно критических секций (на крайняк, read-write lock-ов) для того, чтобы писать практически что угодно в мультитреде. В чем они правы, так это в том, что на критических секциях действительно можно написать немало, и порой, можно написать относитльно нетривиальные вещи. И всё же... если такого человека спросить, хватит ли ему критических секций, чтобы написать всё, что угодно, то он, конечно же, немедленно вспомнит об...

2. Об Event-ах. Интересно было бы узнать детальную историю, кто и как додумался включить автоматические и мануальные Eventы в Windows. Кто. И как. И кто. Кто этот враг рода человеческого, и о чем думали в это время его коллеги? Наверное, Events появились в PL/1. Впрочем, были ли там мануальные Events? Были ли Events в DEC-овских операционных системах, откуда (из DEC) пришли разработчики NT Kernel? Придумал ли Events человек с хорошим бекраундом в электронике? (ведь ожидание event так напоминает ожидание фронта или уровня сигнала!)

3. Уж сколько лет существует .NET, Java, не говоря уже о POSIX. Но стоит произнести слово "conditional variable", в ответ, как правило, видишь лишь недоуменный взгляд. Потому что, как уже было отмечено, критических секций достаточно. Практически на всё. И это почти правда.

4. Попробуйте реализовать condvar под Windows. Ну попробуйте! Создатели ACE попробовали, даже статью написали об этом. О шести неправильных вариантах реализации и о седьмом. Потом оказалось, тоже неправильном. Всё-таки, другие люди потом придумали правильную реализацию. Они так говорят. Я им не очень верю, но всё равно преклоняюсь, ибо в том, что они написали, я вообще ничего пока понять не могу.

5. Впрочем, всё это суета. Ибо всё это уже давно очень слегка подустарело. О чем, опять же, промышленному кодеру знать и не обязательно. Промышленному кодеру освоить хотя бы The Little Book of Semaphores, потом отложить её в сторону и... снова заняться расстановкой критических секций в коде. Чтоб не сбоил, ага.