Перейти к содержимому

eu_tomat

Модераторы
  • Публикации

    2 666
  • Зарегистрирован

  • Посещение

  • Победитель дней

    331

Все публикации пользователя eu_tomat

  1. Ссылка на программу отсутствует, но это не страшно. Ведь полное копирование EEPROM вместе с меткой, данными и флагом ReadOnly можно выполнить на верстаке.
  2. Единственно верным ориентиром для оценки приближения TLWY является значение os.clock(). Более-менее устойчиво работающий код может выглядеть, например, так: computer.pullSignal(0) c0 = os.clock()+4 while os.clock()<c0 do -- вычисления -- ... end На устойчивость влияют: Доступный резерв времени. В данном случае 1 секунда из 5 доступных секунд (по умолчанию). Тяжесть кода, производящего вычисления. Быстродействие сервера, то есть, его способность обработать вычислительную часть кода. Текущая загрузка сервера другими процессами, никак не связанными с выполняемым кодом. Приведённый код способен устойчиво работать в течение длительного времени, но полной гарантии, что его выполнение не закончится ошибкой, конечно же, нет. Точное прогнозирование TLWY возможно на слабонагруженных серверах. Но на реальных серверах внезапно появившаяся нагрузка может сломать любой прогноз. Выше я упоминал, что пачку из 10 вызовов computer.pullSignal(0) желательно распределять во времени. Такой подход кроме прочих его преимуществ позволяет снизить вероятность получить TLWY. Полагаю, этот момент не требует объяснений.
  3. Причина, скорее всего, та же, по которой была добавлена ошибка TLWY: излишне агрессивные программы, создающие высокую нагрузку на сервер, должны почаще уступать ресурсы. Все же знают игроков в Майнкрафт: ради экономии планки памяти мы готовы постоянно дёргать сборщик мусора, чего обычно не происходит в более реальных применениях. А существующая механика OpenComputers позволяет запрашивать уборку мусора не чаще чем один раз в 125 ms. Это и так много — 8 раз в секунду можно прибраться. По факту получается несколько реже, т.к. часть этого времени использует сама программа. К слову, не всегда требуется запускать именно 10 раз. Бывает так, что к текущему моменту os.sleep, например, уже запускался раз 5, а внутри него было 8 вызовов computer.pullSignal. Знание этих фактов позволяет сократить ожидание перед уборкой мусора, если хочется выжать максимум. Также желательно вызывать серию computer.pullSignal не пачкой по 10 штук, а более размеренно чередовать их вызовы с вычислительной нагрузкой. Это позволит программам на других компьютерах поддерживать ритмичность их работы, что очень важно, например, для управления ядерными реакторами.
  4. Теперь стало понятно. Не зря говорят, что в хорошем вопросе уже содержится половина ответа. В вопросе ты жаловался на длительность уборки. Но проблема была вообще не в длительности уборки, а в том, что ты редко эту уборку заказывал.
  5. Любопытный случай. А как сборка мусора может привести к ошибке too long without yielding? Я не представляю, как это возможно. Приведи пример кода. Мусор в Lua создаёт система автоматического управления памятью при уничтожении объектов. Мусор не создают операции, которые не приводят к уничтожению объектов. Сколь именно долгую?
  6. Завидую твоей работоспособности! Одновременные: анонимизация анонимусов, перевод OC на русский и перепись ядра со скорость 5 луашек в час. И это я ещё не всё знаю. Над чем ещё ты работаешь прямо сейчас?
  7. Так его и не требуется искать. Он сам находит тебя, когда выбираешь в настройках Майнкрафта русский язык.
  8. Сейчас это не то что не бета, это даже не альфа. Больше похоже на демонстрацию, и то неубедительную. Перенесу пока в раздел программ новичков. Похвально, конечно. А что именно там осталось недопереведенным? Чем не устраивает официальный перевод?
  9. Это почему же? Народ у нас на форуме пытливый. Любая широковещательная передача данных на более-менее регулярной основе рано или поздно заинтересует хакеров. Кодировка же Base64 заметна невооружённым глазом, и проверить эту гипотезу не составляет никакого труда: хакер сразу же получает готовый текст сообщения. Существует простой и при этом надёжный способ полностью скрыть передачу сообщения от других игроков — передавать его на адрес нужной сетевой платы.
  10. Если на сервере кто-то протянул кабель, то зачем ему эта программа? Передача данных по сети возможна и без неё. Какие новые возможности она даёт? Какую роль выполняет кодировка в Base64 и обратно? Какой в ней смысл кроме потребления ресурсов сервера? При чём тут любители анонимности? Как эта программа позволяет сохранить анонимность?
  11. И в чём же смысл этой программы? Кому она может пригодиться?
  12. А если пореже выгружать наиболее часто используемые функции и библиотеки, то будет шуршать ещё меньше.
  13. От чего же неправильно-то? Кэширование также работает по определённым алгоритмам. Точнее, речь идёт об алгоритмах вытеснения из кэша. В первом случае ты вытеснял ненужный код сразу как только потребность в нём отпадала. Во втором случае стал учитывать объём памяти. Также можно сортировать фрагменты кода по параметрам: какой объём они занимают, как часто используются, как давно не запрашивались. Это позволит вытеснять не просто все фрагменты кода, когда память начала заканчиваться, а вытеснить, например, самые тяжёлые фрагменты или редко используемые. Это позволяет реже обращаться к диску при том же объёме оперативной памяти. А значит, повысить производительность. Вот, например: https://ru.wikipedia.org/wiki/Алгоритмы_кэширования
  14. О возможной смерти идеи дам пояснение. Если бы мы сейчас не начали обсуждать эту идею, то её, возможно, никто бы и не заметил. Описание темы служит приглашением. А это приглашение было составлено так, что на него откликнулись только хейтеры. А мог и вообще никто не откликнуться. Не исключаю, что кто-то бросил читать текст после первого десятка строк. По поводу авторства посмотрим. Надо сначала понять, в чём заключается именно твоя уникальная идея. Я помню обсуждения идей и модульных операционных систем, загружающих только необходимые библиотеки, и гигантских программ, вынужденных по мере необходимости подгружать нужные в данный момент модули и удалять из памяти уже отработанные. Правда, я не припоминаю обсуждения динамической выгрузки функций операционной системы. Поэтому для меня эта идея звучит достаточно свежо. Если я не прав, меня поправят те, кто более глубоко интересовался этой темой. И реализация хоть какая-то имеется. Интересно будет посмотреть в будущем, кто на кого будет ссылаться, и почему. Да, это хорошая идея. Вообще говоря, это интересная область для оптимизаций. Можно выгружать, например, не все функции, а те, которые редко используются, или те, которые занимают наибольший объём памяти. Также можно комбинировать критерии кэширования для снижения нагрузки на жёсткий диск, не теряя при этом стабильной работы системы. Я назвал её не плохой, а сырой. И это, скорее, субъективное восприятие. Я не придумал, где бы мне пригодилась именно такая реализация. Как демонстрация она вполне удалась. А в реальном применении я бы предпочёл увеличить объём оперативной памяти, а не елозить по диску без перерыва. Текущая реализация поддерживает максимальный объём свободной памяти ценой нагрузки на жёсткий диск. Но можно пойти от обратного и попробовать выполнить то же самое с тем же объёмом памяти, но при этом минимизируя нагрузку на диск. Сейчас он шумит по любому поводу почти не останавливаясь. Кстати, я посмотрел твой ролик с демонстрацией работы системы. Предлагаю добавить его в описание. Он даёт хорошее представление о том, как натужно пыхтит жёсткий диск компьютера. А когда выйдет обновление, можно снять второй ролик с такой же демонстрацией, чтобы почувствовать разницу в звуке. А ещё интересны замеры производительности. Насколько менее отзывчивым становится интерфейс, если экономить на оперативной памяти? И как повлияет на производительность смена алгоритма кэширования?
  15. О чём идёт речь? Ничего не понимаю. Да, пора заканчивать с этим. Но сначала внесу ясность. Автор темы сам явился причиной предвзятого к нему отношения, и он такое отношение заслужил. Потребуется время, чтобы он смог исправить свою репутацию. Но это лишь одна сторона ситуации. Другая же сторона в том, что читатели форума не заслужили видеть эти эмоциональные разборки. Поэтому я прошу всех форумчан отказаться от агрессивных высказываний в адрес автора темы или результатов его творчества. Автору темы я уже неоднократно указывал на его некорректные высказывания в других темах. Это его часть ответственности. Другая же часть ответственности лежит на других авторах постов. Предлагаю всем отметившимся в этой теме почистить свои посты от явно недружелюбных высказываний. В противном случае я удалю их полностью. Я понимаю чувства форумчан, которых так или иначе задел автор темы, но давайте говорить о фактах и в рамках заявленной темы. Да, он пишет безграмотные тексты. Да, их очень трудно читать. Да, он выложил явно сырой продукт. Да, им сложно пользоваться. Но агрессивные высказывания не помогут решить проблему. Все эти резкие эмоционально окрашенные фразы могут лишь оттолкнуть человека от сотрудничества. И это в лучшем случае. В худшем же случае эти посты станут примером для подражания. А этого не стоит допускать. У каждого из нас есть выбор. Бренд @rootmaster уже все знают на форуме, и предполагают, что от него ожидать. Всем, кому слишком больно читать тексты автора, можете не читать. Это у меня нет такого выбора, я как модератор вынужден читать все тексты. А раньше я просматривал лишь половину тем форума, ориентируясь исключительно по авторству и тематике. Все, кто хочет высказаться о проблемах текста, высказывайтесь. Но не не перегибайте палку с эмоциями. Лучше вообще избегать эмоциональных высказываний. У нас всё-таки технический форум. То же самое касается и работы программы. Если что-то не работает, сообщайте. Если что-то кажется неудобным в работе, сообщайте. Но избегайте грязи. Всё-таки, надо признать, @rootmaster способен делать и что-то интересное. Не смотря на то, что реализация идеи подгружать необходимые функции по мере необходимости пока ещё сырая, сама идея имеет хороший потенциал. Честно говоря, не знаю, что там под капотом, но читать код нет никакого желания, т.к. я уже перенапрягся, пытаясь понять описание. Но это уже проблемы автора: читатели с трудном прочитали описание, код читать не захотели, идею не обсудили, идея умерла. Ну умерла и умерла. Не стоит рвать на себе волосы и заливать форум слезами. Может, кто-то более грамотный и аккуратный продемонстрирует хорошую реализацию.
  16. Значит, я не понял вопрос. Попробуем разобраться. Вопрос звучал так: Перед этим была приведена цитата: Исходя из этого, я предположил, что речь шла об изоляции сетей, в результате чего в каждой сети остаётся по одному монитору. Но, судя по всему, это предположение не верно. Тогда возникает вопрос: что подразумевалось под первым вариантом?
  17. @rootmaster О какой версии игры и мода идёт речь?
  18. Первый вариант позволяет обратиться только к экрану, находящемуся в той же сети, что и компьютер. Смысл использования коммутаторов и распределителей как раз и заключается в изоляции сетей друг от друга.
  19. Например, можно запустить программу редактирования edit, вставить этот код в редактор и сохранить его под каким-нибудь именем. В дальнейшем этот файл можно будет запускать как программу. Например: Вводим команду редактирования файла: # edit antivanish.lua вставляем код программы (клавишка Insert) сохраняем файл (комбинация клавиш Ctrl-S) закрываем редактор (Ctrl-W) Запускаем программу: # antivanish.lua
  20. Теперь понял. С первого раза не дошло почему-то. Наверное, можно даже автоматическую синхронизацию сделать со сборкой, лежащей на игровом сервере. Они же должны совпадать?
  21. Ранее оно где-то у тебя на хостинге лежало. Но что, если @Wolframoviy изменит сборку? Куда он должен будет её залить, чтобы лаунчер смог её обновить на компьютерах игроков?
  22. А как это прикрутить? Какая для этого нужна инфраструктура? Откуда лаунчер будет скачивать сборку?
  23. Места хватает. Скорее всего, @Wolframoviy выбрал dropbox как временное и при этом понятное ему решение. Если потребуется, я подниму web-сервер на том же хосте, но я пока не понимаю, каков будет регламент работы с ним. Будет ли там статический контент или динамический, в какие каталоги и кому следует разрешить доступ, как будут синхронизироваться файлы сервера и клиента и т.д. Когда у меня будет понимание работы этого лаунчера, я настрою всё что потребуется. А как эта авторизация настраивается? Я уже слышал предложение прикрутить авторизацию к аккаунтам форума, но я не уверен, что нам стоит так поступать. Учитывая дырявость Майнкрафта, я бы предпочёл отвязать пароли форума от паролей в игре. Можно, например, на форуме прикрутить какую-то страничку для ввода игрового пароля, но это если @cyber01 согласится этим заниматься. Или можем сделать независимую авторизацию на страничке игрового сервера. Но как эта авторизация настраивается, я не знаю. Если сообщество мне подскажет как, то настрою. Да, дискорд хорош для оперативного обсуждения, но там информация может потеряться и вообще остаться незамеченной. Там много разных разговоров, и бывает сложно следить за нужной темой.
  24. Я, рассуждая об идеальном процессе установки, в первую очередь имел в виду комфорт пользователя. Но жанр песочницы таких требований не налагает, а позволяет, жертвуя комфортом, воссоздавать процессы, максимально приближенные к реальной жизни. Почему бы и нет? Такие программы обычно менее интересны пользователям, но кому-то интересны именно они.
×
×
  • Создать...