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 ;).

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