Wednesday, May 27, 2009

Effectively Using Wikipedia

When using Wikipedia or other similar Wiki's most of us just read the article only. But there are much more details, which can be found if we use the wiki effectively. This post is written having Wikipedia in mind, but it is still applicable to the other wiki's as well.

1. Wiki articles have their earlier revisions accessible to the users. By accessing the 'history' tab on top of the article, you can get a list of the earlier edits. This is really useful, for a current hot-topic, a news item, or a subject with the conflicts on interest. In some not-so-maintained wiki's this option allows to omit the latest version, if it has some irrelevant material inserted into it. However Wikipedians are active that random text or irrelevant spam inserted into an article is removed immediately as it is found.

See whether there is a considerable difference exist between the revisions, by comparing them. If a considerable change has been found, it is worth looking at earlier revisions. Usually the contents of the wiki articles are removed to maintain the size of the article to a standard level. Some are removed to maintain the unbiasedness of the article.

Whatever the case reviewing the earlier revisions give a panoramic view on the topic.

2. In some case, the 'discussion' page will be available. Usually there you can find a summarized information regarding the issues going around the article. Taking a look at this will give you the first hand knowledge about the alternate views and interests.

3. If you are multilingual, try to read the article in the other languages, if it is available, as the articles in different languages are not a mere translation of the English version. However, it is always recommended to take a look at the article written in a local language related to the topic, even if you are not familiar with that language at all. At least you will be able to find more images and links.

Sunday, May 24, 2009

Internship At WSO2

A project - "Event Monitoring System" that  Supun and I did during our internship can be found in the SourceForge Project Page. Source code can be checked out from the SVN in SourceForge.

Oct 6th / 2008 - May 11th / 2009

Saturday, May 23, 2009

Common mistakes : IRC

Today the GSoC2009 coding period officially started. During the last two months, I could get some ideas on how NOT to use IRC channels in an open source world.

1. Leaving IRC immediately after a response is given:
Some users log in to the channel, and leave the channel immediately after they got a response for their query. This is a dangerous habit. Wait for some more time, you may get some more responses too.

2. Expecting a reply promptly:
Don't forget people are not paid to answer you. Someone will eventually answer your question. Don't panic and leave the channel without getting the answer. You may have to wait for hours for an answer.

3. Demanding:
Don't try to demand the hackers. They are volunteers, and you have no moral right to do so.

4. Expecting all the hackers to be knowledgeable in the whole subject:
Some hackers know part or full of the source code. If someone says he is not sure about the issue, wait for someone else to respond to your query.

5. Avoid SMS writing:
Don't use 'u', '4 wat', and '4n'. This is IRC and not your mobile phone. Your sms writing will definitely irritate the hackers.

6. DON'T WRITE LIKE THIS UNLESS YOU ARE SHOUTING AT SOMEONE.

7. dOn'T wRiTe lIkE tHiS!!!!!!!!!!, uNlESs yOu aRe iNsAnE :) :) :).

8. Try to be in a synchronization with the ongoing discussion. If it is going with a touch of fun, you could crack some jokes too. Otherwise be serious.

9. Finally use English on the international channels. You may know someone personally, but that doesn't mean you could have a conversation in your mother tongue, unless it is a local user group.

10. Use the channel display name to refer to the people. Don't use their real names, sir, or other similar salutation.

11. Debates - Each has his/her own opinion. Avoid being religious on topics such as Richard Matthew Stallman (rms) vs Eric S. Raymond (ESR).

For further reference regarding irc and other open source communication media, refer to the book, "Producing Open Source Software - How to Run a Successful Free Software Project, by Karl Fogel".
The online version is available here.


Useful Links:
IRC guidelines from freenode.
Beginners' guide.
Information on registering a channel - [1] and [2].
Operator commands.
A nice op guide with the introduction to modes.
ChanServ commands.
ChanServ Help Page.
Freenode irc chanserv help.

Abiword Windows Directory Structure

The directory structure that is involved in my project:

src
|-af
| |-ev/win
| |-gr/win
| |-util/win
| |-xap/win
|
|-wp
| |-ap/win
| |-impexp/win
| |-main/win
|

The code base that to be investigated during this summer of codes is given below. 
1.ABI_HOME/src/af/ev/win/ev_Win32Keyboard.cpp
2.ABI_HOME/src/af/ev/win/ev_Win32Keyboard.h
3.ABI_HOME/src/af/ev/win/ev_Win32Menu.cpp
4.ABI_HOME/src/af/ev/win/ev_Win32Menu.h
5.ABI_HOME/src/af/ev/win/ev_Win32Mouse.cpp
6.ABI_HOME/src/af/ev/win/ev_Win32Mouse.h
7.ABI_HOME/src/af/ev/win/ev_Win32Toolbar.cpp
8.ABI_HOME/src/af/ev/win/ev_Win32Toolbar.h
9.ABI_HOME/src/af/ev/win/ev_Win32Toolbar_ViewListener.cpp
10.ABI_HOME/src/af/ev/win/ev_Win32Toolbar_ViewListener.h
11.ABI_HOME/src/af/ev/win/Makefile.am

12.ABI_HOME/src/af/gr/win/gr_Win32CharWidths.cpp
13.ABI_HOME/src/af/gr/win/gr_Win32CharWidths.h
14.ABI_HOME/src/af/gr/win/gr_Win32Graphics.cpp
15.ABI_HOME/src/af/gr/win/gr_Win32Graphics.h
16.ABI_HOME/src/af/gr/win/gr_Win32Image.cpp
17.ABI_HOME/src/af/gr/win/gr_Win32Image.h
18.ABI_HOME/src/af/gr/win/gr_Win32Uniscribe.h
19.ABI_HOME/src/af/gr/win/gr_Win32USPGraphics.cpp
20.ABI_HOME/src/af/gr/win/gr_Win32USPGraphics.h
21.ABI_HOME/src/af/gr/win/Makefile.am

22.ABI_HOME/src/af/util/win/Makefile.am
23.ABI_HOME/src/af/util/win/ut_debugmsg.cpp
24.ABI_HOME/src/af/util/win/ut_mutexImpl.h
25.ABI_HOME/src/af/util/win/ut_path.cpp
26.ABI_HOME/src/af/util/win/ut_sleep.cpp
27.ABI_HOME/src/af/util/win/ut_sleep.h
28.ABI_HOME/src/af/util/win/ut_Win32Idle.cpp
29.ABI_HOME/src/af/util/win/ut_Win32Idle.h
30.ABI_HOME/src/af/util/win/ut_Win32Locale.cpp
31.ABI_HOME/src/af/util/win/ut_Win32Locale.h
32.ABI_HOME/src/af/util/win/ut_Win32Misc.cpp
33.ABI_HOME/src/af/util/win/ut_Win32OS.cpp
34.ABI_HOME/src/af/util/win/ut_Win32OS.h
35.ABI_HOME/src/af/util/win/ut_Win32Resources.rc2
36.ABI_HOME/src/af/util/win/ut_Win32String.cpp
37.ABI_HOME/src/af/util/win/ut_Win32Timer.cpp
38.ABI_HOME/src/af/util/win/ut_Win32Timer.h
39.ABI_HOME/src/af/util/win/ut_Win32Uuid.cpp
40.ABI_HOME/src/af/util/win/ut_Win32Uuid.h
41.ABI_HOME/src/af/util/win/ut_xml_msxml.cpp
42.ABI_HOME/src/af/util/win/ut_Xpm2Bmp.cpp
43.ABI_HOME/src/af/util/win/ut_Xpm2Bmp.h

44.ABI_HOME/src/af/xap/win/Makefile.am
45.ABI_HOME/src/af/xap/win/winezmouse.h
46.ABI_HOME/src/af/xap/win/xap_Win32App.cpp
47.ABI_HOME/src/af/xap/win/xap_Win32App.h
48.ABI_HOME/src/af/xap/win/xap_Win32AppImpl.cpp
49.ABI_HOME/src/af/xap/win/xap_Win32AppImpl.h
50.ABI_HOME/src/af/xap/win/xap_Win32Clipboard.cpp
51.ABI_HOME/src/af/xap/win/xap_Win32Clipboard.h
52.ABI_HOME/src/af/xap/win/xap_Win32ColourButton.h
53.ABI_HOME/src/af/xap/win/xap_Win32DialogBase.cpp
54.ABI_HOME/src/af/xap/win/xap_Win32DialogBase.h
55.ABI_HOME/src/af/xap/win/xap_Win32DialogFactory.h
56.ABI_HOME/src/af/xap/win/xap_Win32DialogHelper.cpp
57.ABI_HOME/src/af/xap/win/xap_Win32DialogHelper.h
58.ABI_HOME/src/af/xap/win/xap_Win32Dlg_About.cpp
59.ABI_HOME/src/af/xap/win/xap_Win32Dlg_About.h
60.ABI_HOME/src/af/xap/win/xap_Win32Dlg_ClipArt.cpp
61.ABI_HOME/src/af/xap/win/xap_Win32Dlg_ClipArt.h
62.ABI_HOME/src/af/xap/win/xap_Win32Dlg_DocComparison.cpp
63.ABI_HOME/src/af/xap/win/xap_Win32Dlg_DocComparison.h
64.ABI_HOME/src/af/xap/win/xap_Win32Dlg_Encoding.cpp
65.ABI_HOME/src/af/xap/win/xap_Win32Dlg_Encoding.h
66.ABI_HOME/src/af/xap/win/xap_Win32Dlg_FileOpenSaveAs.cpp
67.ABI_HOME/src/af/xap/win/xap_Win32Dlg_FileOpenSaveAs.h
68.ABI_HOME/src/af/xap/win/xap_Win32Dlg_FontChooser.cpp
69.ABI_HOME/src/af/xap/win/xap_Win32Dlg_FontChooser.h
70.ABI_HOME/src/af/xap/win/xap_Win32Dlg_History.cpp
71.ABI_HOME/src/af/xap/win/xap_Win32Dlg_History.h
72.ABI_HOME/src/af/xap/win/xap_Win32Dlg_HTMLOptions.cpp
73.ABI_HOME/src/af/xap/win/xap_Win32Dlg_HTMLOptions.h
74.ABI_HOME/src/af/xap/win/xap_Win32Dlg_Image.cpp
75.ABI_HOME/src/af/xap/win/xap_Win32Dlg_Image.h
76.ABI_HOME/src/af/xap/win/xap_Win32Dlg_Insert_Symbol.cpp
77.ABI_HOME/src/af/xap/win/xap_Win32Dlg_Insert_Symbol.h
78.ABI_HOME/src/af/xap/win/xap_Win32Dlg_Language.cpp
79.ABI_HOME/src/af/xap/win/xap_Win32Dlg_Language.h
80.ABI_HOME/src/af/xap/win/xap_Win32Dlg_ListDocuments.cpp
81.ABI_HOME/src/af/xap/win/xap_Win32Dlg_ListDocuments.h
82.ABI_HOME/src/af/xap/win/xap_Win32Dlg_MessageBox.cpp
83.ABI_HOME/src/af/xap/win/xap_Win32Dlg_MessageBox.h
84.ABI_HOME/src/af/xap/win/xap_Win32Dlg_Password.cpp
85.ABI_HOME/src/af/xap/win/xap_Win32Dlg_Password.h
86.ABI_HOME/src/af/xap/win/xap_Win32Dlg_PluginManager.cpp
87.ABI_HOME/src/af/xap/win/xap_Win32Dlg_PluginManager.h
88.ABI_HOME/src/af/xap/win/xap_Win32Dlg_Print.cpp
89.ABI_HOME/src/af/xap/win/xap_Win32Dlg_Print.h
90.ABI_HOME/src/af/xap/win/xap_Win32Dlg_PrintPreview.cpp
91.ABI_HOME/src/af/xap/win/xap_Win32Dlg_PrintPreview.h
92.ABI_HOME/src/af/xap/win/xap_Win32Dlg_Stub.cpp
93.ABI_HOME/src/af/xap/win/xap_Win32Dlg_Stub.h
94.ABI_HOME/src/af/xap/win/xap_Win32Dlg_WindowMore.cpp
95.ABI_HOME/src/af/xap/win/xap_Win32Dlg_WindowMore.h
96.ABI_HOME/src/af/xap/win/xap_Win32Dlg_Zoom.cpp
97.ABI_HOME/src/af/xap/win/xap_Win32Dlg_Zoom.h
98.ABI_HOME/src/af/xap/win/xap_Win32DragAndDrop.cpp
99.ABI_HOME/src/af/xap/win/xap_Win32DragAndDrop.h
100.ABI_HOME/src/af/xap/win/xap_Win32EncodingManager.cpp
101.ABI_HOME/src/af/xap/win/xap_Win32EncodingManager.h
102.ABI_HOME/src/af/xap/win/xap_Win32Features.h
103.ABI_HOME/src/af/xap/win/xap_Win32FontPreview.cpp
104.ABI_HOME/src/af/xap/win/xap_Win32FontPreview.h
105.ABI_HOME/src/af/xap/win/xap_Win32FrameImpl.cpp
106.ABI_HOME/src/af/xap/win/xap_Win32FrameImpl.h
107.ABI_HOME/src/af/xap/win/xap_Win32LabelledSeparator.cpp
108.ABI_HOME/src/af/xap/win/xap_Win32LabelledSeparator.h
109.ABI_HOME/src/af/xap/win/xap_Win32Module.cpp
110.ABI_HOME/src/af/xap/win/xap_Win32Module.h
111.ABI_HOME/src/af/xap/win/xap_Win32PreviewWidget.cpp
112.ABI_HOME/src/af/xap/win/xap_Win32PreviewWidget.h
113.ABI_HOME/src/af/xap/win/xap_Win32PropertySheet.cpp
114.ABI_HOME/src/af/xap/win/xap_Win32PropertySheet.h
115.ABI_HOME/src/af/xap/win/xap_Win32Res_Cursors.rc2
116.ABI_HOME/src/af/xap/win/xap_Win32Res_DlgDocComparison.rc2
117.ABI_HOME/src/af/xap/win/xap_Win32Res_DlgEncoding.rc2
118.ABI_HOME/src/af/xap/win/xap_Win32Res_DlgFont.rc2
119.ABI_HOME/src/af/xap/win/xap_Win32Res_DlgHistory.rc2
120.ABI_HOME/src/af/xap/win/xap_Win32Res_DlgHTMLOptions.rc2
121.ABI_HOME/src/af/xap/win/xap_Win32Res_DlgImage.rc2
122.ABI_HOME/src/af/xap/win/xap_Win32Res_DlgInsertPicture.rc2
123.ABI_HOME/src/af/xap/win/xap_Win32Res_DlgInsertSymbol.rc2
124.ABI_HOME/src/af/xap/win/xap_Win32Res_DlgLanguage.rc2
125.ABI_HOME/src/af/xap/win/xap_Win32Res_DlgListDocuments.rc2
126.ABI_HOME/src/af/xap/win/xap_Win32Res_DlgPassword.rc2
127.ABI_HOME/src/af/xap/win/xap_Win32Res_DlgPlugin.rc2
128.ABI_HOME/src/af/xap/win/xap_Win32Res_DlgWindowMore.rc2
129.ABI_HOME/src/af/xap/win/xap_Win32Res_DlgZoom.rc2
130.ABI_HOME/src/af/xap/win/xap_Win32Resources.rc2
131.ABI_HOME/src/af/xap/win/xap_Win32Slurp.cpp
132.ABI_HOME/src/af/xap/win/xap_Win32Slurp.h
133.ABI_HOME/src/af/xap/win/xap_Win32_TB_CFactory.h
134.ABI_HOME/src/af/xap/win/xap_Win32Toolbar_Icons.cpp
135.ABI_HOME/src/af/xap/win/xap_Win32Toolbar_Icons.h

136.ABI_HOME/src/wp/ap/win/ap_Win32App.cpp
137.ABI_HOME/src/wp/ap/win/ap_Win32App.h
138.ABI_HOME/src/wp/ap/win/ap_Win32AppImpl.cpp
139.ABI_HOME/src/wp/ap/win/ap_Win32AppImpl.h
140.ABI_HOME/src/wp/ap/win/ap_Win32Clipboard.cpp
141.ABI_HOME/src/wp/ap/win/ap_Win32Clipboard.h
142.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_All.h
143.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_Annotation.cpp
144.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_Annotation.h
145.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_Background.cpp
146.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_Background.h
147.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_Break.cpp
148.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_Break.h
149.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_Columns.cpp
150.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_Columns.h
151.ABI_HOME/src/wp/ap/win/ap_Win32DialogFactory.cpp
152.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_Field.cpp
153.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_Field.h
154.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_FormatFootnotes.cpp
155.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_FormatFootnotes.h
156.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_FormatFrame.cpp
157.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_FormatFrame.h
158.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_FormatTable.cpp
159.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_FormatTable.h
160.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_FormatTOC.cpp
161.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_FormatTOC.h
162.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_Goto.cpp
163.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_Goto.h
164.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_HdrFtr.cpp
165.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_HdrFtr.h
166.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_InsertBookmark.cpp
167.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_InsertBookmark.h
168.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_Insert_DateTime.cpp
169.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_Insert_DateTime.h
170.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_InsertHyperlink.cpp
171.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_InsertHyperlink.h
172.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_InsertTable.cpp
173.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_InsertTable.h
174.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_Latex.cpp
175.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_Latex.h
176.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_ListRevisions.cpp
177.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_ListRevisions.h
178.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_Lists.cpp
179.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_Lists.h
180.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_MailMerge.cpp
181.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_MailMerge.h
182.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_MarkRevisions.cpp
183.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_MarkRevisions.h
184.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_MergeCells.cpp
185.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_MergeCells.h
186.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_MetaData.cpp
187.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_MetaData.h
188.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_New.cpp
189.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_New.h
190.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_Options.cpp
191.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_Options.h
192.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_PageNumbers.cpp
193.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_PageNumbers.h
194.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_PageSetup.cpp
195.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_PageSetup.h
196.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_Paragraph.cpp
197.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_Paragraph.h
198.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_Replace.cpp
199.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_Replace.h
200.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_Spell.cpp
201.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_Spell.h
202.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_SplitCells.cpp
203.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_SplitCells.h
204.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_Stub.cpp
205.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_Stub.h
206.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_Styles.cpp
207.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_Styles.h
208.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_Stylist.cpp
209.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_Stylist.h
210.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_Tab.cpp
211.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_Tab.h
212.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_ToggleCase.cpp
213.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_ToggleCase.h
214.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_WordCount.cpp
215.ABI_HOME/src/wp/ap/win/ap_Win32Dialog_WordCount.h
216.ABI_HOME/src/wp/ap/win/ap_Win32Frame.cpp
217.ABI_HOME/src/wp/ap/win/ap_Win32Frame.h
218.ABI_HOME/src/wp/ap/win/ap_Win32FrameImpl.cpp
219.ABI_HOME/src/wp/ap/win/ap_Win32FrameImpl.h
220.ABI_HOME/src/wp/ap/win/ap_Win32LeftRuler.cpp
221.ABI_HOME/src/wp/ap/win/ap_Win32LeftRuler.h
222.ABI_HOME/src/wp/ap/win/ap_Win32Prefs.cpp
223.ABI_HOME/src/wp/ap/win/ap_Win32Prefs.h
224.ABI_HOME/src/wp/ap/win/ap_Win32StatusBar.cpp
225.ABI_HOME/src/wp/ap/win/ap_Win32StatusBar.h
226.ABI_HOME/src/wp/ap/win/ap_Win32_TB_CFactory.cpp
227.ABI_HOME/src/wp/ap/win/ap_Win32Toolbar_Control_All.h
228.ABI_HOME/src/wp/ap/win/ap_Win32Toolbar_FontCombo.cpp
229.ABI_HOME/src/wp/ap/win/ap_Win32Toolbar_FontCombo.h
230.ABI_HOME/src/wp/ap/win/ap_Win32Toolbar_SizeCombo.cpp
231.ABI_HOME/src/wp/ap/win/ap_Win32Toolbar_SizeCombo.h
232.ABI_HOME/src/wp/ap/win/ap_Win32Toolbar_StyleCombo.cpp
233.ABI_HOME/src/wp/ap/win/ap_Win32Toolbar_StyleCombo.h
234.ABI_HOME/src/wp/ap/win/ap_Win32Toolbar_ZoomCombo.cpp
235.ABI_HOME/src/wp/ap/win/ap_Win32Toolbar_ZoomCombo.h
236.ABI_HOME/src/wp/ap/win/ap_Win32TopRuler.cpp
237.ABI_HOME/src/wp/ap/win/ap_Win32TopRuler.h
238.ABI_HOME/src/wp/ap/win/Makefile.am

239.ABI_HOME/src/wp/impexp/win/ie_impexp_RegisterWin32.cpp
240.ABI_HOME/src/wp/main/win/Win32Main.cpp

Resource Files and Others

241.ABI_HOME/src/wp/impexp/win/Makefile.am
242.ABI_HOME/src/wp/main/win/AbiWord.exe.MANIFEST
243.ABI_HOME/src/wp/main/win/Win32Main.rc

244.ABI_HOME/src/wp/ap/win/ap_Win32Res_DlgAnnotation.rc2
245.ABI_HOME/src/wp/ap/win/ap_Win32Res_DlgBreak.rc2
246.ABI_HOME/src/wp/ap/win/ap_Win32Res_DlgColumns.rc2
247.ABI_HOME/src/wp/ap/win/ap_Win32Res_DlgDownload_File.rc2
248.ABI_HOME/src/wp/ap/win/ap_Win32Res_DlgField.rc2
249.ABI_HOME/src/wp/ap/win/ap_Win32Res_DlgFormatTOC.rc2
250.ABI_HOME/src/wp/ap/win/ap_Win32Res_DlgGoto.rc2
251.ABI_HOME/src/wp/ap/win/ap_Win32Res_DlgHdrFtr.rc2
252.ABI_HOME/src/wp/ap/win/ap_Win32Res_DlgInsertBookmark.rc2
253.ABI_HOME/src/wp/ap/win/ap_Win32Res_DlgInsert_DateTime.rc2
254.ABI_HOME/src/wp/ap/win/ap_Win32Res_DlgInsertHyperlink.rc2
255.ABI_HOME/src/wp/ap/win/ap_Win32Res_DlgInsertTable.rc2
256.ABI_HOME/src/wp/ap/win/ap_Win32Res_DlgLatex.rc2
257.ABI_HOME/src/wp/ap/win/ap_Win32Res_DlgList.rc2
258.ABI_HOME/src/wp/ap/win/ap_Win32Res_DlgListRevisions.rc2
259.ABI_HOME/src/wp/ap/win/ap_Win32Res_DlgMarkRevisions.rc2
260.ABI_HOME/src/wp/ap/win/ap_Win32Res_DlgMetaData.rc2
261.ABI_HOME/src/wp/ap/win/ap_Win32Res_DlgNew.rc2
262.ABI_HOME/src/wp/ap/win/ap_Win32Res_DlgOptions.rc2
263.ABI_HOME/src/wp/ap/win/ap_Win32Res_DlgPageNumbers.rc2
264.ABI_HOME/src/wp/ap/win/ap_Win32Res_DlgPageSetup.rc2
265.ABI_HOME/src/wp/ap/win/ap_Win32Res_DlgParagraph.rc2
266.ABI_HOME/src/wp/ap/win/ap_Win32Res_DlgSpell.rc2
267.ABI_HOME/src/wp/ap/win/ap_Win32Res_DlgStylesNewModify.rc2
268.ABI_HOME/src/wp/ap/win/ap_Win32Res_DlgStylesTop.rc2
269.ABI_HOME/src/wp/ap/win/ap_Win32Res_DlgStylist.rc2
270.ABI_HOME/src/wp/ap/win/ap_Win32Res_DlgTabs.rc2
271.ABI_HOME/src/wp/ap/win/ap_Win32Res_DlgToggleCase.rc2
272.ABI_HOME/src/wp/ap/win/ap_Win32Res_DlgWordCount.rc2
273.ABI_HOME/src/wp/ap/win/ap_Win32Res_FormatFootnotes.rc2
274.ABI_HOME/src/wp/ap/win/ap_Win32Res_FormatFrame.rc2
275.ABI_HOME/src/wp/ap/win/ap_Win32Res_FormatTable.rc2
276.ABI_HOME/src/wp/ap/win/ap_Win32Res_Icons.rc2
277.ABI_HOME/src/wp/ap/win/ap_Win32Res_MailMerge.rc2
278.ABI_HOME/src/wp/ap/win/ap_Win32Res_Manifest.rc2
279.ABI_HOME/src/wp/ap/win/ap_Win32Res_MergeCells.rc2
280.ABI_HOME/src/wp/ap/win/ap_Win32Resources.rc2
281.ABI_HOME/src/wp/ap/win/ap_Win32Resources_DialogReplace.rc2
282.ABI_HOME/src/wp/ap/win/ap_Win32Res_SplitCells.rc2
283.ABI_HOME/src/wp/ap/win/ap_Win32Res_Version.rc2

Saturday, May 16, 2009

Documentation

Whenever I run into problems building open source projects, I usually say to myself, "I will write down this process, so that I can publish and make this process publicly available for the other users". And finally somehow, referring the web (yes, most of the issues have already been addressed) I will complete building it. Then I will recall how can I write down the steps that I followed. Yes, hard to recall those hundreds and thousands of steps, most of them are trial and errors, and not to be mentioned!!!

Yes. The answers to the commonly faced problems are there in the web but scattered all over the web. We need serious and proper documentation to them, to make the life easier. I am thinking of contributing to this, but in most of the cases, mere thinking leads to nothing.

Thursday, May 14, 2009

Tracker Applet

Tracker Applet.
"There was an error while performing indexing: Index corrupted."

Since I upgraded to Ubuntu jaunty (9.04) from 8.10, I am getting the above message frequently. Which will stay there, asking for an indexing, where it will never disappear even if we positively respond to its query. So regardless of our response, this message thingy will be popping up again and again.

I found a temporary solution for this well known bug from web.
sudo apt-get install tracker-utils
tracker-processes -r # --hard-reset

This bug was not appearing after that for a long time, but appeared again today!
Had to do tracker-processes -r # --hard-reset again.

The terminal output follows:

pradeeban@pradeeban:~/c$ tracker-processes -r # --hard-reset
Found 157 pids...
Found process ID 3742 for 'tracker-applet'
Killed process 3742
Found process ID 3827 for 'tracker-indexer'
Killed process 3827
Found process ID 8746 for 'trackerd'
Killed process 8746
Setting database locations
Checking database directories exist
Checking database version
Checking database files exist
Removing all database files
Removing database:'/home/pradeeban/.local/share/tracker/data/common.db'
Removing database:'/tmp/tracker-pradeeban/cache.db'
Removing database:'/home/pradeeban/.cache/tracker/file-meta.db'
Removing database:'/home/pradeeban/.cache/tracker/file-fulltext.db'
Removing database:'/home/pradeeban/.cache/tracker/file-contents.db'
Removing database:'/home/pradeeban/.cache/tracker/email-meta.db'
Removing database:'/home/pradeeban/.cache/tracker/email-fulltext.db'
Removing database:'/home/pradeeban/.cache/tracker/email-contents.db'
Setting index database locations
Checking index directories exist
Checking index files exist
Removing all database index files
Removing database index:'/home/pradeeban/.cache/tracker/file-index.db'
Removing database index:'/home/pradeeban/.cache/tracker/email-index.db'

Wednesday, May 13, 2009

AdminEMS

M.A.Mohamed and I did a pair project for CS3200 - Level3 Programming Project. Our project was "Entertainment Management System" aka EMS. EMS contained two parts; client side program [EMSClients] was developed by Mohamed using PHP, and the administrator program [AdminEMS] was developed by me using C#. The project proposal of AdminEMS can be found here.

How to build Abiword for Windows from the source

Now you have two options that are working and tested.
1. Cross-building
2. MSVC2008

1. The traditional cross-building using wine has been tested for Ubuntu 8.04 / 8.10 / 9.04.
Details can be found here.
Dependencies packed by robsta (here, or here(same copy))

When cross-building with the above dependency pack, it will demand libtool, automake, and fribidi, unless you already have them installed in your Ubuntu. A simple sudo apt-get install of these three will solve the issue (for Ubuntu).


2. With uwog's continuous effort, Microsoft visual C++ 2008 build has been made stable and complete. Just checkout http://svn.abisource.com/abiword-msvc2008/trunk/ and build using MSVS2008. (Express Edition 2008 is fine).


Seems these two options are in a higher demand than the traditional MinGW/MinSYS building, nowadays! The MSVC build is, surely going to grab more Windows developers into the Abiword community.

Sunday, May 10, 2009

gsoc2009unicode

Jordi Mas has organized his code so that you could build both ANSI and Unicode builds. Mostly, this uses ugly macros like TCHAR and macro'd functions. I will use wchar_t and the "W" version of the Win32 APIs, since I am going to build only a Unicode only build.

In src/af/util/win/, there are bForceAnsi flags in a number of functions that need to go; in src/wp/ap/win/ap_Win32App.cpp, there are a number of fromXtoY functions that need to be investigated (e.g., AP_Win32App::s_fromUTF8ToWinLocale).
Those fromXtoY functions are used in a number of dialogs.
Also I have to convert *A functions to *W ones. I thought of starting with the editing area and it is said that gui might be the tricker part.

It is also suggested to get rid of the xapencoding manager.

Recent Bug Reports regarding win32 + unicode:

UTF-16 and UCS-2
Microsoft uses UTF-16 little-endian as its standard for Unicode encoding

For Unicode (“Wide”) characters:
typedef unsigned short WCHAR; // 16 bit character
typedef WCHAR *LPWSTR; //pointer to 16 bit string

Abiword's internals are utf-8 and ucs-4. but the win32 parts should use utf-16, and then translate that into utf-8 or ucs-4, asp appropriate.
Internally the text engine uses UCS4.

Jordi Mas' unicode/ANSI build using tchar.h and tchar, and in mine (Unicode only build)
Unicode WCHAR and string functions.

Dialogs. menus. and toolbars to be ported first.

My project proposal can be found here.
List of all the projects and students along with their mentors can be found here.

Summer of Codes additional requirement: debug output.

Friday, May 8, 2009

MacOS Theme for Ubuntu!


Ubuntu 9.04 is simply great.

I have also given it a Mac OS appearance using Mac4Lin.
It is awesome!!!

Thursday, May 7, 2009

Abiword 2.7.0 released!

Abiword 2.7.0 was released yesterday!
Download it here.

Abiword 2.6.6 is the supported version for Ubuntu jaunty.
Download it here.

But feel free to try this debian packaging, if you prefer Abiword 2.6.8, and ready to install dependencies yourself.

An interview with the Abiword team after the Abiword 2.6 release can be found here.

A comparison of the open source word processors, OOo Writer, AbiWord, and KWord can be found here. However it could mostly be outdated by this time.

Apart from this, you may always prefer to check out gsoc2009unicode branch, which will be my branch for this gsoc - Porting Abiword Windows to Unicode.
I will use cross-building for my project.
Windows dependencies can now be found here too.

Initial discussions on this topic, by Jordi Mas, can be found here.

Community Bonding Period

GSoC2009 has started. Now we are in community bonding period. Other than getting a first-hand experience in the FOSS world, GSoC has so many other advantages too. I could get many new friends inside as well as outside the Abiword community. It's amazing to receive ice-breaking mails from the students doing their project with other organizations. This planet is full of friendly people!!!

Sunday, May 3, 2009

Computing for all

I have recently started to translate Abiword to ta-LK. It should also be noted that ta-IN already exists for Abiword. So in a language point of view, a Tamil localized form of Abiword can be found. But still ta-LK has some clear differences from ta-IN and follows different standards. In case if a Sinhala translation for Abiword starts in a near future, I hope, we can think of making Abiword the national localized word processor of Sri Lanka.

Yesterday I attended the LAKAPPS fellowship event, which was organized to mark the success of the LAKAPPS team, in the concept "Computing in Sri Lankan languages." Abiword with the adaptability to the OLPC system, suits the position in localized computing for rural community. I wish LAKAPPS team will go forward in its effort for a better computing for all Sri Lankans.

Friday, May 1, 2009

libtool: link: cannot find the library `' or unhandled argument `Version'

When I was building again after some minor directory changes, build failed.
Oh.. Then I found, this 'libtool' is considering 'Version' in the directory name (Working Version mm) as an argument. :)
Removed the white spaces from the directory name. *Issue resolved*!


libtool: link: cannot find the library `' or unhandled argument `Version'
make[4]: *** [opendocument.la] Error 1
make[4]: Leaving directory `/home/pradeeban/Desktop/BackUp/Working Version mm/plugins/opendocument'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/home/pradeeban/Desktop/BackUp/Working Version mm/plugins/opendocument'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/pradeeban/Desktop/BackUp/Working Version mm/plugins'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/pradeeban/Desktop/BackUp/Working Version mm'
make: *** [all] Error 2
pradeeban@pradeeban-laptop:~/Desktop/BackUp/Working Version mm$