Gsoc java proposal

From OLPC
Jump to: navigation, search

Abstract

Java isn't officially supported by the OLPC project, I plan on modifying a version of the now open-source Java Development Kit (JDK) so that it can run on an XO, enabling the use of Java-based activities on the laptop.
The current JDK is too large and bloated for an efficient installation on an XO, I will shrink it, stripping it of the unnecessary modules and make sure it behaves correctly in Sugar.
Additionally I will maximize Java's compatibility with the hardware, making sure Java's calls won't go unanswered.

Proposal Description

Introduction

Following Java's move to open source it would be now possible to include it in among the software shipped by the OLPC project. Sun's version of Java is not entirely open, so it can't be used as a starting point, instead I will use IcedTea, an Open Source implementation of the JDK that integrates the open parts of OpenJDK (that is not entirely open-source) with plugs from the GNU Classpath project. As a result of this, IcedTea is 100% open source and is thus eligible for inclusion in the OLPC project.

Phase One: Shrink

The first part of my project includes the identification of the parts of the JDK that are absolutely necessary and try to cut on the rest. The current IcedTea release is about 100 MB in size, the goal is to shrink it down to around 20 MB, in order for it to fit comfortably on the XO.
I will get in touch with other individuals and organizations who have tried to shrink Java for the OLPC project or for other reasons, starting with their advancements and cutting down until I reach the required size.

Phase Two: Connect

Once the size has been reached I will ensure the JRE (Java Runtime Environment, included in the JDK) won't have any problems interacting with Matchbox and the Sugar environment. There are many people on the Internet who are running Sun's Java on the XO but have problems with the window manager. Such issues have to be found and solved as early as possible, seamless integration between Java and Sugar are a quality requisite for the project to be successful. There is no point in having a version of Java on the laptop when the kids won't be able to use programs because they open multiple windows.

Phase Three: Fix

Similar fixes will have to be made regarding other issues that IcedTea currently has and that are of great importance: the most prominent are sound and Liveconnect support.
Sound is now partially supported, but we have to make sure it will work on the XO and fix it if it doesn't. The implementation is currently based on some GNU Classpath classes, and the compatibility of these with the XO has to be verified.
Liveconnect is the Javascript-Java Bridge that is used by applets, without it the web experience is quite hindered, which is something that should probably be avoided. Liveconnect is currently unsupported in IcedTea, I plan on searching for open source alternatives, or to participate in the development of the required classes if they are not to be found.

Phase Four: Conclusion

The solution of these issues will be followed by the release of an OLPC Java version that can be easily installed and used within Sugar.
Once the package has been successfully tested I would like to propose it for inclusion in the main OLPC release.

Timeline

I Believe that the shrinking of IcedTea will prove to be quite a time consuming activity, as it will require me to look into the functioning of the JDK and finding more efficient ways of archiving its contents. This research part will be the focus of the first couple of weeks of the projects, while one or two weeks will then be necessary to implement the cuts and test them.
I will hopefully have a decent sized version of Java running by late June or beginning of July. I can then start making sure the JRE isn't conflicting with Matchbox or Sugar. This should be sorted within 10/15 days, leaving me with about one month to work on the solving of the remaining issues, testing and debugging the package with help from the community.

Conclusions

Java is one of the most widely used programming languages in the world. There are a wealth of applications that run on its platforms (both on and offline). Getting it to work on the XO will give the users access to a huge amount of applications they will be able to run.
In addition to existing software, the presence of the JDK on the machine will enable the programming of applications specifically within the OLPC project.
In the future Java may be also included as a language in the programming activities of the XO.

About me

I'm a 23 year old Italian student. After studying Computer Engineering in Rome, I'm now enrolled in a course in Computer Science and Artificial Intelligence at the University of Edinburgh, city where I live.
Through the years of University I learned how to program in C++, Java, Haskell, Python, and have a rough knowledge of pascal and delphi from school.
All the development work I have done so far is web-based. I have worked in a summer internship for a company that creates web portals, where I worked with Java/JSP and the Struts architecture. I'm self-taught in HTML, PHP and MySQL, and I enjoy working on websites, which is an activity I have been performing both personally and professionally for 5 years.
In the past I have designed and realized many websites, including simple blogs to a fully featured web-portal. The only offline project I've worked on from start to finish on my own is a Java application that served as a search and consultation front-end to a MySQL database. It was a very simple application that was included on a CD-ROM that was published with a magazine.
I speak fluent English and Italian, and am proficient in Spanish as well. I studied French in middle school, so I am able to understand a text or a conversation in French (also because of its similarity to Italian and Spanish), but it is much harder for me to communicate in the language. I studied Japanese for two years when I lived in Japan as a child, I have no memory of it now, but I plan on studying it again starting next year.
I enjoy sports, movies and good food. I love keeping in touch with friends I met in the most varied experiences and am always present on the internet, staying current about the happenings in its fascinating universe.