Custom Search

Saturday, April 11, 2009

Input and Output files of pretty-print

You can download input and output files of the pretty print form here. It contains four files named:

1. input.in
2. tokernizer.out
3. syntaxer.out
4. printer.out


Click here to download above files as zip folder.

Friday, April 3, 2009

Role-based home page

Abstract

OpenMRS is used by a wide range of users having different roles. Each of these types of users requires different functionalities and interfaces which are specific to their workflow. At present, OpenMRS provides a single, unspecified user interface for all users, independent of their role, which users often find cumbersome. This project proposes to create a mechanism for role-based adaptation of the "home page" and user interface to more specifically meet work flow needs for a given role.

1.       Who are you? What are you studying?

Contact details

Name: Thotage Thanuka Srimal Piyasena (Normally I used Thanuka Piyasena)

E-mail: Thanuka.sp@gmail.com

Tel: +94716903313

About me

I am a final year undergraduate of University of Moratuwa, Sri Lanka, specializing in the field of Computer Science and Engineering. I am very much interested to get involved with development of any types of projects, specially R&D related development and Web related projects.

2.       Why are you the right person for this task?

Target: Successful completion of this project would include designing, documenting and developing a mechanism through which implementation administrators could control the starting page by user role.

·         Appropriate unit tests for newly developed functionality

·         Implementer-specific documentation so that environments can begin using the new feature

·         Evidence of one implementation using the feature.

Extra credit: An administrative page that facilitates easy and intuitive manipulation of the role-based home page settings.

I have knowledge to complete both task specified in target and extra credit sections. I have the necessary theoretical and practical background to complete those tasks well. I have sound knowledge of web based application development, web interface development as well as the knowledge of web services.

3.       Do you have any other commitments that we should know about?

Research I have done

I have downloaded the source code of OpenMRS project and deploy it in my machine. I configured it and did some experiments with it using provided dummy data and dummy data inserted by me.

Deliverables

1.    Source code for Role base home page application

2.    Documentation

3.    Tutorial can be supplied if needed

Development plan

Step 1: Gathering other necessary information in order to getting familiar with the project and the technologies/libraries related to project [Estimated completion: 30th of April]

Step 2: Coming up with the finalized list of features and a design and defining a list of test scenarios. [Estimated completion: 20th of May]

Step 3: First phase of development [Estimated completion: 3th of July]

Step 4: Mid-Term evaluation [Estimated completion: 13th of July]

Step 5: Second phase of development [Estimated completion: 3th of August]

Step 6: Documentation, code reviews and testing the different scenarios defined in the designing phase and expecting to provide tutorial if needed [Estimated completion: 15th of August]

Step7: Final evaluation [Estimated completion: 24th of August]

Future plans regarding this project

I have already planned to contribute to improvements of the developed module after completion of Google Summer of Code because I intend to keep touch with OpenMRS and the open source community.

4.       List your Java experience.

I have been working with Java technologies for almost three years. I have developed a fair amount of applications using those technologies. I have done several individual projects as well as participated for several group projects according to the requirements of some modules in our department. Some of projects I have done are as follows;

Multi Agent System for Energy Management (J2SE, JADE, jfreechart)

Online Student Registration System (MySQL, PHP, Html, CSS, Apache)

Online Railway Information System (MSSQL, ASP.Net, Html, CSS, JavaScript)

Pharmacy & Grocery Management System (J2SE, Swing, MySQL)

I have also done some other mini projects. (C/C++)

Actually I had six months of training experience at IronOneTechnologies in Sri Lanka. I worked with Java related technologies for almost six months at IronOne. I gave my contribution to three main projects while I was there. Those are:

360MassNotifier (J2EE, JSP/Servlet, Html, CSS, JavaScript, Ajax, Oracle)

S360 Mobile Advertising (J2EE, JSP/Servlet, Html, CSS, JavaScript, Ajax, Oracle)

ATrad (J2SE, Swing, Socket Programming)

(URL: http://www.irononetech.com/consulting/)

5.       List your web interface experience.

Involving with the projects mentioned in above, I have gain considerable amount of experience in web interface design for almost one and half years.

6.       List your history with open source projects.

As a habit, I normally download source codes of the open source projects and review those codes to learn how they have done their coding and observe coding standard followed by them. I have been doing this for the past two years.

7.       Please provide links to websites created by you and/or source code examples.

You can find out more link in my blog.

8.       Do you have experience with Spring/ Hibernate/ DWR/HL7/ Tomcat/ MySQL/ AOP? (Experience with any/all is not a requirement)

Yes of course, I have experience with Tomcat/ MySQL/ AOP.

9.       What is your preferred method of contact? (Phone, email, Skype, IRC, IM, etc.)

I prefer to contact through email.

 

10.   If you have visited our IRC channel, please include your IRC nickname in your application.

Nickname: ttsp_uom

 

OpenMRS Projects in GSOC

Following links provide the necessary source code. I don't have right to give whole source code of company projects but I provided link to download some source code for you to observe.

Pretty print and export in Scilab

Abstract

The objective of this project is to find and use a java library in order to provide a pretty print with the console or into a file as well as a way to export the value in different formats. The end goal of my proposal is to accomplish the idea of the project as well as contributing to the open source community.

Detailed description

Scilab has been developed for system control and signal processing applications. It has similar features as Matlab but is available free for download including the source code. Scilab is composed of three distinct components. They can be classified as follows.

1.    An interpreter

2.    Libraries of functions (Scilab procedures)

3.    Libraries of Fortran and C routines

These routines are strictly speaking and are interactively called by the interpreter even though those do not belong to Scilab. A key feature of the Scilab syntax is its ability to handle matrices and support basic matrix manipulations such as concatenation, extraction or transpose. Such tasks are immediately performed as well as basic operations like addition or multiplication. Scilab also aims at handling more complex objects than numerical matrices. Scilab provides a variety of powerful primitives for the analysis of non-linear systems. Integration of explicit and implicit dynamic systems can be accomplished numerically. The scicos toolbox allows the graphic definition and simulation of complex interconnected hybrid systems. Scilab has an open programming environment where the creation of functions and libraries of functions is completely in the hands of the user. Functions are recognized as data objects in Scilab and, thus, can be manipulated or created as other data objects. For example, functions can be defined inside Scilab and passed as input or output arguments of other functions.

We use functions for writing equations. However, people are more familiar with mathematical expressions than functions. Thus, one of the objectives of the project is to build a pretty print to identify such functions and transform it to mathematical symbols and hence print a mathematical expression to the console or to a file. Suppose we need to pretty print a function entered in to the console. Then, it would read the function and would display it in a pretty print form(images or ASCII) to the console or to a file. Another important objective of the project is to enable the portability of results to external formats. At present, Scilab does not support exporting of the results to other formats. So, it becomes difficult to use the functions of Scilab for other applications. It is to be noted that results can be either vectors, numbers or matrices. I intend to add the above mentioned features to support the some basic formats like MathML, Latex or C/Fortran and XML. I believe adding the capability to export in XML is a very flexible functionality. Then the results of the Scilab calculation need not be limited to a small set of applications. It becomes virtually possible to use in any other platform.

In order to implement the functionality, I would use the following procedure. First, I would get the abstract syntax tree which is used in Scilab for parsing. Then, I would read the abstract syntax tree and do the necessary printing. If it is to be exported to a different format, I would iterate through the abstract syntax tree and print the output accordingly to the required output form. If the output is to be exported, I would read the output of a function back into the abstract syntax tree and then iterate through the tree and print according to the export format.

Advantages for Scilab users

Users can view the pretty printed version of the equation after typing the equation in command form. Then users can verify what he had entered in the command window is actually what he meant (As an example display the integral instead of the name of the function). End users will be provided with possibility of exporting values to external formats. Thanks to these features, the system becomes more user friendly, user convenience and would save the time of user if he makes a mistake when writing equations. Due to the exporting ability, results from Scilab will be possible to be used in other calculation platforms easily.

Development plan

Step 1: Gathering other necessary information in order to getting familiar with the project and the technologies/libraries related to project [Estimated completion: 30th of April]

Step 2: Coming up with the finalized list of features and a design and defining a list of test scenarios. [Estimated completion: 20th of May]

Step 3: First phase of development [Estimated completion: 3th of July]

Step 4: Mid-Term evaluation [Estimated completion: 13th of July]

Step 5: Second phase of development [Estimated completion: 3th of August]

Step 6: Documentation, code reviews and testing the different scenarios defined in the designing phase and expecting to provide tutorial if needed [Estimated completion: 15th of August]

Step7: Final evaluation [Estimated completion: 24th of August]

Deliverables

Plug-in in Jar format containing the project objectives

Source Code of the work I was involved with

Documentation

Tutorial can be supplied if needed

Why am I interested in this subject?

I have already learned Programming Languages, Compiler Theory and Theory of Computing modules. So I am really interesting to apply those theories into practice. I developed a pretty printer for Relax NG as well. I think this is a great opportunity to achieve my goal while giving my highest contribution to the open source community.

Future plans regarding this project

Yes of course, I have already planned to contribute to improvements of the developed module after completion of Google Summer of Code because I intend to keep touch with Scilab and the open source community.

About me

I am a final year undergraduate of University of Moratuwa, Sri Lanka, specializing in the field of Computer Science and Engineering. I am very much interested to get involved with development of any types of projects, specially R&D related development and Web related projects.

As a habit, I normally download source codes of the open source projects and review those codes to learn how they have done their coding and observe coding standard followed by them. I have been doing this for the past two years.

I have been working with C/C++ and Java technologies for almost three years. I have developed a fair amount of applications using those technologies.

I have done several individual projects as well as participated for several group projects according to the requirements of some modules in our department. Some of projects I have done are as follows;

Multi Agent System for Energy Management

Online Student Registration System

Online Railway Information System

Pharmacy & Grocery Management System

I have also done some other mini projects.

I need to emphasize that I have built a Pretty Printer for RelaxNG as an assignment of Programming Languages module. So, I believe I am aware of almost all the theoretical and practical concepts needed for this project because I have followed Programming Languages, Compiler Theory, Theory of Computing modules as well. 

If you need to observe my pretty printer source code and observe how to run it, you can simply find it out at my blog page. (URL: http://thanukasp.blogspot.com/2009/03/pretty-printer.html)

(Note: within the Pretty Printer.zip file contains info.txt file describing how to run this application.)

Actually I had six months of training experience at IronOneTechnologies in Sri Lanka. I worked with Java related technologies for almost six months at IronOne. I gave my contribution to three main projects while I was there. Those are 360MassNotifier, S360 Mobile Advertising, ATrad. (URL: http://www.irononetech.com/consulting/)

As I am following Computer Science and Engineering I have to study advanced computer related subjects as well as advanced maths.

Even though I have some basic understanding of Scilab's language, I am still learning Scilab language, because it is necessary to meet the end goal of this project.

Contact details

Name: Thotage Thanuka Srimal Piyasena (Normally I used Thanuka Piyasena)

E-mail: Thanuka.sp@gmail.com

Tel: +94716903313