SDV 784 Опубликовано: 4 февраля, 2016 я зарегистрировался в Sourceforge Хм, а смысл? Зайдя на него я увидел лишь это: No (more) commits А где код то? И зачем надо юзать эту проприентарщину SF? Есть же старый добрый GitHub (Торвальдс одобряет ), тем более он более уместен для данного проекта (публикация исходников). А как мне кажется, SF нацелен на распространения собранных файлов (их git я не беру в счет). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
MrConstructor303 Автор темы 5 Опубликовано: 4 февраля, 2016 (изменено) Хм, а смысл? Зайдя на него я увидел лишь это: No (more) commitsА где код то? И зачем надо юзать эту проприентарщину SF?Есть же старый добрый GitHub (Торвальдс одобряет ), тем более он более уместен для данного проекта (публикация исходников). А как мне кажется, 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 ... Изменено 4 февраля, 2016 пользователем MrConstructor303 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy 2 187 Опубликовано: 5 февраля, 2016 (изменено) А какую библиотеку thread используешь? И что говорит ошибка? Изменено 5 февраля, 2016 пользователем Zer0Galaxy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
MrConstructor303 Автор темы 5 Опубликовано: 5 февраля, 2016 (изменено) А какую библиотеку thread используешь? И что говорит ошибка? Которую взял отсюда: http://computercraft.ru/topic/634-mnogopotochnost-v-opencomputers/ Уже ваша помощь не требуется. Сам ошибку исправил. Надо было перезапустить машину. Но у меня появился баг. При загрузке процесса окно не реагирует на нажатия. Есть идеи, как исправить? function RomeAPI.loadTask(process) RomeAPI.tasks[process] = thread.create(shell.execute, process) end Изменено 5 февраля, 2016 пользователем MrConstructor303 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
evgkul 571 Опубликовано: 5 февраля, 2016 У event.pull с многопоточностью проблемы Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
MrConstructor303 Автор темы 5 Опубликовано: 6 февраля, 2016 (изменено) Лучше вместо gml использую forms(http://computercraft.ru/topic/1016-oc-lyogkaia-biblioteka-gui/). Почему-то документация к либам от Zer0Galaxy проста и понятна даже для чайника, вроде меня. Если я у него беру код для своего проекта, следовательно может стать соавтором, или хотя бы указать в его соучастии.Теперь по делу. Можно вместо event.pull использовать event.listen и обработчики событий Изменено 8 февраля, 2016 пользователем MrConstructor303 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
MrConstructor303 Автор темы 5 Опубликовано: 17 февраля, 2016 (изменено) Прошел почти месяц после начала разработки, а я всего лишь создал простенькую графическую библиотеку для своей уникальной оболочки, называемую Rome API. Я эту библиотеку адаптировал под черно-белые мониторы, чтобы потом мою ОС можно было уснанавливать на роботов. Моя библиотека пока годится только для экспериментов.Что она из себя представляет:Плюсы: + ускоряет процесс управления роботом, так как не придется вводить команды; + в появлением новых версий будут новые функции Минусы: - для запуска приложений все таки придется выйти в терминал - библиотека еще сырая - дизайн окна убогий, так как оно представляет из себя только кучу кнопок, расставленные в ряд Скриншоты: Скачать можно отсюда: https://github.com/MrConstructor303/Rome-API/releases Изменено 17 февраля, 2016 пользователем MrConstructor303 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy 2 187 Опубликовано: 17 февраля, 2016 Так, так. Давай разберемся. Ты пишешь новую операционную систему или графическую оболочку под OpenOS? Если новую систему, то зачем используешь опеновские библиотеки term, event и т.д? Без OpenOS они работать не будут. А если графическую оболочку, то называй вещи своими именами. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
davial 1 972 Опубликовано: 17 февраля, 2016 Прошел почти месяц после начала разработки, а я всего лишь создал простенькую графическую библиотеку для своей уникальной оболочки, называемую Rome API. Я эту библиотеку адаптировал под черно-белые мониторы, чтобы потом мою ОС можно было уснанавливать на роботов. Моя библиотека пока годится только для экспериментов. Что она из себя представляет: ГУИ для роботов ? В этом есть смысл. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy 2 187 Опубликовано: 17 февраля, 2016 local form = { caption="", elements={} } . . . function RomeAPI.newForm(caption) local object = form object.caption = caption return object end В корне не верный подход. При попытке создать второй экземпляр формы, ты перетрешь свойство caption и перечень элементов ранее существовавшей формы. Рекомендую ознакомиться со способами реализации ООП под Луа. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
MrConstructor303 Автор темы 5 Опубликовано: 17 февраля, 2016 Так, так. Давай разберемся. Ты пишешь новую операционную систему или графическую оболочку под OpenOS? Если новую систему, то зачем используешь опеновские библиотеки term, event и т.д? Без OpenOS они работать не будут. А если графическую оболочку, то называй вещи своими именами. Я создаю систему на основе OpenOS, в любом случае упоминания OpenOS в моей системе бутут стерты. local form = { caption="", elements={} } . . . function RomeAPI.newForm(caption) local object = form object.caption = caption return object end В корне не верный подход. При попытке создать второй экземпляр формы, ты перетрешь свойство caption и перечень элементов ранее существовавшей формы. Рекомендую ознакомиться со способами реализации ООП под Луа. В следующей версии будет исправлено. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy 2 187 Опубликовано: 17 февраля, 2016 Я создаю систему на основе OpenOS, в любом случае упоминания OpenOS в моей системе бутут стерты. Раз так, позволь высказать еще пару мыслей:Первое. Если бы я взялся писать ось, я бы начал с ядра, а не с оболочки. Оболочка во многом будет зависеть от ядра. Ядро же от оболочки - никак. Второе. Считается плохим тоном взять за основу чужую программу (песню, картину, киноленту) и сделать из нее свою, удалив упоминание о первоисточнике. Так что, или пиши свою систему с нуля или позиционируй её как надстройку над OpenOS. Иначе мы рискуем получить еще одну OpenOS, но под другим именем. Это, конечно, моё личное мнение. Как поступать - решать тебе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Totoro 3 562 Опубликовано: 17 февраля, 2016 Я создаю систему на основе OpenOS, в любом случае упоминания OpenOS в моей системе бутут стерты. Что-то мне это напоминает. 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
SDV 784 Опубликовано: 17 февраля, 2016 Стоп, стоп, стоп способами реализации ООП. Луа Как можно в одном предложении совместить несовместимое? Что-то мне это напоминает. Пацан к успеху шел Ладно мы смеемся сейчас, а глядишь в будущем разработчик OC да и возьмет Rome OS как основную ОСь Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy 2 187 Опубликовано: 17 февраля, 2016 Как можно в одном предложении совместить несовместимое? Например, так или так. Нужно лишь приложить старание. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
MrConstructor303 Автор темы 5 Опубликовано: 17 февраля, 2016 (изменено) Почему тему назвал RomeOS, а не Rome? Получилось из-за слияния "Rome" и "OpenOS", то есть это не само название продукта, это название сборки OpenOS с предустановленной оболочкой Rome. Формально я делаю оболочку Rome. Сборку создам для того, чтобы уменьшить возню с установкой программ. Иначе бы пришлось вначале потавить OpenOS, а затем вводить команду wget или oppm, и не у каждого интернет-карта установлена. А так взяли диск с RomeOS,вставили в дисковод, запустили установщик, затем устанавливается и готово. Давно хотел сказать, но боялся Изменено 17 февраля, 2016 пользователем MrConstructor303 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy 2 187 Опубликовано: 17 февраля, 2016 Хм. Rome OS - операционная система для Opencomputers, разработанная мной. Нет уж. Обещал ось - подавай ось. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Totoro 3 562 Опубликовано: 17 февраля, 2016 (изменено) А так взяли диск с RomeOS,вставили в дисковод, запустили установщик, затем устанавливается и готово. С одной стороны удобно. С другой - абсолютно не гибко. Сейчас мод пореже обновляется, а раньше новые версии выходили почти каждую неделю. И соответственно OpenOS тоже изменялась. Если графическая оболочка слита с системой, то на каждый малейший апдейт OpenOS надо пересобирать весь RomeOS. А если бы она была отдельно - таких проблем бы не стояло. Обновлять Rome бы приходилось только в случае мажорных обновлений OpenOS, ломающих совместимость. P.S. С другой стороны - RomeOS можно превратить во что-то типа Debian =) То есть OpenOS будет играть роль ядра. Добавить графическую оболочку Rome. Добавить пакетный менеджер. (Было бы идеально слить его с нашим репозиторием). Добавить набор различных интересных программ. Изменено 17 февраля, 2016 пользователем Totoro Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
MrConstructor303 Автор темы 5 Опубликовано: 17 февраля, 2016 (изменено) С одной стороны удобно. С другой - абсолютно не гибко. Сейчас мод пореже обновляется, а раньше новые версии выходили почти каждую неделю. И соответственно OpenOS тоже изменялась. Если графическая оболочка слита с системой, то на каждый малейший апдейт OpenOS надо пересобирать весь RomeOS. А если бы она была отдельно - таких проблем бы не стояло. Обновлять Rome бы приходилось только в случае мажорных обновлений OpenOS, ломающих совместимость. P.S. С другой стороны - RomeOS можно превратить во что-то типа Debian =) То есть OpenOS будет играть роль ядра. Добавить графическую оболочку Rome. Добавить пакетный менеджер. (Было бы идеально слить его с нашим репозиторием). Добавить набор различных интересных программ. Вот-вот, как раз и собираюсь создать пакетный менеджер, и концепцию Debian в коде Lua. Изменено 17 февраля, 2016 пользователем MrConstructor303 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
MrConstructor303 Автор темы 5 Опубликовано: 15 марта, 2016 (изменено) Я долго думал над своим проектом, экспериментировал с модом, решил создать ОС с нуля, даже кастомную прошивку EEPROM делаю под неё. Операционка называется Smart. Под неё будет сделана отдельная тема. Описание напишу позже. Изменено 16 марта, 2016 пользователем MrConstructor303 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах