Jan 5 (week 1)
Professor Russell J. Abbott, introduced us to CS590 and provided us with guidelines on how to go about this course.
Jan 12 (week 2)
Professor Russell J. Abbott, introduced us to CS590 and provided us with guidelines on how to go about this course.
I met Dr Jiang Guo and Dr Kang, with regards to my MS thesis and projects. Both provided information and the areas on which I could work upon.
Dr Guo had suggested enhancing, any of the two prior MS thesis projects. These projects were related to developing a plug-in in Eclipse, to create Web Services. On studying the thesis, found that though very good innovative work was done previously, an enhancement to this thesis will not require any more innovation, though it will still require a significant amount of coding and effort. Hence I decided not to take this up as my MS thesis.
As a part of my cs491a/b project, I had worked with Dr Kang, in collaboration with the DR Aller Sonia from USC UCEDD at Children’s Hospital Los Angeles, to develop software emulators for a device to help children with communication disorders. There is a current requirement to develop emulators for some complicated AAC(Assisitive Augmentative Communication) devices and work with therapists to gain more insight into this.
I got very interested in this, since I had significant exposure to this field in my CS491A/B. While on this, I would also like to develop a similar emulator, using the new Android platform released by Google, but we have to explore if this can be a possibility. If we do build an emulator, on the Android platform, children with communication disorders, will be able to use a cell phone to communicate with the external environment, using the emulator application on the cell phone.
Jan 19 (week 3)
This was an interesting week, as we started working on the Masters thesis and laid out some objectives for the quarter and CS590. I had a meeting with Dr Kang with regards to my project and she provided me with a paper to read and present to Dr Aller early next week. Dr Aller is the Communication Disorders Director, Tech for tots, at USC UCEDD at Children's Hospital Los Angeles.
This project would be unique in the sense that the primary users of this project would be trainers and professionals who work with children with communication disabilities. The paper discussed about whom the users would be and what is expected from this project.
We are to develop a state-of-the-art multimedia, interactive and simulation software which would help in the training and development of multidisciplinary personnel who serve young children with disabilities. This will address the widely documented shortage of trained professionals needed to provide Assistive Technology.
We will be using Linux along with Java as our primary development environment. The primary reason being the technology is rich and has many companies supporting these platforms. We will not be infringing on any licenses while using this environment.
I have developed a small hello world application using the android platform and studied this platform to check for viability and richness. It is also in my personal interest that I also port this application to a cell phone supporting Android or to the i-phone once Apple releases the SDK for the same.
My presentation for this week.Media:MSThesis_presentation1.ppt
Jan 26 (week 4)
We did not accomplish much this week with respect to requirements gathering for the project, as planned, since Dr Aller was not in town and was Out of Office till Monday Jan 28. I studied some more technologies, which may be helpful in accomplishing what we have set out to achieve. Read an interesting article by Bruce Ecknel, the famous author of the "Thinking in ..." series. This article can be viewed at http://www.artima.com/weblogs/viewpost.jsp?thread=193593.
The above article provides insights, into why Java is not a favored language to develop Rich Internet Application. This was the reason why I wanted to learn and experiment with Flex and Flash to develop a rich internet application.
I developed a small hello world application using Flex and Flash on my laptop. I will be porting a portion of my current project into flex and give a small demo the next time I give a presentation.
This required me download and configure the below components from http://www.adobe.com/support/documentation/en/flex/2/install.html?trackingid=CSHU#flexj2ee
1. Flex 2 SDK. This package contains the flex compiler. 2. Flex Builder 2. This is an eclipse plug-in to develop Rich Internet Application. It includes the flex sdk and the adobe flash player.
Developed a small mxml script for running the hello world application. On compiling the mxml script, it generates a SWF file, which can then be run from the internet explorer or a compatible browser like Mozilla.
Feb 2 (week 5)
This has been a good week in terms of learning and exploring some more features of flex. Experimented with a very interesting feature of flex, wherein I was accessing XML files and displaying the same.
I was amazed, with the rich UI elements, and the functionality provided and the ease of coding it. I however am interested in trying to use flex as a UI and java as the backend. I have not done that yet.
I used the datagrid control which is a very powerful control, as it provides in-built functionality to work like a desktop based excel application. You can sort on the columns, edit the contents with no extra code, to make it look and feel like an excel sheet.
I installed the flash eclipse plugin to complete this application. The plugin has a design mode and a source mode.We used the design mode to complete the front end and used the source mode to code the usage of the control.
We used the model tag in the MXML file, to read the contents of an xml file. We can embed an xml file inside of a model tag or specfiy an external xml file as the source input. Another very interseting event handler for working with XML files is creationComplete. This event handler is triggered when the file is fully loaded and is usually placed inside of the Application tag.
Once the file is loaded into the application using the application tag, we can navigate through the contents of this xml file, using the HTTPService tag. This tag reads the XML file dynamically.
This is much simpler when compared to doing the same thing using any of the Java related technologies, out in the world today.
My presentation for this week.Media:RIA_flash.ppt
Feb 9 (week 6)
This week was the start of my thesis, in the sense that I had a meeting with Dr Kang, regarding the scope of the project and the schedule for this quarter. I will be using the below architecture for my thesis.
Will be using RIA, for developing the application for my thesis project. RIA lends itself more to client-server development, rather than tradition web development where state is maintained on the server in application or session scope. The client thus knows about itself, and types of data it is requesting. It will request only the data it needs from the server, and no extra markup. This often leads to a cleaner services layer and less-complicated server requests, even in some cases a reduced overall load on the server.
In the big picture, I will have the client communicating with the server through a services layer. I may be using JSON, or XML as the data exchange layer. JSON has its advantages. There are pros and cons to each, which I may discuss at length in the future, but for now I'm focusing on the architecture itself.
The server application will be run from a Windows/Linux server. On the server side, will be using MYSQL and PHP. two weeks from now, I will develop the authoring mode, for the LetsTalk 9+ emulator. Once I am done with the authoring mode, will be developing a multimedia based training module, rendered over the web, to train therapists, use the software based emulator.
The MVC architecture used for this application will be different from the traditional mode, in the sense that the client and the server will both be designed using the MVC architecture. I am in the process of developing the client module first using Flash and Flex.
Feb 16 (week 7)
This week I could build and run a web page with Flex as a UI and Java, and EJB3 at the backend. All the business logic was written in java and the data was transmitted using EJB3 to the flex UI.
The build environment, was configured using Maven. The tools that I used to build the web site were flex 2 builder, Eclipse, DDutils for defining the database schema in XML format. loguitls to help in logging any messages, instead of relying on System.out.println. JBoss, was the application server on which we deployed the web site. MYSQl was the backend database server.
The database scehma was defined in a XML file, and the data was also present in the database. We populated the data also from XML file. This helps us use in portability and usage of database.
Will be extending this to start my thesis application.
Feb 23 (week 8)
Worked on the design of my project using Flex and Actionscript. Started of by using Cairngorm framework for developing my project. I build a sample application, using the same but trying to develop the project, based on this framework, turned out to be a very big learning curve than what I had thought it to be.
Though the sample application, worked perfectly well, a much deeper understanding of the framework will be required to start development on the same. Having abandoned that route, started designing my application, by following guidelines set out by Adobe Labs.
Collected the required documents for the emulator and designed my layouts for the project. Started coding my flex project and should be done with my first module by the end of this week.
I will be using Flex in the front end and java at the back end running on Apache web server.
Mar 1 (week 9)
This was an interesting week, as I started coding for the project.
Configured eclipse to use XFIRE and hibernate in order to access the services provided by a back end Java program.
MXML is the new language that is used to create Flex applications. All Flex applications must have one "application document" that is the only type of document we can compile into an application. The "application document" is synonymous to the class which contains the "main" method in Java.
We develop Flex application by creating components, and embedding them in the application document. This week we developed two components. The first was a pure GUI component, which read a XML file, and displayed that information on the browser. Every type of component has set events that it dispatches. For example, a button component will always dispatch a click event when the user clicks on it (assuming the button is enabled). However, just because a component dispatches an event doesn't mean that anything is receiving a notification
The second component, basically build upon the first GUI component, in the sense that we developed event handlers in the second component, to capture events such as mouse click and mouse move over, and display another set of data, depending upon the events generated in the first component.
Mar 8 (week 10)
I started on the design of the training module for my project. This could be a flash component, which will use an animated character to help the author walk through each of the features provided by the emulator.
We designed the workflow that will be used in the emulator for the training module. I am currently working on the more technical aspects of this module, like how to move the animated character, how to allow the user to interact with animated character. I basically made slides, in MS PowerPoint to help me with visualizing how I want the program to look like and behave. Will upload the same once it is complete.
FLEX on the client side, with Java in the backend will be used to provide this capability.