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

WheatComp

Пользователи
  • Публикации

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

  • Посещение

Сообщения, опубликованные пользователем WheatComp


  1. В 11.06.2023 в 23:29, ECS сказал:

    Чтобы что-то закрыть, нужно сперва это что-то открыть.

    Я пока поставил на паузу игру в ОС. Несколько разочарован модом, возникло ощущение недоделанности. Например, чтобы просто узнать, сколько на диске используется, нужно создать файл, затем закрыть его, и только потом можно получить требуемую информацию.

     

    В 11.06.2023 в 23:29, ECS сказал:

    давай сам думай

    Попробую.


  2. 6 часов назад, ECS сказал:

    Я одного не пойму: почему тебя так зацепило это явление, неужели оно создаёт настолько серьёзные проблемы?

    Радикального отношения нет, просто расстроился, не сумев создать и сохранить файл на диск. Какая-то таблица появляется, вместо файла. А тут еще и filesystem проблемы подкидывает.

    6 часов назад, ECS сказал:

    Схожая путаница возникает между java.nio.file и java.io.file. Эт норма))0

    Ну ладно, что поделаешь, вот так и живем.

    зы: файл удалось сохранить. Пытался по этой инструкции делать, оказалось, w нужно брать в кавычки:

    file = io.open('TEST.txt', "w")

    Без кавычек не работает.


  3. 6 часов назад, eu_tomat сказал:

    Кто свалил? В какую-такую одну кучу? Пока что это выглядит как разные кучи. Есть component.filesystem, а есть require("filesystem"). Это разные объекты

    Если это разные объекты, то почему они называются одинаково? Пока что выглядит так, что один объект лежит в двух разных кучах.

    6 часов назад, eu_tomat сказал:

    Это проблема лежит за пределами ответственности авторов мода. Да и не ахти какая это проблема

    Я понимаю, что все сообщество будет сопротивляться такому изменению, ведь придется переписать тучу кода. А удобочитаемость... ну её.


  4. 18 часов назад, ECS сказал:

    ообще с одной стороны ты прав, и путаница имеет место быть. А с другой - наверняка нашлись бы недовольные альтернативной реализацией, дескать, "А чо у вас компонент зовётся filesystem, а API disksystem? Дискеты - ето уже диски? Сложна!1"

    Вот-вот. Можно выделить, что к чему относится: robot_com, robot_api. В программировании максимальная точность только помогает и делает код более читаемым. Если видишь, например, filesystem_api, сразу понятно, что это не к компоненту относится. Всего 3 буквы добавили, а такая ясность наступает. Это же нужно только один раз в начале программы писать, а не по 10 раз. А так все в одну кучу свалили, "пусть разбираются".


  5. @eu_tomat ну или хотя бы назвать по-разному, например, disksystem для одного компонента и filesystem для сборной файловой системы. По-моему, это единственный компонент, который можно включать в программу и через точку и через require. А если назвать одинаково, есть высокие шансы, что юзеры запутаются. Не совсем юзерфрендли решение.


  6. 19 минут назад, RasonGame сказал:

    Мод уже давно не обновляется активно.

    Возможно, корректнее будет сказать "не обновляется значительно". Пара фиксов и апдейт мелочей - это какая-никакая, а активность. Что мелочами занимаются, согласен. Такое впечатление, что Sangar (главный который) отошел от мода, а занимаются апдейтом его помощники, которые на ютубе туториал снимали с ним. Или помощник.


  7. @RasonGame я брал за основу программу ECS-а:

     

    В 17.05.2023 в 19:05, ECS сказал:

    -- Подключаем библиотеки local component = require("component") local filesystem = require("filesystem")

    То, что разные команды разбросаны по разным библиотекам и компонентам - это недоработка, по-моему. Мод обновляется постоянно, может, соберут в одном месте.

     


  8. Пытался узнать, сколько используется места на диске. В интерпретаторе в игре работает, а если запускать через программу, то не работает, выдает ошибку lua:4: "attempt to call a nil value (field 'spaceUsed'):

    local component = require("component")
    local filesystem = require("filesystem")
    
    sp = filesystem.spaceUsed()
    print(sp)

     


  9. 4 часа назад, eu_tomat сказал:

    и сделать pull request в репозиторий мода. Это идеальная альтернатива.

    Нет ли более быстрого решения? Например:

     

    В 27.05.2023 в 23:31, ECS сказал:

    Пишем собственные под конкретные задачи. Работа с сетью в опенкомпах довольно удобна, поэтому новый софт создаётся быстро, если, конечно, речь не идёт о шифровании или каких-то специфических форматах передачи данных с компрессией. Ну, а когда кодовая база становится довольно объёмной - оформляем её в виде библиотек и выкладываем

     

     

     


  10. @eu_tomat Форматнул диск, вынув, щелкнув ПКМ, держа в руке, поменяв с файлового на блочный и обратно. Может, есть другие способы?

    Жаль отказываться от пинга и переименовывания компьютера. Есть ли альтернативные способы все это делать?


  11. 2 часа назад, ProgramCrafter сказал:

    Компьютер перезагружен?

    Если набрать ls /lib, там будет папка network?

    Да, перезагружен. Папка network есть.

    C другого компьютера, где также установлен network, каждые 3 секунды высылается сообщение. На принимающем компьютере каждые 3 секунды показывается это сообщение об ошибке. Оба компа используют стандартные команды (не из дискеты). Если закрыть порт, на который тот компьютер высылает данные, то это сообщение об ошибке перестает приходить.


  12. Значит, если в сист. блоке 2 карты, то одна из них никак не участвует в передаче сообщений, посланных обычным способом, без выбирания через адрес? А только главный модем работает. Вот в чем дело, понятно.

    • Нравится 1

  13. В 23.05.2023 в 23:26, eu_tomat сказал:

    Если выбирать сетевую карту кодом modem = component.modem, то будет выбран именно главный компонент. И если им является проводная карта, то сообщение по беспроводному каналу не будет послано.

    А не баг ли это? Если это баг, то может, кто-то c хорошим английским возьмется issue сделать на страничку мода?


  14. @ECS Почему-то начала выскакивать ошибка, как только открываю порт, на который приходит сообщение по сети: ERROR IN NET EVENTHANDLER[modem.lua]: /lib/network/modem.lua:31: attemtp to index a number value (local 'data')

    Вот тут тоже человек столкнулся с похожей проблемой, но решил проблему кардинально - переустановить ОС.


  15. Прошу прощения. Самое страшное в программировании - это то, что начинаешь воспринимать людей как функции (или классы). Я только осваиваю основы, но уже замечаю за собой такое.

    "Дискета бесполезна" - не знаю, пинг и переименование компьютера, по-моему, довольно полезны. Вот, допустим, установил вдалеке компьютер, а лень бегать к другому компьютеру посмотреть, установлена ли связь. Тут пинг очень даже удобен. Да и просто, "все как у людей", то бишь у реальных компьютеров - это cute. Непонятно, почему в OpenОS нет такого. Протоколы udp и tcp, может, и бесполезны. На мой взгляд, они дублируют стандартный modem.send(). Все равно же нужно обращаться к функции event.pull(). "Не имеет документации" - это действительно жаль, почему они не сделали нормальный туториал. Даже на этом форуме за все эти годы не появился туториал, только один раз спросили про дискеты и все. Выкидывать из мода все-таки не следует, мне кажется. Builder, digger - все они могут кому-то пригодиться, кто-то может взять их за основу своей программы.

    А если вы не пользуетесь этой программой, то какой программой вы пользуетесь для сетевых дел? Потому что, честно говоря, встроенная сеть не очень удобна.


  16. @eu_tomat @ECS@Fingercomp  , к сожалению, туториалов по этой дискете нет ни на английском, ни на русском. А жаль, дискета, по-моему, полезная, например, пинговать можно. Но вот чтобы получать сообщения, нужно, кажется, пользоваться дефолтной командой event.pull()?


  17. Установил данную дискету. По команде в терминале man network дается описание команд. Функция

     network.ip.bind(addr)

    привязывает дополнительный адрес к компьютеру. Как посмотреть этот привязанный адрес и как обращаться по этому адресу?


  18. 20 часов назад, eu_tomat сказал:

    Если ключ имеет числовой тип, будет возвращено число. Если же ключ является строкой "amount", то и будет возвращена стока "amount". Никакой нумерации итератор не добавляет.

    Вот как ключ работает! Спасибо.


  19. 28 минут назад, ECS сказал:

    Функция pairs возвращает итератор, который проходит по всем элементам таблицы tankTable,

    Итератор, возвращаемый функцией pairs, это же цифра? Он же нумерует элементы таблицы? Если pairs может обратиться к аmount "по цифре", то почему мы не можем? Или я, может, путаю ключ с переменной? Если бы amount был переменной, выражение print(tankTable[1][1]) было бы корректным и напечаталась бы цифра 222. Может, ключ не так работает?

×
×
  • Создать...