eu_tomat
-
Публикации
2 666 -
Зарегистрирован
-
Посещение
-
Победитель дней
331
Сообщения, опубликованные пользователем eu_tomat
-
-
– Скажите, пожалуйста, а нельзя вот эту последнюю фразу взять и выбросить?С этой фразы, пожалуй, можно начать небольшое повествование.
– Да ты чо, ради нее всё и писалось.
«День выборов»
-
5
-
-
@theCPU: Используй тег разметки code для оформления кода. Это поможет сохранить отступы, облегчит чтение кода другим участниками и подтолкнет и к кнопочке «Нравится».
-
Тут еще можно подумать о виртуальных компонентах, т.к. некоторые приложения не нуждаются в монопольном доступе к компонентам. Например, два сетевых приложения могут разделять сетевой адаптер, задействуя только нужные им порты. Другие приложения могут использовать лишь одну сторону красной платы.Нужно написать функции getComponent и freeComponent, которые будут разрешать коллизии компонент. ( когда два окна требуют одну и ту же компоненту ) Функции должны распределять компоненты одинакового типа между окнами. Например если есть 2 редстоун-адаптера и 2 окна потребовали компонент "redstone", то каждое окно должно получить свой редстоун-адаптер
-
1
-
-
Какие файлы OpenOS были изменены? Я не понял, как извлечь эту информацию из репозитория, а просматривать все файлы в поисках изменений выше моих сил.Вот исходники.
https://github.com/RccHD/WinOS/tree/master/WinOS/dd243563-b2e6-4ba8-8c28-28ca278f0402/home
Скопировать в таком виде в папку /home. Реализовано примерно 50% необходимого функционала.
Все оптимизировать буду после того, как будет готов хоть немного доработанный вариант.
Рабочий скрипт: test1.lua(змейка, матрица и проч.)
Нерабочий -- test.lua(использует term, tty)
Чтобы закрыть программу нужно нажать backspace. Помогает не всегда
-
Если приостанавливать выполнение приложения, то подводные камни зависят от характера самого приложения. Может оказаться нежелательным в определенные интервалы времени прерывать управление технологическим процессом или обмен данными. Например, программа разогревает ядерный реактор, периодически проверяя его температуру и останавливая нагрев в нужный момент. Приостанов такой программы приведет к взрыву реактора.
Какие могут быть подводные камни?Решил еще добавить возможность ставить приложения на паузу(coroutine позволяют и такое делать) Кроме того, что любую программу можно поставить на паузу, можно будет еще 'выключать графику' этой программы
Если речь идет о приостановке экранного вывода, то при условии аккуратной реализации виртуального gpu не должно возникать каких-либо проблем.
-
Словом «все», взятым в кавычки, я надеялся выразить свою иронию. Но твоя новая формулировка меня устраивает: большинство программ – это не все программы, тем более с таким выделением жирным шрифтом:Во, первых это ты сам решил что "все программы придется адаптировать", я такого не писал Я постараюсь написать такую ОС, на которой можно будет запустить большинство программ без доработки
Важно: все OpenOS-программы можно будет запустить на моей OC
Многозадачность можно реализовать двумя путями:
1) Подменить load своей функцией, автоматически расставляющей по всему коду вызовы yielding. Недостатки этого способа в том, что он провоцирует повышенное потребление памяти и процессорного времени, и годится не для любого кода. Достоинство в том, что потенциально он может спасти систему от падения в TLWY из-за одного кривого приложения.
2) Подменить буквально все методы всех компонент, которые неявно выполняют уступку времени. Начать, конечно, следует с computer.pullsignal, но этого недостаточно. Например, есть программы, которые не выполняют sleep/listen, а длительно работать без TLWY им позволяют обращения к периферии. Если ты готов подменить методы всех компонент, добавляя в каждый из них вызов yielding – пожимаю руку. Еще надо не забыть, что периферия может динамически подключаться и отключаться от компьютера, и таблицы методов нужно будет подменять на лету.
Предполагаю, что ты выбрал второй способ, удовлетворившись подменой pullsignal, да gpu
Например, есть два редстоун-адаптера и два приложения, работающих с ними. Как ты планируешь обеспечить каждому из приложений доступ к нужному адаптеру, изолировав от другого?Приведи пример такой коллизии. Я пока не придумал ни одного
-
1
-
-
Без доработки приложений этот пример последовательно выполнит сначала одно, затем другое приложение. Вряд ли @RccHD стремится к такому результату.Программы, запускаемые многозадачно, вовсе не обязаны быть ориентированными на многозадачность. Здесь я показывал вариант как можно реализовать такую многозадачность.
Подменить таблицу component можно, но часть механизма обработки коллизий все равно придется вынести в приложения.Оборудование доступно программам через объект component. Если система подменит этот объект своим, то она сможет разруливать аппаратные коллизии. Например, если одна программа использует редстоун-карту, то другой программе можно не давать к ней доступ.
Поэтому данное утверждение не соответствует действительности:
«Все» программы придется сначала адаптировать к новой OS, а это уже заметный недостаток.Важно: все OpenOS-программы можно будет запустить на моей OC
-
Также планируется написать несколько очень простых программ для демонстрации возможностей ОС
Запустить можно будет все программы, но работать будут не все. Если, конечно, речь идёт не о самых простых программах, написанных для демонстрации.Важно: все OpenOS-программы можно будет запустить на моей OC
Основные проблемы:
* Кооперативная многозадачность потребует обязательной доработки запускаемых программ. А в случае подвисания одной из программ подвиснет вся система.
* Для совместного использования оборудования запускаемые программы тоже потребуют доработки, а в отдельных случаях такая доработка невозможна.
-
Где они остаются?по моему остаются старые сообщения, как их чистить?
-
@@bugmenot, поэкспериментируй со сторонами машинки. Некоторые слоты могут оказаться доступными только с определенной стороны и недоступными с друой. -
-
Говорили уже: начинай с простых примеров, так будет легче, и ничего не пригорит. Попробуй, например, сделать простую кнопку, которая красиво меняет свой вид, и больше ничего не делает. Отдельно сделай маленькую программу, которая подает какие-то сигналы на редстоун-блоки и завершает свою работу. Потом подумаешь, как объединить управление редстоуном с твоей кнопкой.К тому же пытался.Вроде сделал,а ошибка есть.Пригорело у меня,вот и всё.Поэтому я и не стал заваливать форум всякими краш-логами своих программ.Я бы завалил форум тонну вопросами.Я пытался,так что это я на крайний припас.
Ну, и само задание надо переписать. Из него не ясно, что, и в какой последовательности должно выполняться.
-
Вот, значит, почему я не смог понять задание! Оно распадается!Лол, несуществующий элемент. С числом протонов 228 он не проживёт и секунды.
-
2
-
-
-
Не обязательно. Ошибка возникла в шестой строке при обращении к несуществующей таблице "forms"то есть туда тоже название библиотеки надо? ну ок [это не 1, а л]
А в первой строке создается таблица "formsl".
Поэтому ошибка либо в первой строке, либо в шестой.
Если в первой строке таблица намеренно названа "formsl", то и в шестой строке нужно использовать ту же таблицу.
-
Система, которую предложил @Alex, меня, как казуальщика, почти полностью устраивает. Она повысит мой вклад в общий онлайн.
В то же время я опасаюсь появления лагов в этом прекрасном мире и последующего вынужденного отказа администрации от идеи улья. Кроме того, у других игроков есть иные интересы: кто-то хочет компактный бизнес-центр, а кто-то ищет приключений и разнообразия ландшафтов.
Может, имеет смысл сделать маленький мирок с компактными приватами c бутиками для торговли и складами на случай вайпа? В этом мире запретить спавн мобов и установку перерабатывающих машин. Разрешить лишь установку генераторов энергии, МЭ-сети, да компьютеров с торговыми роботами.
А производственные мощности игроков желательно размещать в других мирах (не обязательно в овере), очищающихся по расписанию или в случае необходимости. Так, пожалуй, будет интереснее. Тогда и мир с магазинами-складами дольше сохранит свою стабильность.
-
1
-
-
Пожалуй, для глобальных переменных это самый удобный вариант доступа по имени.Alice = {1, 2, 3} print(_ENV["Alice"][1])Сложность лишь в том, что само использование глобальных переменных чаще всего нежелательно в Lua.
-
Сама схема улья мне кажется слишком вытянутой. Может, лучше использовать схему из проспектов и улиц? Вот так, например:

Путь на противоположный край такой карты будет короче, чем вдоль вытянутой в линию.
Каждый квадрат на схеме соответствует одному чанку. Схема масштабируется блоками 32x32 чанка и соответствует одному файлу региона Майнкрафта. В каждом регионе помещается 28 сот размером 48x96 блоков. Останется только заглушить выходы с проспектов на пустые участки карты, а при расширении карты – снова прорубить проходы.
-
2
-
-
@Fingercomp когда-то отвечал про чтение NBT-тегов в инвентареУ кого есть идеи, как читать нбт предмета в инвентаре?
-
Отлично. Живые учителя – лучшее средство для преодоления инертности мышления.Ну вот. Всё как всегда.
Собрались - пофлудили - выхлопа ноль. Сказали, мол, раз ты инициатор, то ты и инициируй.
Поэтому я создал свою группу.
Для чего я её создал? Для социального эксперимента.
Я собираюсь проиллюстрировать сказанные мной слова и доказать одну вещь:
Не требуется титанических усилий для того, чтобы вести интересную и актуальную группу ВК, заливая как минимум один пост в неделю. Даже для такого полудохлого проекта как наш.
Ради эксперимента даже я буду заглядывать в VK.
-
2
-
-
Ок. Если VK используется для фоток, лайков и прочей имитации социальной активности, то как продвижение группы VK поможет притоку новых участников проекта?Ты сам ответил на свой вопрос
А, кстати, почему? Мне казалось увлекательным осваивать программирование через игру. Майнкрафт идеален для этого. Юные программисты слишком серьезны, чтобы играть в игры? Или, наоборот, программирование в Майнкрафте слишком сложно для них?Достаточно, а то и много, ибо даже тут онлайн упал.
И не надо транслировать на стену ВСЕ топики. Я имел в виду только отдельные посты и только значимых тем и какую-то автоматизацию переноса форматированного текста.В этом нет смысла, т.к. это стиль 2000-х, тем более если например каждый ололошка здесь будет создавать темы типа "памагите с кодом" или "падскажите каманду для робата", то и все стена будет загажена линками на эти шедевральные топики
Да ладно. В ОК тем же самым: фотки, лайки и котики. Разве что, не так много пони и единорогов. Сам же говоришь:Интересно Томат тебе сколько лет, если у тебя такое мировоззрение. Мне кажется тебе уже за 30+ точно
ОК = соц.сеть для тех кому за 40+.
Так если этого достаточно, то и прекрасно. Можно даже пойти немного дальше и публиковать дайджест более-менее значимых тем и блогов. Вопрос в том, будет ли это кому-нибудь интересно. Даже я могу публиковать подобное:Ну если сравнивать другие проекты [здесь должна была быть реклама], то там чуваки просто сделали из группы оповещалку, типа "сервер выключен, технические работы", "у нас обновление" и т.п. Больше тоже ничего особого там и нет.
«Обычный школьник за 15 минут накопал стак алмазов. Он запустил программу...»
«Наши инженеры разработали ядерный реактор на 15000 EU/t. Для его работы нужно всего лишь...»
«Как не потерять нажитое непосильным трудом во время вайпа. Сейфы будут доступны в...»
-
Объясните отсталому человеку: зачем нужна группа в VK; почему не на OK или FB; почему недостаточно форума.
Зашел сейчас в группу, потыкал в статьи (или как оно там называется). Опять же, не понимаю, зачем дублировать инфу на двух ресурсах. Почему недостаточно просто оставить ссылку? А если важен полноценный текст, то, может, проще написать транслятор из форумного кода в ВК? Или статьи должны быть адаптированы? И если да, то какова цель адаптации?
Возможно, я тут не один такой, кто не понимает смысла ВК, и пользоваться им тоже не умеет. Я в свое время создал учетку только для того, чтобы голосовать за проект на Топах. На этом моя активность в ВК закончилась. Что там еще можно делать? Народ в ВК выкладывает свои фоточки, ставит лайки, повсюду всякие чмоки-чмоки, котики, пони и единороги.
Почему этой публике вдруг будут интересны ComputerCraft или OpenComputers? Даже если группа будет наполнена интересным для них контентом, то как потенциальная аудитория узнает о ней? А если нужно как-то рекламировать группу, то почему сразу не рекламировать форум? Что вообще требуется делать для раскрутки группы? Как это поспособствует развитию форума?
Извините за нубские вопросы, это не троллинг. Если что, можете не отвечать. Может, я в принципе не способен понять смысла ВК.
-
1
-
-
Память мне не изменила. Проверил на ComputerCraft1.75.jarНет. В OC они похоже работают как и в CC
-- демонстрация параллельной обработки потоков черепашками ComputerCraft -- движение вперед-назад local function f1() for i=1,20 do turtle.forward() turtle.back() end end -- вычисления local function f2() for i=1,40 do for j=1,2e+5 do k=j*j end sleep(0) end end turtle.refuel() -- затраты времени на движения, на вычисления, и на все сразу: t0=os.clock() parallel.waitForAll( f1 ) t1=os.clock() print(t1-t0) t0=os.clock() parallel.waitForAll( f2 ) t1=os.clock() print(t1-t0) t0=os.clock() parallel.waitForAll( f1, f2 ) t1=os.clock() print(t1-t0)Запустил три раза:
Экономия времени очевидна.
А как провернуть подобный трюк на OpenComputers?
-
В OC потоки выполняются псевдопараллельно. А, если мне не изменяет память, библиотека Parallel в CC позволяла выполнять вычисления во время движения черепахи.А у OC разве нет? Вон, в OpenOS даже уже встроили либу потоков.
Робот не может напрямую подключиться, например, к монитору или к радару. А черепаха могла. С переходом на ОС некоторые из мобильных схем стали менее мобильными.Про периферальные возможности вообще непонятно. Хочется так, что в одном блоке максимум один компонент мог быть? Или на две стороны или инструмент (бесконечный), или модем?


[CC] Программа заправки с озера лавы
в Роботы
Опубликовано:
Роботы OpenComputers, напротив: и топливо сжигают медленно, и предел заряда достигается довольно быстро. Стандартный робот не вместит заряд даже от двух ведер лавы, а если бы и смог вместить, то времени на превращение этих двух ведер в энергию ушло бы более 30 минут.
Поэтому портировать эту программу на OpenComputers нет никакого смысла. Но можно написать, например, сборщик лавы, наполняющий капсулы для последующего их использования.