Proposal by Ivan Hugo Guevara for Mars release 1.0

Proposed by Ivan Hugo Guevara (profile, biography)

How will I do that project

In first place, i've to understand the tools and libraries that are going to take part of Mars, so, dedicating 20 hours per week (or more), i will use the first 3/4 weeks to research about these tools and libraries. I'll start creating some basic components for the project such as a window or a list, and play mixing them. After having learnt this, i will establish some aims to start working on the project. These aims will be life cycle's general ideas of the Mars Project and will be specified in a list of tasks, like a work breakdown structure. This will be the starting point of the documentation and developing of Mars release 1.0.

What methodologies will I use

I will organize the project in small iterations (1/2 weeks, dependending on the task to complete) and i will generate a report to my mentors, in each iteration, giving some feedback about the current status of these tasks and the issues that i bumped into. After receiving my feedback, i will work on that issues to solve them and propose different solutions. I will work with my mentors trying to figure out the best solution and try to put the project in that direction. Mars has very complex interactions between its components, so i will have to use mock objects and stubs to simulate part of that complex behaviour, so i can be sure that it works like it should. 

Suggested timeline and milestones

1) Understand the way Mars interact with the differents libraries (Cocoa, GTK and WinForms) 

   • Understand FFI, TalkFFI and NativeBoost

2) Create some basic components (a window, a container list) and try to mix them

   • Provide some working examples to the project

3) Extend that creation to other components

4) Generate a first approach to a more sophisticated component (a workspace for example)

5) Evolve those components in a first prototype

6) Evolve that prototype reaching the main aims (a stable version who can run a workspace and a browser) and generate a stable release

7) Write the documentation of the project

Where I see the risks

- Mars uses C to call functions embebed in the libraries. Any mistake could cause memory leaks o segmentation faults, that could stop the entire framework. 

- Component's interactions in Mars are very complex. Due to the use of external libraries, external factors could  alter the way it should work the whole framework.

- Fake objects high complexity. Isolating functionality to test it up will be difficult due to complex interactions.

How the results will look like

It will show a whole new modern System Browser and a whole new modern workspace, totally functional, developed in the three most used operative systems: Linux, Windows and Mac OS X.


Updated: 2.5.2013