Thursday, October 18, 2007

Moving Away

I'm moving my blog to wordpress, http://dimuthuc.wordpress.com. Well, I m not regular blogger, But still in the determination of blogging more. May be I can do some good work in the new environment.
Bye!!

Friday, September 14, 2007

First Few Days at my First Job

So I went back to the place where I was doing my internship, well with the title of software engineer, big promotion. Within just 1 year of time It has changed a lot. But It is still there the very familiar and most importantly very friendly faces that I was used to see.

My first assignment is to write samples, demos, POCs for their php web services extension. And It is really interesting. And I am hopefully looking for touch some c code in next few weeks.

Hoping to spend some more time in blogging as well.

Thursday, April 19, 2007

JAVAScript is difficult..

Yesterday I had an opportunity to have a chat with Dr. Sanjiva Weerawarne. Once I told I feel 'working with javascript is more difficult' than 'working with C/C++/java' he seems not much convinced.
Well my reasons were..

1. Javascript is still difficult to debug. Even though there are great plug-ins like firebug which support Javascript developer very much, javascripting is still difficult to debug. I feel its better put 'alert's in most of the cases.
2. You have to take decision which part should be kept in server or client.
3. Javascripts more than 1000 lines of codes doesn't mean any thing, as it eat 30/40kbs bandwidth. so client should be kept thin.

In addition to them, there are some reasons to prove why javascript is really tough.

1. Browser dependency..
C programmers may tell it is normal;). They work with machine dependent or OS dependent stuff. Actually javascript not much different from browser to browser if you only use only the basic functionality. But the browser independence come into the action sometimes in very minor cases.
for an example: if you type
div1 = document.getElementById('div1');
instead of
var div1 = document.getElementById('div1');
//note the starting 'var' keyword

It works on Mozilla, but in IE it don't work. But if you use javascript variables not declared with 'var' in other situations, it works nicely.

So when you write a big javascirpt work nicely in mozilla and you realize it dont work in IE which dont have a good debugger, It takes a while to realize that the error is due to such a small mistake or a misunderstanding:).

2. To be a javascript expert you need to be expert on HTML, CSS and most probably in PHP or some other server side language as well.

3. Javascript should have functions to do drawing at the canvas like drawLine(x,y) drawRectangle(x,y,width,height). That is the main difference you feel in javascript if you just come from Java/ C++ GUI developing. Javascript have some handy ways to draw lines using some DOM manipulations but not many people are stupid to use that to do a simple drawing.

Although I complain a lot about Javascript, It is a great language. I'm still a beginner, I hope I will feel comfortable with it as time goes on. This hope itself is some months old. But I'm still suffering.:(

Thursday, March 08, 2007

My Home Page

Today I upload my home page to www.cse.mrt.ac.lk/~dimuthu people.apache.org/~dimuthu
It is a template from http://www.oswd.org. It is a really cool template.

Wednesday, March 07, 2007

Back to SEMF design

Our co-supervisor is asking us the design of the project SEMF. So it is time to brief our design to a simple mail.


We select our project name as Sport Event Management Framework (SEMF). Our ultimate goal is to build a system that help an administrator to design a whole system in quick time.

Our framework consists of following features

1. Design environment to customize components and use them in a web page.

We present a development environment (SEMF Designer) that will give higher level GUI to design the database + the web interface with customizable components

These components mainly compose the final view of the web page
Example of some components
1. Grids
- Set the layout of a web page
2. Menu / Sidebar / Site Map
- Used to navigate the web site
3. Calender
- Show the current data. Can be used to synchronize the whole page.
4. Data grids/ Data tables/ Data sheets
- Present the data of the system
5. Forums

There are special components which are not directly connect to the view of the page
Examples
1. Printing Components
- Used to print reports
2. Web service components
- Expose data as web services


This is very similar to the approach of Portlet[http://en.wikipedia.org/wiki/Portlets]. But for efficiency and flexibility we are developing a separate 'Portlet Engine' with our project. Visit here for more details. [http://semf-cse.blogspot.com/2007/02/semf-portlet.html]

2. Modularize Approach

Our framework allow to define modules related to the event. For an example Sport Event Management System can have following models
  • Accreditation
  • Playground
  • Schedule
  • Accommodation
  • Transportation
3. Sample modules and Components

With components and modules SEMF is able to provide different levels of customizability. The Administrator of the system can use existing modules/components and customize as required or build its own components/modules according to the requirement.


Current Status of the project

We have started the development in two phases.

1. Developing the SEMF designer

2. Developing a final system manually (without using SEMF designer)


Technologies Used/Using

PHP, AJAX, Javascript, DHTML



Wednesday, February 07, 2007

Quick Blog

So today we upload the first version of the web site of our final year project to the university Moodle. Same time I created a blog for our project as well and posted some blogs that I have posted here. http://semf-cse.blogspot.com

Monday, January 29, 2007

Architecture for SEMF

SEMF ( Sport Event Management Framework) My final year project is hoped to back to active after the exam. Anyway it is in a state which should be start right from the beginning. We spend the last semester waisting time on finding projects, and ultimately selected this one - SEMF which I think is a failure in my point of view. Anyway now we select the stuff, we have to do it.

The problem of the SEMF is its simplicity. It seems kind of too simple for a final year project. What can we do is, do it in the hardest way which may sometime not work at all.

So we are searching for a harder architecture to implement which is highly flexible, highly integrable, and with many great things.. So I suggested one.

We are providing interfaces to define tables and views.

In defining tables it is allowed to do all the operations from creating tables to inherit tables from a graphical interfaces. It may not ultimately be the normalized database. But the final system should work with that funny database.

Then the hardest part defining views. (We would do this only we could finish defining tables part:(. ) We have to give the views with all the links, menus, tabs. And most importantly these all should be able to define using a graphical interface.

One way of doing this is following what portlet does. But the thing I was unable to find how they work with database. So our system should provide little windows like portlets to provide different views. But with some greater interaction with databases.

The features set I am thinking of providing is like this.

1. Different User level would have different interfaces. At the runtime some users may need to change their privileges. So system should be able to extend their accesses with the admission of a higher privilege one.
e.g.
Players - At the front interfaces players see the events information they are playing.for. The event information may include the competitors status, playground information.
Playground Staff - See Event playing in that particular day, weather status around the ground
Publics - The general view of the public.

(As far as I see this is the main feature, but it would be thing that maximize the complexity of the architecture. Eliminating this feature we can reduce the complexity more than half)

2. The interfaces would highlight the events according to the time.
e.g.
Relevant Players, Playground Staff, Administrators would be highlighted the events happing on the particular day.
Administrators would be able to handle different stages of organizing the event like register by number stage, register by name stage. This can be defined while defining views.

3. Interfaces in printing reports, defining forums, and announcements

Well there are some other features like web services interfaces for registered media and similar things. But I think it need not be considered in the first phase of the architecture.

I have today and tomorrow. I should do whatever I can do to come up with an architecture. The Architecture of the lifetime...

Saturday, January 13, 2007

In midway of the exam

After completing 5 papers and still 3 to go, I m completely out of feelings. So nothing new to write other than the parotized 'pps' slides of the lectures.

Anyway while studying the security subject for the exam ( well, not until exam), I decided to write simple program ( a little chat program) using open SSL libraries. It may be the best way I can have a good idea on secure communication. Anyway most of theories are inside the shell of the libraries so it may just a mechanical code but still worth to try.

http://www-128.ibm.com/developerworks/linux/library/l-openssl.html seems to be a good place to start.