- Useful - PearOS was pretty and all, but if I'm honest it was completely useless.
- Shell emulation - This is what I've been working on over the past few days.
- Look nice :P/>
Thoughts?
Something really minimal that just goes away when you don't want it, yet still has a tonne of almost hidden away functionality and features. Something like a little pull down tab in the top or bottom (configurable) corner of every running app, a simple desktop (no fancy icons), and a simple colour scheme - something like just 2 or 3 colours in it (grey, dark grey, and cyan for example). Something highly configurable, like you can chose between a shell or graphical file browser, and a package manager, but simple, like apt-get with a few downloadable packages, no upload of packages. Damn I'm giving myself ideas now…
This is why I really really liked Kingdaro's Craftbang, and why I really really dislike windowed OSes for CC - there's just not enough screen space to make one effectively.
The easiest way (IMO) to make something look good is have a simple consistent colour scheme.
Thanks for the very valuable feedback.
Simple colour scheme is a must. However, I've been thinking about what makes current computers and software complicated to non-techsavy people. I believe one of the main reasons is customisation. While customisation is good to a point, having tons of options makes it confusing. As a result, especially with such a basic computer and uses, I'd like to avoid customisation where possible.
A few months back I was thinking about doing something similar to the Windows 8 Metro full screen app thing but never got around to it. I agree, there's very little screen space so windows, now I think about it, aren't really the best option.
There's a subtle difference between customizability and modularity. Modules can be simple, but interchanged. If someone doesn't like the simple module you pack in by default, they can change it to their own module. Of course here "module" is an abstract term so you'd have to build a system for that, but the idea is a nice one.
Module and modularity is probably a much better term for what I meant. Having different types and styles of modules that perform the same function so you can chose the one best suited to you. Of course, this is a lot of work due to having to build the system, then all the different types of modules individually. I think this is achieved well by real OSes such as Windows by having massive amounts of downloadable applications that all perform the same function (eg Chrome or Firefox or IE for web browsing, or providing a terminal or a graphical file system).
The only problem with building levels of abstraction on top of the base CC hardware is that people probably don't want to build applications specifically for a particular OS with its particular abstractions on CC - they want to be able to release their program standalone. So if you were to build abstractions into the OS, have some sort of "Add abstraction code into program" button which adds a bunch of code into the file so that the program can be released standalone.
This is the reason I think making an OS with a developer API is a silly idea - people don't want to make programs for one particular OS, they want to be able to run the program standalone so they can release it for others to use.
if string.find(os.getVersion(), "awsmazingOS") then[/font]
awsmazingOS.setAppIcon(params)[/font]
--# other awsmazingOS stuff
end
however awsmazingOS has a hidden CraftOS layer to run standard programs. What do you believe is best? As well as the fact that awsmazingOS does have a planned store - that is also planned to have some requirements and moderation, some of those requirements being a requirement of awsmazingOS features, such as Icons and Home tiles,Would abstraction be a better term for what you're describing?
Modern OSes provide a higher level abstraction over the hardware layer. That abstraction then allows programs, which are just the top level of abstraction, to run.
Abstractions become more numerous as you go higher too. For example at the bottom level you have drivers, and so for any given piece of hardware you'll usually only have 1 driver, maybe 2 (a generic one and a specific one). At the top level of abstraction there are countless implementations of a browser for example.
I'd like to see an abstraction for the display, so that you don't have to worry about whether the display is colour, can handle mouse clicks, etc. You would write your code and the abstraction framework would take care of the details.
Another area worth abstracting would be the peripheral system. So many programs require you to modify the code to select the "side" the appropriate peripheral is on, or the more advanced ones ask you which side. If there was a decent abstraction then you'd simply have to ask the OS for a peripheral and it's found automatically. This is fairly easy to write but because it's not in the base OS people keep rewriting it, or not bothering.
The only problem with building levels of abstraction on top of the base CC hardware is that people probably don't want to build applications specifically for a particular OS with its particular abstractions on CC - they want to be able to release their program standalone. So if you were to build abstractions into the OS, have some sort of "Add abstraction code into program" button which adds a bunch of code into the file so that the program can be released standalone.
This is the reason I think making an OS with a developer API is a silly idea - people don't want to make programs for one particular OS, they want to be able to run the program standalone so they can release it for others to use.
-snip-
My planned OS, awsmazingOS (under heavy development, not coming out anytime soon) has function calls such as awsmazingOS.setAppIcon(params subject to change) to change an icon, but the developer can use os.getVersion()to get the OS name, so they could use something like this:however awsmazingOS has a hidden CraftOS layer to run standard programs. What do you believe is best? As well as the fact that awsmazingOS does have a planned store - that is also planned to have some requirements and moderation, some of those requirements being a requirement of awsmazingOS features, such as Icons and Home tiles,if string.find(os.getVersion(), "awsmazingOS") then[/font] awsmazingOS.setAppIcon(params)[/font] --# other awsmazingOS stuff end
Thoughts?
Out of curiosity, what do you mean by 'Really Advanced' system? Do you mean an advanced file browser?Hm. Maybe a IRL Weather/Time feature. That would be nice.
Also You could add a taskbar which can store apps so there right there for you and like Mack said, multitask. And maybe some type of 'Really Advanced' File system.
Thoughts?
Relevant XKCD :P/>
I don't think standards would be the way to do it - many different OSes and programs would require quite different functionality, or people may want to go their own way about making something, rather than following guidelines, so in a way this could discourage creativity and new ideas.
awsmazinggenius: I do like that, probably easier than my "add code into program" button idea :P/>
There isn't really any way around it. If you want a standardized interface that OSs could implement, it won't meet everyone's needs. If you don't have a standardized interface, everyone will roll their own, so programs would need huge amounts of code for compatibility with multiple OS-specific APIs. If everything just uses the standard arrangements of things to allow usual CraftOS programs can run, the programs can't influence any special OS features.
I generally go for the strategy wherein a standard CraftOS program can be run completely normally, where it sees no differences between running in CraftOS and running in LyqydOS (aside from available screen space), but I provide (currently slightly anemic) API calls to allow developers interested in taking advantage of LyqydOS features a way to do so simply and with minimal extra coding in their programs.
Several of the "features" discussed above would be better as well-written CraftOS programs, to be honest. Good programs that people like to use can be combined with an OS they enjoy using if everything is written properly. Extensive compatibility is the "best" way to go, in my opinion.
Yes, having it part of CraftOS would be the ultimate way to ensure the standards. I might make a new topic about standards though, it's veering off topic. What do you mean by community OS?I've thought for the longest time that the community should get just together and make a whole bunch of standards (ie for Rednet transmissions, our own version of X, etc, etc) It honestly surprises me a little that it hasn't happened.
Something that would help maintain compatibility with standard CraftOS is trying to create hooks into the current APIs. Using the fs API as an example, you can implement symbolic links and file permissions, and by hooking into the fs API, every program is now automagically aware of permissions and symlinks. It eventually gets difficult trying to hook new functionality into the existing API and still have it make sense, though.
Perhaps we should try for a 'community OS'? I know that there have been ones in the past, but I believe they've all died.
Yea, crashes are obviously things I want to avoid. The current build of the OS doesn't have any crashes so far, but then again it's not very developed yet.I have seen a lot of OS'es but pretty much all of them have severe crash bugs, if you could avoid them then I think more people would use it.
What do you mean by community OS?
Sure, if people would actually read the thing. Most people around here already can't read API documentations and the like, nor search Google. A manual is only helpful it it's read.Engineer said:Point was to make some kind of manual, which helps people out.
Sure, if people would actually read the thing. Most people around here already can't read API documentations and the like, nor search Google. A manual is only helpful it it's read.Engineer said:Point was to make some kind of manual, which helps people out.
The program should be so easy to use you don't need a manual.
Errm lolwhut?-(optional) an app that you can make programs with, kind of like Visual Basic :D/> (or, for games, Game Maker)
Well, i know that, but i was reffering to the program by microsoft. It counts as a program anyway, since you can run the .exe, and it has an interface, etc.Errm lolwhut?-(optional) an app that you can make programs with, kind of like Visual Basic :D/> (or, for games, Game Maker)
Visual basic refers to a programming language (well 2 considering visual basic 6 and visual basic .net have little relation anymore), it isn't a piece of software.
Before we get into this, we need to go into something that dan200 needs to work on with the mod,
HD GRAPHICS IN THE COMPUTERS
(only available using HD resource/texture packs, of course)
That would be awesome, 'cause then the OSes that use the colors of adv. computers won't look so clunky and peice of crappish.
Think that would be awesome, right?
Now, onto the BEST OS!!!
- People can create a server using the OS and edit the server to serve a different purpose in the other computers on the Minecraft server. Ex. One person creates a server that hosts applications and sends those apps to other computers using an app (Like the Mac App Store). OR a server can host websites sent to other computers using an internet browser (Like Google Chrome).
- Easy usage, everything is in plain sight and you know where everything is. Your favorite apps would be on the desktop or launchpad or deskpad or whatever you want to call it.
- Minecraft Inception!!!!!!!!!!!
- Easy-to-use Login System, so you can have multiple accounts on the same computer.
That's my take on it.
I bid you a burrito (and a Merry Christmas for the time of the posting of this),
- SnappGamez (oh hey, that's mah YewTewb!)
I'm about a week from an invite only beta for the OS now, and I can pretty confidently say that everything is very fast and easy. The only problem with keyboard shortcuts is there's a risk that they're also used by the open program.An OS where getting things done is easy and fast, and uses as little time as possible. Functions for common tasks and best based around a file manager with multiple tabs. Keyboard shortcuts for everything.
I'm probably going to make an OS in CC one day similar to what I've just described.