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

Totoro

Гуру
  • Публикации

    1 950
  • Зарегистрирован

  • Посещение

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

    289

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

  1. Мне кажется многовато. Периодически собираемые команды "воскрешения OpenNet" это забавная часть нашей истории.
  2. Видимо это подполное анонимное тайное сообщество возрождателей OpenNET. Мы их не видим и не слышим, но они где-то там. Ждут своего часа. А ProShow - их пресс-секретарь. Он ведёт свою работу по подготовке общественности.
  3. OPENNET! OPENNET! OPENNET! OPENNET! OPENNET! OPENNET!
  4. @@Alex, а чёрт его знает. Я сам пробовал сделать так и сяк. Ставь пока какая тебе кажется более подходящей, а я потом может нарисую что-нибудь ещё.
  5. Окей :P А ещё: 1) Писать modem.send() короче и проще, чем SecurityControl.SendPort(Port,Mess). 2) Слово "mess" с английского означает "бардак", "путаница", "беспорядок". 3) Тащить кучу зависимостей и графический установщик, ради того, чтобы потом послать сообщение через модем - нонсенс. И это я до кода не добрался. Однако, хвалю за храбрость.
  6. Максимальная дистанция на которой работает плата задана конфигом мода. Там по дефолту стоит 400. И оно по моему сломано и не перенастраивается на другое значение. (Во всяком случае, когда я пробовал так было.) =) Ещё ты можешь задать силу сигнала для передачи командой: setStrength(value: number): number Это, как я понимаю, повлияет на максимальное расстояние, на которое будет слышно сообщение, и на количество энергии необходимое на передачу. Впрочем, это делать не обязательно. "Из коробки" плата передаёт сообщения на полную мощность.
  7. http://minecraft-ru.gamepedia.com/OpenComputers/%D0%91%D0%B5%D1%81%D0%BF%D1%80%D0%BE%D0%B2%D0%BE%D0%B4%D0%BD%D0%B0%D1%8F_%D1%81%D0%B5%D1%82%D0%B5%D0%B2%D0%B0%D1%8F_%D0%BF%D0%BB%D0%B0%D1%82%D0%B0
  8. Нет, это я сам оффтоплю. А по теме - я писал на CC в такие давние времена, что ничего уже не помню. Надо ждать гуру СС. Или читать доки :P
  9. Подзаглох проект что-то. Он будет ещё воскрешаться, или уже R.I.P.?
  10. Ну, придумать самому, или реквизировать вот отсюда.
  11. У тебя вставлен Lua BIOS, да? Он как раз ищет и запускает init.lua как раз. Поскольку OpenOS недоступна, тебе придётся обходиться без неё. =) Можешь надрать нужного контента и засунуть на ту же дискету (например ту же функцию require).
  12. Я хз как именно ты его стартуешь, но судя по всему, эта хрень у тебя запускается ДО того как загружена OpenOS. Функцию require задаёт именно OpenOS, поэтому очевидно программа не может её найти и крашится. Почему же работают первые строки, спросишь ты? А это происходит по двум причинам. Во-первых, компьютеру всегда и везде доступны глобальные объекты computer и components. Их можно использовать даже из EEPROM. Во вторых, конструкции типа A or B вычисляются лениво. Это значит, что если компьютер рассчитал левую половину выражения (A) и она "истинна", то он не будет считать правую половину. Потому что true or <что-то> всегда даст "истину", и считать вторую половину смысла никакого нет, т.к. на неё пофиг. Поэтому, несмотря на то что в правой половине ты вызываешь несуществующую функцию require, компьютер не кидает ошибку - он даже не пытался выполнить этот вызов. А вот на третьей строке, левая половина (event) оказывается "ложной", потому что глобального объекта event не существует. Компьютер пробует рассчитать правую половину выражения, и сталкивается с тем, что у тебя там идет вызов несуществующей функции.
  13. Забегай в ирку, обсудим технические детали, чтобы тут не флудить.
  14. Запилил рунические медальки (просто для прикола). Получилось немного зловеще, но может пригодятся на что-нибудь.
  15. fill - адекватная замена. А вот в случае со string.rep появляется лишнее действие. Каждый раз при заливке, компьютер вынужден провести конкатенацию 20 с лишним пробелов в одну строку. Поэтому это не обязательно лучший вариант.
  16. Мой вариант: function parse(json) return { id = '2', name = 'Яблоко', item_name = 'minecraft:apple', item_meta = 0, nbt = '{Some NBT Tags}', cost_uu = 0.01, stat = 1, total_sales = 152, mods = 'Vanilla' } end local data = parse( '[{"id":"2","name":"Яблоко","item_name":"minecraft:apple",' .. '"item_meta":"0","nbt":"{Some NBT Tags}","cost_uu":"0.01",' .. '"stat":"1","total_sales":"152","mods":"Vanilla"}]')
  17. Эта фраза абсолютно истинна, причём не только в рамках этой темы.
  18. Я полностью с тобой согласен. Только надо учесть ещё один момент. Компьютер в ОС не даёт использовать в полную мощь даже те фейковые "немногопоточные" потоки, которые он выделяет. Ведь там есть ещё одно искусственное ограничение - на количество команд / тик для одного процессора. Если же распределить задачу на два процессора, мы уменьшим этот кап вдвое.
  19. Ну да. Просто кучка компьютеров, которые работают сами по себе, и решают каждый свою задачу. Ты раскусил нашу идею. (Ещё можно было внимательно прочесть первые посты.) Идея состоит в том, чтобы написать библиотеку-менеджер для кластера из компьютеров, соединённых вместе и готовых выполнять задачи. Использовать эту штуку можно будет по разному. - вычислять что-то параллельно, разбив задачу на части, - запустить несколько разных задач одновременно, - запилить публичный сервис, который предоставляет вычислительные ресурсы всем желающим, балансируя полученные задачи и нагрузку по кластеру Зачем стягивать себя рамками определений?
  20. А какая принципиальная разница? Я же уже ответил Квертику - мы не будем решать конкретных задач. Мы напишем либу, которая позволит организовать параллельное вычисление. Мультипоточность. Кто сказал, что потоки обязаны обрабатывать похожие задачи?
  21. Здесь просто многозадачность. В принципе, можно использовать и так как @ivan52945 описал. Если наладить нормальное взаимодействие с подзадачами.
×
×
  • Создать...