eu_tomat
-
Публикации
2 666 -
Зарегистрирован
-
Посещение
-
Победитель дней
331
Сообщения, опубликованные пользователем eu_tomat
-
-
4 часа назад, arutimasu сказал:Например в OpenOS у меня на слабом компе (все компоненты имели первый уровень) не работал текстовый редактор edit и даже команда ls. Значит придётся писать их самому и в этом моя ОС очень помогает.
Во! Это уже та конкретика, которую читатель ожидает увидеть в описании, и которая может его заинтересовать. Также имеет смыл рассказать и о других утилитах, встроенных в эту OS. Если их смысл общеизвестен, достаточно простого их перечисления.
Полезным будет упомянуть в описании, что система основана на CraftOS, чтобы у ознакомившихся с кодом не возникало непреодолимого желания строчить посты о плагиате.
Не менее полезной будет информация об отличиях этой системы от стандартной OpenOS. Потребуется ли модифицировать под эту систему программы, написанные для OpenOS? А если потребуется, то как именно.
И вообще, когда создаёшь описание к своим программам, помни о том, что читатель ленив. Это тебе не лень писать систему, а мне не лень вникать, что это такое, и зачем оно нужно. Но большинство читателей бегло читает только первый пост. Иногда читает лишь первый абзац или даже первое предложение.
@arutimasu Если тебе интересно, я могу разобрать начало твоего поста, как его видит типичный читатель, возникает ли у него мотивация читать дальше, установить твою систему или задать вопрос. И могу рассказать, как бы я оформлял описание, чтобы читателю было интересно. Конечно же, в рамках того немного, что я смог понять из обсуждения. Заголовок комментировать не буду: скорее всего, ты вынес в него самую важную информацию.
-
6 минут назад, arutimasu сказал:Много ли ты знаешь программ написанных на чистом Lua, кроме учебных примеров?
В реальности чистый Lua используется редко. Чаще всего как дополнительный, не основной язык. Полноценные же программы я встречал только в ComputerCraft и OpenComputers. Но это специфическая среда, можно сказать, учебная.
11 минуту назад, arutimasu сказал:Да моя "система" это просто урезанный клон CraftOS.
Тогда какая должна быть мотивация использовать этот клон? В чём его преимущества в сравнении с чистым Lua?
-
13 часа назад, arutimasu сказал:Теоретически мы можем запустить даже шелл-скрипт на OpenOS и он выполнится, так как даже эта игрушечная система является Unix-подобной. А насчёт GUI (не на ASCII же делать игру) мы можем взять такой известный движок Love2D или наш MineOS, интерфейс, которого полностью слизан с MacOS, хотя интерфейс этой системы уже де факто тоже стал стандартом для UNIX как в своё время POSIX, если вспомнить GNOME в Ubuntu
Хорошо, теоретически мы можем взять то или это. А практически, как я понимаю, пока никто не брал. Тогда отложим графику в сторону и зайдём с другой стороны. Можешь продемонстрировать преимущества своей системы на примере какой-либо уже написанной программы?
-
14 часа назад, arutimasu сказал:А насчёт практического применения всего этого - прозрачность создаваемого софта, понимания принципов его работы и возможность его создания для обычного пользователя.
Вот про это и хочется узнать подробнее и на примерах. Допустим, у нас есть несколько реализаций игры "жизнь" для: OpenComputers, Computercraft, NodeMCU и x86. Но теперь мы хотим иметь только одну реализацию. Можем ли мы для этого использовать твою систему? И если да, то как должна выглядеть такая программа?
-
2 часа назад, arutimasu сказал:(протестировано на ComputerCraft и NodeMCU, и даже на x86 при том на голом железе в виде костылей с модулями)
А можно как-то подробнее описать опыт тестирования? Для меня даже сам термин "фентезийная консоль" звучит слишком абстрактно. Каково практическое применение этих консолей? И как применять конкретно эту? Как её запустить на протестированных платформах? Что нам это даст?
-
9 часов назад, VortexIKRIS сказал:он мне показывает только цифры теперь
поправочка он показывает мне количества блоков в радиусе
Геосканер имеет две доступных игроку функции:
- scan возвращает зашумлённую таблицу плотностей блоков в заданной области.
- analyze возвращает разнообразную информацию о блоках, непосредственно контактирующих с геосканером или роботом.
-
8 часов назад, VortexIKRIS сказал:как лучше всего писать код в open computers, пробовал в самом компе уж очень не удобно и не понятно
Писать и редактировать код для OpenComputers удобнее всего на компьютере, на котором запущена игра.
Можно вынести в удобное место ссылку на каталог с сохранениями игры.
В случае сложных проектов их файлы имеет смысл размещать так как это удобно для разработки, а в каталогах игры размещать лишь ссылки на них или содержащие их каталоги.
-
17 часов назад, VortexIKRIS сказал:есть вопрос на тему как выводить название координаты и тп, а то у меня выводиться table: шестнадцатиричный код
Поля таблицы и их значения можно посмотреть с помощью такого кода:
for k,v in pairs(t) do print(k,v) end
-
В 06.09.2024 в 03:20, Teen_Romance сказал:в игре /mt recipes но в логах NPE случается.
Я проверил на версии MineTweaker3-1.7.10-3.0.10B.jar, команда успешно выгрузила рецепты в файл. Попробуй у себя проверить на минимальной сборке. Возможно, конфликтуют какие-то из модов.
-
1
-
-
2 часа назад, v75p5m10 сказал:Установил ось через комп и поставил диск на планшет. Вроде работает.
Система-то запустится. Но удобно ли её использовать? Как минимум, не все значки приложений поместятся на экран.
-
В 08.09.2024 в 22:05, v75p5m10 сказал:Установлена 3 видеокарта и творческий процессор с видеокартой так что с ней проблем возникнуть не должно. Как это исправить?
Установить MineOS на устройство, имеющее экран уровня 3: компьютер, сервер. Планшет в их число не входит.
-
58 минут назад, VBerezin сказал:Сейчас разрабатывается mineCORE 4, чтобы раскрыть полный потенциал форка mineOS.
Хорошо. Подождём раскрытия потенциала.
-
1 час назад, VBerezin сказал:Форк mineOS делается не в спешке.
...
Однако отмечу, что на данный момент, форк уже не актуален, и не отличается от ванильной MineOS 2022 года ничем.
Актуальная версия на данный момент, с mineCORE в комплекте: https://github.com/vberezinbadger/mineOS-dev/tree/main/mineosdev.
Тут нужна пояснительная бригада.
Если форк не отличается от ванильной MineOS, то в чём его смысл?
И в чём заключается актуальность другой ветки, если она обновлена в репозитории в то же время, что и основная — 2 года назад?
-
38 минут назад, ivan_2024 сказал:Явные преобразования
Ты теперь будешь в каждой теме это писать? Зачем этот спам?
-
В 18.08.2024 в 10:13, Taoshi сказал:Предвосхищая возможный вопрос сразу скину то, что сохранилось от программы. Ёмкость охладителей которые использовал была 1080к. Контролировался один реактор, остальные, а их было штук 6 подключённых к фризеру, были паралельной цепью.
Только сейчас добрался до чтения твоей программы. Выглядит интересно. Если я верно понял, ты не занимаешься микроконтролем, а циклически управляешь интерфейсами МЭ-сети: освободить слоты с изношенными охладителями; поместить новые; освободить слоты с отработанным топливом; заправить свежим.
Скажи, а насколько быстро МЭ-сеть выполняет замену, насколько скорость замены стабильна, и от чего она зависит. Можно ли её прогнозировать?
-
1 час назад, Taoshi сказал:Советую сразу просить А.С.Пушкина исправить и дописать что-нибудь. Например изменить финал Капитанской дочки.
Если посмотреть на даты, то исправить текст просил современник Пушкина. Но исправить смогли лишь его почитатели спустя пару веков. Хорошая работа, Пушкин жив!
-
6 часов назад, CockroachQB сказал:Механизм называется впрыскиватель реакторного хладагента (лазуритового). Ставится вплотную к реактору, хранит в себе лазуритовые блоки. Когда в реакторе повреждается до определенного процента лазуритовый конденсатор, впрыскиватель восстанавливает его ценой одного лазуритового блока.
Ну, это известная штука, если речь шла именно о ней. Просто товарищ @Taoshi использовал слово "заменить", а в этом механизме нет никакой замены, конденсаторы охлаждаются лазуритом, не покидая слотов реактора.
-
@Taoshi Ты не ответил на вопрос. Поясни, что ты имел в виду:
В 18.08.2024 в 00:57, Taoshi сказал:В ТЗ указана задача "заменить", для неё существует отдельный механизм, правда работающий с 100к lzh-конденсаторами, а не с 60к coolant cell.
Что за отдельный механизм? Как он работает? Почему у него получается работать с конденсаторами и что ему мешает работать с охлаждающими капсулами?
-
5 минут назад, Taoshi сказал:Хочу сказать, что запрос типа getAllStacks был лимитирован временным интервалом 59 секунд.
Ого! Вот это тирания на сервере! Видимо, игроки понастроили лагодромов, бессмысленно проверяющих свои сундучки каждый тик.
9 минут назад, Taoshi сказал:6 часов назад, eu_tomat сказал:вроде речь о другом шла: требовалось кинуть отработанную капсулу в МЭ-интерфейс, а из него уже трубы заберут куда-то
Прямым текстом написано
В 15.08.2024 в 23:40, CockroachQB сказал:требуется его именно заменить, а не извлечь и поместить новый
А на это из известных мне механизмов способен как раз транспозер. И ещё робот.
Извиняюсь за длинное цитирование, но не хотелось терять контекст. Я говорил о том, что не нашёл в задании требования заменять трубами, как выходило из твоего предыдущего высказывания:
9 часов назад, Taoshi сказал:А работает ли транспозер стандартно на сервере? Он бы мог заменить, но выставлено условие замены трубами, а у них нет такого функционала.
Ну, а с транспозерами всё понятно. Но про них в ТЗ тоже не было сказано ничего. Может, они на сервере заказчика нормально работают. Так что по этому пункту я бы не делал преждевременных выводов о нереалистичности задачи.
24 минуты назад, Taoshi сказал:Не имея возможности получить предварительные данные о рестарте сервера программа в энный момент времени оказывалась перед фактом отсутствия запрашиваемых методов и происходило это в рандомный момент выполнения кода, зачастую сразу же после проверки на наличие компонента реактор.
Да, там самое трудное — отследить все варианты нештатного поведения после перезагрузки. Отладка сводится к тому, что надо ждать рестарта и смотреть, какие проявились новые странности, и думать не проявятся ли в будущем какие-то другие, пока не сумевшие проявиться с силу вероятностного характера. Редкостная мутотень, но такова жизнь программиста.
-
1 час назад, LucianGod сказал:Захардкодить замену стержней ? И Привязать их к времени.
Иначе говоря, жестко менять стержни, по истечении времени (время определим опытным путем).
Запуск реакторов делать последовательно с задержкой.Захардкодить — конечно, да. Другого-то выбора всё равно нет. При столь жёстких лимитах времени компьютер только и должен делать, что непрерывно останавливать очередной реактор, выбрасывать из него все без разбора капсулы, загружать новые, запускать реактор и переходить к следующему, и так далее по кругу. Даже в этом случае мы не вписываемся в ТЗ и вынуждены выбрасывать капсулы с 9% остатком прочности, а не 25% как хочет заказчик. И это, конечно, при условии, что управляющий комп не лагает.
Учитывая, что за включение реакторов отвечает компьютер, то реакторы и будут запущены с задержкой относительно друг друга. Нет смысла включать их как-то иначе. Это получится само собой.
Ну, а время работы каждого реактора после замены стержней надо считать в любом случае. Точнее говоря, каждый реактор имеет дедлайн до взрыва — 105 секунд от момента последнего включения. Заменяя стержни в очередном реакторе, проверяем, укладываемся ли в дедлайн следующего с некоторым запасом времени, который зависит от лагов. Если не успеваем заменить все капсулы, то запоминаем для этого реактора количество оставшихся для замены капсул и, не включая его, переходим к следующему. В следующем цикле замены капсул продолжим заменять то, что не успели в предыдущем. И если снова не опоздаем, то сможем включить этот реактор и установить новый дедлайн. Тут особых сложностей нет кроме того, что реакторы будут иногда простаивать. И тем чаще, чем сильнее лагает управляющий компьютер.
-
1 час назад, Taoshi сказал:В ТЗ указана задача "заменить", для неё существует отдельный механизм, правда работающий с 100к lzh-конденсаторами, а не с 60к coolant cell.
А что за отдельный механизм? Как он работает? Почему у него получается работать с конденсаторами и что ему мешает работать с охлаждающими капсулами?
1 час назад, Taoshi сказал:выставлено условие замены трубами, а у них нет такого функционала.
Там вроде речь о другом шла: требовалось кинуть отработанную капсулу в МЭ-интерфейс, а из него уже трубы заберут куда-то.
1 час назад, Taoshi сказал:проверить 50*27(27 это среднее к-во топливных / охлаждающих стержней в реакторе, в используемой схеме 50*36) позиций за 1000 милисекунд с одного компа не удастся.
Ты хочешь сказать, что на том сервере используется древняя версия OpenComputers, которая не умеет читать содержимое всего инвентаря за один такт? Тогда да, задача из ТЗ дважды нерешаемая.
2 часа назад, Taoshi сказал:К тому же бесконечное включение/выключение реактора при замене каждого стержня само по себе займёт дополнительно уйму времени
А зачем включать-выключать реактор при замене каждого стержня? Разве ТЗ имело такое требование? Один раз выключили, заменили все разом и снова включили.
-
2 минуты назад, LucianGod сказал:Все согласно вашим подсчетам, из сообщения выше.
...
Соответственно если система работает на 25 реакторов, то затраты на время будут в 2 раза меньше.
+- затраты лагов сервера.В том-то и дело, что лагов сервера без замеров мы не знаем. Поэтому не знаем, сможет ли их покрыть сокращение реакторов в 2 раза.
5 минут назад, LucianGod сказал:Тут не вижу проблемы, если отключать реактор непосредственно перед заменой. Пока остальные работают.
Проблема в том, что при сильных лагах, пока происходит замена охлаждающих ячеек в одних реакторах, остальные могут взорваться, не дождавшись своевременной замены.
7 минут назад, LucianGod сказал:- Ограничение в кол-во функциональных блоков на юзера
- Ограниченная территория
Что за ограничения территории и функциональных блоков? Для 50 реакторов территория с функциональными блоками нашлись, а для компьютеров — нет? О чём тут вообще речь? На каком сервере такие ограничения?
-
20 минут назад, LucianGod сказал:А как насчет многопоточности ? Если запускать хотя бы в двух потоках по 25 ректоров.
Как я понимаю, потоки == процессы в моде. И они должны работать асинхронно. Приведет это к таким же задержкам ?Проблема в том, что потоки на одном компьютере не выполняются параллельно. Хочешь относительной асинхронности — ставь больше компьютеров. Кстати, а что мешает установить по компьютеру в каждом чанке?
27 минут назад, LucianGod сказал:По подсчетам, тактов для обработки ~25 реакторов должно быть хватать с запасом, поэтому кол-во может варьироваться.
А на чём основаны подсчёты? Теоретически можно больше 50 реакторов обслужить с запасом, но для конкретного сервера в конкретный период времени нужны замеры.
Ещё одно важное замечание: на лагающих серверах приоритетной задачей компьютера является не замена компонентов, а отключение реактора. А когда реакторов много, то начинать отключение реакторов приходится сильно заранее, что приводит к их простою.
-
30 минут назад, CockroachQB сказал:Можете ли выдать прогноз по длительности остановки, необходимой для замены охл. стержней?
На одну замену требуется 2 такта. И по такту на включение и выключение. Если сервер не лагает, а реактор один, то можно синхронизироваться на начало его такта, который длится одну секунду (20 майнкрафтовких тактов) и спокойно заменить до 9 элементов даже без останова реактора и без потери в энергогенерации. Не помню, можно ли успеть заменить 10.
На лагающем сервере, где игроками активно используются роботы и компьютеры, проблема будет заключаться в вечно запаздывающем возврате управления компьютеру. И какова будет суммарная длительность операции замены стержней, заранее сказать невозможно. В самом плохом случае может возникнуть ситуация, когда замены потребуют все охлаждающие ячейки во всех реакторах, и тогда компьютер попросту не успеет заменить их все. И прежде чем браться за эту задачу, стоит оценить, насколько она осуществима хотя бы в теории.
А в теории на нелагающем сервере для безопасной замены всех охлаждающих ячеек во всех 50 реакторах потребуется 95 секунд. При этом типичное время жизни охлаждающих ячеек в этой схеме составляет всего 105 секунд. Получаем запас времени 10 секунд. То есть теоретически такая схема работы в целом жизнеспособна. Но это минимально необходимое время с учётом того, что компьютер не проверяет состояние ячеек, а действует исключительно на основе своих прогнозов. А если проверять износ ячеек, то потребуются ещё 2.5 секунды, и от запаса времени останется всего 7.5.
Пока будет выполнен весь цикл замены ячеек, и мы закончим обработку последнего реактора, оставшийся ресурс охлаждающих ячеек в первом составит 7%. А по условию задачи замена требуется при остатке ресурса 25%. Выходит, это условие невыполнимо даже в теории. Тогда износ ячеек можно не проверять, а сразу заменять все подряд; так мы сэкономим немного времени. Тогда износ ячеек составит 9% — это немного лучше, но всё равно не сходится с условиями задачи.
На лагающих серверах время замены стержней может увеличиться в несколько раз, всё зависит от текущей игровой ситуации. Запаса времени у нас, скорее всего, не будет вовсе, и некоторые из реакторов потребуется держать постоянно остановленными, без энергогенерации.
Вот такая получилась грустная арифметика. А кроме прочего у нас ещё и трубы норовят засунуть топливо в свободную ячейку, что осложняет задачу ещё сильнее:
1 час назад, CockroachQB сказал:Трубы суют в первую свободную ячейку новое топливо, без привязки к конкретным слотам.
Это значит, что трубам доверять столь тонкую задачу нельзя. Компьютер легко справится с ней, но, конечно же, при наличии времени, которого ему и так мало.

Считывание нажатий
в Общие
Опубликовано:
Мод-то какой?