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

ECS

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

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

  • Посещение

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

    203

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


  1. 46 минут назад, chanmagomed сказал:

    Вот файлики сами, может так лучше будет

    О, другое дело, благодарю. Проблему анализа ошибок в либе System нашел и исправил, можно обновиться. А что касается кнопки - транспозеру подавался nil: 

     

    image.thumb.png.f34fec2427d9eb14dc878078fbc12699.png


  2. Запустил сырцы, ошибка другая, и проблема в отсутствующих локализационных файлах софта (они вообще задумывались или это копипаста с доки?)

     

    А почему ошибка другая - это интересный вопрос, т.к., судя по всему, у тебя неверно сработал парсер стектрейса, и система пытается отобразить ошибочную строку файла "(...tail calls...) /Users/hanmag/Desktop/..", которого, конечно же, не существует. Почему это произошло - фиг знает, надо чекать оригинальный стектрейс, чтобы пофиксить парсер. А как чекать - тоже фиг знает, т.к. у меня и стектрейс другой. Wtf крч

     

    image.thumb.png.9fd8463072fc2a822b6ee1b5a566710f.png


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

    много яда и сарказма и это наводит меня на мысль, что данный респондент пытается заниматься жёстким маркетингом, а так-же попытками манипулирования народом на форуме. Возможно, что оси перестали публиковать, как раз из за того, что   ESC разгоняет конкурентов.

    Под гнётом манипуляций

    рыночек порешал.

    Сакура цветет.

    • Ха-ха 1

  4. 14 часа назад, pavel1992x сказал:

    На самом деле спор нечего не стоит. Обратная совместимость между майн ос и open os основана на том, что обе эти системы работают на одном  так сказать виртуальном и упрощённым железе и написаны на одном и том же языке, вот и всё. 

    На самом деле железо ничего не стоит. Обратная совместимость основана на схожести обращения к системным API, в которых и заключается вся ценность ОСей, а железо - так, дополнение. За редким исключением прикладной софт не работает с железом напрямую, а дёргает буферизированные обёртки I/O и монтированные ФСки, вешает хуки на события и анализирует нажатия клавиш через соотв. библиотеки. В майноське и опеноське основные методы либ крайне схожи, что обеспечивает обратную совместимость, вот и всё

     

    14 часа назад, pavel1992x сказал:

    Добавлю, что скорей всего и сама open os, как и крафт ос из computer craft не являются в полной мере ос. Хотя, ещё вопрос что такое ос и может ли быть ос на виртуальном железе полноценной ос?

    image.png.fa93b2efabf33f8d0389cb239ebabd22.png

     

    Это комплекс взаимосвязанных программ? Да. Они управляют ресурсами компьютера? Да. Они организуют взаимодействие с пользователем? Да. Значит, это ОС. Но раз сам pavel1992x софистически утверждает обратное... 

     

    14 часа назад, pavel1992x сказал:

    Хотя вроде-бы установленный андроид на блустакс, работает как андроид, а это значит, что и open os и майн ос, это тоже разные ос. Которые впрочем базируются на одном ядре.

    image.png.60b4abd0004d7c7f3e198e363b7e5e7d.png

     

    Ядром опенкомповских ОСей является совокупность их библиотек, которые как раз и занимаются распределением процессорного времени (threads из openos или workspace из mineos), управляют памятью (кеш/выгрузка package) и работают с внешними ФСками (io/filesystem). И надо же, они предоставляют сервисы (API) доступа и к ФСке и сетевым протоколам! А ещё забавно, что у трёх наиболее распространённых ОС (openos/plan9k/mineos) ядра самописные, хотя и функционально схожие, т.к. они писались в одну эпоху без тонн юниксового легаси и многолетнего совершенствования аппаратной части. Однако ни о каком "одном ядре" тут речи быть не может

     

    14 часа назад, pavel1992x сказал:

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

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

    • Нравится 2

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

    Кстати, раз уж речь про магазин приложений - а можно фичу, чтобы не отрисовывать иконки приложений, а просматривать всё в виде списка? А то лагает просто ужасно.

    image.png.725d4e15a85509af559847f5af9429d8.png

    • Спасибо 2
    • Ха-ха 2

  6. 14 минуты назад, Teen_Romance сказал:

    @ECS спасибо за ответ. My bad я не до конца написал что хочу. Большой текст должен находиться на одном экране с текстом поменьше. В центре что то вроде счетчика и сбоку кнопочки и обычный текст. https://prnt.sc/-4Lfi8jY5bSP

    Зараза! Ну, тогда только ручная растеризация символов, да. Я от недалекого ума эту фичу напрямую через двумерные таблички реализовал. Может, у тебя получится более грамотное решение

     

    https://github.com/IgorTimofeev/MineOS/blob/master/Libraries/BigLetters.lua

    • Спасибо 1

  7. 57 минут назад, Teen_Romance сказал:

    Мне нужно нарисовать текст размером 1\3 высоты экрана. Как бы это лучше всего реализовать? Есть идея построчно рисовать ASCI символами, но решил спросить тут. Должны быть варианты получше.

    local event = require("event")
    local unicode = require("unicode")
    local component = require("component")
    
    local screen = component.screen
    local gpu = component.gpu
    
    -- Отображаемый текст
    local text = "Hehe u cute"
    
    -- Разрешение по высоте, на основе которого будет подобрана "идеальная" ширина
    -- Т.к. строка всего одна, она как раз займет 1/3 высоты экрана
    local height = 3
    
    -- Получаем компоновку мульти-блочного экрана и его пиксельную пропорцию
    -- Инфа по формуле, если интересно: https://computercraft.ru/topic/2413-kak-ubrat-chyornye-polosy-po-krayam-ekrana-opencomputers/
    local aspectWidth, aspectHeight = screen.getAspectRatio()
    local proportion = 2 * (16 * aspectWidth - 4.5) / (16 * aspectHeight - 4.5)
    
    -- Рассчитываем разрешение по ширине на основе высоты и пропорции
    local width = math.floor(height * proportion)
    
    -- Чистим экран
    gpu.setResolution(width, height)
    gpu.setBackground(0x220000)
    gpu.setForeground(0xFFFFFF)
    gpu.fill(1, 1, width, height, " ")
    
    -- Рисуем текст по центру
    gpu.set(math.ceil(width / 2 - unicode.len(text) / 2), math.ceil(height / 2), text)
    
    -- Ждем интерактива от юзера
    while event.pull() ~= "touch" do
    
    end

    image.png.fcce1065f7d99aa902b5420aacafb550.png 

    • Нравится 1

  8. Небольшой апдейт для ОС:

    • Добавлено приложение Events, работающее по аналогии с OpenOS'евским dmesg
    • Добавлена возможность установки event.interruptingFunction для пользовательской обработки прерываний по ctrl + alt + c
    • Добавлена возможность установки кастомных кодов клавиш вместо ctrl + alt + c
    • Добавлена поддержка precise режима для мониторов без форсированной установки этого режима на false
    • Для магазина приложений добавлена поддержка иконок с разрешением < 8x4 пикселей
    • Исправлен краш проводника при скроллинге в пустых директориях
    • Оптимизирован экранный буфер для прямых вызовов к GPU через invoke без проксирования компонента, что чуть-чуть повышает скорость отрисовки

    И для местной прошивки EEPROM:

    • Добавлена фича URL boot для выполнения пользовательских скриптов

    • Добавлена поддержка авто-привязки к монитору при его подключении и отключении

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

    • Нравится 6

  9. 2 часа назад, rootmaster сказал:

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

    Старая версия не поддерживает ведра из-за ограничений палитры/разрешения, а из-за оконного UI она неюзабельна от слова "совсем". Проведу аналогию: Elden Ring имеет "точно такой же функционал" на GeForce 9800, что и на современных картах - но не думаю, что тебя устроит 1 кадр/сек в разрешении 320x240

     

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


  10. 12 минуты назад, rootmaster сказал:

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

    Я же написал выше: затем, что биос стал частью оси, которая не поддерживает более слабое железо


  11. 12 часа назад, rootmaster сказал:

    да хоть чтобы не лезть в файл лишний раз

    В какой файл, в исходник биоса? Зачем в него лезть? Чтобы подправить цветовую палитру? Кто в здравом уме и трезвой памяти захочет этим заниматься? У данного биоса задача элементарная: запустить майнось, работающую на Т3, и дать возможность восстановить её при форс-мажорных обстоятельствах. Среднему пользователю этого хватит с лихвой, а кодеро-боги всегда могут разработать кастомное решение под свои нужды

     

    12 часа назад, rootmaster сказал:

    вообще почему только t3? на t2 все тоже прекрасно роботает, но я все еше остаюсь на своей "ос"(мною мадефицированпя openOS)

    Потому что я считаю, что лишь железо 3 тира способно обеспечить тот внешний вид ОСи, который концептуально задумывался, без ущерба для пользовательского экспириенса. Считаешь иначе? Твоё право, но уважать его я не буду, т.к. не люблю наглый пиар за чужой счёт


  12. 14 часа назад, rootmaster сказал:

    лол планшет даже твое детише mineOS тянет, причем даже чуть чуть юзабельна

    Ты спросил "чем данная ось планшетная" - я ответил. Зачем пытаться сравнивать два разных продукта? Повторюсь, планшетные ОС, в отличие от десктопных, не перегружены визуальным мусором, который на экранах с малым разрешением/диагональю выглядит неуместно. У них другой подход к позиционированию, другой принцип по работе с многозадачностью, single app view, все дела. Адаптированные планшетные ОС зачастую выигрывают по части UX у универсальных десктопных - surface/vivobook тому в пример. Отчасти по этой причине ирл до сих пор существует чёткое разделение между планшетами и ультрабуками, хотя железо первых уже лет 10 как позволяет запускать десктопные ОС. Хотя наверняка первичными факторами выступают коммерция и рыночные устои со времен, когда продукты на планшетных ОС стали прибыльны

    • Нравится 1

  13. 5 часов назад, rootmaster сказал:

    и вообще чем данная ос "планшетная"

    Как минимум пагинационным концептом взаимодействия вместо оконного, когда максимум полезной площади маленького планшетного экрана отдается текущему приложению, а также сбалансированной цветовой гаммой, которую на экранах 2 тира хрен подберешь без боли

    • Одобряю 1

  14. Проблема в том, что ты записываешь данные о логине/пароле в оперативную память, которая по аналогии с реальной жизнью энергозависима - т.е. при выключении/перезагрузке компьютера она очищается. Ну и да, ты прав, логичным решением проблемы будет использовать ПЗУ вместо ОЗУ

     

    А вариантов хранения данных довольно много. Например, вот самый простой, когда логин хранится в отдельном файле а-ля login.txt

    local io = require("io")
    
    -- Запись
    local login = "MyNickName"
    local file = io.open("/login.txt", "w")
    file:write(login)
    file:close()
    
    -- Чтение
    local file = io.open("/login.txt", "r")
    local login = file:read("*a")
    file:close()

    Или вот более комплексный, позволяющий сохранять конфиги твоих разработок в виде сериализованных (сконвертированных в строку) луа-таблиц (массивов), а затем читать их из файла. В майноське, как и в 99% софта, реализован плюс-минус он:

    local io = require("io")
    local serialization = require("serialization")
    
    -- Запись
    local config = {
      login = "MyNickName",
      lastAuthorization = "09.04.2022 15:00:00",
      interfaceColor = 0xFF0000
    }
    
    local file = io.open("/config.txt", "w")
    file:write(serialization.serialize(config))
    file:close()
    
    -- Чтение
    local file = io.open("/login.txt", "r")
    local config = serialization.deserialize(file:read("*a"))
    file:close()

    Ну и полноценные СУБД со сложностью "за гранью богоподобия". Чисто для ознакомления, это не для нас, смертных:

     

    • Нравится 2
    • Спасибо 1

  15. 13 часа назад, rootmaster сказал:

    он не предаставляет никаких api все функции в нем локальны

    Разве это несет какую-то пользу для конечного потребителя? Кроме спортивного интереса, в чем профит сбора кучи фич в одном скрипте, который не влезает в дефолтные лимиты еепрома?

    • Спасибо 1

  16. 18 минут назад, rootmaster сказал:

    администрацияй можно договорить, это биос можно легло сдать до 8 кб

    Хех, в публичные сборки даже опенкомпы мало кто ставит, а ты про правку конфига и подозрительные для среднего админа операции с лимитами. Однако по функционалу твой продукт выглядит вполне вкусно. Почему бы не перевести его из гипертрофированного биоса в самостоятельную ОС? И кодить станет проще, и простор для творчества шире, и костылей в виде минификации/конфигов не потребуется, и конкуренция какая-никакая имеется

     

    На текущий момент topBiosV7 би лайк:

     

    image.png.64e54358714744627df29f63185ad447.png

    • Ха-ха 2

  17. 15 минут назад, rootmaster сказал:

    на счет поддержки все видеокард и монитороф это не правда, на первом не работает, без gpu это чудо вообще не запускаеться

    Это гуишный биос для гуишной оськи, я не вижу смысла в фиче запуска без GPU. Изначально он был приложением к майноси поверх опеноси, и поддерживал все тиры оборудования, а затем майноська ушла в стенделон, и нужда в первых двух тирах отпала. Ссылка была оставлена на всякий пожарный

     

    Оригинал можно найти в истории версий, но не думаю, что он кому-то понадобится:

    https://github.com/IgorTimofeev/MineOS/blob/349085db4b627529bcbc48609f536656e52b31e9/EFI/Full.lua

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