Олег, давайте договоримся: когда вы продемонстрируете проект на RIOT OS в котором на 8-битном контроллере с 8-ю КБ памяти в реальном времени функционируют:
— Веб-сервер
— Сайтовый движок
— 8 сайтов, каждый со своим функционалом, дизайном и топологией
— С поддержкой честных интерактивных 3D-сцен
— Power Monitor-ом на 14 каналов и сетевым осциллографом
— Поддержкой nRF24 связи с датчиками и второй распределённой частью
— 60-ю датчиками и актуаторами
— Dash-панелью работающей в реальном времени
— И прочими возможностями, описанными в статье
То, обещаю, в тот же день я вам предоставлю эту библиотеку.
Это забавно, а о таком прогрессивном явлении, как библиотеки вы слышали?
Объясняю как это делается: один раз пишется (простенькая) библиотека, а затем в любой момент в код вставляется одна строка. И да, это на Ардуино тоже работает.
Это не устаревший инструментарий — Ардуино это платформа, которой пользуются миллионы людей и проект написанный на Ардуино имеет шанс быть понятым и используемым множеством людей в DIY, в отличии от RTOS и чистого C++. Другими словами — это платформа DIY.
И разумеется ничто не мешает мне сделать следующий проект на столь милой вашему сердцу RIOT OS — интересы у меня очень обширные.
Вас не волновать, а хотя бы смутно тревожить должен не объём индустрии, а понимание количества людей вовлечённых в эту сферу и той пользы которую Ардуино им приносит.
И речь идёт не о том, что вы должны что-то замалчивать, а о том, что вы высказываете несправедливые и предвзятые суждения об этой технологии, взять хотя бы вашу цитату из второй лекции, вынесенную в начало статьи о том, что на Ардуино затруднительно мигать пятью светодиодами в независимом режиме — это просто не соответствует действительности — на Ардуино нет никаких проблем с подобным миганием.
Олег, вы в курсе, что «ардуино» на данный момент это целая индустрия с миллионами людей находящимися в этой сфере и тысячами потрясающих проектов, а так же это обучающая платформа, которая приобщает к микроконтроллерам и техническому творчеству огромное количество людей всех возрастов и профессий?
Ну наконец-то, появился сам виновник торжества. :)
Как я уже написал в статье, ваши лекции хороши и всё вы в них говорите правильно, но ваше отношение к Ардуино и использование её в качестве объекта для титрирования на протяжении всех лекций вызывает мягко говоря недоумение. Кроме просто пренебрежительного отношения вы ещё и допускаете фактические ляпы, заявляя, что мигание пятью светодиодами в независимых режимах затруднительно на Ардуино. И подобных ляпов я насчитал в ваших лекциях около десятка.
Дело в том, что вы высказываете своё пренебрежительное отношение этой технологии, не в кулуарах и не в личной беседе, а с трибуны технического университета, тем самым формируя такое же предвзятое отношение к Ардуино и у студентов.
Это не значит, что студенты университета должны учиться на Ардуино, но и обвинять Ардуино во всех смертных грехах по делу и без дела тоже не стоит, тем более, что вы выступаете в роли безусловного авторитета для ваших слушателей.
Ну, во первых, прежде чем комментировать в духе «книгу я не читал, но осуждаю», желательно всё же ознакомиться с первоисточниками в виде лекций и одного из дистрибутивов АМС. Без этого ваши комментарии имеют очень небольшую ценность.
И, во вторых, лучше вообще не врать, особенно когда ты выступаешь с кафедры университета и программируешь поведение (на основе внушаемых стереотипов) десятков (а учитывая распространение лекций через интернет) тысяч людей.
Ёлки-палки дык и я о том же. Тем более на одноядерном контроллере — этот цикл так или иначе присутствует в системе — вопрос только на каком уровне и какая абстракция торчит наружу.
Олег говорит всё правильно и в статье я это отметил и порекомендовал всем заинтересованным в вопросе ознакомиться с его лекциями.
Но.
Наряду с 99% абсолютно правильной информации Олег позволяет себе говорить вещи абсолютно не соответствующие действительности. Проблема в том, что Олег произносит эти вещи не в курилке среди своих собратьев по разуму, а с трибуны технического университета и на головы несчастных студентов.
На протяжении всех лекций Ардуино у него выступает в роли «мальчика для битья». То у Олега ардуинщики не смогут помигать пятью светодиодами, то «подход с бесконечным циклом не работает на сложной программе» то ещё куча высказываний подобного рода.
На самом деле подход с бесконечным циклом прекрасно работает на сложной программе и в этом каждый может убедиться, скачав дистрибутив АМС для любой из десятка платформ от Mega 2560 до ESP32.
Вы написали очень много букв, я скажу короче. Олег заявил, что у ардуинщиков будут проблемы с тем, чтобы помигать пятью светодиодами. Я утверждаю, что это снобистское и не соответствующее действительности заявление.
Странные вы какие-то делаете выводы. Мы все (я по крайней мере) постоянно учусь и это абсолютно естественный процесс — у кого-то он идёт быстрее, у кого-то медленнее, но я тут останавливаться совершенно точно не собираюсь.
Что касается подсчёта строк, то как сама затея, на мой взгляд имеющая мало смысла, так и ваша методика, игнорирующая весь JavaScript, Processing (а также спорный CSS код), то есть две трети всего кода тоже, мягко говоря, весьма странны.
Также большие сомнения у меня вызывают ссылки на «эффективный» код и приведённые вами примеры подсчёта непонятно чего из «~/tmp/» директории.
Если вы уже так хотите посчитать количество строк в проекте, то сделайте это корректным способом и огласите методику подсчёта или просто не стоит поднимать эту тему.
Смотрите: решение, представленное в статье — это только один из возможных способов реализации (псевдо) многозадачности, со своими недостатками о которых упомянуто в этой статье.
При всех его (очевидных) недостатках — это рабочее и прекрасно работающее на практике решение, о чём не нужно забывать при его обсуждении.
Ну и конечно все будут только приветствовать статью, где автор представит описание своего варианта решения проблемы, подкреплённое работающим публичным проектом с несколькими десятками тысяч строк кода.
Объясняю. Тут чуть выше пытались подсчитать количество строк кода в проекте, толком это не получилось, но судя по всему цифра будет в районе многих десятков тысяч. И мест для улучшения как чисто формально-технических, так и концептуальных там просто немерено.
В этой связи просто физически нереально улучшать код в тысячи разных мест одновременно. Поэтому проект содержит огромное количество мест, которые я знаю как улучшить, но которые до сих пор остаются не исправленными и не оптимальными. В этой реальной ситуации приоритет один — общая работоспособность проекта.
С этим никто не спорит — технических решений может быть огромное количество. Я, со своей стороны, хотел бы чтобы вы ещё раз посмотрели на схему и описание контроллера из статьи и прикинули бы какой там уровень сложности и какой уровень понимания нужен для того, чтобы это всё работало как часы с типовыми задержками 10 мс — тогда сомнения в том, что автор имеет представление о переполнении таймеров отпадёт сам собой (по крайней мере должен отпасть).
Олег, вы это серьёзно? Написание такой библиотеки это детская задачка для начинающего ардуинщика.
А вот аналога описанного мной функционала или хотя бы чего-то похожего, сделанного на RIOT OS мы от вас никогда не дождёмся (даже в теории).
— Веб-сервер
— Сайтовый движок
— 8 сайтов, каждый со своим функционалом, дизайном и топологией
— С поддержкой честных интерактивных 3D-сцен
— Power Monitor-ом на 14 каналов и сетевым осциллографом
— Поддержкой nRF24 связи с датчиками и второй распределённой частью
— 60-ю датчиками и актуаторами
— Dash-панелью работающей в реальном времени
— И прочими возможностями, описанными в статье
То, обещаю, в тот же день я вам предоставлю эту библиотеку.
Объясняю как это делается: один раз пишется (простенькая) библиотека, а затем в любой момент в код вставляется одна строка. И да, это на Ардуино тоже работает.
Олег вы передёргиваете, ничего справедливого и не предвзятого по отношению к Ардуино в ваших лекциях нет.
Какая религия запрещает на Ардуино обернуть любые таймеры в любую обёртку и использовать мигание светодиодом вообще в одну строку?
Где это мы установили?
И разумеется ничто не мешает мне сделать следующий проект на столь милой вашему сердцу RIOT OS — интересы у меня очень обширные.
И речь идёт не о том, что вы должны что-то замалчивать, а о том, что вы высказываете несправедливые и предвзятые суждения об этой технологии, взять хотя бы вашу цитату из второй лекции, вынесенную в начало статьи о том, что на Ардуино затруднительно мигать пятью светодиодами в независимом режиме — это просто не соответствует действительности — на Ардуино нет никаких проблем с подобным миганием.
Откуда такой снобизм и пренебрежение?
Как я уже написал в статье, ваши лекции хороши и всё вы в них говорите правильно, но ваше отношение к Ардуино и использование её в качестве объекта для титрирования на протяжении всех лекций вызывает мягко говоря недоумение. Кроме просто пренебрежительного отношения вы ещё и допускаете фактические ляпы, заявляя, что мигание пятью светодиодами в независимых режимах затруднительно на Ардуино. И подобных ляпов я насчитал в ваших лекциях около десятка.
Дело в том, что вы высказываете своё пренебрежительное отношение этой технологии, не в кулуарах и не в личной беседе, а с трибуны технического университета, тем самым формируя такое же предвзятое отношение к Ардуино и у студентов.
Это не значит, что студенты университета должны учиться на Ардуино, но и обвинять Ардуино во всех смертных грехах по делу и без дела тоже не стоит, тем более, что вы выступаете в роли безусловного авторитета для ваших слушателей.
И, во вторых, лучше вообще не врать, особенно когда ты выступаешь с кафедры университета и программируешь поведение (на основе внушаемых стереотипов) десятков (а учитывая распространение лекций через интернет) тысяч людей.
Но.
Наряду с 99% абсолютно правильной информации Олег позволяет себе говорить вещи абсолютно не соответствующие действительности. Проблема в том, что Олег произносит эти вещи не в курилке среди своих собратьев по разуму, а с трибуны технического университета и на головы несчастных студентов.
На протяжении всех лекций Ардуино у него выступает в роли «мальчика для битья». То у Олега ардуинщики не смогут помигать пятью светодиодами, то «подход с бесконечным циклом не работает на сложной программе» то ещё куча высказываний подобного рода.
На самом деле подход с бесконечным циклом прекрасно работает на сложной программе и в этом каждый может убедиться, скачав дистрибутив АМС для любой из десятка платформ от Mega 2560 до ESP32.
Что касается подсчёта строк, то как сама затея, на мой взгляд имеющая мало смысла, так и ваша методика, игнорирующая весь JavaScript, Processing (а также спорный CSS код), то есть две трети всего кода тоже, мягко говоря, весьма странны.
Также большие сомнения у меня вызывают ссылки на «эффективный» код и приведённые вами примеры подсчёта непонятно чего из «~/tmp/» директории.
Если вы уже так хотите посчитать количество строк в проекте, то сделайте это корректным способом и огласите методику подсчёта или просто не стоит поднимать эту тему.
При всех его (очевидных) недостатках — это рабочее и прекрасно работающее на практике решение, о чём не нужно забывать при его обсуждении.
Ну и конечно все будут только приветствовать статью, где автор представит описание своего варианта решения проблемы, подкреплённое работающим публичным проектом с несколькими десятками тысяч строк кода.
В этой связи просто физически нереально улучшать код в тысячи разных мест одновременно. Поэтому проект содержит огромное количество мест, которые я знаю как улучшить, но которые до сих пор остаются не исправленными и не оптимальными. В этой реальной ситуации приоритет один — общая работоспособность проекта.
Надеюсь теперь вам стало понятно.