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

Totoro

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

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

  • Посещение

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

    289

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


  1. Видимо это подполное анонимное тайное сообщество возрождателей OpenNET.

    Мы их не видим и не слышим, но они где-то там. Ждут своего часа.

     

    А ProShow - их пресс-секретарь. Он ведёт свою работу по подготовке общественности.

    • Нравится 1

  2.  

     

    критикуйте
     

    Окей :P

     

     

    сейчас, я расскажу

    библеотеке
    так-же
    так-что
    передовать
    расскажу её API
    Проверяет если-ли модем, да - открывает рандомный порт и возвращает его.
    messege
    всё-же

     

    А ещё:

    1) Писать modem.send() короче и проще, чем SecurityControl.SendPort(Port,Mess).
    2) Слово "mess" с английского означает "бардак", "путаница", "беспорядок".
    3) Тащить кучу зависимостей и графический установщик, ради того, чтобы потом послать сообщение через модем - нонсенс.
     
    И это я до кода не добрался.
     
    Однако, хвалю за храбрость.  :D
    • Нравится 4

  3. Максимальная дистанция на которой работает плата задана конфигом мода.

    Там по дефолту стоит 400.

    И оно по моему сломано и не перенастраивается на другое значение. (Во всяком случае, когда я пробовал так было.) =)

     

    Ещё ты можешь задать силу сигнала для передачи командой:
    setStrength(value: number): number

    Это, как я понимаю, повлияет на максимальное расстояние, на которое будет слышно сообщение, и на количество энергии необходимое на передачу.

    Впрочем, это делать не обязательно. "Из коробки" плата передаёт сообщения на полную мощность.


  4. У тебя вставлен Lua BIOS, да?

    Он как раз ищет и запускает init.lua как раз.

     

    Поскольку OpenOS недоступна, тебе придётся обходиться без неё. =)

    Можешь надрать нужного контента и засунуть на ту же дискету (например ту же функцию require).


  5. Я хз как именно ты его стартуешь, но судя по всему, эта хрень у тебя запускается ДО того как загружена OpenOS.

    Функцию require задаёт именно OpenOS, поэтому очевидно программа не может её найти и крашится.

     

    Почему же работают первые строки, спросишь ты? А это происходит по двум причинам.

     

    Во-первых, компьютеру всегда и везде доступны глобальные объекты computer и components. Их можно использовать даже из EEPROM.

     

    Во вторых, конструкции типа A or B вычисляются лениво.

    Это значит, что если компьютер рассчитал левую половину выражения (A) и она "истинна", то он не будет считать правую половину.

    Потому что true or <что-то> всегда даст "истину", и считать вторую половину смысла никакого нет, т.к. на неё пофиг.

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

     

    А вот на третьей строке, левая половина (event) оказывается "ложной", потому что глобального объекта event не существует.

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

    • Нравится 3

  6. fill - адекватная замена.

     

    А вот в случае со string.rep появляется лишнее действие.

    Каждый раз при заливке, компьютер вынужден провести конкатенацию 20 с лишним пробелов в одну строку.

    Поэтому это не обязательно лучший вариант.


  7. Мой вариант: 

    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"}]')
    

    :D


  8. ...

     

    Я полностью с тобой согласен.

    Только надо учесть ещё один момент. Компьютер в ОС не даёт использовать в полную мощь даже те фейковые "немногопоточные" потоки, которые он выделяет.

    Ведь там есть ещё одно искусственное ограничение - на количество команд / тик для одного процессора.

     

    Если же распределить задачу на два процессора, мы уменьшим этот кап вдвое.  :)

    • Нравится 2

  9. Ну да. Просто кучка компьютеров, которые работают сами по себе, и решают каждый свою задачу.

    Ты раскусил нашу идею. (Ещё можно было внимательно прочесть первые посты.)

     

    Идея состоит в том, чтобы написать библиотеку-менеджер для кластера из компьютеров,

    соединённых вместе и готовых выполнять задачи.

     

    Использовать эту штуку можно будет по разному.

    - вычислять что-то параллельно, разбив задачу на части,

    - запустить несколько разных задач одновременно,

    - запилить публичный сервис, который предоставляет вычислительные ресурсы всем желающим, балансируя полученные задачи

    и нагрузку по кластеру

     

    Зачем стягивать себя рамками определений?  :D


  10. Кхм, так это немного не то, о чем мы изначально говорили. Тут у компов разные задачи, а мы вроде как о распараллеливании одной задачи.

     

    А какая принципиальная разница?

     

    Я же уже ответил Квертику - мы не будем решать конкретных задач. Мы напишем либу, которая позволит организовать параллельное вычисление.

    Мультипоточность.

     

    Кто сказал, что потоки обязаны обрабатывать похожие задачи?  :lol:

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