←  Operating Systems

ComputerCraft | Programmable Computers for Minecraft

»

OneOS Version 2 - The All in One Operating...

Goof's Photo Goof 03 Jul 2014

I think that error means that you didnt whitelist the websites, OneOS needs, to verify versions, and download files.

change your cfg file where it says whitelist: pastebin.com*; computercraft.info*
to whitelist: *;

someone correct me if i made typos ( on my phone atm )

I Hope that helped
Quote

NanoBob's Photo NanoBob 03 Jul 2014

And where exactly can I find the config file?
Quote

Saldor010's Photo Saldor010 03 Jul 2014

View PostNanoBob, on 03 July 2014 - 11:54 AM, said:

And where exactly can I find the config file?

This tutorial was made for this exact problem.

http://www.computerc...e-the-http-api/
Quote

Phlimy's Photo Phlimy 03 Jul 2014

Oh My ******* God
It's amazing!! There is no lag/bugs and very easy to use =D
Quote

koenkoe's Photo koenkoe 03 Jul 2014

Nice work!!!
Quote

SpencerBeige's Photo SpencerBeige 03 Jul 2014

people always saying how great this is....i cannot even download it...it says 'domain not permitted'
how do i fix this? i want to try it, but every time i try i get mad at these stupid installers or computercraft, my http is enabled. and when i try it on mimic(an online interpreter) it just says 'determining latest version' forever!
Quote

Dog's Photo Dog 03 Jul 2014

View Postslow-coder, on 03 July 2014 - 07:41 PM, said:

people always saying how great this is....i cannot even download it...it says 'domain not permitted'
how do i fix this? i want to try it, but every time i try i get mad at these stupid installers or computercraft, my http is enabled. and when i try it on mimic(an online interpreter) it just says 'determining latest version' forever!
In the future, please provide more information (ComputerCraft version and exactly what you tried/typed) when you're seeking assistance.

In this case, 'domain not permitted' is a behavior of ComputerCraft 1.6. The solution is easily found via Google, but I'll save you the time...

Open your ComputerCraft.cfg file and find this entry:
# Set the list of domains that can be accessed through "http" API on Computers. Set this to "*" to enable access to the entire internet.
S:http_whitelist=*pastebin.com;*computercraft.info;*github.com  --# these entries may be different in your config

To enable ALL domains do this
# Set the list of domains that can be accessed through "http" API on Computers. Set this to "*" to enable access to the entire internet.
S:http_whitelist=*

or simply add the domains you wish to be able to visit following the format in the above example.

If you are playing on a server, the server admin will have to do this.
Quote

Saldor010's Photo Saldor010 03 Jul 2014

View Postslow-coder, on 03 July 2014 - 07:41 PM, said:

people always saying how great this is....i cannot even download it...it says 'domain not permitted'
how do i fix this? i want to try it, but every time i try i get mad at these stupid installers or computercraft, my http is enabled. and when i try it on mimic(an online interpreter) it just says 'determining latest version' forever!

Well, that's your fault, not Oeed's fault. Follow this link, http://www.computerc...e-the-http-api/, or follow the above post's instructions.
Quote

oeed's Photo oeed 04 Jul 2014

First of all, sorry for not reply for a while, I've been on holiday for a few days.

View PostMrStickmanPro1, on 29 June 2014 - 02:01 PM, said:

Hey,

first of all, I gotta say that this is the best OS I've seen so far for computercraft. Well done.

However, I've got one question: If yes, how can you use external monitors?

- MrStickmanPro1
Thanks!

You definitely can in 1.2 (which is still to be released), but I'm not sure if I added it to 1.1 (pretty sure I didn't).
What you could do is rename startup to something else (something like 'oneos') then, create a new startup file with this code:
shell.run('monitor left oneos') --replace left with the side of the monitor
The main problem is that you can't right click but everything else should work.

View PostBeeskee, on 30 June 2014 - 05:14 AM, said:

This is pretty sweet, I'm running it on FTB Unleashed and everything seems to be going well so far. The only bug I have encountered is in the app store, it crashes. I get this error: "startup:572: attempt to get length of number"
Yea the App Store's rather glitchy, hopefully it'll be fixed when I remake it with Bedrock.

View Postslow-coder, on 03 July 2014 - 07:41 PM, said:

people always saying how great this is....i cannot even download it...it says 'domain not permitted'
how do i fix this? i want to try it, but every time i try i get mad at these stupid installers or computercraft, my http is enabled. and when i try it on mimic(an online interpreter) it just says 'determining latest version' forever!
Yea you just need to do what Dog said. I do mention that in the first post, although I should probably make it more obvious as to how to fix it.

Now, on to some more news with the update.

It's moving along nicely. I've finally converted the base OS across to Bedrock (read the previous page for more info about it).
The previously 600 line main file is now only 60 lines and probably won't get much bigger. I've got menus and windows all working.

Here's some example code for making an alert box:
program:DisplayAlertWindow('Self Destruct?', 'Are you sure you want to blow up everything?', {'Yes', 'No'}, function(text)
  if text == 'Yes' then
   blowUp()
  end
end)

Which results in:
Posted Image

You can also show windows using a view (similar to program:LoadView) with similar syntax as above.

For menus the code looks like:
myButton.OnClick = function(self, event, side, x, y)
if self:ToggleMenu('desktopmenu', x, y) then
  program:GetObject('NewFolderMenuItem').OnClick = function(itm)
   --TODO: new folder
  end
  program:GetObject('NewFileMenuItem').OnClick = function(itm)
   --TODO: new file
  end
  program:GetObject('RefreshMenuItem').OnClick = function(itm)
   --TODO: refresh
  end
end
end
You can either pass the name of a file which has the menu items (which could be made using drag and drop) or you can pass a table, which could look something like:
{
  ["Type"]="Menu",
  ["Children"]={
	[1]={
	  ["Name"]="NewFolderMenuItem",
	  ["Type"]="Button",
	  ["Text"]="New Folder..."
	},
	[2]={
	  ["Name"]="NewFileMenuItem",
	  ["Type"]="Button",
	  ["Text"]="New File..."
	},
	[3]={
	  ["Name"]="Separator",
	  ["Type"]="Separator"
	},
	[4]={
	  ["Name"]="RefreshMenuItem",
	  ["Type"]="Button",
	  ["Text"]="Refresh"
	},
  },
}

I've also added drawing constraints. Basically, if you have something like a window and the content is bigger than the window it will cut out everything that isn't within the constraints, you can also toggle this off. Additionally, these constraints are compounded, meaning that they essentially stack up... yea I can't really explain that, but they basically just work.

One of the big things I'm wanting feedback on is when the screen is drawn. Previously when ever something was clicked or something needed to be drawn the system would draw everything again (buffered though). In this new system I've made it so it will check if anything needs to be drawn every fifth of a second and if so draw anything that changed. All objects which haven't changed will draw from a cache. Objects can tell the OS to draw them using self:ForceDraw() However, I'm not sure if doing it this way is the best really, so if you have any feedback in this area it'd be most appreciated.
Edited by oeed, 04 July 2014 - 05:16 AM.
Quote

Thegameboy's Photo Thegameboy 08 Jul 2014

View Postoeed, on 04 July 2014 - 05:13 AM, said:

One of the big things I'm wanting feedback on is when the screen is drawn. Previously when ever something was clicked or something needed to be drawn the system would draw everything again (buffered though). In this new system I've made it so it will check if anything needs to be drawn every fifth of a second and if so draw anything that changed. All objects which haven't changed will draw from a cache. Objects can tell the OS to draw them using self:ForceDraw() However, I'm not sure if doing it this way is the best really, so if you have any feedback in this area it'd be most appreciated.


First off, let me just say that I don't know how OneOS works internally, nor do I know the performance benefits of what I'm about to suggest, so this may or may not be a good idea. But why not take the best of both worlds? Have a certain "mode" using a method like you described above that you can toggle on and off that's used when you need to redraw most of the screen (ex. going into the file explorer) and another that's used for redrawing small things (ex. moving icons on the desktop, messages popping up) that can just draw what it needs to and leave everything else?
Edited by Thegameboy, 08 July 2014 - 08:10 PM.
Quote

Lyqyd's Photo Lyqyd 08 Jul 2014

One advantage of the way LyqydOS is laid out is that everything draws to individual buffers and there is one system-wide compositor that takes all of its buffers, composits them to the final output, and then draws that buffer to the screen, checking it against the previous buffer drawn to the screen and only drawing lines of the screen that have changed. It then copied the current output buffer and stores it to check against the next composited buffer. This occurs every time a process yields, drawing all of its changes to the screen at once. In this way, the OS prevents any unnecessary draws without messing with the visual appearance of any programs.
Quote

Geforce Fan's Photo Geforce Fan 08 Jul 2014

No offense, but now that we have shell tabs, why would you want an OS without any extra features other than multitasking... I know that it came first, but multishell is default...
but anyway, one thing I think needs major improvements in OneOS is the file size. Seriously. It's too big. After installing OneOS you have like 1/4th of a MB to do all your stuff. I'd say you should compact everything down to a little under 500MB then have the user have 2 floppies with the OS. And if you could get it down to 124KB(probably impossible without dropping features) then that would mean only one disk. I'm currently making a program to expand storage to a (theoretically) infinite potential amount of storage using disk drives hooked to a computer, though the networks are pretty dang big for their size. For 1mb, it takes 8 drives with floppies, though you could use pocket computers, I've confirmed that they work. Either way, you don't want to have to go to the point where you need a network just to install OneOS with some space leftover.
Quote

oeed's Photo oeed 09 Jul 2014

View PostThegameboy, on 08 July 2014 - 08:09 PM, said:

First off, let me just say that I don't know how OneOS works internally, nor do I know the performance benefits of what I'm about to suggest, so this may or may not be a good idea. But why not take the best of both worlds? Have a certain "mode" using a method like you described above that you can toggle on and off that's used when you need to redraw most of the screen (ex. going into the file explorer) and another that's used for redrawing small things (ex. moving icons on the desktop, messages popping up) that can just draw what it needs to and leave everything else?
I have redone how they screen is drawn, it's no longer ever X ticks. When one of an on-screen objects values changes [I'm using metatables, so there aren't any timers] (e.g. the X position) it is told to 'ForceDraw'. This tells Bedrock that it needs to be redrawn, so it won't use a cache and it will schedule a redraw in .05 seconds (incase there are numerous other draw operations occurring). I'm not entirely sure what the thing you're suggesting would do really.

View PostLyqyd, on 08 July 2014 - 08:47 PM, said:

One advantage of the way LyqydOS is laid out is that everything draws to individual buffers and there is one system-wide compositor that takes all of its buffers, composits them to the final output, and then draws that buffer to the screen, checking it against the previous buffer drawn to the screen and only drawing lines of the screen that have changed. It then copied the current output buffer and stores it to check against the next composited buffer. This occurs every time a process yields, drawing all of its changes to the screen at once. In this way, the OS prevents any unnecessary draws without messing with the visual appearance of any programs.
This is pretty much what I've now got OneOS to do. Everything, including programs, is buffered in a drawing cache and the program is only drawn when something changes.

View PostGeforce Fan, on 08 July 2014 - 09:47 PM, said:

No offense, but now that we have shell tabs, why would you want an OS without any extra features other than multitasking... I know that it came first, but multishell is default...
but anyway, one thing I think needs major improvements in OneOS is the file size. Seriously. It's too big. After installing OneOS you have like 1/4th of a MB to do all your stuff. I'd say you should compact everything down to a little under 500MB then have the user have 2 floppies with the OS. And if you could get it down to 124KB(probably impossible without dropping features) then that would mean only one disk. I'm currently making a program to expand storage to a (theoretically) infinite potential amount of storage using disk drives hooked to a computer, though the networks are pretty dang big for their size. For 1mb, it takes 8 drives with floppies, though you could use pocket computers, I've confirmed that they work. Either way, you don't want to have to go to the point where you need a network just to install OneOS with some space leftover.
I see where you are coming from, although I would say it has a few more features than just multishell. Would you have any features suggestions?

Yea... file size is quite an issue. I really just don't know what to do about it though. The largest part of the OS by far is the programs, although the APIs are still quite sizeable. I don't think getting it down to 124KB is going to be at all possible. Hopefully Bedrock will reduce the file sizes a bit as it makes a lot of code I just copied and pasted centralised (the main.lua file is now 4KB, previously it was 15KB).

I've looked briefly in to minification. Removing tabs takes about 46KB and new lines about 26KB, although that's not strictly minification. And if possible I'd like to keep line numbers for error reporting. I'm going to take a look at this today and see how beneficial it'll be: http://matthewwild.c...s/squish/readme
I'm not sure if gzipping will work with CC, but it might help a lot.
Quote

oeed's Photo oeed 14 Jul 2014

Bit of a quick(ish) update.

I've really been trying to reduce the size of the OS. I've managed to get it around 420KB (although that could change greatly), leaving you with over 500KB. I'll try to squish it down even more, and as I rewrite more programs to use Bedrock this should certainly help.
Posted Image

By far the biggest three files are Sketch, LuaIDE and Ink. I put them through a minifier and it certainly helped (about 30 - 40% reduction), but unless I start deleting things there isn't really going to be much more room to make space.

In other news, I've almost finished rewriting Files. Bedrock has changed it from a 600 line file to just 200 lines, so I'm quite happy with the benefits it's having. I've also added logging to the OS which will hopefully assist with tracking down errors, especially if I have to loose line numbers to save space. I don't have much logging at the moment, but I'll hopefully have enough information to solve most issues easily (the logs will be uploaded to GitHub instead of the serialised table).
Posted Image
So yea, I can't say when this update will be finished, but one thing I will promise, I won't be adding any more features I haven't already mentioned. I don't want to push the release further and further back. I'd also like to point out that 1.2 will not have have OneCode or Inspector. They might come 1.3.
Quote

CCNerd a.k.a CCNoob's Photo CCNerd a.k.a CCNoob 14 Jul 2014

Wow, looks awesome!

Quick question: is it possible to use bedrock for myself?
Quote

oeed's Photo oeed 15 Jul 2014

View PostCCNerd, on 14 July 2014 - 10:28 AM, said:

Quick question: is it possible to use bedrock for myself?

Yes, you most definitely will. I'll probably release it a week or two after I release 1.2. The main thing I need to do is write documentation and a tutorial on how to use it.
Quote

Saldor010's Photo Saldor010 15 Jul 2014

Release 1.2!
Release 1.2!
Release 1.2!
Quote

oeed's Photo oeed 15 Jul 2014

View PostJiloacom, on 15 July 2014 - 01:18 PM, said:

Release 1.2!
Release 1.2!
Release 1.2!
I'm trying to get it done ASAP. I'm not going to give an eta, because they've always been wrong. But it's getting close.
Quote

Tombot44's Photo Tombot44 16 Jul 2014

Does this support pocket computers? Why don't you make OneMini, OneOS for pocket computers? Just a suggestion.
Thanks
Edited by Tombot44, 16 July 2014 - 04:29 AM.
Quote

oeed's Photo oeed 16 Jul 2014

View PostTombot44, on 16 July 2014 - 04:28 AM, said:

Does this support pocket computers? Why don't you make OneMini, OneOS for pocket computers? Just a suggestion.
Thanks
Technically, it does, but it's not great.
1.2 is bringing greater support for pocket computers. Is there any aspect you feel that could improve? I will not be making a special version though, it just complicates things.
Quote