These are chat archives for Deskshell-Core/PhoenixEngine

15th
Feb 2015
sihorton
@sihorton
Feb 15 2015 10:26
I like the BBQ format
very similar to what I did for the application packaging, put the files into one long file one after the other and then have a json index of contents at the end.
I ran with no compression so that performance when running an application would be very fast
maybe with bbq you could download a compressed version, then convert to a decompressed version still all in one file (so your app does not have lots of files but just a single one).
will be interesting to see how this progresses
Ingwie Phoenix
@IngwiePhoenix
Feb 15 2015 11:40
I have a mechanism in mind for that. But for the time being, I am still working on making it usable. the libzpaq that i am using for it has some very interesting functions. It can also just compress one stream of data. That is very helpful since i then don't need to always have a zlib around. the format will be available to the engine's script languages as well, sot hat everyone can take advantage of it's awesomeness.
it also supports AES encryption. Which I find very, very useful and important
sihorton
@sihorton
Feb 15 2015 13:41
Great!
this chat system looks good, I have not used it before
I have played with atom-editor and like it a lot, so at some point we can swap deskshell over to using that by default and then make it so you can download chrome if you prefer that instead
Ingwie Phoenix
@IngwiePhoenix
Feb 15 2015 13:44
It is Chrome, actually.
Atom-shell is in any sense Phoenix Engine's foundation, to say it that way.
It uses a little project that compiles all of Chromiums components into one shared library, libchromiumcontents, and then links against it. That has the major advantage that you 1) have ALL of Chromiums components and 2) flat access to them. For instance, you can use it's v8 just like you normally would.
To make things a bit easier, it then uses a second project named Brightray.
Brightray is a thin shim to simplify some chromium functions
These two are also the base for Phoenix Engine.
sihorton
@sihorton
Feb 15 2015 15:11
That is great. When you have something for windows let me know and I will give it a try. I am actually using a chromebook and an embedded arm server for development at the moment but I will be playing around with atom-shell on windows first so I can try swapping it out for PhoenixEngine and give you some feedback.
Ingwie Phoenix
@IngwiePhoenix
Feb 15 2015 15:37
IceTea already runs on Windows. But due to imput I got from the developer of the Ninja build tool, I am going to re-write some core logic that will probably resolve all missing flaws! :)
Since Chrome runs on Windows and hence Chromium does, and FLTK runs cross-platform naturally...you can expect that Phoenix Engine is on a head-start to being cross-platform
It will, however, require a bit more of a recent compiler that supports a small set of C++11, since that is what Brightray and some of Chromium itself require.
also, i really like chrome books. :)
Also have you seen io.js already?
sihorton
@sihorton
Feb 15 2015 19:26
yes it is very similar to nodejs, they split it off because nodejs development had slowed down so much, however it looks highly likely that it will be merged back into nodejs and nodejs will become a foundation, so it looks like being a positive development for the community.
sihorton
@sihorton
Feb 15 2015 20:05
if you can compile and put a download up on your server then I can try out Phoenix Engine, I will be building something with atom-shell this coming week so will be fun to try it out :-)
Ingwie Phoenix
@IngwiePhoenix
Feb 15 2015 20:06
Yes, indeed. I am hoping for NodeJS to become a foundation and to merge io.js in. Because it has some amazing features. First I thought about using the io.js fork for the Phoenix Engine - but then I saw that people are now requesting Joyent to actually merge them in…so i am giving this time. :)
Alright!
I first have to re-implement the build executor of IceTea
and then port cURL to the IceTea system...
With cURL, I can download pre-compiled libchromiumcontent builds
And theeeeen stuff is going to become very, very interesting… Once this is down, I can start on the real development! :)
sihorton
@sihorton
Feb 15 2015 20:07
yes just wait for nodejs. They have released a new stable version: 0.12, this has lots of new features so update to that version (from 0.10) when you have a chance
great, sounds like all of your work is going to come together into a really excellent system.
Ingwie Phoenix
@IngwiePhoenix
Feb 15 2015 20:08
I am already runing the latest 0.11.x for my BIRD3 project ( http://git.ingwie.me/ingwie/bird3/tree/master )
That is what I am planning.
BBQ for encrypted and highly compressable data. TTVFS for Filesystem abstraction and allowing people to access files in arrays ( app://something/myfile.bbq/image.png ) and a full-blown, libuv powered Javascript context with NodeJS API from the latest stable.
So yeah, all the patient and painful learning and work will pay off.
I am very, very curios to see AngelScript in action.
It is so cool! Thanks to me, It actually has named parameters now.
For instance:
Fl_Window win(height:20, width:50, title:“Hello, world!“);
And much like C++, it has templates. So to manage sub processes from the main process:
Worker<NodeJS> worker(“file.js“);
Ingwie Phoenix
@IngwiePhoenix
Feb 15 2015 20:14
Just to give you an idea on how amazing the engine will be. I made it my goal to create a system that is both - a framework and a library. And that has the power to not only compete against others, but to stand out. :)
sihorton
@sihorton
Feb 15 2015 20:19
I think it already is excellent and has a lot of potential, just put together everything you have been working on and make it stable and usable and it will be really great!
Ingwie Phoenix
@IngwiePhoenix
Feb 15 2015 20:21
That’s what I am aiming for. =)
Ingwie Phoenix
@IngwiePhoenix
Feb 15 2015 20:31
When I have a prototype of the engine, what do you think would be the best way to advertise it?
sihorton
@sihorton
Feb 15 2015 20:32
We could do a simple version of deskshell that uses it.
That way you can announce on the mailing list and on the site and people see that things are moving again
you could also announce on the appjs website
Ingwie Phoenix
@IngwiePhoenix
Feb 15 2015 20:34
That is totally something I can do. It also would be a very easy example on how to use it.
sihorton
@sihorton
Feb 15 2015 20:34
yes, we can keep the first version simple
Ingwie Phoenix
@IngwiePhoenix
Feb 15 2015 20:34
I dont have access to the appjs website - that still stays with Milani.
At least I think so.
sihorton
@sihorton
Feb 15 2015 20:35
if you make it able to run php scripts as well then it will be immediately useful. However just being able to serve local pages is already a good demo for a first step
you could put it up on the readme for the appjs git repository
Ingwie Phoenix
@IngwiePhoenix
Feb 15 2015 20:37
Phoenix Engine will use AngelScript as the „core“ scripting language. AngelScript uses ASM to make C++ API so incredibly easy. So it will be the only language - aside from real C++ - that can control the engine. But the engine will serve AngelScript (Because, why not.), ObjectScript (Already used in IceTea. Why not give it a place in the engine - its only 200kb of compiled code.) and PHP.
Well that I will do. I will make a notice that Deskshell and the Phoenix Engine are it’s successors.
In fact, I could be so crazy and write an AppJS API wrapper ontop of the Phoenix Engine. xD
sihorton
@sihorton
Feb 15 2015 20:39
sounds great, I guess you will also have javascript in there as well so this is really going to have very wide support!
Ingwie Phoenix
@IngwiePhoenix
Feb 15 2015 20:40
In fact. I have a library that lets me mass-load plugins (shared C/C++ libraries) into the process. so if someone wanted, for instance, Lua support, that might be possible through that.
sihorton
@sihorton
Feb 15 2015 20:41
wow that is cool, can you do that dynamically?
so you could have an app and then it could say load the lua support plugin
would be interesting to see if you could make use of the c++ plugins for nodejs (since there are so many of them), there is a lot of useful database plugins and other client libraries
Ingwie Phoenix
@IngwiePhoenix
Feb 15 2015 20:45
Yes.
Since I am replicating the NodeJS environment, you also will see a re-coded version of the NodeJS native part.
That means - yes, everything will work.
My plan is to copy the NodeJS headers and re-write the source itself. That way, all the functions stay the same, but they will be made fit to suit the version of v8 within libchromiumcontent and to be used within the renderer process.
Even as a lib, chromium requires a renderer process, which pretty much is what you see inside a browser window.
Including serving the file, processing the JS.
sihorton
@sihorton
Feb 15 2015 20:48
did you see the information from strong loop on how they managed to extend v8 so that you can run multiple contexts?
by doing this atom-shell is able to have just one v8 engine but have two contexts
I sent you an email with a link about it
it should mean you can use the v8 from the chrome process but then just create a second context to run node functionality in the "server" part
it was what they told Milani that you could do with node but they actually only implemented it for nodejs v0.11 (unstable) and v0.12 (Stable)
sihorton
@sihorton
Feb 15 2015 20:55
I am playing xcom enemy within, it is such a great game!
Ingwie Phoenix
@IngwiePhoenix
Feb 15 2015 20:56
Ohh, I see. Actually I’ve heared about this feature before as it was in development. I’ll see what I can make out of this.
sihorton
@sihorton
Feb 15 2015 20:57
they describe it quite well in the blog post so hopefully you will be able to use it without too much hassle
Ingwie Phoenix
@IngwiePhoenix
Feb 15 2015 20:58
Well I will get to have a lot of playtime with the node internals, thats a sure one.
Ingwie Phoenix
@IngwiePhoenix
Feb 15 2015 22:01
Oh I should totally mention one plan I have.
When the engine works and runs
…I want to stress it out to the extreme. I want to program
… a game.
And if I can make it, a 3D game.
This would put it to the ultimative test - showing how to do various things and how amazing the features can work together.
sihorton
@sihorton
Feb 15 2015 22:45
Since you have chrome for the renderer you could find an html5 game engine for it and then use that. I think there are some ok libraries for it.
Ingwie Phoenix
@IngwiePhoenix
Feb 15 2015 23:06
I already did a search. And i foudn a good one
sihorton
@sihorton
Feb 15 2015 23:17
Having a "built in" web view makes this a very excellent platform as the user interface is very sophisticated and yet can be built quickly -- much easier than using a gui toolkit for example.
Then by adding in the scripting and "server side" stuff into the same application you really get a fully featured platform to play with.
I am thinking that maybe we should actually hold this back for a little while and create some really good demos and really good examples and documentation so we can present it very well
this might be better than just saying this is great and can do anything, instead maybe it is better to provide some really good examples
likewise if this works well and is stable then maybe we drop using deskshell with chrome or atom-shell and just use this instead
Ingwie Phoenix
@IngwiePhoenix
Feb 15 2015 23:51
I will have demos when I have a stable version. This is what i then can show to people as „See what this does"
sihorton
@sihorton
Feb 15 2015 23:53
yes, I think the engine will be so powerful though and can do so much that it could be good to have different "hubs" about using the engine to do different tasks. One is clearly creating desktop applications but doing it locally, another is games and then utilities and so on.
deskshell is really just a set of scripts and technologies all thrown together but done in a usable cross platform way
the great thing with having a smaller runtime like you have built is that it means you can use it in far more applications.