Ой! Сожгите, пожалуйста, вашу методичку, учебник, что у вас там. OpenGL 1.0, созданный в 1992 году, к данному моменту сильно устарел. Его поддержка сейчас имеется на десктопах, и то в режиме эмуляции. В современных драйверах видеокарт это приводит к проблемам с производительностью — на старых драйверах программы работают лучше, чем на новых.
На мобильных устройствах такого режима нет совсем, все только через шейдеры.
Так что учите шейдеры. Иначе ваши знания, приобретенные в процессе работы над этим проектом, окажутся на практике бесполезными в большом проценте случаев. Исключением будет разве что перенос дремучего легаси, которое еще надо поискать.
Высочайшие достижения нейтронной мегалоплазмы! — провозгласил он. — Ротор поля наподобие дивергенции градуирует себя вдоль спина и там, внутре, обращает материю вопроса в спиритуальные электрические вихри, из коих и возникает синекдоха отвечания…
Генотерапия будет именно что лечить организм, исправляя ДНК в соматических клетках. Да, излеченный при этом будет превращаться в ГМО (жуткий смех сумасшедшего ученого).
Мало того, использование этого вот натурального говна немножко так вызывает вспышки смертельных заболеваний. Потому что его тяжело простерилизовать, что приводит к требованию существенно более злобного мытья продуктов перед употреблением. С детергентами, ага.
Я бы включил режим максимальной паранойи.
Если пакеты от монитора не приходят в течении более чем полутора периодов, нужно бежать, орать, бить тревогу.
Если гуй не может допинговаться до бека в течении одной секунды — правильно, бежать-орать, выть сиреной
Если параметр резко скакнул — алярм.
Если бэк не видит свежих апдейтов в постгресе — алярм.
Если из сетевых интерфейсов полезли ошибки — алярм.
Если формат пакета нарушен — то же самое.
Короче, такая система должна быть увешана тестами, ассертами и проверками на все законы Мерфи, как атаман каракулем.
Вспоминается ныне мертвое решение Kerrighed — это как раз запуск одного линукса сразу на кластере из N писюков, соединенных по Ethernet
Обратите внимание. по ETHERNET. Ради устранения задержек, ребята весь IP стек выкинули к такой-то матери.
Никакого UDP, Кармак вас упаси. Только RDMA, только хардкор.
Теперь о проблемах. Если взять суровую монолитную вычислительную программу, которая написана под многопоточку (я брал традиционный LAPACK и считал GMRES) на одной машине и попытаться запустить ее вот на таком чуде (делал такие опыты с kerrighed), то задержки в канале связи (особенно, если это не InfiniBand или PCI-E) убьют, к сожалению все удовольствие.
В то же время, программа, написанная с учетом топологии кластера (OpenMP + OpenMPI) работала быстрее — просто потому, что разработчик знал, когда у него данные близко, а когда — на кудыкиных горах.
Просто допишут в EULA, что к эксплуатации могут быть допущены только лица с действующей второй группой по электробезопасности, с применением резинового коврика, калош, щитка и перчаток (все со свежими паспортами проверки электрической прочности), непременно в присутствии руководителя работ (допуск не ниже третьей группы). С обязательным наложением защитного заземления и установкой плакатов «Заземлено» и «Работать здесь».
Извечно любимое всеми электронщиками игнорирование систем контроля версий и выкладывание своего труда в облако (хорошо хоть не зипунами) удручает.
Вместо банального fork & clone на гитхабе для того, чтобы послать вам pull request вы предлагаете делать что? Писать длинные письма на почту? А как вы их будете систематизировать, учитывать, где открытые баги, а где закрытые? А как об этом узнает потенциальное комьюнити вашего прибора?
Кратко — ограничения на работу автоматики таковы, что она работает, пока практически все системы на борту и на земле работают, а погода — хорошая.
В частности, как-только кто-то припаркует свою колымагу, ну или боинг, в зоне ILS — автопайлот изволит начать болтать самолетом вслед за болтанием радиолуча наведения — согласитесь, так себе удовольствие для пассажиров.
То есть использование автоматики накладывает дополнительные эксплуатационные ограничения как на условия выполнения полетов, так и на эксплуатацию аэропорта.
Ну и самое главное — запарковать тачку на шоссе — опасно, но не фатально. Запарковать самолет около облака просто не получится.
Электроники (кроме одного резистора) не содержит, моторов два — один в гироскопе (можно заменить на мотор от жесткого диска и выкинуть редуктор), второй можно заменить шаговиком (но тогда потребуется контроллер)
alloca()
Большое обсуждение, почему это не лучшая идея.
В частности, там указываются такие проблемы:
-нет в стандарте
-при переполнении будет UB
-отключает некоторые оптимизации (типа вот этих:)
Если «статичный» в том смысле, что размер выделяемого места известен на этапе компиляции, то тоже необязательно. C/C++/C#, например, позволяют в рантайме выделять на стеке области произвольного размера, лишь бы хватало свободного места. alex_zzzz
У вас в прошивке нет ничего про watchdog, хорошо бы его задействовать. А то повиснет контроллер и откроет клапан на полную.
Более того, я бы попытался поставить последовательно c клапаном конденсатор (1мкф), чтобы отсечь постоянную составляющую. Это второй, уже аппаратный «вачдог» на случай зависания контроллера.
Интересно, кто-то подумал о том, что USB хорошо бы сделать Power Delivery + QuickCharge (что эквивалентно QuickCharge 4.0) — то есть, поддержать весь зоопарк скоростных зарядок и питания ноутбуков.
Благо, старорежимные ноутбуки, с простым DC входом и мощностью до 100W можно при помощи нехитрого хвостика с Али также питать от PD-совместимого USB.
Тем более, что верхним пассажирам розетки 220V урезали.
Ой! Сожгите, пожалуйста, вашу методичку, учебник, что у вас там. OpenGL 1.0, созданный в 1992 году, к данному моменту сильно устарел. Его поддержка сейчас имеется на десктопах, и то в режиме эмуляции. В современных драйверах видеокарт это приводит к проблемам с производительностью — на старых драйверах программы работают лучше, чем на новых.
На мобильных устройствах такого режима нет совсем, все только через шейдеры.
Так что учите шейдеры. Иначе ваши знания, приобретенные в процессе работы над этим проектом, окажутся на практике бесполезными в большом проценте случаев. Исключением будет разве что перенос дремучего легаси, которое еще надо поискать.
(с) АБС
Если пакеты от монитора не приходят в течении более чем полутора периодов, нужно бежать, орать, бить тревогу.
Если гуй не может допинговаться до бека в течении одной секунды — правильно, бежать-орать, выть сиреной
Если параметр резко скакнул — алярм.
Если бэк не видит свежих апдейтов в постгресе — алярм.
Если из сетевых интерфейсов полезли ошибки — алярм.
Если формат пакета нарушен — то же самое.
Короче, такая система должна быть увешана тестами, ассертами и проверками на все законы Мерфи, как атаман каракулем.
Обратите внимание. по ETHERNET. Ради устранения задержек, ребята весь IP стек выкинули к такой-то матери.
Никакого UDP, Кармак вас упаси. Только RDMA, только хардкор.
Теперь о проблемах. Если взять суровую монолитную вычислительную программу, которая написана под многопоточку (я брал традиционный LAPACK и считал GMRES) на одной машине и попытаться запустить ее вот на таком чуде (делал такие опыты с kerrighed), то задержки в канале связи (особенно, если это не InfiniBand или PCI-E) убьют, к сожалению все удовольствие.
В то же время, программа, написанная с учетом топологии кластера (OpenMP + OpenMPI) работала быстрее — просто потому, что разработчик знал, когда у него данные близко, а когда — на кудыкиных горах.
Вместо банального fork & clone на гитхабе для того, чтобы послать вам pull request вы предлагаете делать что? Писать длинные письма на почту? А как вы их будете систематизировать, учитывать, где открытые баги, а где закрытые? А как об этом узнает потенциальное комьюнити вашего прибора?
В частности, как-только кто-то припаркует свою колымагу, ну или боинг, в зоне ILS — автопайлот изволит начать болтать самолетом вслед за болтанием радиолуча наведения — согласитесь, так себе удовольствие для пассажиров.
То есть использование автоматики накладывает дополнительные эксплуатационные ограничения как на условия выполнения полетов, так и на эксплуатацию аэропорта.
Ну и самое главное — запарковать тачку на шоссе — опасно, но не фатально. Запарковать самолет около облака просто не получится.
Электроники (кроме одного резистора) не содержит, моторов два — один в гироскопе (можно заменить на мотор от жесткого диска и выкинуть редуктор), второй можно заменить шаговиком (но тогда потребуется контроллер)
Я бы сказал, что это дополнительная возможность, но уж никак не часть языка. Строго говоря, сам язык — это то, что входит в стандарт.
Большое обсуждение, почему это не лучшая идея.
В частности, там указываются такие проблемы:
-нет в стандарте
-при переполнении будет UB
-отключает некоторые оптимизации (типа вот этих:)
-если компилятор заинлайнит функцию, которая вызывает внутри себя alloca в цикле, ваш взорвется
И другие проблемы. За подробностями — смотрите обсуждение на SO
Более того, я бы попытался поставить последовательно c клапаном конденсатор (1мкф), чтобы отсечь постоянную составляющую. Это второй, уже аппаратный «вачдог» на случай зависания контроллера.
Благо, старорежимные ноутбуки, с простым DC входом и мощностью до 100W можно при помощи нехитрого хвостика с Али также питать от PD-совместимого USB.
Тем более, что верхним пассажирам розетки 220V урезали.