Friday, April 1, 2011

MCrux 0.3.1 Released

Hello guys !! Its been quite some time I have been thinking about coming back to MCrux. Lastly I was exploring various options of implementing MCrux in osx and linux. I wanted to write MCrux on top of some existing WebKit port which has been ported to all three major platforms Windows, osx and all flavors of linux.

Initially I have started MCrux development on WebKit's Windows cairo port. The Windows things worked out well. Windows version of MCrux is working fine. I was then looking for porting MCrux to other platforms osx, and various linux (starting with ubuntu). The APIs exposed by various ports of WebKits are comparably different in all the platforms. The amount of work maintaining three different ports in three different platforms and keeping up with the rapid development of WebKit is really hugetask which requires triple amount of work. I have been working extensively on Titanium Desktop since around 2.5 years. Titanium Desktop is maintaining three different ports of WebKit (win-cairo - windows, webkit - osx and GTK- linux). The amount of work required to keep it up-to-date with latest webkit builds is really a massive task. Having realized that I was thinking of porting MCrux to a single port of WebKit which gives consistent APIs across all three platforms.

Since last couple of weeks I have been thinking about Chromium port of webkit and porting MCrux on chromium. Chromium is one of the most advance port of webkit which has implemented various functionalities of html5. It uses V8 JavaScript engine which again is one of the fastest JavaScript engine available. There is a project named chromiumembedded which allows chromium to be embedded in your application. I have started porting the MCrux to chromiumembedded.

I have created a new git repository for mcrux hosted on github. You can checkout the code and feel free to ping me for any suggestions / improvements in MCrux. All the plugins will now be rewritten using NPAPI plugin APIs. This way we have clearly separate the core browser functionalities and plugins.

you can download and use Latest MCrux release from here.

Saturday, November 28, 2009

exploring Qt

I have been experimenting with Qt for MCrux/Ubuntu port since last couple of days.. I found the Qt C++ APIs are much cleaner compared to the existing VC++/windows specific stuffs.

Current JavaScriptCore(JSC) APIs are native C APIs. This means that If we want to have Object Oriented design for all our extend-able modules then we need to have some dirty hack to make them work with static functions to actual object function call. I have taken a lot of pain to achieve this things in windows.

Qt Provides this functionality by default with QObject. We need to derive our class from QObject. Qt achieves this using "SIGNAL"s and "SLOT"s. This makes the design way cleaner. I will cover the fundamentals of them in a separate blog post.

Apart from having all these functionalities, I am not sure I can continue with QtWebKit (at-least for now). QtWebKit-JSC support is in a very primitive stage. They have exposed all the native data types but custom datatype support is in very primitive stage. This means that I can't play with my custom object and throw it back and forth from JavaScript to C++. I also can't set a custom QObject as property of any other QObject and expose them to JavaScript. The lack of these functionalities seems to be blocking me for using QtWebKit.

Saturday, November 7, 2009

kicking off MCrux/ubuntu linux !!


hello guys..

Its after a long time that I am writing a new post. As many of you know I am starting off with MCrux ubuntu port. Here is a very first snapshot of MCrux/Ubuntu application. I hope the MCrux Ubuntu port will be fully functional in next few weeks.

Tuesday, August 18, 2009

MCrux 0.2.0 Released

Releasing "MCrux 0.2.0 (Alpha)". This is a milestone for windows based releases.
Major Features:
* Abstracted APIs for Plugin Writers.
* coupling between MCrux and JavaScriptCore library is now more abstract.
* plugins are working seamlessly with clean MCruxSpec File.

you can download Latest build from http://code.mcrux.com/ Featured Download section.

Looking forward for your feedback.

Sunday, June 28, 2009

Get.. Set... Go.........

If we are moving alone, we would not be able to gauge the speed and direction in which we should go. We definitely require a watcher and/or a guide which can point out the correct path. Until now we are trying to build a platform which we didn't knew who would be using and what all would be the requirements.

Now We are not alone. We have got a watcher/guide. Pandion a well known chat client, is planning the next version on MCrux.

This is gonna accelerate the development of MCrux platform. MCrux has lots of features in pipeline. The development of all these features will get a power booster. Pandion would be the first application which is built over MCrux technologies. We all need to work hard to achieve this aim.

FYI: Pandion Blog Post describing future plans.

Thursday, March 26, 2009

Data Sharing between two MCrux Windows.



As shown in the above snapshot, we have a small example which demonstrates how the data sharing will work in MCrux. we have a global object "window.mcrux" which has been shared between all the MCruxWindows created. So if we want to share any data between MCrux windows we can share it using this global object.

The above is a small example where we have a text edit box in one window. whenever we type anything in that window the letter will be magnified in the other window.

As we know in any desktop application we have to share data between multiple windows. This makes it easier for the JavaScript to share things easily between two MCruxWindows.

RIA to RDA

we are wondering that RIA is "Rich Internet Applications" but what is RDA. RDA stands for "Rich Desktop Applications". we are now slowly moving from internet based Rich applications to desktop based similar applications. Below is the example of "MCrux File Browser".



As you can see the above file browser looks like a native application on windows. It uses various JavaScript frameworks like ExtJS and JQuery in the background to achieve richer look and feel.

We have used the FileSystem plugin of MCrux to access the actual filesystem and read the files and directories.

This can be served as a very good example of creating Richer GUI applications in desktop. Let's hope this will make the RIA to RDA dream come true.