Saturday, February 20, 2010

Is Delete() == Hide() for Facebook?

As you all may have noticed facebook was having some problems today, as mentioned here. Interestingly when I tried to delete my status message today, the prompt I got was as usual, "Delete post: Are you sure you want to delete this post?". But when I clicked yes, another message popped up "Unable to hide minifeed story: Failed to hide mini-feed story". After trying thrice it did delete. But what does this error message point out? Facebook never deletes stuff in real; it just hides them from your view.

So I feel unlike twitter, facebook deletion is not a permanent delete, but a mere hide. Once you put it there, it will be there for an unknown period of time. Of course, it is obvious that there is no way of permanent deletion* of facebook accounts. Aren't these a violation of user-rights? I'd better go and read the user agreement of facebook (only if I am that much jobless).

* Update: Seems they have enabled the permanent deletion option at the moment. Give it a try!

yay yay.. Blue.. Screen..

I hit into this blue screen while running my Windows XP on VirtualBox OSE on Ubuntu. Anyway I could solve the issue with the help of this post. Frequent appearance of the blue screen on Windows OS makes me smile really 'big'.

Tuesday, February 16, 2010

libxml2 and ubuntu upgrade

After upgrading to Ubuntu 9.10 from 9.04, Abiword cross-building failed with the below error message at libxml2. Uninstalled libxml2 that installed from the channel and reinstalled a later version from here. Issue is fixed!

make[6]: Nothing to be done for `all'.
make[6]: Leaving directory `/home/pradeeban/abiword/src/af/util/xp/t'
make[6]: Entering directory `/home/pradeeban/abiword/src/af/util/xp'
../../../../doltcompile /usr/bin/i586-mingw32msvc-c++ -DHAVE_CONFIG_H -I. -I../../../..  -mthreads -I/usr/include/fribidi -I/opt/win32/include/glib-2.0 -I/opt/win32/lib/glib-2.0/include -I/opt/win32/include/libgsf-1 -I/usr/include/libxml2 -I/opt/win32/include/wv -I/usr/include/libgsf-1 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/opt/win32/include/enchant   -I../../../.. -I../../../../goffice-bits -I../../../../src/af/ev/win -I../../../../src/af/ev/xp -I../../../../src/af/gr/win -I../../../../src/af/gr/xp -I../../../../src/af/util/win -I../../../../src/af/util/xp -I../../../../src/af/xap/win -I../../../../src/af/xap/xp -I/opt/win32/include -Wall -Wextra -Wsign-compare -Wpointer-arith -Wchar-subscripts -Wwrite-strings -Wmissing-noreturn -Wunused -Wpointer-arith  -g -O2 -MT ut_html.lo -MD -MP -MF .deps/ut_html.Tpo -c -o ut_html.lo ut_html.cpp
In file included from /usr/include/libxml2/libxml/parserInternals.h:18,
                 from ut_html.cpp:36:
/usr/include/libxml2/libxml/chvalid.h:80: error: external linkage required for symbol ‘xmlIsBaseCharGroup’ because of ‘dllexport’ attribute
/usr/include/libxml2/libxml/chvalid.h:80: error: uninitialized const ‘xmlIsBaseCharGroup’
/usr/include/libxml2/libxml/chvalid.h:124: error: external linkage required for symbol ‘xmlIsCharGroup’ because of ‘dllexport’ attribute
/usr/include/libxml2/libxml/chvalid.h:124: error: uninitialized const ‘xmlIsCharGroup’
/usr/include/libxml2/libxml/chvalid.h:136: error: external linkage required for symbol ‘xmlIsCombiningGroup’ because of ‘dllexport’ attribute
/usr/include/libxml2/libxml/chvalid.h:136: error: uninitialized const ‘xmlIsCombiningGroup’
/usr/include/libxml2/libxml/chvalid.h:156: error: external linkage required for symbol ‘xmlIsDigitGroup’ because of ‘dllexport’ attribute
/usr/include/libxml2/libxml/chvalid.h:156: error: uninitialized const ‘xmlIsDigitGroup’
/usr/include/libxml2/libxml/chvalid.h:176: error: external linkage required for symbol ‘xmlIsExtenderGroup’ because of ‘dllexport’ attribute
/usr/include/libxml2/libxml/chvalid.h:176: error: uninitialized const ‘xmlIsExtenderGroup’
/usr/include/libxml2/libxml/chvalid.h:190: error: external linkage required for symbol ‘xmlIsIdeographicGroup’ because of ‘dllexport’ attribute
/usr/include/libxml2/libxml/chvalid.h:190: error: uninitialized const ‘xmlIsIdeographicGroup’
/usr/include/libxml2/libxml/chvalid.h:191: error: external linkage required for symbol ‘xmlIsPubidChar_tab’ because of ‘dllexport’ attribute
/usr/include/libxml2/libxml/chvalid.h:191: error: uninitialized const ‘xmlIsPubidChar_tab’
In file included from ut_html.cpp:36:
/usr/include/libxml2/libxml/parserInternals.h:279: error: external linkage required for symbol ‘xmlStringText’ because of ‘dllexport’ attribute
/usr/include/libxml2/libxml/parserInternals.h:279: error: uninitialized const ‘xmlStringText’
/usr/include/libxml2/libxml/parserInternals.h:279: error: storage size of ‘xmlStringText’ isn't known
/usr/include/libxml2/libxml/parserInternals.h:280: error: external linkage required for symbol ‘xmlStringTextNoenc’ because of ‘dllexport’ attribute
/usr/include/libxml2/libxml/parserInternals.h:280: error: uninitialized const ‘xmlStringTextNoenc’
/usr/include/libxml2/libxml/parserInternals.h:280: error: storage size of ‘xmlStringTextNoenc’ isn't known
/usr/include/libxml2/libxml/parserInternals.h:281: error: external linkage required for symbol ‘xmlStringComment’ because of ‘dllexport’ attribute
/usr/include/libxml2/libxml/parserInternals.h:281: error: uninitialized const ‘xmlStringComment’
/usr/include/libxml2/libxml/parserInternals.h:281: error: storage size of ‘xmlStringComment’ isn't known
/usr/include/libxml2/libxml/parserInternals.h:279: warning: ‘xmlStringText’ defined but not used
/usr/include/libxml2/libxml/parserInternals.h:280: warning: ‘xmlStringTextNoenc’ defined but not used
/usr/include/libxml2/libxml/parserInternals.h:281: warning: ‘xmlStringComment’ defined but not used
make[6]: *** [ut_html.lo] Error 1
make[6]: Leaving directory `/home/pradeeban/abiword/src/af/util/xp'
make[5]: *** [all-recursive] Error 1
make[5]: Leaving directory `/home/pradeeban/abiword/src/af/util/xp'
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory `/home/pradeeban/abiword/src/af/util'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/home/pradeeban/abiword/src/af'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/pradeeban/abiword/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/pradeeban/abiword'
make: *** [all] Error 2

Use case view - Mooshabaya

Integrating the Registry

User can add web service or a directory of web services by integrating the Registry or add data feeds. User management is handled by Identity Server. User can also configure the registry parameters.

Monitoring Module

User can configure the monitoring parameters and start/stop monitoring the workflow execution. Workflows are monitored using Pub/Sub model, where workflow events are published as notifications. If user chooses pull mode, notifications are stored as messages in a messagebox and later loaded from the messagebox.

Workflow Composition

User can choose and discover services. User can add input source nodes and set service nodes, from the services and feeds that are added. User can compose workflows using the added components and the system components in the canvas area, and implement the relevant business logic. Workflows can be saved and loaded later.

Mashup Generation and deploying to mashup server and execution

User can generate mashups once the workflow is composed or loaded. Generated mashups can be exported and deployed to a mashup server and executed.

Sunday, February 14, 2010

BCS Code of Conduct & Code of Good Practice

BCS Code of Conduct & Code of Good Practice are bibles for all the IT professionals. Get them here.

Saturday, February 13, 2010

When 'RTFW' is over-used

RTFW (Read The Freaking Web) is a commonly seen phrase in the online communications as a response to the questions which are asked without a prior research on the topic, more specifically if the topic of interest has already been discussed in the community wiki page, mailing lists or the project's website or blog. A similar acronym is 'RTFM', which refers to the phrase "Refer the Freaking Manual". RTFW is also interpreted in different ways such as "Read The Freaking/****ing Wiki", where some of the interpretations are not family-friendly. Hence the usage of RTFW is often discouraged.

Though a response of RTFW seems to be rude, it is not always. When a developer says 'RTFW', in most of the cases he means what he says. Hence it should not be taken personal, nor should it be a starter for flame wars. The volunteers who are there to help you use the phrase, when they feel that the answer is already out there on their wiki or elsewhere. A research on the web and the manuals on our own is often encouraged before throwing a question to someone else out in the space.

However, when we try to RTFW, it often leads to a forum post which also mentions RTFW. There should be some mechanism to reduce the importance of RTFWed posts and unanswered questions when retrieving the posts from the web. Another important factor is the users who ask questions are not ready to share their knowledge. They just want to be the information seekers.

This typical example shows what I meant. A person asks the question and declares that he solved it himself in a couple of days. Then some others keep asking the solution for the problem from him. No reply yet. If he has solved it, why should he avoid posting the solution, instead of merely mentioning he has solved it. Search query "NoClassDefFoundError: org/xmlpull/v1/XmlPullParserFactory" produces the above mentioned post as the second result, but information gain is zero for me. We need 'more intelligent' search engines or at least a proper implementation to reduce the importance of questions closed without solving properly.

Sunday, February 7, 2010

Cool demo - PubSubHubbub

This demo is a must watch on PubSubHubbub, a simple, open, web-hook-based pubsub protocol & open source reference implementation.

I find both the demo and pubSubHubbub very interesting. More information can be found here. PubSubHubbub for Wordpress blogs - announcement.

Friday, February 5, 2010

Being a fake is not an inverse of being open

Again, I am focusing on fake accounts on the web. I define an account 'being a fake' as the alteration of the name, false profile picture, alteration of the information or user data provided in creating the user account. I use facebook, my favorite social networking site for this post.

I used to maintain a small diary in my home, which no one ever dared to read, as it is assumed to contain objectionable content for public view. But once I signed up to facebook, I stopped writing that diary, and started issuing status messages instead. Isn't it contradicting? The stuff which was considered a taboo for others' view has become the public content, considering the fact that I have 1000+ facebook pals including strangers and fakes (as defined above).

Once a lady started a chat with me on facebook, who had an account that could easily be identified as a fake one. I mentioned her that she was a fake. After a pause she replied, "Yes, my name is altered and a star's photo as my profile picture, but I am much open than you when expressing myself through the chat. So you are more fake."

Seems a reasonable argument. Isn't it? People are interested in building relationships with strangers, while hiding their identity. When they hide their identity, they feel free to open their mind. On the other hand, our identity is explicitly shown to the public, so we do have to hide our minds in some cases.

When I joined Wikipedia as an editor, I was suggested to use a pen-name for the very same reason. I am writing under my own name there too, however. However that doesn't mean creating a fake account will protect your identity. So better hide your mind, if it is too dirty ;).

Does Linux spank its users hard?

This note is a collection of my replies to the comments I got for my previous post, Userfriendliness is a myth.

My point is Ubuntu 9.10 is almost up to the level of Windows. And still "Linux is terminal" image is left untouched. I thought "User-friendliness" has become an exaggerated concept used against FOSS and specifically Linux. And "is it similar to Microsoft stuff?" kind of questions are not so rare. The issue I see is the enlargement of the user-friendliness issues of Open Source software among the young ppl. And I guess, we should give strong resistance to this thought.

I remember once our OOP lecturer Mr.Sanjaya.K asked "Why Linux is not so popular?", and at that time my answer was "It's not so user-friendly", which he refused as a valid answer, and mentioned the user-friendliness factor may be lacking, but the reality is the advertisement and the proper marketing of Windows and the first mover advantage. It is also said that Ubuntu tries to mimic Windows.

My argument was not against proper implementation of user-friendliness. I strongly felt the need to avoid scaring others about open-source software. Who said you have to join nuts-and-bolts when using Ubuntu? It runs almost like Windows.

When Abiword was first built in 1999, Ms.Word was taken as the model. Their idea was to produce an open source equivalent to Ms.Word, and they almost succeeded. IMO, Ms.Word continued to grow as a giant grabbing all the unnecessary (for a common use) features into it, and as a user I feel Abiword is more user-friendly at the moment (well, It may be a biased opinion ;)), though it lacks the later features of Ms.Word. On the other hand, building Abiword may be difficult, but not using it. So just download the installer, install, and use it. Done! :) I agree, my argument is based on Ubuntu and Abiword, and my views are extremely biased.. ;) And many open source applications do lack the usability factors.

User-friendliness is a myth?

"So is it user-friendly?", asked she.
"What?", I tried to confirm the word.
"I asked whether Abiword is user-friendly"
"Well, What do you mean?", I was just impressed to see a non-CS undergraduate using the term 'user-friendliness'.
"I mean, will it work like Ms.Word?"

Yeah. I got her!
"Of course, it does work like Ms.Word, and it is similar to the earlier versions of Ms.Word, and Abiword is free, and portable...".
I guess, I did my marketing part very well. After a few questions, with a cute smile she agreed to switch to Abiword.

There I realized how 'user-friendliness' is misused. We often use the term 'user-friendliness' to define how comfort are we with that software given the fact that we have already had some experience with a similar software.

You will definitely feel Open Office not so friendly, if you are a Microsoft Office user, and considering the similarities of Abiword and Ms.Word, Abiword will overtake OOorg Word Processor in its 'user-friendliness' among Ms.Word users.

What I doubt is the serious complain - Open Source stuff are not very user friendly. I had to listen to a comment of a junior student, claiming that Linux is annoyingly not-so-user-friendly. Typical anti-FOSS shout! Of course, it may miss some whistles that are provided by the commercial software. But in most of the cases, Ubuntu and similar Linux variants are pretty much up to the mark. It's our bad to scare the kids showing Linux terminal in practical lessons. What do we do? We show them how to use control panel in Windows and at the same time teaching them how to operate Ubuntu using terminal commands. We do so to emphasize how Linux lovers love the terminal. But I guess, it will not give a good impression on Linux. So the outcome was "Windows is sexy; Linux spanks its users hard".

"Linux? I have to compile all the stuff before I run."
"Who said?"
In my opinion, building from the source code is easier on Linux variants than on Windows, and that is misunderstood as Linux needs manual compilation, which is no more true. In any case, user-friendliness is the mostly misused term against FOSS, at least among the undergraduates.

Tuesday, February 2, 2010

Eventing Module Integration

Finally EventingHostObject is fixed with Axis2 messenger. Here we need to put the hostobjects.eventing.jar that is built from carbon-platform/carbon-components/javascript-hostobjects/eventing into wso2mashup-2.0.0/repository/components/dropins. EventingHostObject has a method to send notifications.
wso2mashup-2.0.0/product/modules/samples/EventMonitoring/EventingFunc.js -- Pls use this file to test the Eventing host object that is currently implemented.

Building Mashup Server - Maven Build
mvn clean install -Dmaven.test.skip=true

or offline build
mvn install -o -Dmaven.test.skip=true
References on creating the pom for mbaya bundle: 
[2] Bnd - Bundle Tool
[3] How to build OSGi bundles using Maven Bundle Plugin - Part 1