Руководство по стилю Makefile ( clarkgrubb.com )
Source: news.ycombinator.com
Уэйланд взрослеет. И теперь у нас нет выбора ( mataroa.blog )
(Конечно, вмешательство администратора в другую сторону всегда возможно, и это тоже вполне справедливо. Если вы хотите немодерируемого обсуждения, вам придется пойти в другое место.)
Source: news.ycombinator.com
Наш кризис — это не одиночество, а то, что люди становятся невидимыми. Эссе ( aeon.co )
PS: Пожалуйста, не ставьте минусы только потому, что мысль о том, что невидимая инфраструктура вашей жизни рушится, вас злит.
Source: news.ycombinator.com
Он — артист перформанса 70-х, который стал героем для «Garbage Men» ( nytimes.com )
Я работал в технической поддержке почти 20 лет, работая над разными вещами, большим сетевым оборудованием, оборудованием мэйнфреймов. Некоторые компании платили очень хорошо и зарабатывали деньги / оставались на плаву в трудные времена, потому что у них была репутация предоставлять высококачественную техническую поддержку. Но в конце концов каждая компания, похоже, обесценивает ее. Качество управления начинает падать, ресурсы медленно выкачиваются, некоторые ошибки управления, которые, поскольку проблемы сообщаются через каналы поддержки, каким-то образом всегда являются ошибкой поддержки. Дела начинают меняться, и все становится плохо, кто-то решает, что аутсорсинг хорошо смотрится в резюме и так далее.
Перед тем, как я ушел со своей последней работы в службе поддержки, местный менеджер решил отменить ежеквартальную вечеринку с пиццей (может быть, на пиццу было потрачено несколько сотен долларов), чтобы сэкономить деньги… Я выкупил свою долю (мне повезло), и в качестве забавного способа провести время я устроил собственную вечеринку с пиццей, потратив собственные деньги 😉 Компания привлекла сотни миллионов долларов, а я устроил вечеринку с пиццей.
Я пошел дальше и теперь пишу код, где тебе платят больше / ценят больше / уважают больше, создавая новые вещи. Трудно избежать того факта, что обслуживание просто не уважается.
Как вы количественно оцениваете инциденты, которые не произошли из-за надлежащего обслуживания? Вы обслуживали больше, чем необходимо, чтобы не было инцидентов?
Менеджеры среднего звена являются отражением лидерства.
Source: news.ycombinator.com
Изучите Makefiles ( makefiletutorial.com )
Интересными моментами являются, например, флаг -MMD для gcc, который выводит файл .d, в который вы можете включить ${wildcard *.d}, и вы получите бесплатные, актуальные зависимости для ваших заголовков и т. д.
Это и «vpath», чтобы указать, где найти исходные файлы для % правил, и, по сути, вся тяжелая работа сделана, и ваш Makefile размером в 1/2 страницы останется прежним «навсегда» и будет работать через 20 лет…
В основном считается слишком сложным, если не невозможным, статически определить зависимости цели. Теперь это делается динамически с помощью инструментов типа `clang-scan-deps` [2]
[1] https://cmake.org/cmake/help/latest/manual/cmake-cxxmodules….
[2] https://llvm.org/devmtg/2019-04/slides/TechTalk-Lorenz-clang…
Синхронизация вывода, которая заставляет `make` печатать stdout/stderr только после завершения цели. В противном случае это обычно чередуется и трудно отследить:
make –output-sync=recurse -j10 В загруженных / многопользовательских системах флаг `-j` для заданий может быть не лучшим. Вместо этого вы также можете ограничить параллелизм на основе средней нагрузки:
make -j10 –load-average=10 Рандомизация порядка, в котором планируются цели. Это полезно для вашей CI, чтобы укрепить ваши Makefiles и посмотреть, не пропустили ли вы зависимости между целями:
сделать –shuffle # или –shuffle=seed/reverse
Но не переносимые. Пожалуйста, не используйте их за пределами ваших собственных нераспространяемых игрушечных проектов.
Makefiles — это жуткие lisp-подобные тюринговые тарпиты. GNU Make даже имеет возможности метапрограммирования, и он вездесущ. Противостоять желанию метапрограммировать какую-нибудь нечестивую систему внутри makefile может быть сложно.
Source: news.ycombinator.com