Saturday, April 16, 2011

Life full of -aaS (a.k.a. The list of -aaS.)

We once have discussed on the topic of xOA (-Oriented Architecture), where we found how many "oriented architectures" have been researched, discussed, merged, or even made up. The same has been happening how on aaS (as-a-Service). Though -as-a-Service started with cloud offerings, now we can see, it is often used as a buzz word in other domains too, to grab some popularity and attention. I have listed down a few that I have found over the net. Please note some of the below aaS may even sound childish or made-up terms. I am not responsible for that.. ;)


1) AaaS - Analytics as a Service
On demand analytics services. Web-based analytics applications.

2) BaaS - Business as a Service 
Easily "virtualize" your business.

Business Intelligence As A Service

Backup as a Service
Backup as a Service offers companies the ability to do their backups to the cloud.

3) CaaS - Computing as a Service
Verizon offers computing as a service, addressing Security, Reliability, and Control.

Communications as a Service
Gartner defines CaaS as IP telephony that is located within a third-party data center and managed and owned by a third party.

4) DaaS - Data as a Service
DaaS is based on the concept that the product, data in this case, can be provided on demand.

Desktop as a Service
Outsourcing of a virtual desktop infrastructure (VDI) to a third party service provider.

5) EaaS - Everything as a Service
From simple office documents to extensive customer service management, EaaS vendors could provide the tools through the cloud (internet).

6) FaaS - Fraud as a Service
When an online fraudulent activity such as trojans is provided as a service.

7) GaaS - Gaming as a Service
Gamers who may wish to either complement their existing gaming console or replace it altogether with a Gaming-as-a-Service (GaaS) option.

8) HaaS - Hardware as a Service
A service provision model for hardware that is defined differently in managed services and grid computing contexts.

9) IaaS - Infrastructure as a Service
One of the commonest and earliest form of -aaS. Provides hardware infrastruture as a service, hence in early times Hardware-as-a-Service (HaaS) was used interchangeably.

10) JaaS - Jobs as a Service
Jobs as a Service for an effective job hunting and decision making

11) KaaS - Knowledge as a Service
An on-demand, bite-sized, where-needed approach to skill acquisition.

12) LaaS - Logging as a Service
Log management in the cloud

13) MaaS - Mashups as a Service
When SOA meets web-2.0.

14) NaaS - Network as a Service
SaaS (software as a service) web 2.0 model to mobile operators and the intelligence stored within their networks.

15) OaaS - Oracle as a Service
Database Consolidation

16) PaaS - Platform as a Service
Something that stays in between software application and infrastructure as service (SaaS and IaaS).
As providing our WSO2 Carbon middleware Platform as a Service over the cloud, as StratosLive, we have discussed this several times before over this blog itself. Hence omitting further discussion now. :)

17) QaaS - Query as a Service

Quality as a Service

18) RaaS - Recovery as a Service
Allows you to keep and maintain ongoing backups and data recovery files.

Routing as a Service

Replication as a Service
Provides replication through the cloud infrastructure as a Service

19) SaaS - Software as a Service
Application in the cloud. Along with infrastructure as a service, this is the first among the list of "as-a-service".

20) TaaS - Testing as a Service
Many organizations including Wipro and Qutesys provide testing and quality assurance using the pay-as-you-go model.

21) UaaS - Utilities as a Service

22) VaaS - Virtualization as a Service
VaaS offers low cost virtual servers using enterprise class hardware in secured datacenters.

23) WaaS - Wireless as a Service
Cisco Virtual Wide Area Application Services: Cloud-Ready WAN Optimization Solution

24) XaaS - Anything as a Service. Mostly used as an umbrella term (xaaS) to refer to all the -as a Service terminology used.

25) YaaS - You-as-a-Service

26) ZaaS - Zebra as a Service 


Feel free to provide reference to any other as-a-Service of the form xaaS that I may have missed in this list, as a comment below. I have come up with this list using the help of Google. So if your aaS is far below in the Google's ranking, most probably I would have missed it. Moreover you can find many similar lists of aaS online. I have found one myself before. However most of them are outdated lists and doesn't contain the new emerging or made-up xaaS acronyms or terminology.

Friday, April 15, 2011

මරන්න එපා නිදහස් කරන්න

I recall, it was one of the classes, and my teacher was narrating a story from the history of Sri Lanka. A prince has been arrested and kept in prison, for a while. Now, an order goes to the jailers, "මරන්න එපා  නිදහස් කරන්න" (Translation: Kill not release). He is supposed to be released, according to the real order (මරන්න එපා.  නිදහස් කරන්න; Kill Not. Release). But the jailers get it wrong as මරන්න. එපා  නිදහස් කරන්න (Kill. Not  Release). So finally he ends up his life sadly. 
With time, I have actually forgotten the real context and the exact figures involved in this historical story. But I got the message clearly. 
"Please be clear in what you are saying. Miscommunication costs lives!"

In a direct face-to-face communication, it is said that only upto 7% of the communication is contributed by words (verbal communication). The remaining is expressed through the tone and body language. When it comes to the online communication media or even a text message (SMS), we have to make sure to use that 7% effectively to contribute to the entire message, since the other two factors are not present. I often prefer lengthy mail over the short messages to avoid the "මරන්න එපා  නිදහස් කරන්න" scenarios due to the miscommunication. Sarcasm, pun, or jokes rarely interpreted correctly over the media except face-to-face.

Over technical ircs, we always ask the newbies to type in full, instead of using an sms language (I srsly hate ppl typng lk ths ovr ircs. I mean t). However we should accept the fact that the smileys support a lot over these communication media for an effective communication.
0) yes, I will give a try. 
1) yes, I will give a try. :) 
2) yes, I will give a try. ;)
3) yes, I will give a try. :(
4) yes, I will give a try. :P
5) yes, I will give a try. :S

You can get different meanings by going through the same sentence given above (0 - 5). I get the below meanings, actually. (Sentence 0 doesn't need further explanation - It is the sentence, without any smileys. It says itself).
1) yes, I will give a try. :) [I will happily give a try.]
2) yes, I will give a try. ;) [It will be fun to give a try. So I may.]
3) yes, I will give a try. :( [You ask me to give a try. So I will, though I am not competent enough]
4) yes, I will give a try. :P [I may give a try; most probably I won't.]
5) yes, I will give a try. :S [I am worried, whether I should really give a try.]

When interacting online, we always prefer to use the Internet slang and the smileys. They make the conversation more animated and interesting. An alphabetical list of the most commonly used internet slang can be found here along with their meaning. This site lists the smileys with their meaning. In a formal communication, we should always avoid the usage of smileys or the other languages except English (unless in a specified localized group) nevertheless. Saying everything directly in simple words would be better, to avoid miscommunication, as well as to suit the culture of the work environment.

Recently I lost the friendship (temporarily - I am pretty sure. I am capable enough to rectify this in the upcoming days myself, and we will be back to normal as good friends.) of one of my good friends due to some misinterpretation. It hurts nevertheless to hurt a good friend. So again it calls for this blogpost.

"I heard someone badmouthing you recently", I was told on a related context.
"Nevermind, that simply means, I am more important and influential to them than their own self. Just let them entertain you," I smiled.

Though badmouthers are annoying and irritating, there is nothing to worry about them. They do exist and let them exist (like all the other *things* in the environment). Fighting with them just reduces our effectiveness. We have the freedom to choose our response in an effective manner, after all!

Wednesday, April 13, 2011

Dropbox Error in Ubuntu 10.04

I have been using Dropbox to store my documents safe over online, syncing with my local file system (Ubuntu 10.04 Operating System - 32 bit). Recently it stopped initializing during the startup, where it was working perfectly earlier times. The error message stated, "Couldn't start Dropbox - This is usually because of a permission errors. Errors can also be caused by your home folder being stored on a network share. Please contact support with the following information for more help: /tmp/dropbox_error3aMj4F.txt"

So I opened the file, 
pid:    2283
ppid:    2261
uid:    1000
user_info:    ('pradeeban', 'x', 1000, 1000, 'pradeeban,,,,', '/home/pradeeban', '/bin/bash')
effective_user_info:    ('pradeeban', 'x', 1000, 1000, 'pradeeban,,,,', '/home/pradeeban', '/bin/bash')
euid:    1000
gid:    1000
egid:    1000
group_info:    ('pradeeban', 'x', 1000, [])
effective_group_info:    ('pradeeban', 'x', 1000, [])
appdata:    u'/home/pradeeban/.dropbox'
    mode=040755    uid=1000    gid=1000
parent    mode=040755    uid=1000    gid=1000
dropbox_path:    u'/home/pradeeban/Dropbox'
    mode=040755    uid=1000    gid=1000
parent    mode=040755    uid=1000    gid=1000
HOME:    /home/pradeeban
tempdir:    '/tmp'
    mode=041777    uid=0    gid=0
parent    mode=040755    uid=0    gid=0
Traceback (most recent call last):
  File "__main__dropbox__.py", line 699, in main_startup
  File "__main__dropbox__.py", line 419, in run
AssertionError: Wrong build of Dropbox (9 vs 14 needed)

Googling the last 3 lines gave me the solution.
pradeeban@pradeeban-laptop:~$ dropbox stop
Dropbox isn't running!
pradeeban@pradeeban-laptop:~$ dropbox status # Should report "not running"
Dropbox isn't running!
pradeeban@pradeeban-laptop:~$ rm -r ~/.dropbox-dist/
pradeeban@pradeeban-laptop:~$ dropbox start -i
Starting Dropbox...
Dropbox started initializing fine during the start-up and also worked perfectly after that.

Sunday, April 10, 2011

Retina India and WWW2011India

WWW2011 Conference (20th International World Wide Web Conference) was held at HICC (Hyderabad International Convention Centre), Hyderabad, India 28th of March - 1st of April. Chathuri and myself from WSO2 attended the conference as delegates. It was a remarkable trip to Bangalore (26th & 27th, March 2011) and Hyderabad (28th March - 2nd of April 2011).

We attended the 2nd International Workshop on RESTful Design (WS-REST 2011 - 28th March: Proceedings), the 1st International Workshop on Social Media Engagement (SoME 2011 - 29th March), Dev Track – [Mostly Cloud Computing] (30th and 31st, March), and a paper presentation on a few Research Papers on the final day (Information Credibility, Web Applications, and Monetization). Key note speeches were given by Dr. A. P. J. Abdul Kalam (Scientist and ex-president of India), Sir Tim Berners-Lee (The inventor of the world wide web), and Christos H. Papadimitriou (Professor of Computer Science at UC Berkeley).

There were booths, posters, and exhibits as well. Google, Yahoo!, InfoSys, Tata Consultancy Services, ApnaCircle, Zoho, IET, and some other companies/organizations had their booths during the conference days. But one booth grabbed special attention from most of us. It was the booth from Retina India.

"Retina India is an umbrella organization of people with retinal disorders, their families and friends, which brings them on a common platform with experts such as physicians, researchers, counselors, low vision and mobility experts, and other specialists, such that there is a cohesive focus towards increasing awareness of retinal diseases in society as well as about the people who get affected by them, and inducing innovative research and treatment efforts for such diseases."

It was so impressing and motivating to listen to Mr.L.Subramani, who is a differently abled journalist also a trustee for the organization. He did a small presentation after the social event - a Kuchipudi (తెలుగు : కూచిపూడి) dance (The cultural dance of Andhra Pradesh in India) series from Yamini Reddy and team. We were also able to talk to him in person at the booth of RetinaIndia. His message was clear. It asked the *normal* people to open their eyes. It also had the strong power and message. He invited the developers of the web sites and applications to consider the accessibility aspect of the programs. He pointed out that many applications consider the accessibility by differently abled persons (specially people with vision problems, partial or full blindness), but not many web sites. His suggestion is to involve the differently abled people in the development of the sites and the applications, such that they will be able to take part in shaping up the accessibility of the products.

Retina India became the highlight of the event obviously. I strongly believe their vision will be successful not just in India, but all over the globe. May God bless the good hearts.

As a point to note: WWW2012 will be held at Lyon, France.

Wednesday, April 6, 2011

Localizing WSO2 Carbon based products

WSO2 Middleware Products and Services
WSO2 Carbon, is by design, an internationalized (i18n) platform, hence making all the products and services that are built on top of Carbon ready to be localized to any language of your choice. Users have shown interest and have also localized WSO2 products in Chinese, Sinhala, and some other languages to a considerable extent.

Componentized Architecture
WSO2 Carbon with its modular architecture, is made of components. You can either build the Carbon core and pick whatever the components you need and integrate them into your Carbon build, making a customized product of your choice, or you can simply pick on of the products, let it be Appserver, ESB, Mashup Server, from the list of products and build it from the profiles, as we have products well packed for the need of a software architect.

Getting the Product/Service
Now you have two choices, based on your requirements. If you are going to just use the WSO2 products, you can simply download and use the  binaries or download the released sources for the respective product and build the product using Maven, if you are a fan of building from the code.  But you may prefer to build WSO2 Products from the source repositories (svn) as well, if you want to build customized products, learn the complex code base of WSO2 Carbon, extend WSO2 Carbon or Stratos (WSO2 Carbon Platform Middleware as a Service), have the desire to use the technology in its bleeding edge, or OEM WSO2 products where you can get the commercial support from the WSO2 experts for your organization.

Localization ~ From the source
Now let's come to the localization. Say you want to use a WSO2 Product with the user interface in your language. For that, you have to localize the Resources.properties and JSResources.properties files in locations like carbon/components/stratos/tenant-mgt/org.wso2.carbon.tenant.mgt.ui/src/main/resources/org/wso2/carbon/tenant/mgt/ui/i18n, when coming to localize the source, even before building.

Localization ~Not a mere dream
But obviously what users choose is to localize the product binaries. Internationalization in WSO2 Carbon is done in such way so that by putting a single bundle, all text every where can be replaced. There is no manual work involved. If someone wants to introduce a new locale, just create a bundle containing all converted text, deploy & that's it.

eg: If you want to localize Component manager & User Manager to Spanish, here is what you need to do.

Create a OSGi bundle with following properties files in given folder hierarchy.

src/main/resources/org/wso2/carbon/component/mgt/core/Resources_es.properties
src/main/resources/org/wso2/carbon/userstore/ui/i18n/Resources_es.properties

Build the bundle & deploy feature. Now by changing the user interface language from the browser or system (based on your operating system), you should be able to see Carbon running in the chosen language.

And, if you need to localize every text, you just put all the resource files from every component into the above bundle. By design, we have followed the correct packaging. Hence, resource file from one component will not get replaced with another.

After localizing the relevant .properties files (basically changing the value string from English to Spanish, in the key=string pair in the relevant files), start (or restart if it is already started) WSO2 Stratos Manager. You can see the WSO2 Stratos Manager running in the Spanish (or whatever the localized language) interface.

Image 1: Stratos Manager - Interface in Spanish
submit.tenant=Enviar Inquilino
domain=Dominio
domain.information=Inf. de dominio
contact.details=Datos de contacto
admin.username=Admin Usuario
current.admin.password=actual contraseña del administrador
new.admin.password=Nueva contraseña del administrador
new.admin.password.repeat=Nueva contraseña del administrador (Repetición)
admin.password=Contraseña del administrador
admin.password.repeat=Contraseña del administrador (Repetición)
govern.add_tenants.menu=Añadir un nuevo inquilino
govern.view_tenants.menu=Ver los inquilinos
overview=Información general
tenants.list=Lista de Inquilinos
company.organization=Empresa/Organización
admin.contact=Contacto Administrativo
edit=Editar
multitenancy=Multiusuario
added.successfully=Ha agregado un nuevo inquilino con el dominio:
updated.successfully=Ha actualizado correctamente el inquilino con el dominio:
update.added.tenant=Actualizar la acaba de agregar/inquilino actualizada
update.tenant=Actualizar Inquilino
add.new.tenant=Añadir un nuevo inquilino
register.new.organization=Crear una nueva organización
view.all.tenants=Ver todos los inquilinos
tenant.admin=Inquilino Admin
tenant.description=Descripción Inquilino
admin.fullname=Nombre completo
admin.firstname=Nombre
admin.lastname=Apellido
admin.address=Dirección
admin.email=Correo electrónico
admin.telephone=Teléfono
admin.im=IM
admin.url=URL
self.registration=Registro de Inquilinos
gaas=GaaS
gaas.register.a.new.tenant=Crear un nuevo inquilino
active=Activo
theme.management=Tema de Gestión
word.verification=Verificación de la palabra
captcha.message=Escriba los caracteres que ves en la imagen de abajo.

created.date=Fecha de creación