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

Belzebub

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

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

  • Посещение

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


  1. Привет, пишу либу для удобного скачивания файлов с raw-url/pastebin-id/github-repo
    https://pastebin.com/PE5Jq501

    респонс https://api.github.com/repos/USER/REPO/git/trees/BRANCH?recursive=1 содержит поля sha, хотелось бы получать хэш скачанных файлов что-бы сравнивать их с хэшем с ремоут репо да-бы добавить авто-обновление в загрузчик.

     

    Скрытый текст

    попытался сравнить хэш с гитхаба и хэш возвращаемый require("component").data.sha256, ничего адекватного не получилось
    image.png.30eafdbef69840f8522baabff84759dc.png

    image.png.37c50cf14331587c7a2476a82957ca24.png

     


  2. Привет, столкнулся с такой проблемой:
    internet либа фейлиться об 403 ошибку при попытке сделать запрос на мой сайт и cloudflare worker-а, так-же оно фейлиться при попытке запроса на сайт проекта на котором я играю (не комплюктер крафт, к сожалению на нём онлайн маленький).

    Хочу попросить что-бы кто нибудь попробовал сделать запросы на эти url на computercraft:
    https://incredible-gmod.ru/myuseragent.php
    https://test.gminc.workers.dev/

    есть ли у вас та же проблема? или проблема на проекте на котором я играю?
    ошибка происходит только с включенным Cloudflare Proxy.

    я вижу две проблемы:
    1. CF с включенным проксированием блочит запрос на своей стороне, т.к. считает комп роботом (логично, но мне нужно делать запросы на свой сайт и я в то-же время не хотел бы отключать cf proxy и палить айпи своей тачки)
    2. похоже что старые версии майнкампфа не переваривают сайты на цертах letsencrypt (к такому выводу меня привёл вот этот репо https://github.com/Cloudhunter/LetsEncryptCraft) - но это не точно т.к. когда я отключаю cf proxy на домене с сертификатом от letsencrypt реквесты проходят как положено.

    Сейчас половина интернета работает на cloudflare и letsencrypt, так что эта проблема очень сильно ограничивает возможности камплюктеров.
     

    Скрытый текст

    PJ4YWBt.png
    pGTkoEa.png

     


  3. 1 час назад, eu_tomat сказал:

    Измерение TPS, конечно, кривоватое, но какое отношение оно имеет к измерению расхода энергии?

     

    В моей голове это выглядит так:
    Если в тик генерируется 2048 eu и текущий тпс 19, то:

    EuPerSecond = EuPerTick * TicksPerSecond = 2048 * 19 = 38912

    Что бы узнать сколько времени требуется на создание одного миллибакета жидкой материи я делю стоимость генерации материи 10^6 / 6 + 4500 EU на текущий EuPerSecond
    Итого должно-было получиться:

    time = price / (EuPerTick * TicksPerSecond) = (10^6 / 6 + 4500) / (2048 * 19) = 4.39881442

    т.к. стационарный счётчик энергии выдаёт AvgEuPerTick, то и TicksPerSecond в формулах я заменяю на AvgTicksPerSecond :unsure:
    впрочем и с актуальным количеством тиков прога насчитывает левое число :(


  4. 56 минут назад, eu_tomat сказал:

    Если просишь помощи у программистов, не заставляй их смотреть видео. Программисты легче воспринимают код и прочий текст, нежели видео. Мало кто захочет тратить время на его просмотр.

    Понял, не дурак :)
    https://pastebin.com/0W160dsc


  5. Привет, решил написать программку для удобного мониторинга генератора материи/молекулярного трансформатора и тд.

    Начал мерить tps с помощью https://pastebin.com/62ivXgMb и avg eu/t с помощью require("component").average_counter.getAverage (Стационарный энергосчётчик из Nuclear Control 2)
    Результаты в игре и на экране компа шо-то не сходятся :(

    Подозреваю что я криво измеряю tps, паста с кодом который используется для измерения тпс выше.

    Видик на котором видны куски кода, результаты измерения на экране компа и ручные замеры:

     

    :smile25: 


  6. os.clock - крутая штука для бэнчей на чистом луа, но SysTime в глуа намного точнее.
    Индексация, не индесация - один фиг с любым телом цикла ipairs на luajit работает быстрее.

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


  7. Спасибо <3
    Я изменил код клоузуры на твои ветвления и всё заработало.
    По поводу pairs и for i = 1, #tbl - всё и так ок.

    алсо я использую ipairs, не знаю как оно в обычном луа - но бэнчмарки в JIT показывают результат в 15-20% быстрее
    https://pastebin.com/vEH362LC


  8. Привет.

    Пишу програмку для варпа и столкнулся с проблемкой сортировки.

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

    Я сортирую последовательную таблицу участников варпа по функции:
    https://pastebin.com/aE4EHBk3
    Сортировка буд-то бы в случайном порядке сортирует людей на экране:

    Это так-же не работает с кастомной функцией сортировки:
    https://pastebin.com/tnY2PeTR
    В итоге должно было получиться что-то вроде:
    warp.thumb.png.289e5e19db19bcb616dc085f657ff042.png
    сначала идут онлайн пользователи, они отсортированы по 'время сессии'.
    далее идут оффлайн юзеры, они отсортированы по 'был в сети'.

    Что я делаю не так?


  9. Как-то все слишком сложно, можно все через один цикл сделать.

    Вот более простая версия:

     

     

    local event = require('event')
    local modem = require('component').modem
    local port = 1
    local head = 'nanomachines'
    local tot = 18 --getTotalInputCount
    local msg = nil
    
    modem.open(port)
    modem.broadcast(port, head, 'setResponsePort', port)
    
    print('input', 'effects')
    
    for i = 1, tot do
      os.sleep(0.1)
      modem.broadcast(port, head, 'setInput', i, true)
      msg = {event.pull('modem_message')}
      if msg[6] == head and msg[7] == 'input' and msg[8] == i and msg[9] == true then
        modem.broadcast(port, head, 'getActiveEffects')
        msg = {event.pull('modem_message')}
        if msg[6] == head and msg[7] == 'effects' then
          print(i, msg[8])
          modem.broadcast(port, head, 'setInput', i, false)
        end
      end
    end
    

     

     

     

    А это экстренный выключатель:

     

     

    local event = require('event')
    local modem = require('component').modem
    local port = 1
    local head = 'nanomachines'
    local tot = 18 --getTotalInputCount
    local msg = nil
    
    modem.open(port)
    modem.broadcast(port, head, 'setResponsePort', port)
    os.sleep(0.1)
    for i = 1, tot do
      modem.broadcast(port, head, 'setInput', i, false)
      msg = {event.pull('modem_message')}
      if msg[6] == head and msg[7] == 'input' and msg[8] == i and msg[9] == false then
        print(i)
      end
    end
    

     

     

     

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

    Копка 3x3 это один из безымянных эффектов, поэтому их надо будет потом проверить вручную.

    Годно) Надо бы еще сделать прогу для перевода всех этих эффектов в читаемый текст и сохранение в отдельный файл для удобства) Попробую что нибудь наколдовать

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