Tuesday, December 31, 2013

End of an era of my Happiest days @ Happiest Minds !!!

This is my first and last post of 2013. Where, 45 mins left in 2013. And, Its time for me to retrospect last couple of years at Happiest Minds.

Interview:
     It was a great interview experience. Being an early bird in Happiest Minds, I got that special privilege of skipping those boring aptitude rounds as a fresher. Instead, I got a problem statement to be cracked and solved as a real case study. Loved it like Heaven! Was very interesting phase of interview. Finally, After clearing a couple of more technical rounds, I was interviewed by Happiness Evangelist - Sharon Andrew. This again was a cool concept of Happiest Minds that none other companies really do in the market. EOD, I was announced "Through In" by HR. And, Joined office on October 5th.

Initial days:
     Being 45th employee of a wannabe world class company, What more can you expect than to be introduced to Chairman and Founder of a serial global companies like Mindtree, Happiest Minds - Mr. Ashok Soota. I was really blessed to work with people like Sajan, Mak, Ravi & Ravi, Nanda, Gautam, Vaibhav etc.. Learnt a lot from each of these guys. Undoubtedly, I will be indebted to these guys for all my success.

First 8 months in Happiest Minds will be the "Golden Era" of my career. Got chance to learn and practice best of the market technologies, learn market trends, see business and experience niche management practices in companies. I'm really proud to have been there and done that. It was a great and fast learning experience.

A year old baby:
      The day when i completed my first year in Happiest Minds is when i started getting that confident and happy feeling about myself. When i tried to see what all i tried in 1 year, I was over joyed by the celebration of completing my first year in IT industry. But, Learning never slowed for me Happiest Minds. It was because of the great support of people like Ravi Vemuri and Ravi Bonu that, I got reverberating motivation and comfortable environment to learn, question and understand people.

      Projects kept on changing for me periodically. i.e At the checkpoint of first year, I was working in my 4th Project! Which were all in different technologies, domains and people. With love for web and mobility, I was motivated towards HTML5, CSS3 and Javascript for the first 1 year. Loved it to the core :)

The Next 1 Year:
      Right after completing my first year at Happiest Minds, I was posted to a client location - 24/7 Customer. Never did i ever imagine that, this temporary exit would be my last work stay at Happiest Minds. With a very skeptical readiness, I finally landed on the firing ground of 24/7 iLabs. Though the initial days were really hard and tough, Things went really good on my way. Lot of new concepts, great people, excellent management, good to work platform were the typical characteristics at iLabs.

     iLabs was a place with rapid pace in project progress and deployment. Crunching deadlines, challenging expectations and logical work made me more stable to accustom to IT industry. This was the place where i learnt the process and engineering to the core. Excellent people in iLabs, without whom i would have never been able to comfortably understand a platform like PxOE. Special thanks to all the Happiest Minds team in iLabs, Without whom i should have been left dumbfolded in 24/7 office.

Final days:
      With an immense pain and hard sentiments for both 24/7 iLabs and Happiest Minds, It was really hard for me to get out of the attachment with all the people and places i have been loving for around 2 years now. But, the reason for me to depart from Happiest Minds won against the sentiments which was bothering me. With a solid decision to start Slamigo full time made me resign from Happiest Minds.

      These were very hard days, I had to eat out a lot pain by myself. More than anything else, I was more sentimental about my employee ID in Happiest Minds - 45 (Already there were 2000 people by now !!)

      With best wishes from all my seniors, colleagues, management etc.. from Happiest Minds, My last day in Happiest Minds was on 26th December which turned out to be a very sorrowful day for me with lot of lonely feeling. Whatever, i will miss this place and people forever.

Thanks a lot you all for everything!!!

Will meet you guys again.

Thanks,

Cheers,
Chaitanya

Saturday, September 29, 2012

What is Social Computing ? the easy way..

When you look at the title of this post, you might be thinking for a while as to there are a million posts and articles that you can find in Google for the keyword "What is Social Computing ?" :) Why yet another post with same title ?? Will be back to this point in a while.. Let me put some of the definitions for "Social Computing" you can find online..

"Social computing is a general term for an area of computer science that is concerned with the intersection of social behavior and computational systems."

   - Wikipedia

"Social Computing is a concept to research and develop software that contributes to compelling and effective social interactions, with a focus on user-centered design processes and rapid prototyping combined with rigorous social science."
 - Microsoft Research


"Social computing is the collaborative and interactive aspect of online behavior. The term can be understood in contrast to personal computing, which describes the behavior of isolated users."
  - WhatIs.com

"The Social Computing is to work on models for information processing that work from multiple angles. To build sociotechnical tools that aim to create substantive human connections as part of the process of data analysis. "
  - The MIT Media Lab

"Social Computing Research focuses on methods for harvesting the collective intelligence of groups of people in order to realize greater value from the interaction between users and information."
  - HP Social Computing Research

The list is boundless...

So, Let us try to decode the concept in naive sense about social and computation..

What really is Social Computing?
  • The drift happening in the digital ways of communication and collaboration among people.
  • Doing anything and everything you do in your daily life with people behaviour and sentiment calculation in mind.
  • Capturing the interactions among people and getting a meaning out of it.
  • Analysis and Prediction of market behaviour and human reaction.
How it started?
  • Any guesses..? 
  • The Idea of social computing originated around the year 1940.
  • Memex(1940), were one of the first ever social communication conceptual medium.
  • As the years passed, the change in ways of social communication progressed gradually by the following advancements in the field of - Computers(1950), ARPA(1960), Office Automation(1970), Computer Supported Collaborative Work(1980), Groupware(1990), Web(1992), Social Software(1995), Social Networking Websites(2001), Social Media(2003), Facebook(2004).. 

How it works? 
  • By the People, For the People and To the People.
  • People put content for other people and this collection of user data forms the basis of a social computing.
  • The best far ever social computing products have been concentrating on behavior and reaction of people to real world problems they face.
  • Reading problems that people are facing and finding a better solution for it.

Is it Fundamental shift in the way we communicate? Or is it just a Fad?
  • Social Media, Social Communication, Social Computing and Social Networking is the next best thing happening on the Web.
  • People want to revolutionalize the way they work and collaborate in their workplace.
  • Organisations wants a better way of marketing their products.
  • People love to know about their friends and want to see what their friends like or willing at ?
  • Social Media is the Modern way of doing Business Process by overriding the Legacy way of doing things.
How can we take it to our lives? 
  • If you ever used facebook, twitter or linkedin.. You have experienced social computing.
  • Social way of life makes us realize the things around us with more clarity and visibility.
  • By using the social communication and other applications based on social domain.
What for it can be used? 
  • Social Computing can be used by anyone, anytime, anywhere and for any cause.
  • Right from your friends birthday invite to solving world hunger strike.. Social computing helps us do the needful for the people.
  • Market Research and Analysis.
  • Branding and Marketing.
  • Business Process/ Process Flow optimization.
Guess The Future?
  • Please comment on this post and say what are your thoughts on Future of Social Computing..

References:

Sunday, April 22, 2012

HTML5, The next gen App development platform

Think of a language that is as easy as HTML, has Integrated local storage as that of android, cross platform as that of Java, UI Engine as cool as in ios, media support as that of Flash, lightweight implementation for any Mobile Platform, Full SEO support..

Got any Idea? Yep, Its HTML5 !!



Since its Inception in 2004, HTML5 is being developed as to be one of the next gen Web Tech.
It is bundled with many of the platform based features such as:

  • The canvas element for immediate mode 2D drawing.
  • Timed media playback
  • Offline Web Applications
  • Document editing
  • Drag-and-drop
  • Cross-document messaging
  • Browser history management
  • MIME type and protocol handler registration
  • Microdata
  • Web Storage
How HTML5 started?
From the Birth of web in 1989, Web has seen many transitions happen, but still 1 thing that has not changed  drastically over time is HTML. The core features of HTML were just enhanced and carried away in all enhancements of HTML. In order to bring a revolutionary addition and to meet the cross platform necessity of a HTML page/app, WHATWG and W3C with help of some other big players in game like Apple and Google started with the HTML5 in 2004. The main motto of WHATWG and W3C was to create a new standard for HTML that will have a standard both on Desktop as well as Mobile phones browsers.


What HTML5 brings to Web?
The most common words i heard about HTML, CSS, Javascript development are delicate, fuzzy, dumb, limited, non-programmer language etc.. But, the advent of HTML5 makes HTML as one of the most app developer oriented language. It comes with all those app developer friendly features for desktop/mobile web App development. And the new APIs added in HTML5 are "write less, do more" kinds.


Uses of HTML5:
Though HTML5 was started with main intention of only web, later by the time of Mobile era and by the vision of Apple and similar companies, HTML5 entered the Mobile market and is said to be the future of Mobile web and cross platform Mobile App development platform.

What is so special about HTML5?

  • Very easy to learn
  • Developer friendly APIs
  • write less, do more (though its jQuery punch line, bear with me :) )
  • All platform features that a mobile web app needs (except hardware support)
  • A standard by W3C, hence will be available soon in all browsers
  • cross platform app that can run on any mobile platform exactly same

When HTML5 will hit the market?
As per the latest wiki update, HTML5 will be released for recommendation by 2014.
Though many of the current browsers are already supporting HTML5 features, by 2014 HTML5 is supposed to be a new standard for web. 



For further reference:
http://en.wikipedia.org/wiki/HTML5
http://slides.html5rocks.com/#landing-slide
http://www.html5rocks.com/en/
http://html5demos.com/

Cheers,
Chaitanya

Saturday, March 17, 2012

"A Patchy Server" - The story of a guy who dominates server hosts.

Apache Group is a collection of talented individuals who spend a great part of their free time trying to create the best web server money can't buy.

Yes, I'm referring to "The Apache"! One of the coolest, robust and ultimate server that humanity has been gifted from the times of birth of WWW. It is one of the best creations in the history of WWW/Computers.
What makes it so unique and stand away from crowd product, let us figure out in following lines..

When was Apache built ?

In February of 1995, the most popular server software on the Web was the public domain HTTP daemon developed by Rob McCool at the National Center for Supercomputing Applications, University of Illinois, Urbana-Champaign. However, development of that httpd had stalled after Rob left NCSA in mid-1994, and many webmasters had developed their own extensions and bug fixes that were in need of a common distribution. A small group of these webmasters, contacted via private e-mail, gathered together for the purpose of coordinating their changes (in the form of "patches"). Brian Behlendorf and Cliff Skolnick put together a mailing list, shared information space, and logins for the core developers on a machine in the California Bay Area, with bandwidth donated by HotWired. By the end of February, eight core contributors formed the foundation of the original Apache Group.
Why is it called Apache ?
Using NCSA httpd 1.3 as a base, Apache group added all of the published bug fixes and worthwhile enhancements they could find, tested the result on their own servers, and made the first official public release (0.6.2) of the Apache server in April 1995. Because, it was developed by aggregating all the patches together to form a end product it was called Apache (A Patchy Server).
How Apache started growing?
The early Apache server was a big hit, but they all knew that the codebase needed a general overhaul and redesign. During May-June 1995, while Rob Hartill and the rest of the group focused on implementing new features for 0.7.x (like pre-forked child processes) and supporting the rapidly growing Apache user community and the addition of many features in the form of our standard modules, Apache 1.0 was released on December 1, 1995.
Less than a year after the group was formed, the Apache server passed NCSA's httpd as the #1 server on the Internet and according to the survey by Netcraft, it retains that position today.
In 1999, members of the Apache Group formed the Apache Software Foundation to provide organizational, legal, and financial support for the Apache HTTP Server. The foundation has placed the software on a solid footing for future development, and greatly expanded the number of Open Source software projects, which fall under this Foundation's umbrella.
Why Apache is so special when there are other server softwares?


Firstly, Apache is a Open source project! It means, Apache is not only free of cost but also you can take the source code of Apache and make it work as you want. In the sense, You can redesign or redefine Apache as you want and Apache License allows you to do that. Apache as it comes is very stable, robust, fast, scalable and pretty decent. If you compare with any other enterprise server softwares, Apache is far more better in performance, support and documentation.

A peep into Architecture of Apache?







As in the above fig. we can divide Apache into 4 main Layers :

Operating System : Though OS has nothing much to do with Apache Architecture, the Apache core relies on its functionality. MPM contains the OS related APIs that makes Apache run on multiple platforms.

Apache core : The Apache core is the basic core of Apache that implements all basic functionalities of a server such as memory management, HTTP protocol, OS integration, Socket binding, port mapping, OS specific functionalities, process management etc.. For all the functionality that Apache gives us, Apache core is what that works to do so.

Apache Modules : This is the most interesting thing about Apache where, we can write modules that uses Apache core API and direct Apache to perform activities. Apache modules are independent of OS/Platform.
These Apache modules can also act as Interpreter for a CGI script / Runtime for a Language.

Programming Language : Any programming Language that we want to integrate with Apache has to to be intergrated with its compiler/Interpreter. This can be done in 2 ways, One is to write a module that interprets this language and second is to run this language as a CGI script.

Where can i find more info on Apache?
Apache is a open source project and people all around the globe use it and contribute to it. Hence, the vicinity of Apache is huge. You can get more details on Apache here : http://httpd.apache.org/ 

Cheers,
Chaitanya. 







Tuesday, January 24, 2012

Making HTTP Request/Response for oAuth in PHP using REST API's made easy.

As and on social apps are getting popular, oAuth using PHP is becoming a very common requirement for most of the social app developers. oAuth is an Authentication protocol (http://oauth.net/) that provides a handle for 3rd party website to access a users data from another platform. Most of these oAuth implementations support REST API using PHP.Hence, here is a list of tools and references that can make your PHP oAuth development easy when you are doing a HTTP Request/Response using REST API's.

  • oAuth : Open Authorization has 2 versions (oAuth 1 and 2). It Involves a series of token exchanges between 2 entities. A good presentation of oAuth is given below. oAuth Presentation.
  • cURL : To make a request and get response using PHP cURL is a ultimate option you can think of. Good cURL documentation - cURL docs.
  • oAuth Library: A Library that works across all the oAuth supported websites - oAuth Lib.
  • Signature generator : Generate signatures for oAuth Parameters - PHP Signatures.
  • Twitter oAuth Console : Check for oAuth signing here. Twitter Console.
  • Analyze HTTP Request : Observe HTTP Request and Responses using this wonderful tool. API Kitchen.
  • Fiddler : You can see all the requests and responses happening in your PHP code using the Fiddler. You can integrate cURL in your fiddler - config fiddler 
  • Sample oAuth Test Server - Test Server.
  • The complete guide for oAuth - Hueniverse.
And ofcourse php.net will be the baseline for the PHP part of it. Though there is pear extension for oAuth available in PHP, for better and easy development, oAuth Library is used. 1 key issue with all PHP oauth web apps is that of signing app keys using HMAC_SHA1 or SHA256 and encoding them and passing them to server via the cURL handle. But still this issue may be easily handled by reading about the oAuth specs in oauth.net. Cheers :)