Кто ж тебе виноват, что ты используешь устаревшее ПО (10 лет назад это уже 2005 год, XP уже довольно стабильна), сваливая на железо неумение софта работать с ним.
Т.е. ты не писал разработчику с сообщением о его проблеме только потому что он в Копенгагене? Серьезно?
Давай ты откроешь исходники своих проектов для аудита на предмет педантичности, неленивости и «деструкции данных»? Заодно отделим рукожопость от невнимательности.
Факт того, что я являюсь циничным мудаком (не к пидарасам, извините, ориентацией не вышел), совершенно не мешает мне уважать Робуса, его проды и статьи. Также разный взгляд на вещи (порой диаметрально противоположный) не мешает лично мне общаться, хотя и вносит определенный градус пыла в дискуссии.
Равно как и идея использования многопоточности именно в демах не отменяет озвученных спектрумовских проблем оной, возникающих во время разработки на пути к ровно одному сценарию использования.
лучше победить проблему куском памяти, чем молотить что-то кодом(скриптом)
И таки зачастую он будет прав. Ибо память дешевая и ее относительно много, а работа процессора требует энергии, которой не всегда много, особенно на мобильных устройствах.
Так что не существует единственно верного способа писать оптимально.
Ты будешь удивлен, но конечным результатом работы джавера и сишарпника как раз является нативный код. И это уже довольно давно так. Ибо код для виртуальной машины можно уже рассматривать как промежуточный вариант, преобразуемый в конце концов к нативному.
Не соглашусь.
Что тебе пришлось восстанавливать после падения плеера сида? Пропавший плейлист? Или упала вся система, не умеющая 10 лет назад толком обеспечить защиту приложений друг от друга и тебе пришлось восстанавливать сеанс?
По твоей логике получается, что любая защита- это порождение лени. Давай уберем перила на лестницах и мостах (кто-то ленится ходить правильно чтоб не падать с края), подушки и ремни безопасности из автомобилей (кто-то ленится научиться хорошо водить). Да, наличие средств безопасности, совершенно не повод эту безопасность соблюдать, у них другая задача- минимизировать ущерб, если что-то пошло не так.
И еще одна нестыковка. Себе ты оставляешь право на ошибки в софте, хотя и стараешься минимизировать их. А вот другим почему-то не хочешь давать. Глючит — никогда не буду использовать. И плевать что это первая версия. И плевать, что если все так будут делать, то следующей версии не будет. И плевать, что «деструкция данных при закрытии программы» — это рукожопие определенного программиста, а не подход современного кодинга. Не надо так.
Дык мы тут и общаемся:)
Сарказм- это как приправа. Уберешь совсем — все станет пресным до ужаса (или сладким до слипания). Добавишь слишком много — может стошнить. Значит надо соблюдать дозировку:) Правда, она у каждого своя…
Я не рассматриваю ситуации, когда твой софт портится сторонними утилитами, глючной осью или битым оборудованием. В такой ситуации зуб дашь?
Ты прекрасный, даже больше, пример принципа «eat your own dog's food», это просто супер! Но ты же все равно не пишешь абсолютно весь софт, включая компиляторы ЯВУ для того чтобы писать всякие ASAM'ы и т.п. Не пишешь музыкальный плеер, в котором слушаешь музыку пока набираешь этот текст (кстати, в браузере, который ты тоже не пишешь). И это правильно, ибо жизни не хватит. Но весь этот софт содержит ошибки, равно как и твой. Се ля ви. С этим можно только смириться и попытаться уменьшить возможный урон.
А вот чтоб не случилась катастрофа от ошибки в твоем софте- это задача ОСи, обеспечивающей это с помощью разных механизмов, в том числе и пресловутого MMU.
Да, мы слишком извращены и везде видим сарказм и подколки. А минусы оставлю на совести их авторов. В отличие от тебя и Робуса, у них не хватило пороху высказать свое мнение словами и разрешить увиденную двусмысленность.
Отвечу наводящими вопросами.
Ты лично пишешь весь софт, которым пользуешься? Что ты предпочитаешь увидеть- окошко о недопустимой операции в каком-то приложении или зависший/сбросившийся компьютер? А дашь зуб, что твой софт не является «дурным» и не портит память ни при каких условиях?
Елки-палки… Да где ты там увидел разочарование? Да, я потратил тогда довольно много времени на кодинг всех этих макетов (их было несколько, на картинке самый эффектно выглядящий), потратил много времени на чтение книг по ОСям, но жалеть об этом не собираюсь. Это все знания, полезный опыт, в конце концов (в самом прямом смысле, мы в универе на лабах реализовывали многозадачность под досом на таймере, после экспериментов на спеке это было сделать- раз плюнуть, приобщение к миру Linux опять же).
Robus сделал свой вариант потому что у него возникла такая задача и он ее прекрасно решил. У меня ее (задачи) не было (ну не пишу я демы, извините), а встраивать многопоточность в прикладное ПО по принципу «чтоб было» — это довольно глупо.
Все зависит от задачи. И за все надо платить. За наличие софта- универсальностью инструмента (стандартная ОС против узкоспециализированного ядра). За универсальность — скоростью работы и необходимостью защиты.
А вот если рассматривать «защиту системы от дурака» как право на ошибку (а человек, как известно, к ним весьма склонен), то акцент несколько смещается. И точно такой же сторонник сугубо практического применения может тебе сказать «я не хочу забивать себе голову дурацкими правилами работы с системой, я хочу просто решать задачу».
Это не дисковая утилита. Это я давным-давно увлекался темой многозадачных ОСей, в частности на спеке. Но подхватил вирус мышедрочерства графического интерфейса:)
На скриншоте честно-многозадачно работающие системный монитор, консоль, карта памяти и мегатормозной просмотрщик текста.
Так же можно сказать, — «О, да, Vitamin, дышит простым 23% кислородом», и после сделать циничное выражение лица. Только вот вопрос, зачем эти слова? Цель какова?
Не надо искать в моем комментарии цинизм, сарказм или еще какой негатив — я его туда не закладывал. Это просто всплеск эмоций в связи с нахлынувшими воспоминаниями по теме (пикрелейтед).
Любой код после DI перестаёт исполнять прерывания, можно на контроллере таймер выключить, и сказать, — «ой ваш АРМ перестал задачи переключать», а можно ещё и питание выключить. Любой код после порчи его перестаёт работать.
Ну попробуй на АРМе из пользовательского пространства ОС сделать DI или выключить на контроллере таймер или испортить код.
И, кстати, любой шедуллер простейший, он состоит из простых логических действий.
По этой логике сложных программ не существует, ибо все они состоят из простых логических действий.
Прикол в том, что ты действительно реализовал самый простой циклической шедулер типа Round Robin. А есть более сложные, учитывающие приориеты и группы приоритетов, с разной вычислительной сложностью и т.п.
Т.е. ты не писал разработчику с сообщением о его проблеме только потому что он в Копенгагене? Серьезно?
Давай ты откроешь исходники своих проектов для аудита на предмет педантичности, неленивости и «деструкции данных»? Заодно отделим рукожопость от невнимательности.
Равно как и идея использования многопоточности именно в демах не отменяет озвученных спектрумовских проблем оной, возникающих во время разработки на пути к ровно одному сценарию использования.
Без подписи
Так что не существует единственно верного способа писать оптимально.
Что тебе пришлось восстанавливать после падения плеера сида? Пропавший плейлист? Или упала вся система, не умеющая 10 лет назад толком обеспечить защиту приложений друг от друга и тебе пришлось восстанавливать сеанс?
По твоей логике получается, что любая защита- это порождение лени. Давай уберем перила на лестницах и мостах (кто-то ленится ходить правильно чтоб не падать с края), подушки и ремни безопасности из автомобилей (кто-то ленится научиться хорошо водить). Да, наличие средств безопасности, совершенно не повод эту безопасность соблюдать, у них другая задача- минимизировать ущерб, если что-то пошло не так.
И еще одна нестыковка. Себе ты оставляешь право на ошибки в софте, хотя и стараешься минимизировать их. А вот другим почему-то не хочешь давать. Глючит — никогда не буду использовать. И плевать что это первая версия. И плевать, что если все так будут делать, то следующей версии не будет. И плевать, что «деструкция данных при закрытии программы» — это рукожопие определенного программиста, а не подход современного кодинга. Не надо так.
Сарказм- это как приправа. Уберешь совсем — все станет пресным до ужаса (или сладким до слипания). Добавишь слишком много — может стошнить. Значит надо соблюдать дозировку:) Правда, она у каждого своя…
Ты прекрасный, даже больше, пример принципа «eat your own dog's food», это просто супер! Но ты же все равно не пишешь абсолютно весь софт, включая компиляторы ЯВУ для того чтобы писать всякие ASAM'ы и т.п. Не пишешь музыкальный плеер, в котором слушаешь музыку пока набираешь этот текст (кстати, в браузере, который ты тоже не пишешь). И это правильно, ибо жизни не хватит. Но весь этот софт содержит ошибки, равно как и твой. Се ля ви. С этим можно только смириться и попытаться уменьшить возможный урон.
А вот чтоб не случилась катастрофа от ошибки в твоем софте- это задача ОСи, обеспечивающей это с помощью разных механизмов, в том числе и пресловутого MMU.
Ты лично пишешь весь софт, которым пользуешься? Что ты предпочитаешь увидеть- окошко о недопустимой операции в каком-то приложении или зависший/сбросившийся компьютер? А дашь зуб, что твой софт не является «дурным» и не портит память ни при каких условиях?
Robus сделал свой вариант потому что у него возникла такая задача и он ее прекрасно решил. У меня ее (задачи) не было (ну не пишу я демы, извините), а встраивать многопоточность в прикладное ПО по принципу «чтоб было» — это довольно глупо.
А вот если рассматривать «защиту системы от дурака» как право на ошибку (а человек, как известно, к ним весьма склонен), то акцент несколько смещается. И точно такой же сторонник сугубо практического применения может тебе сказать «я не хочу забивать себе голову дурацкими правилами работы с системой, я хочу просто решать задачу».
мышедрочерстваграфического интерфейса:)На скриншоте честно-многозадачно работающие системный монитор, консоль, карта памяти и мегатормозной просмотрщик текста.
Это средство обеспечения надежности системы, в частности многозадачной.
Ваш адмирал Ясен Хуй.
Ну попробуй на АРМе из пользовательского пространства ОС сделать DI или выключить на контроллере таймер или испортить код.
По этой логике сложных программ не существует, ибо все они состоят из простых логических действий.
Прикол в том, что ты действительно реализовал самый простой циклической шедулер типа Round Robin. А есть более сложные, учитывающие приориеты и группы приоритетов, с разной вычислительной сложностью и т.п.