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

Rome Shell for OpenOS

Рекомендуемые сообщения

 

 

я зарегистрировался в Sourceforge

Хм, а смысл?

Зайдя на него я увидел лишь это:

No (more) commits

А где код то? И зачем надо юзать эту проприентарщину SF?

Есть же старый добрый GitHub (Торвальдс одобряет :smile9: ), тем более он более уместен для данного проекта (публикация исходников).

А как мне кажется, SF нацелен на распространения собранных файлов (их git я не беру в счет).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хм, а смысл?

Зайдя на него я увидел лишь это:

No (more) commits
А где код то? И зачем надо юзать эту проприентарщину SF?

Есть же старый добрый GitHub (Торвальдс одобряет :smile9: ), тем более он более уместен для данного проекта (публикация исходников).

А как мне кажется, SF нацелен на распространения собранных файлов (их git я не беру в счет).

Я только вникаю в мир свободного софта. А гитхаб у меня есть: https://github.com/MrConstructor303/RomeOS. А кода нет, потому что проект на стадии закрытого теста. Пытаюсь создать многооконный интерфейс с помощью библиотек gml, thread , которые используются в RomeAPI.

Но я застрял на ошибке в моей либе(RomeAPI), которая ругается на отсутствие Shell API при попытке запустить RomeAPI.loadTask(process)

 

Вот часть кода где ошибка:

...
local thread = require("thread")
...
RomeAPI.tasks = {}
...
function RomeAPI.loadTask(process)
  RomeAPI.tasks[process] = thread.create(dofile, "/usr/bin/"..process..".lua") --здесь прячется ошибка
end
...
Изменено пользователем MrConstructor303

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А какую библиотеку thread используешь? И что говорит ошибка?

Изменено пользователем Zer0Galaxy

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А какую библиотеку thread используешь? И что говорит ошибка?

Которую взял отсюда: http://computercraft.ru/topic/634-mnogopotochnost-v-opencomputers/

 

Уже ваша помощь не требуется. Сам ошибку исправил. Надо было перезапустить машину.

Но у меня появился баг. При загрузке процесса окно не реагирует на нажатия.

Есть идеи, как исправить?

function RomeAPI.loadTask(process)
  RomeAPI.tasks[process] = thread.create(shell.execute, process)
end
Изменено пользователем MrConstructor303

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Лучше вместо gml использую forms(http://computercraft.ru/topic/1016-oc-lyogkaia-biblioteka-gui/). Почему-то документация к либам от Zer0Galaxy проста и понятна даже для чайника, вроде меня. Если я у него беру код для своего проекта, следовательно может стать соавтором, или хотя бы указать в его соучастии.

Теперь по делу. Можно вместо event.pull использовать event.listen  и обработчики событий

Изменено пользователем MrConstructor303

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Прошел почти месяц после начала разработки, а я всего лишь создал простенькую графическую библиотеку для своей уникальной оболочки, называемую Rome API. Я эту библиотеку адаптировал под черно-белые мониторы, чтобы потом мою ОС можно было уснанавливать на роботов. Моя библиотека пока годится только для экспериментов.
Что она из себя представляет:
Плюсы:
 + ускоряет процесс управления роботом, так как не придется вводить команды;
 + в появлением новых версий будут новые функции
 
Минусы:
 - для запуска приложений все таки придется выйти в терминал
 - библиотека еще сырая
 - дизайн окна убогий, так как оно представляет из себя только кучу кнопок, расставленные в ряд
 
Скриншоты:

 


post-219-0-96461300-1455702296_thumb.png

post-219-0-47059000-1455702352_thumb.png

 

 

 

Скачать можно отсюда: https://github.com/MrConstructor303/Rome-API/releases

Изменено пользователем MrConstructor303

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Так, так. Давай разберемся. Ты пишешь новую операционную систему или графическую оболочку под OpenOS? Если новую систему, то зачем используешь опеновские библиотеки term, event и т.д? Без OpenOS они работать не будут. А если графическую оболочку, то называй вещи своими именами.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Что она из себя представляет:

 

 ГУИ для роботов ? В этом есть смысл.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
local form = { caption="", elements={} }
  . . .
function RomeAPI.newForm(caption)
  local object = form
  object.caption = caption
  return object
end

В корне не верный подход. При попытке создать второй экземпляр формы, ты перетрешь свойство caption и перечень элементов ранее существовавшей формы. Рекомендую ознакомиться со способами реализации ООП под Луа.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Так, так. Давай разберемся. Ты пишешь новую операционную систему или графическую оболочку под OpenOS? Если новую систему, то зачем используешь опеновские библиотеки term, event и т.д? Без OpenOS они работать не будут. А если графическую оболочку, то называй вещи своими именами.

Я создаю систему на основе OpenOS, в любом случае упоминания OpenOS в моей системе бутут стерты.

 

local form = { caption="", elements={} }
  . . .
function RomeAPI.newForm(caption)
  local object = form
  object.caption = caption
  return object
end

В корне не верный подход. При попытке создать второй экземпляр формы, ты перетрешь свойство caption и перечень элементов ранее существовавшей формы. Рекомендую ознакомиться со способами реализации ООП под Луа.

 

В следующей версии будет исправлено.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

Я создаю систему на основе OpenOS, в любом случае упоминания OpenOS в моей системе бутут стерты.
Раз так, позволь высказать еще пару мыслей:

Первое. Если бы я взялся писать ось, я бы начал с ядра, а не с оболочки. Оболочка во многом будет зависеть от ядра. Ядро же от оболочки - никак.

Второе. Считается плохим тоном взять за основу чужую программу (песню, картину, киноленту) и сделать из нее свою, удалив упоминание о первоисточнике. Так что, или пиши свою систему с нуля или позиционируй её как надстройку над OpenOS. Иначе мы рискуем получить еще одну OpenOS, но под другим именем.

Это, конечно, моё личное мнение. Как поступать - решать тебе.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я создаю систему на основе OpenOS, в любом случае упоминания OpenOS в моей системе бутут стерты.

 

Что-то мне это напоминает:D

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Стоп, стоп, стоп :stop:


способами реализации ООП.

 


Луа

Как можно в одном предложении совместить несовместимое? :smile3:

 

 

Что-то мне это напоминает. :D

 

Пацан к успеху шел :smile148:

Ладно мы смеемся сейчас, а глядишь в будущем разработчик OC да и возьмет Rome OS  как основную ОСь :D

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

Как можно в одном предложении совместить несовместимое?
Например, так или так. Нужно лишь приложить старание.  :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Почему тему назвал RomeOS, а не Rome? Получилось из-за слияния "Rome" и "OpenOS", то есть это не само название продукта, это название сборки OpenOS с предустановленной оболочкой Rome. Формально я делаю оболочку Rome.

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

Иначе бы пришлось вначале потавить OpenOS, а затем вводить команду wget или oppm, и не у каждого интернет-карта установлена.

А так взяли диск с RomeOS,вставили в дисковод, запустили установщик, затем устанавливается и готово.

 

Давно хотел сказать, но боялся

Изменено пользователем MrConstructor303

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хм. 

 

 

Rome OS - операционная система для Opencomputers, разработанная мной.
 

Нет уж. Обещал ось - подавай ось.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А так взяли диск с RomeOS,вставили в дисковод, запустили установщик, затем устанавливается и готово.

 

С одной стороны удобно.

С другой - абсолютно не гибко.

 

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

Если графическая оболочка слита с системой, то на каждый малейший апдейт OpenOS надо пересобирать весь RomeOS.

А если бы она была отдельно - таких проблем бы не стояло. Обновлять Rome бы приходилось только в случае мажорных обновлений OpenOS, ломающих совместимость.

 

P.S. С другой стороны - RomeOS можно превратить во что-то типа Debian =)

То есть OpenOS будет играть роль ядра. Добавить графическую оболочку Rome. Добавить пакетный менеджер. (Было бы идеально слить его с нашим репозиторием). Добавить набор различных интересных программ.

Изменено пользователем Totoro

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

С одной стороны удобно.

С другой - абсолютно не гибко.

 

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

Если графическая оболочка слита с системой, то на каждый малейший апдейт OpenOS надо пересобирать весь RomeOS.

А если бы она была отдельно - таких проблем бы не стояло. Обновлять Rome бы приходилось только в случае мажорных обновлений OpenOS, ломающих совместимость.

 

P.S. С другой стороны - RomeOS можно превратить во что-то типа Debian =)

То есть OpenOS будет играть роль ядра. Добавить графическую оболочку Rome. Добавить пакетный менеджер. (Было бы идеально слить его с нашим репозиторием). Добавить набор различных интересных программ.

Вот-вот, как раз и собираюсь создать пакетный менеджер, и концепцию Debian в коде Lua.

Изменено пользователем MrConstructor303

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я долго думал над своим проектом, экспериментировал с модом, решил создать ОС с нуля, даже кастомную прошивку EEPROM делаю под неё. Операционка называется Smart. Под неё будет сделана отдельная тема.

Описание напишу позже.

Изменено пользователем MrConstructor303

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


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