Friday, September 25, 2009

Development Discussions - Mooshabaya

August 28th, 2009 [Dr.Srinath/All members] : The design constraints of Mooshabaya : [CSE/CSLR4 9.30 a.m - 10.30 a.m]

The design constraints of Mooshabaya was discussed. The development updates were discussed with Dr.Srinath. Cleaning up XBaya code and the UI for Mooshabaya, Integrating WSO2 Identity Server along with WSO2 Registry to Mooshabaya to retrieve services, Deploying the generated mashups into WSO2 Mashup Server by configuring a Mashup Server into the Mooshabaya, and configuring the workflow monitoring to monitor the executing workflows were discussed. These initial design level constraints were discussed during the meeting.

September 24th, 2009 [Dr.Srinath/All members] : Initial Developments : [CSE/Tutorial Room 11 a.m - 12.00 p.m]

The development processes and the development decisions were discussed. The mashups generations for the deployed workflows, the constraints in integrating openID credentials for WSO2 Identity Server, monitoring the workflow events, using axis2 in place of XSUL, and the other input sources like web feeds were discussed. The initial developments were demonstrated.

Thursday, September 24, 2009

Ubuntu and SLT ADSL

When it comes to Linux, most of the software for the commonly used peripherals remain unsupported in Sri Lanka. Sometimes the software can be downloaded from the community forums, though the remaining stuff still, is on your hands. Recently when I switched to Ubuntu 9.04 (Jaunty), completely from Windows XP, I had to replace my Prolink H9601 ADSL USB Modem with a router since SLT(Sri Lanka Telecom) explicitly mentions that the above modem suits for Windows only. There was a program named UbuDSL which works for Prolink modems *sometimes*, on Ubuntu.

Configuring the CT-5624 4 port ADSL Router was a piece of cake though.

[1]. Just open and enter both username - admin and password - admin.

[2] Quick Setup will take you to the web page where you will have to input the username and password given by SLT. After this click 'Save & Reboot'; wait for the router to reboot. After rebooting you will mostly be able to connect to the Internet.

The below describes the further configuration, if the above fails. Since the router comes preconfigured for SLT it should work without these though.

[3]. Configuring Computer [From the SLT Router guide - for Windows Operating System]
TCP/IP Properties (You will not need to do this mostly.) .
Use IP address in the range of -
Subnet mask
Default gateway

Preferred DNS Server
Alternate DNS Server

[4]. Configuring CT-5624
After the initial configuration, as mentioned in [1], Select WAN under Advanced Setup tab, and Click Edit.

VPI = 8
VCI = 35

Connection Type - PPP over Ethernet (PPPoE)
Encapsulation Mode - LLC / SNAP-BRIDGING

Enter the username and password provided by SLT.
Enable WAN Service
Check the summary and Save if it is correct. Save/Reboot.
Wait for the router to reboot.
This should work by now.. :)
Click the DNS Server option under Advance Setup to set the DNS Server address.

Tuesday, September 15, 2009

Mooshabaya - FNR1

Initial Discussions
We decided to develop a Mashup generator for XBaya workflow composer, after the initial discussions with Dr.Srinath Perera and Dr.Sanjiva Weerawarana. Our team Mooshabaya, along with the Bissa team is collectively developing 'Mora Middleware for Scalable Computing (M2SC)'. We have submitted the Project Proposal, followed by the Software Requirement Specification. Design Document yet to be submitted. We have started developing Mooshabaya.

Other FOSS Specific tasks
Mooshabaya being a FOSS project, we decided to carry out the development in a FOSS specific manner.

I registered an irc channel ##m2sc on gnome( for the communication among the M2SC combined group members. We are currently using this channel for our project based discussions.

I have been posting updates on my project work, regularly on my blog. [1]

Project Proposal
I wrote the Introduction, Project description and an introduction to M2SC.

Software Requirement Specification
I wrote the overall description and also wrote the System features with another member of the group.

Initial Development
Since I had worked on Extreme! Labs projects during my internship at WSO2, I had some prior experience in WS-Messenger and XBaya. So I started modifying the GUI of XBaya for Mooshabaya. Mooshabaya includes options for Mashup generation and other input sources. I first included options for these in the GUI. I committed the changes to our SVN.[2]

System Design
After a design level meeting[3] with Dr.Srinath Perera on 6th of August, we started the design and the development of the project. Since I have modified the XBaya GUI and created the Mooshabaya GUI, I generated the Screenshots[4] for the design document. I have also written the introduction, a basic overview for M2SC and Mooshabaya, and design considerations.[5] I have also drawn the class diagrams[6] for the Mooshabaya core and the monitoring component.

Further Reading
I started reading about the web feeds RSS and Atoms, and parsing them using XMLBeans. I will develop the code for the input from web feeds in the upcoming fortnight.


Saturday, September 12, 2009

Web feed

When considering web 2.0 paradigm web feeds become an important topic to discuss. Syndication of site content is considered an important Web 2.0 feature, where the users can grab the information from many sources and customize them to retrieve them in a more convenient manner. A web feed or news feed is a data format used for providing users with frequently updated content. RSS which is commonly known as the abbreviation of "Really Simple Syndication" or sometimes "Rich Site Summary" is a family of web feed formats used to publish frequently updated web contents. RSS has many different versions, with two mostly known parallel formats. RSS 1.* and RSS 2.* both are maintained parallel by different organizations and have two unique formats. RSS 1.* (RDF branch) is owned by RSS-DEV Working Group and RSS 2.* is owned by UserLand.

The Atom Syndication Format is an XML language used for web feeds, while the Atom Publishing Protocol (AtomPub or APP) is a simple HTTP-based protocol for creating and updating web resources. Being an XML themselves, web feeds can be parsed to java objects using XMLBeans.

A well known application for creating mashups from the web feeds is Yahoo Pipes. Pipes is a free online service that lets you remix popular feed types and create data mashups using a visual editor.[1]

[5] Sample RSS 2 and RSS 1

Modules Registration

Registrations for our subject modules are done online through Learning management system (LMS). Basically we will be anxiously waiting for the moment to click the 'Enroll' button for our preferred modules as the Module registration is about to begin. Some subjects have more demand than the supply, where some modules do not have such limitations of head count. In level 2, we had CS3300 Image Processing, where only 60 slots were allocated whilst we are 100 in number. We faced more competition for level 2 June term subjects, as those subjects are common for all the departments of the Engineering faculty.

There exists rules such as minimum 6 credits from the Management department and 10 credits from the other departments, for level 3 and level 4. Literally we test the response time and the efficiency of the browsers at this time. I always prefer and use Mozilla Firefox (ff3), while some prefer Safari and Google Chrome. At the time of registration, LMS failures are not so rare, due to the overload of the server. Just like a denial of service attack. :)

We never fail to disable the browser cache [1],[2] of the browser before the registration begins. However we set the values to default or the standard immediately after the registration, to avoid delayed response of the browser.

Friday, September 11, 2009

Tasty New Google Summer of Code Stats

Google Open Source Blog: Tasty New Google Summer of Code Stats shows the remarkable achievement of the students participated in the Google Summer of Codes. University of Moratuwa, Sri Lanka becomes the first in the list having 22 successful students over the total of 999 students worldwide. It should also be noted that University of Moratuwa was the first the last year with 24 successful students where the total was 1126, where we topped the list with 22 for the first time in 2007. Thus making this the 3rd year of success.

Top 10 Schools in 2009 and the 2005 - 2009 total value by # of Accepted Students are listed in the Google Open Source Blog. It should also be noted that, even when considering the total number of accepted students for the Google Summer of Codes(GSoC) for the years 2005 to 2009 University of Moratuwa tops the list with 79 students, followed by University of Campinas / UNICAMP, Brazil (37 students), and University of Toronto, Canada (34 Students).

This result shows the strong impact of Free and Open Source Software among the undergraduates of Universtiy of Moratuwa. Department of Computer Science and Engineering - University of Moratuwa and WSO2 - The Open Source SOA Company should be mentioned here, for encouraging the undergraduates to participate in Open Source Projects.

It is a true success of the small beautiful mother Lanka and her children.
Let's support FOSS!!!

Read more here:

Thursday, September 3, 2009


Summary: Port AbiWord for Windows to Unicode

Initial revision: 26150
Final GSoC revision: 27718
I used the below command to create the diff file depicting my progress, in a single diff file named gsoc2009unicode.diff. Here abiword_home is the working folder (abiword source root) that is checked out.
Using this command from abiword_home;
svn diff -r 26150:27718 src > gsoc2009unicode.diff

The diff file can be downloaded here.
It has 13496 lines and 465.5 KB.
My Google Summer of Codes branch can be found at which is the unicode branch for Abiword Windows. I continued working on this branch even after the Summer of Codes Firm Pencils Down date. So for further updates on the unicode port, you can simply checkout that branch instead of applying this patch.

To use the attached patch,
1. Check out Abiword from trunk as on revision 26150, the revision which was used to create my initial gsoc2009unicode branch.
svn co -r 26150

2. Go to the trunk folder you have just checked out and place the patch there.

3. Use the below command from the folder, to patch the working directory.
patch -p0 < gsoc2009unicode.diff 4. Now you have patched the trunk directory and you have the files in the status as that of my gsoc2009unicode branch on the final Google Summer of Codes version 27718. 5. Configuring, building, and other options have no difference from the usual Abiword building process. More details on my Google Summer of Codes 2009 progress can be found here: Kathiravelu Pradeeban


Summer of Codes 2009 Download List for Abiword can be found here.
Details for the code submission can be found here.

A few lines from the patch:
int XAP_Win32DialogBase::addItemToCombo(UT_sint32 controlId, LPCSTR p_str)
- return SendDlgItemMessage(m_hDlg, controlId, CB_ADDSTRING, 0, (LPARAM)p_str);
+ UT_Win32LocaleString str;
+ str.fromUTF8 (p_str);
+ return SendDlgItemMessageW(m_hDlg, controlId, CB_ADDSTRING, 0, (LPARAM)str.c_str());

google-summer-of-code-2009-abiword submitted code zips can be downloaded here

The diff file including the work on the porting done after the GSoC timeline can be found here.

Todos and later commits

Later Commits
28092 - Fixing the localize controls in the dialogs - Zoom, Insert Break, Insert Bookmark, Insert Hyperlink, Format Columns, and Plugin Manager to Unicode.
localizeControlText() methods are replaced, making the dialogs ports compatible to the other win32 unicode ports.
27863 - Porting ap_Win32Dialog_FormatTOC to Unicode.
27862 - Porting ap_Win32Dialog_Stylist to Unicode. Tree view, yet to be fixed.

TODOs (Can also be found here)

I am listing the bugs / TODOs as in the final commit revision 28092
(Sep 1) of gsoc2009unicode branch.
Here I use Arabic to mention the Unicode only text as I used Arabic
and English as my major testing languages during the latter part of
the development.

**I have marked some bugs as critical since they are not limited to
Unicode only languages, other bugs are occurring for the unicode only
language [Arabic] only.**

=== (1) File ===
1. New using Template - Title, labels, buttons - all garbage.
2. Print - Shows English, even for Arabic Interface.
3. Properties - Garbage in buttons, labels.

=== (2) Insert ===
1. Field - Listboxes - All Garbage [Critical]
2. Image - *Crahes* - Insert Image Dialog not starting, after the
change in xap_Win32Dlg_FileOpenSaveAs.cpp [Critical]

=== (3) Format ===
1. Paragraph - Combo boxes - Garbage [Critical]
      Preview - Garbage
      Buttons, Title, Frame - Shows English for Arabic Interface

2. Bullets & Numbering - No Title.
                           Others - Garbage.
                     Combo boxes - Garbage [Critical]
[This is due to the fact that ap_Win32Dialog_Lists.cpp hasn't been
ported to unicode.]

3. Tabs
4. Headers & Footers
These [3 and 4] are shown in English even for Arabic. The issue is
with XAP_Win32DialogHelper.cpp as Marc pointed out in one of his
recent posts regarding the merge.

5. Table of Contents - OK Button - Garbage.
Invisible Labels - [of Stylist]

6. Create & Modify Styles - Garbage.
List Combo - Garbage [Critical]

=== (4) Tools ===
1. Set Language - Tree view - (first letter only, in case of English)
Garbage. [Critical]
2. Stylist - Tree view - Empty [Critical]
These [2 and 3] show there exists problem with the porting of the TreeView item.

3. Preferences - Smart Quotes Tab - English
**Change Interface Language - Not functioning properly**
ap_Win32Dialog_Options.cpp has to be analyzed.

The dialogs that are not listed above as TODOs/bugs are working perfect**** with Unicode only languages. RTL text in title, keyboard and keyman input, menu, title bar, status bar, and dialogs are fine as other text.

These statistics are from gsoc2009unicode branch[1], which was last committed on Sep1. After the merge, there may be some changes in the list above.

Update [08/04/2010]: The TODO list has been added to the Abiword wiki.