Monday, December 14, 2009

Mooshabaya Meetings at Research Lab

October 27th, 2009 [Dr.Srinath/All members/CSE Research Lab] : Updates on the project. Eventing component issues and masup deployment and authentication issues. Discussed about the upcoming first formal presentation.

November 19th, 2009 [Dr.Srinath/K.D.B.C.De Alwis, A.S.Malinga, K.Pradeeban/CSE Research Lab] Demonstration of the project update using a screencast. Design and development issues, further updates, and the potential usage of the ongoing project on transferring Extreme! Labs projects from using XSUL to Axis2 were also discussed.

December 14th, 2009 [Dr.Srinath/All members/CSE Research Lab]
Discussed about the eventing module integration into carbon to call the eventing module methods from mashup server. Project Draft Report and the upcoming project schedule was also discussed.

December 15th, 2009 [Mrs.Vishaka Nanayakkara/All members/HoD Office]
Discussed about the draft report with the project's internal mentor Mrs.Vishaka Nanayakkara. Suggestions for potential enhancements and improvements to the draft report were given.

Thursday, December 10, 2009

Open Source Viruses!

Back Orifice (Currently known as BO2K) (often shortened to BO) is a controversial computer program designed for remote system administration, well known for its launch as an open source project. This program can effectively control your computer from a remote location once your computer has become a client. As BO2K server can be installed without the user's interaction, it can be distributed as payload of a Trojan and hence listed into the virus database by Anti-Virus programs, neglecting its legitimate use as an administrative tool.

It is often discussed whether 'open source virus' is a concept in practice or just a myth. Murphy's Law: Sometimes, an Open-Source Virus is Just a Virus - Views mentioning a virus/malware can never be considered to be open source, as it is not installed with a user agreement, as a reply to the post "Why virus writers are turning to open source". Another post focusing the Back Orifice developers - "Transatlantic Cable : Could the Cult of the Dead Cow be your friends?"

"Behind the scenes of online fraud" discusses about the online frauds along with some precautions. We were discussing more about Ethical hacking, malwares, and the behaviors of crackers during one of our recent CS4050 module lectures (Hence got the idea of a small research on Open Source Viruses ;)). From the discussions we had, it seems online fraud has become a popular hobby. Computer Crime, Act, No 24 of 2007 published by the Parliment of the Democratic Socialist Republic of Sri Lanka discusses the identification, investigation, and prevention of computer crimes. Online crimes are no more considered a fun that is tolerated!

Friday, October 2, 2009

On My Way Home

It's really amazing to see how could I have a technical blog, given the fact that I am not a 'professional' blogger. I usually just write the stuff which comes into my mind on my way home. Generally I make sure to write down the steps or procedures I followed to fix an issue or installing something which doesn't have a proper readme. In case of the posts regarding the issues or errors I faced, I make sure to write down the exact error message in the post, so that the post can easily be reached, when some one faces the identical problem. Why should some one else spend more time, when a solution or work around is found.

Being a FOSS enthusiast, I know the value of the knowledge sharing in the FOSS domain. FOSS is not a technology, but a culture or a lifestyle. We never practice FOSS, we live it. Linux is obviously the choice of the hard-core FOSS Enthusiasts. I am an Ubuntu user. Apart from the common stuff, I have regularly recorded the procedure of the projects I got involved in. The GSoC project "Porting Abiword for Windows to Unicode" and my final year project "Mooshabaya" are two hot topics in my blog. Obviously those will be relevant and useful only for the people involved in or interested in those projects.

Thursday, October 1, 2009

Learning and Fun

Even very serious stuff can sometimes be fun, if it is mentioned in the proper way. Recently got to know a nice blog post thanks to my pal Sach. It explains the encryption in a very nice manner, using stick figures. Seems a good learning resource on computer security.
Moserware: A Stick Figure Guide to the Advanced Encryption Standard (AES)

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 http://192.168.1.1 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 192.168.1.2 - 192.168.1.254
Subnet mask 255.255.255.0
Default gateway 192.168.1.1

Preferred DNS Server 203.115.0.46
Alternate DNS Server 203.115.0.47

[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
[Next]

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

Enter the username and password provided by SLT.
[Next]
Enable WAN Service
[Next]
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 - Fortnight Reports

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.

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

Documentation
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. Researched on the Extreme! Labs projects for the LEAD [Linked Environments for Atmospheric Discovery] Systems. Further Literature Survey on the areas I was mainly involved throughout the project for the final report draft.

Documentation - Initial Chapters of the final report

Main contributor to the first two chapters of the final report - Introduction and Objectives, and the overall report formatting. Literature Survey on Web feeds, XMLBeans, and XSUL2.0.

[1] http://kkpradeeban.blogspot.com/search/label/mooshabaya
[2] https://mooshabaya.svn.sourceforge.net/svnroot/mooshabaya/
[3] http://kkpradeeban.blogspot.com/2009/08/design-constraints-mooshabaya.html
[4] http://kkpradeeban.blogspot.com/2009/08/mooshabaya-design-document-31st-of-aug.html
[5] http://mooshabaya.wikidot.com/design-document
[6] http://kkpradeeban.blogspot.com/2009/08/mooshabaya-class-diagrams.html

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]

References
[3] A Pipe.
[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.


Read more here:

Thursday, September 3, 2009

gsoc2009unicode.diff

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 http://svn.abisource.com/abiword/branches/gsoc2009unicode/ 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 http://svn.abisource.com/abiword/trunk/

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: http://kkpradeeban.blogspot.com/search/label/gsoc2009unicode Kathiravelu Pradeeban kk.pradeeban@gmail.com

---------------------------------------------------------------------------

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)
{
UT_ASSERT(IsWindow(m_hDlg));
- 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.

Sunday, August 30, 2009

Let's do FOSS!

Free and Open Source Software (FOSS) projects are community maintained and most of them depends on the volunteers for their existence. You can help them in many ways regardless of your computer literacy. I have been asked several times, "How can I contribute to a free and open source software project?". So finally I thought of sharing some of my understanding regarding this. This post is just how I see the stuff going there, and not the solution.

1. First make sure that you really have some time, interest on the particular project, willingness, and the basic domain knowledge. Though contributions often come from developers, it doesn't mean that it is the only possibility. Search the web and find an open source community that matches your interest.

2. You should have a basic knowledge of the version control systems [SVN, Git, or CVS], and the project management tools like maven, and be able to use them, as they are common in most of the open source projects.

3. Get some experience in building projects from source and creating and applying simple patches for the projects.

4. Search the web and find an open source community that suits your interest. You can find some interesting FOSS communities from the List of participating organizations in Google Summer of Codes.

5. Communities like Abiword are small, and there are huge communities like Apache as well, which have sub-communities themselves. In small communities, you will be dealing with the entire community, where in case of a large community, you will again have to pick a suitable project which will have a 'sub-community' itself.

6. Read the online references and make sure that new developers are mostly welcomed at the community, at the given time. Almost all the FOSS communities encourage newcomers as there is nothing like 'NO VACANCY' in FOSS communities. You are always more than welcomed, as a developer, technical writer, or a translator.

7. Check the possible areas where you can enter. Join the user and developer mailing lists and hang on the community IRC, listen to the ongoing developer architecture and design level discussions. You can try to break ice with other developers, via IRC.

8. Build the project from the source, check for the possible additions and improvements, check the mail archives and the bugs database for the bugs or the future implementation, to which you can contribute.

9. Now make sure that you have got some idea and understanding about the community, codebase, their practices, and how you are going to contribute.

10. Write a descriptive mail to the developer list clearly explaining your interest in becoming a potential contributor to the community. Don't forget to include the design level details of your suggestions, your time frame, and the amount of contribution you can offer to the community, also give a hint of your strong interest by making the ice break impressive to the community.

11. You can also query about the potential contribution you can give to the community. Mostly you will be replied personally or through the mailing list pointing you the possible areas you can work. Pick a suitable one from the suggested projects and considering your own interests and decisions, and make sure to describe and confirm your involvement in the project to the community.

12. After discussing with such a project community about your interest in contributing, you can start by Localizing the products into your local languages,  polishing the documentation, writing reviews and blog posts, providing ideas, spreading the word, or by the other possible means which are specific to the community, apart from being a developer in the community. Open source projects are for the users. Being a user itself is a great contribution for a project. You can help the community by timely updates on the bugs and request for the feature enhancements that you expect. By being an active contributor you can earn self-satisfaction and recognition.

13. Make sure to be in a close contact with your community, once you start implementing your idea (or contributing to the community in some other way). Feel free to ask questions from the developers via the mailing list or even personal emails.

14. Make sure to be active in your community and very soon once you become a committer/community developer, continue contributing. Always try to welcome and help the freshers and help them becoming active contributors.

Let's do FOSS.

[This post is based on the experience I got from Abiword community as a GSoC Student.]

Saturday, August 29, 2009

Mooshabaya - Diagrams

Mooshabaya code base can be browsed at http://mooshabaya.svn.sourceforge.net/mooshabaya/ (http://mooshabaya.svn.sourceforge.net/viewvc/mooshabaya/), powered by ViewVC.
Source code can be checked out from https://mooshabaya.svn.sourceforge.net/svnroot/mooshabaya/
for the developers.

Or a particular folder in a particular version:
svn co -r 289 https://mooshabaya.svn.sourceforge.net/svnroot/mooshabaya/trunk/src/main/java/edu/indiana/extreme/xbaya/mashup/script

Mooshabaya class diagrams have some similarities with that of XBaya.

Class diagram for Monitoring Component:


Class diagram for Mooshabaya Core:

------------------------------------------------------------------------------

Diagrams without the operations and attributes

Class diagram for Monitoring Component:


Class diagram for Mooshabaya Core:



WS-Messenger is the messenger used in XBaya as well as Mooshabaya to publish and subscribe to the event notifications.


Reference:
Y. Huang, A. Slominski, C. Herath, and D. Gannon, " WS-Messenger: A Web Services based Messaging System for Service-Oriented Grid Computing," 6th IEEE International Symposium on Cluster Computing and the Grid (CCGrid06).


P.S: The diagrams of our final year project, including the ones in this blog post, were drawn using dia. Dia for gnome can be installed on Ubuntu using, 
sudo apt-get install dia-gnome
and can be run by executing dia in the terminal.

Friday, August 28, 2009

Introduction - Mooshabaya

Mooshabaya is basically a Mashup generator for XBaya Workflow Composer. The design constraints and the other initial design decisions are emphasized in this document. This document is based on the Project Proposal and the Requirement Specification of Mooshabaya. As the successor of those documents, this document requires those two documents as the prerequisite documents.

Project internal mentor, Project subject coordinator, project's external mentors and the team members are considered to be the direct audience of this document. However being an Open Source project, this document will be made available online for the public, where interested potential users can have a look of our design. 
As in the case of most other Open Source SOA middleware projects, Mooshabaya will be developed through Agile Process. The design and the development will be done via several online and face-to-face meetings with the team members as well as the project mentors. Hence this design document will provide a foundation design, which will be modified later reflecting the decisions taken in the further developer meetings.

Mooshabaya Design Document - 31st of Aug

Mooshabaya Screenshots at the design level, based on XBaya Workflow Composer UI
1. Mooshabaya UI, depicting the workflow monitoring.


2. Adding a Registry to Mooshabaya


3. Loading Security Credential


4. Configuring Workflow Properties


5. Monitoring Configuration


Use Case Diagram


The Design Document can be found here.

Saturday, August 22, 2009

Tavultesoft Keyman

I recently tried Tavultesoft Keyman Desktop 7.01 for testing my Porting Abiword to Unicode project. It is really a cool tool, and I made sure that Unicode text can be entered via keyboard as well as the other input methods like this keyman in my development branch.


Tamil-Unicode-Inscript keyboard layout was tried. [Arial Unicode MS]. BIDI text input is fine, as expected.

Thursday, August 20, 2009

Post-GSoC2009 Era

I was glad to hear that my branch will be merged to the trunk soon, enabling Unicode for Windows. September 15th, Abiword 2.8 will be released. It seems, Abiword 3.x series will come soon, hopefully. I am currently having a handful of patches to commit to my branch, and fine-tuning them before committing.

Arabic testing was really useful to me. English testing was obviously not useful, since I am dealing with Unicode characters. Croatian testing gave me some hints fixing Cyrillic text bugs. Tamil testing was having some issues, as ta-IN localization is still half-completed, and hence producing English dialog boxes. Arabic was amazing with its RTL text. Arabic is 99% localized. So it pointed me all the bugs and omissions in the port.

After committing the fixes to all the known issues, I will stay with my branch awaiting the merge. :)

Monday, August 17, 2009

GSoC - Firm Pencils Down Date

Today is the firm pencils down date, and I just completed the evaluations. Arabic, Tamil, and Croatian were used in testing. Arabic testing was really cool, which pointed me the bugs, being a unicode only - BiDi text (Arabic/English). Of course, we will continue as committors to Abiword, working with our projects.

The student - mentor map for Abiword can be found here.
My SVN branch can be found here.
My important commits are listed here.
My Student Project Page in Google.
Bug 10616, Bug 1625, and some more are fixed now, in my branch.
Most of these bugs will be fixed after the merge of the branch.

Friday, August 14, 2009

VirtualBox OSE and Audio

My Windows XP guest operating system on Ubuntu Jaunty host was not giving any audio output. I checked the Settings of the VirtualBox OSE, and in the Audio Settings, it was set to Host Audio Driver - ALSA Audio Driver and Audio controller - SoundBlaster 16. I changed those parameters to PulseAudio and ICH AC97, and restarted Windows XP host machine. Wow.. all the audio applications on my Windows guest is playing cool now. But I tried to play an audio clip on my Ubuntu host. Alas! No sound in my Ubuntu host now! I shut down the Windows XP guest operating system. Then all the audio applications were running as usual in my Ubuntu host operating system.

I tried to start Windows XP guest while listening to an audio clip in my Ubuntu host operating system. A warning appeared as the Windows loaded and Windows started, yet again with no sound at all. Hence I came to the conclusion that, currently for my host/guest operating systems combination (Ubuntu Jaunty / Windows XP), audio will be available either to guest or host, but not to the both at once. Seems this bug is found and reported in VirtualBox OSE bug databases when I did a google search for this.

An update: Recently I was able to get the audio in both the host and guest simultaneously, without any further modification. I guess, at that time some other processes were blocking the audio sharing between the host and the guest.

Saturday, August 8, 2009

Summer of Codes - Wrapping up

Google Summer of Codes 2009 is reaching its finishing touches. I should thank Google for organizing the event and Abiword for mentoring me. 'Porting Abiword for windows to Unicode', is my project. My focus was, in simpler terms, to provide an Arabic [Unicode] Abiword in Windows. I mean, my testing language was Arabic, thanks to the fact, it is good for the testing of BIDI text.

My mentor dom, the administrator hub, cross-building robsta, the MSVC abicollab and Abiword releases uwog, Windows maintainer sum1, ryanp with documentation and plugins, and msevior... I have to thank these developers for the support they were providing to me and the other participants. A wonderful job, they are doing, at Abiword. By providing a friendly, yet challenging learning environment, Abiword enables us extending our commitment to Abiword.

The Abiword development will not complete with this GSoC - All the successful Abiword students will continue being Abiword Commitors. The next mile stone release 2.8 is the major focus now. Later the SoC codes will be merged from trunk and further modifications will be done. Finally before the merge to the trunk, a merge from trunk to the branch will happen once more to our SoC branches.

It should however be noted, we all prefer not Windows, but FOSS Operating systems (or more specifically, Linux). As a 'cute' word processor, Abiword runs everywhere, literally. So we still feel free to develop for Windows and Mac, when it comes for Abiword. FOSS will rule the world.

"Abiword -- It's cute."

Thursday, August 6, 2009

Design Constraints : Mooshabaya

August 6th [WSO2/Denis, Pradeeban, and Supun] : Discussion on the design constraints of Mooshabaya : [10 a.m - 11 a.m]
Security: MyProxy is currently used in XBaya. WSO2 Identity Server will be used in Mooshabaya, where OpenID will be provided to ensure the security. Users from Registry will be initially added, where in the later stage of the development, WSO2 identity server will be merged with WSO2 Registry to provide users with secure access.

XSUL: Currently the Jython Scripts and possibly the other code segments depend on XSUL libraries. Since XSUL is obsolete and substituted with its better alternative Axis2, we will consider adding the Axis2 libs and avoid XSUL code segments in the coding. Later we will consider removing the XSUL dependencies altogether from the Mooshabaya code base.

GFac: Gfac is used, as when it is used to host the descriptive language script (similar to wsdl, but with the business logic and further data, possibly), the services can be used, even without running them. This will reduce the overhead of running each of the service, otherwise. This GFac integration scenario into XBaya also will be considered on a later stage of development.

Operating System: XBaya runs on windows, Linux, and Unix variants, while some other Extreme! Labs components run only in Linux and Unix variants. Mooshabaya will [hopefully] run in Windows, Linux, and Unix environments.

The current interface which has two implementations which are used to export the workflows as Jython Scripts and BPEL. Initially we will implement the Mashup Generator parallel to these two implementation, where finally the Mashup Generator code will be used to depict the workflows, in Mooshabaya.


These meeting entries are also listed here, in Moodle.

Supervised By:
Mrs. Vishaka Nanayakkara
Dr. Srinath Perera
Dr. Sanjiva Weerawarana

Group Members:
De Alwis, K.D.B.C. 060081B
Malinga, A.S. 060286H
Pradeeban, K. 060372T
Weerasiri, W.A.D.D. 060527B

The evolution of Mooshabaya

Mooshabaya is a Mashup generator for XBaya workflow composer of Indiana University. Mooshabaya is implemented by a team of four, and Mentored by Dr. Srinath Perera and Dr.Sanjiva Weerawarana of WSO2 Inc. As the team members we have had several online chats and informal meetings with our mentors. This post will mention only the formal meetings we had regarding the project.

May 22nd [WSO2/Dr.Srinath/All members]: Initiating The Idea : [10 a.m - 11 a.m]
The team meets Dr.Srinath Perera offline. This was the first meeting we had with Dr.Srinath, regarding the project. The project idea was first developed to form to considerable level. Dr.Sanjiva Weerawarana was also present in the meeting.

We decided to implement a mashup generator for the XBaya workflow composer. Currently the workflows are exported as jython scripts or BPEL. Our project will export them as mashups, combining the mashup and workflow domains, including a considerable amount of research, hence this project has not been implemented before. The services will be found from WSO2 Registry and the generated mashups will be deployed into WSO2 Mashup server. It was mentioned that the current implementation of XBaya uses several other components from the Extreme! Labs of Indiana University, including XRegistry.


June 4th [WSO2/Dr.Sanjiva/Dr.Srinath/All members]: Combining the groups : [10 a.m - 12 p.m]
We, with the other group of 4 WSO2 interns, decided to have a merge between the groups and met Dr.Sanjiva Weerawarana and Dr.Srinath Perera. After discussing several ideas and possibilities, the project was finalized.

The other team will be developing "Scalabale and Hierarchical Tuple Spaces". We discussed a use case where our project will develop scripts which can be deployed in browser. That will become a common scenario for both the teams as the other team will have a use case to have a tuple space that runs in a browser. Hence both the teams will be a loosely coupled combined team [M2SC]. Mora Middleware for Scalable Computing (M2SC), will have two independent components those can be developed without much dependency on each other team's component.

July 17th [WSO2/Dr.Srinath/All members]: Further Discussion regarding the use cases and usability :[11 a.m - 12 p.m]
Since Mooshabaya - our project will be based on XBaya source code, we had to install and run XBaya. For XBaya to be running, we needed WS-Messenger. We have installed both WS-Messenger and XBaya. We discussed about XBaya, Messenger, and the other Extreme! Products that are involved in XBaya including XRegistry and XSUL. Discussed further about the requirements. Some basic design constraints were discussed.

July 22nd [CSE/Dr.Srinath/All members]: Discussion on XBaya and Extreme! Labs products : [9 a.m - 9.30 a.m]
We discussed the issues we faced in monitoring workflows using XBaya. After the meeting and discussion XBaya is successfully installed and configured to monitor the workflows.


Supervised By:.....................Group Members:
Mrs. Vishaka Nanayakkara.......060081B - De Alwis, K.D.B.C.
Dr. Srinath Perera................060286H - Malinga, A.S.
Dr. Sanjiva Weerawarana........060372T - Pradeeban, K.
.....................................060527B - Weerasiri, W.A.D.D.

Wednesday, August 5, 2009

[SPAM] Life is always like that

Chain letters are the letters or email that induce the recipients to forward the letter or the message to some or all of them in their contact list, which often try to convey an engineered story or spread a rumor to a huge set of audience, with or without a harmful intent. Currently printed chain letters are becoming extinct, and it is transformed into the form of email, facebook wall posts, or similar social media communication. Some chain letters contain viruses and trojans which may affect the recipients once opened or executed the downloaded attachment.

People tend to forward chain-letters without analyzing the validity of their claims. Some chain letters try to appear as a letter for a good cause, such as a mail which seeks help to identify a missing child, or alerting the public or educating them on something important and urgent. It should be noted most of these innocent appearing mail too are hoaxes.

Some email claim that they will donate a considerable amount of money to a charity for the number of recipients the mail is forwarded, which can never be true as the number of times a mail sent can't be tracked down as it is claimed. Forwarding a chain-letter without confirming its validity is a bad practice, which should be avoided at all possible means. Confirm using Snopes or Hoax-Slayer, before spreading a message, as most of the messages are listed their with their validity, whether they are genuine or just hoaxes. Also make sure to report any new hoax to those sites, to help prevent these messages spreading.

The messages that are forwarded with the tag "for each copy you forward, this baby with this dangerous disease will get 50 cents!" - No one actually bothers to trace the number of times the mail is forwarded. Why should they bother to pay 50 cents for the fact that you forwarded that shit email? It is really irritating, when we get these mails even from software professionals and undergraduates, who are smart enough to consider these facts.

A mail asking for a kidney AB+, dated back to few months back being forwarded to at least 300 people. Mere forwarding doesn't mean you have done some good job. Ask someone personally if you really care, or give yours promptly! If you are not up for the help, don't expect the recipient of your mail to be so. 

It is just wasting the online resources, bandwidth, storage and everything with that html spam with all the baby images [That baby is still in her age of 5, since 1995, seeking your divine help]. I would better suggest thinking of the alternative ways of helping the poor people, rather than forwarding emails for them. In the long run, forwarding unsolicited junk mails like this, will definitely cost more than that '50 cents'. Thank God, most of these spam mail are now listed. Before forwarding 'help this child' email, do a simple google search with the mail subject. You will get a hit with the fact that the mail information is FALSE [or TRUE, in rare occasions of chain mails]. These email hoaxes are gruesome and more than enough to spoil the receivers' mood with the false claim. Latest Email hoaxes can be found here.

HTML mails, the other irritating factor! Even for a "hi, nice to meet you" note, I usually get an HTML message with all the graphical signatures, colours, and dancing monkeys, where a simple text format is nice and appropriate. Please send ASCII mails whenever possible. Most mail groups have even banned the HTML emails. Unnecessary attachments also should be avoided. Attachments in proprietary software format should always be avoided in a FOSS environment.

Emails having the threatening message similar to "Send this mail within 15 min to 15 people, else a stray dog will bite you" becomes the highlight of all. Funny to see, still people bother to send 15 mails as demanded in the spam. Some will have this line, "Pls forward this back to me as well, else I will feel sad." The same trend continues in social media networks such as Facebook in the form of wallposts or status updates.

Sending unrelated message to a mail group, then someone will reply, "why the hell did you send this here." The sender will apologize for that serious mistake in tears. Then a flow of +1 and -1 to both the people. The initial problem is solved; the mail thread is running for months. Let's ignore the mistakes and smile more.

VirtualBox

I have installed VirtualBox OSE in my Ubuntu Jaunty and installed Windows XP as a guest operating system. Installed guest additions, and started the guest operating system and added some shared folders from the Host operating system file system. Then with the windows XP [guest OS], Tools -> Map network drive, now I have the common location writable from both the host and the guest operating systems. 

This made my GSoC testing easy, as I no more have to copy the executable to Windows machine from the Ubuntu one, which is used to cross build it. Build once. Run from host and guest from the same location. Virtualbox (or the similar available Virtual Machine software) guest operating systems are the cool way to have multiple operating systems with the possibility of simple file sharing.

Friday, July 31, 2009

Mooshabaya SRS - 31st of July

We submitted the Software Requirement Specification for Mooshabaya this night. Just created a site for Mooshabaya here, so that we can create the documents collaboratively in a wiki. The project can be found here in sourceforge as well.

Thursday, July 30, 2009

Log in Screen Issue - Ubuntu

Last night I was working with some Localized applications in Tamil Language in Ubuntu 9.04.
For that I had changed my keyboard settings to ta-IN using System > Preferences > Keyboard, and choose Tamil India. For the first time, I forgot to switch back to the English Keyboard before I log out.

Today, at the log in screen, I tried to enter my user name. To my bad, it was entering Tamil characters, which made logging in impossible. I changed the language there at the log-in screen, but it just changed the log-in screen interface language, not the input language.

I tried to recover using CD, and failed. Similarly when I tried to go to the console using Alt+Ctrl+F1, still the keyboard input to the username field must have been in Tamil, thus giving diamonds instead of the letters. Finally in the Grub, I choose somewhat earlier version of gnome-terminal before the update to the later Ubuntu version, as the log in option, where I was unable to log in, yet still able to log in using the console (Alt+Ctrl+F1), as the keyboard was still EN-US there.

Then after some serious examination of the web and bugging my pals, I found the solution.
In /etc/default/console-setup
I found the two parameters were set to refer to India and Tamil.

sudo vi /etc/default/console-setup

I modified them to refer to EN-US.
XKBLAYOUT = "us"
XKBVARIANT = "en"

After saving the console-setup file, I restarted the computer. Then I was able to type in EN-US, and I successfully logged in.

Now I will make sure my keyboard settings is not Tamil or Arabic before I log out, to prevent this issue repeating again. Seems sticking to EN is mostly the safe.

[Update as on Nov 2009]
Since Ubuntu Karmic Koala has the input language and keyboard as a setting option in the log in window itself, it seems this issue has been fixed for Karmic Koala.

Tuesday, July 28, 2009

Testing: GSoC2009Unicode

With the assistance of Sum1 and dom, I was able to fix the issue in Preference dialog Language listing. Now I could see all the languages listed, so that I can test the Abiword Unicode Windows Application in Ubuntu/Wine, or Windows in non-latin languages. As mentioned in my proposal, I will use Arabic and Indic Languages for testing. I will be able to fix the bugs in the dialogs more effectively, henceforth.

So I thought of sharing some screeshots, depicting my progress.

Abiword ANSI Windows program in Arabic.


Abiword Unicode Windows program in Arabic. [In Ubuntu/Wine]


Abiword Unicode Windows program in Arabic. [In Windows XP]


Abiword Unicode Windows Preference Dialog in Arabic.




Menubar in Crotian:


After the port, the [non-latin] special characters of the language were displayed properly.

Wednesday, July 22, 2009

Gtk-WARNING

When I was running a GUI application in IDEA8, I was continuously getting the error message:
(:10099): Gtk-WARNING **: Attempting to add a widget with type GtkButton to a GtkComboBoxEntry (need an instance of GtkEntry or of a subclass)

(:10099): Gtk-CRITICAL **: gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed

(:10099): Gtk-CRITICAL **: gtk_paint_box: assertion `style->depth == gdk_drawable_get_depth (window)' failed

(:10099): Gtk-CRITICAL **: gtk_paint_box: assertion `style->depth == gdk_drawable_get_depth (window)' failed

(:10099): Gtk-CRITICAL **: gtk_paint_box: assertion `style->depth == gdk_drawable_get_depth (window)' failed

(:10099): Gtk-CRITICAL **: gtk_paint_box: assertion `style->depth == gdk_drawable_get_depth (window)' failed

in the IDEA output window.

I later found that this issue is listed here in IntelliJIDEA bug database.

Finally I was able to fix the issue by simply switching back the operating system theme to the default one [Earlier I had Mac4Lin], though smarter solutions may exist.

Monitoring a workflow in XBaya

Initial Steps
SVN Checkout the xbaya source code.
mvn idea:idea from the source root to create an IntelliJ IDEA project from the pom.
Start Tomcat and Run StartMessenger of the WS-Messenger.
Quick installation steps for WS-Messenger can be found here.
Open the XBaya project file and modify the default broker url to http://localhost:8080/messenger/ in XbayaConstants.java
Run XBaya.java.

XBaya Workflow Composer
Component -> Add Local Directory [add a directory containing the wsdls which are the wsdl's of the services deployed in Axis2]
Using the components, create a workflow [Say a simple arithmetic addition workflow].
Monitoring -> Configure Monitoring; Use a valid string for topic, and uncheck the Pull Mode.
Monitoring -> Start Monitoring
Workflow -> Run Workflow.

Give suitable values for the parameters. If it is an addition function, give two integer values for param0 and param1.

XBaya will monitor the workflow and will indicate the Time, Component, Status, and Message.


Results can be seen in the idea output as below.


Increase can be seen in the incoming message number and subscriptions/unsubscriptions in the broker [http://localhost:8080/messenger], and the Total successful outgoing message number of the delivery thread of WS-Messenger [http://localhost:12347/].

Friday, July 10, 2009

Commits to gsoc2009unicode, after the mid evaluation

TODO: Save files with international file names. bug 10146.
TODO: Typing in unicode only languages. [Currently boxes are displayed, in the editing area, instead]
TODO: Table column size.
TODO: Insert Image Dialog.
BUG LIST

27718 - Porting Win32 Page Setup Dialog. Final commit that comes under GSoC 2009.
27691 - Porting xap_Win32Dlg_ListDocuments.
27684 - Fixing Merge Cells Dialog to Unicode. Testing is being done using Arabic(BiDi Text), Tamil(Indic Text), and Croatian languages.
27592 - Porting ap_Win32Dialog_ListRevisions.
27575 - Fixing the crash in the Document History dialog.
27550 - Porting ap_Win32Dialog_MarkRevisions.
27530 - Porting ap_Win32Dialog_Paragraph.
27509 - Porting ap_Win32Dialog_MailMerge.
27499 - Fixing ap_Win32Dialog_PageNumbers.
27498 - Porting ap_Win32Dialog_MergeCells.
27496 - Porting ap_Win32Dialog_SplitCells.
27455 - Porting ap_Win32Dialog_Background.
27450 - Reverting commit 26655, which gave problems in accessing documents and urls.
27449 - Porting ap_Win32Dialog_HdrFtr.
27385 - First commit after the testing started in Arab.
27378 - Porting ap_Win32Dialog_FormatFrame.
27377 - Porting ap_Win32Dialog_Tab.
27375 - Porting ToggleCase.
27362 - Porting Format Footnotes.
27350 - Fixing ut_Win32Uuid for Unicode only build.
27349 - Porting ap_Win32Dialog_Columns.
27322 - Porting Annotation; This port is incomplete and ofcourse annotation has some bugs.
27273 - Modifying the functions of the classes, as unicode only versions, which are missed in the earlier commits.
27254 - Porting ap_Win32Dialog_Field.
27237 - Porting xap_Win32DialogHelper.
27235 - Fixing the Toolbar.
27232 - Porting xap_Win32Dlg_DocComparison.
27231 - Fixing some earlier omissions in Win32 Graphics classes.
27201 - Open files with international file names. bug 12222.

Commits till the mid evaluation are listed here.

[This post will be updated as I progress further in my project]

Monday, July 6, 2009

Mooshabaya Project Proposal - 6th of July

Mooshabaya [මූෂාභය] targets to generate Mashups to describe the composed workflows, by modifying Xbaya Workflow Composer, which currently exports the composed workflows into BPEL and Jython. Though Mooshabaya focuses and uses XBaya as its workflow composer, it can easily be generalized to be compatible to any other workflow composer. Mooshabaya will find the services from WSO2 Registry, which governs SOA deployments, and the composed workflows are deployed into a Mashup Server as mashups. We will use WSO2 Mashup Server to deploy the mashups in our project.

Mooshabaya also can store the messages as tuples, instead of variables which are the default storage elements of the mashups. In that scenario, the project can work collaboratively with the project bissa "Scalable and Hierarchical tuple space" to form M2SC "Mora Middleware for Scalable Computing", where the use case is a common use case shared by both Mooshabaya and Bissa.

Mooshabaya Project Proposal can be found here.

Monday, June 29, 2009

Summer of code - Mid Evaluations

Next Monday (6th of July) the mid evaluations will start. The last year survey questions from mentors can be found here, and students here.

Students and Mentors from the Abiword team are eagerly awaiting the evaluation.

My SVN Commits so far, can be found here.
My initial interaction with abiword community is discussed here.

Apart from this, I have recently learned the usage of the ACM membership, provided for GSoC students free for a year. We have free download access to proprietary softwares, some books and journals, a forwarding acm email address, and a redirect url.

Saturday, June 27, 2009

Quick installation : WS-Messenger

1. Download Messenger here and extract to a location, which will later be pointed as WSNT_HOME.
2. create a mysql database, use db/mysqlCreationScript.txt to create the tables in the database
3. update the config/db.config to point to the data base (sample here).
4. run ant war to create war file. messenger.war will be created inside WSNT_HOME/distribution folder.
5. Download and install a web container (we use apache tomcat), deploy the war file by dropping it into the tomcat webapps folder, and start tomcat.
6. run ./startMessenger.sh at WSNT_HOME to start the messenger. [In Windows, it is the *.bat file]. If the downloaded version's startMessenger has any trouble, try this.

Starting the message broker includes two processes.
The war file deployed in the web container, can be reached at http://localhost:8080/messenger/ after starting the web container. It is called the broker.
Delivery thread of WS-Messenger can be reached at http://localhost:12347/ by running the startMessenger.


Testing - Running a sample
Download nowTest.java and put it into the folder WSNT_HOME/test/org/indiana/extreme/queue.
Create a project using WSNT_HOME/test as the source root.
Add the WSNT_HOME/lib jar files, and WSNT_HOME/build/lib/wsmg.jar to the path.
After running the messenger as mentioned above, run the nowTest.java.

This will depict the case, where 10 subscribers subscribing to one of the 3 available publishers.

DroneBL

Today morning, while trying to log into my irc account on freenode using xchat, I was getting the message,
"(notice) *** Banned: You have a host listed in the DroneBL. For more information, visit dronebl.org/lookup_branded.do?ip=124.43.238.174 Please contact kline@freenode.net with questions. "
The message was repeating itself, as it tried to connect with different Freenode servers.

So I visited dronebl.org/lookup_branded.do?ip=124.43.238.174
It was saying
"There have been listings for the host, 124.43.238.174 found in DroneBL. To get removed from our DNSBL, you will need to address all of these incident listings.



I got it! Since we are given dynamic IP from the service provider (Sri Lanka Telecom), an abusive usage of someone else has caused this trouble to me. I used the request removal option.

Removal results for 124.43.238.174
You are requesting the delisting of incident 532599 involving 124.43.238.174. Please confirm that you are human.

It was quick and removed the ban promptly, without any fuss.
Removal results for 124.43.238.174
This incident has been removed from the DroneBL. Please make sure that you have fixed your problem, or it will reappear here. Have a great day.
You may have other incidents in DroneBL reported, in which case you will need to remove them.

I learned more about DroneBL from its blog. "DroneBL is a realtime monitor of abusable IPs, which has the goal of stopping abuse of infected machines."

Friday, June 26, 2009

Mooshabaya - A new beginning

We have recently enrolled to the Final Year Project module (CS4200) and started working towards preparing the project proposal. We, 8 of the WSO2 interns (2008/2009), formed a group of two.

Our team (Buddhika, Denis, Pradeeban, and Supun) has chosen "Xbaya graphical composition tool to compose workflows and Mashups" (Listed as project idea 9) as our project. The other team (Charith, Dulanjanie, Pradeep, and Udayanga) has chosen Scalable & Hierarchical tuple space (project idea 48). Our ideas were suggested and are mentored by Dr.Srinath Perera and Dr.Sanjiva Weerawarana. Based on a use case, as suggested by Dr.Sanjiva Weerawarana, we will work as a merged group, where each co-project is independent, yet uses the other for the particular scenario.

We have named our project as (Project idea #9) Mooshabaya. Mooshabaya is a name derived from Mooshups and XBaya. The other project (Project idea #48) has been named Bissa. We have named the merged project as M2SC (Mora Middleware for Scalable Computing). The M2SC project IRC is ##m2sc on Freenode.

Sunday, June 21, 2009

Collaboration in document creation

Feel the lighter side of life with Abiword!
http://abicollab.net/