Overview
It's been almost a month since Nova was released. Since then, it has been completely rewritten. This new version has some new features which make it slicker, quicker, and even better than before.
The main aim of the OS is to provide advanced and useful features with a simple to use interface, and to extend the usage of Craft OS rather than just putting a pretty cover over the top. Examples of this are one-click file encryption, packing folders into archives, creating images with multiple layers, and adding secure user accounts.
Everything has been improved in my opinion, the internal code, and the stuff that you, the user, sees. The only downfall is that nothing much has been added (except tonnes of improvements), and in cases, some things have been removed.
I am happy with this release to a point that I can start writing apps non-stop, and not work on the core nearly as much, so expect to see lots of new apps coming soon.
"I want to add my program"
This is now very easy to do!
Step by step:
- Create a folder in Nova/apps, with the name of your program.
- Inside, place your program, and rename it to "main.lua" (the .lua will disappear, and it should say "Lua script file" below)
- Create a new file, and rename it "appconfig.txt" (again, the .txt will disappear, and it should say "Plain text file" below)
- Open this file in Edit (it may open in Run, if so, close Run, right click on "open with", select Edit, and click ok)
- Write the following lines:
- runmode = "compatibility";
- fullscreen = true; – if you want your program to use the entire screen.
- After relogging, you should then be able to open Nova/apps, and launch your app. (it will no longer display it as a folder, but as a Nova app).
Spoiler
A list of the main features:
- Multiple secure users.
- Easy to use file browser, with encryption, archiving, and a favourites bar.
- Advanced text editor, with selection, undo/redo support, and an inbuilt debugger (run your program).
- Advanced paint app, with text support, multiple layers, and loads of useful tools.
- Support to run any computercraft program.
- BBTetris by Bomb Bloke.
- An experimental NetworkTest app to show networking works.
- Screenshotting.
- Add users, rename accounts, change passwords, and delete your account from the settings app.
Simply download this one file and run it:
pastebin get m342HLd6 startup
It may take a couple of seconds, being 350kb and all, but with it installed, there is no need for anything else to be downloaded. Yes, that's right, it's all compressed into that one file for simplicity. It will create a folder called Nova to save data in, but other than that, it's completely self-contained.
If you are upgrading from a previous version of Nova, you will need to delete the Nova/ folder. Just open up Run, and type "delete Nova" without the quotes, and then install.
What's in the queue for version two (what's coming up in future versions)
Spoiler
Not all of these things will be out next version, that's for sure, but they will be out soon hopefully.- A desktop, which you can add shortcuts to, and open CraftOS windows (movable, resizeable and closable).
- A Messenger app (basically an email client)
- A file transfer app.
- A browser, similar to quest, which uses markup (from NovaUI) to display UI content from a server.
- An app store. (this may take a while, I need to learn html, php, and js pretty much from scratch)
- An FTP Mount and FTP Host app, which allows you to connect remotely to other computer's filesystems.
- Apps that load files asking for a password if trying to open an encrypted file.
- Files app mounting a bit better (auto detect if a mount is necessary).
Something went wrong…
Spoiler
While I have tested everything I can think of, there are bound to be bugs and issues.Don't be alarmed by the size of this spoiler, I have tried to cover as many of the problems I have seen, even in very early versions, so you won't be left wondering what went wrong.
Some things to be aware of:
- "The screen has gone white". This is because an app UI has errored and not been caught, crashing the OS UI. This should never happen, but in spots I have missed a bit of code that will stop this. If it happens, use ctrl-r to reboot, and please tell me what you did you cause it to crash, as well as the Nova/logs/log.txt file.
- I created an archive, password protected it, edited a file inside it, saved it, and all of a sudden the archive isn't password protected. Yes, this will happen, just re-encrypt the archive, as there is no way round this.
- "I have forgotten my password". There is no way to get it back, so just delete the user file from the Nova/users/ folder if you can. Yes, it is OK to delete all the files in there, even the folder itself, as it will just ask to create a new user.
- "I have forgotten the password to a file". Again, there is no way to get this back, and chances are, you have probably found the file is now complete garbage as it was decrypted with the wrong key resulting in a long string of weird characters. Sorry, but there is no way to get this back.
- "I deleted an app from the Nova/apps/ folder, and I can no longer run it". Deleting the whole Nova/apps/ folder will cause it to be re-made (not using the internet, it's all in that 1 file remember). All apps will be restored by doing this, and you will lose NO data. However, you may need to restart for the app to be registered again.
If you need help with anything, don't hesitate to ask. Also, if you are interesting in developing apps for Nova, read the spoiler below.
Thanks for reading
For developers
Spoiler
This version has a much improved API.There are no longer permissions, and error handling is done automatically by the AppInstance class.
In addition, all UI classes are put into the NovaUI table, to mimic what it would be like if the app were running standalone. Using this, it's far easier to make apps that run on their own. If you want proof, try running Nova/apps/Edit/main.lua inside the Run program. It will work, which shows it runs standalone too.
If anyone is interested in making apps for Nova, it's a great idea. If you just want to make something have a nice UI, using NovaUI is a great way to go, and if you're using that, you may as well make it work with Nova too. However, Nova also provides far more functionality. You can mount virtual disk drives into the filesystem, which can then be used by any other app with absolutely no difference to the functionality of that app. You can also use the networking library to send messages back and forth using a secure connection.
I'm not going to write any documentation for the API right now. NovaUI is still behind on its documentation, so I need to finish that first. However, if you'd like to start working on an app, you can PM me, and I'll talk you through it all personally (and I'll also hurry up with the documentation).