Briefly introduction to make it understandable to one and all:
Product: an item that ideally satisfies a market's want or need
Service: provision of assistance to customers or clients, products or projects
The product or service is nothing new and it exists in every domain/space across the industry. Let me take up IT as I am into it. Well I started my career with a product based company. From then on I was fortunate to be associated with innovative products, budding products wherever I go.
While I was having a chat with one of my room mates, who worked with few java based projects there arose a little interesting topic, Product based company OR Service based company.
I just raised the same question with Linkedin community to provide their views as follows:
In IT which is good choice to shape a good career is it in Product based company or Service based company? Please give the pro's of each and also con's (if any!)
Following is the response from Rajesh Tibrewala, in which he covered the answers/views of the rest of people who attempted to answer the question.
It varies from person to a person. What i can share with you is how life in one differs from another:
1. Product Based Companies
You spend a lot more time with the same technologies, same code base, and often the same set of features.
You can never know your customer too well - remember, a product is ultimately an attemp to fit the same shoe to feet of all shapes and sizes (but the alternative is the software industry is - people would need to walk barefeet because turnkey projects are too expensive)
If you work on a successful product for a long period of time, the sense of achievement can be tremendous
Seeing a lot of happy customers is thrilling indeed
There are often comparitively long periods of lull - when the product strategy team is trying to figure out the future roadmap, and the latest release is already out
Often you will end up working on a codebase that noone owns - becuase the product is very old, and none of the original code authors are around. Also, the technology the product is based on could be nearing its death
2. Projects
Often developed from scratch - so you start with a clean slate
You get to know your customer very closely
Fast movement across domains, and often technologies
Direct appreciation by the customer
Often more time pressure compared to product cos
Well I selected this as best suit answer (in my view). Please read here for the rest of answers.
My LinkedIn Profile : http://www.linkedin.com/in/sumanthkrishna
Wednesday, June 18
Tuesday, June 17
Career Steps: Go by the work and not just by the "BRAND" !
To be frank nobody told me about this, but over the time I understood it. Well the credit goes to my managers and superiors who took special care in teaching me part of industry.
The reason behind the post is, I was at an Engineering college in outskirts of Hyderabad to take a session on Ruby, as part of Open Source talks. Thanks to SWECHA, for giving me the opportunity. Before I started the session I had few questions to the group of 200 odd students so that I can deliver what they are looking for? (Hitting them straight, without wasting my time!).
Interestingly not many of them are aware of any scripting languages, until SWECHA organised series of sessions/talks.
Well during the ruby talk, I did not bug them with usual slides but just directly walked through examples (that kept them awake and attentive through out the session!).
During the Q&A, the usual questions were fired up:
Does the company X, Y, Z implementing it?
And then list of few big IT brands started flowing out of them, well I just wondered whether they are looking for the exciting work they will be assigned or just by the "BRAND". Here comes the role of placement officers of the institutes very well to bridge the gap. Occasionally, many groups with industry people visit these colleges to give an exposure and understanding of the industry, current trends, demanding technology/tools...
But what about the colleges that do not get these groups/industry people do not visit?
This is where everyone need play pro-actively in deciding their career based on their interests, knowledge, skills. Students/Freshers should start interacting more with industry people, start gathering/attending to technical/industry forums, discussions and talks.
This kind of socializing will make them understand the reality and they can be prepared for the same and this would help the industry to get skilled people or right attitude people.
As far as I know, Twincling is the one such group with lots of momentum among the student groups, communities, industry that is doing it's role of spreading the awareness. Twincling members are ready to travel length and breadth of Andhra Pradesh (for time being) and conduct workshops for free. Contact the group for more details.
The reason behind the post is, I was at an Engineering college in outskirts of Hyderabad to take a session on Ruby, as part of Open Source talks. Thanks to SWECHA, for giving me the opportunity. Before I started the session I had few questions to the group of 200 odd students so that I can deliver what they are looking for? (Hitting them straight, without wasting my time!).
Interestingly not many of them are aware of any scripting languages, until SWECHA organised series of sessions/talks.
Well during the ruby talk, I did not bug them with usual slides but just directly walked through examples (that kept them awake and attentive through out the session!).
During the Q&A, the usual questions were fired up:
- What is the future for Ruby?
- Can Ruby be used for Desktop and Mobile applications?
- Java vs Ruby?
- Python vs Ruby?
- Who are all implementing/working on Ruby?
Does the company X, Y, Z implementing it?
And then list of few big IT brands started flowing out of them, well I just wondered whether they are looking for the exciting work they will be assigned or just by the "BRAND". Here comes the role of placement officers of the institutes very well to bridge the gap. Occasionally, many groups with industry people visit these colleges to give an exposure and understanding of the industry, current trends, demanding technology/tools...
But what about the colleges that do not get these groups/industry people do not visit?
This is where everyone need play pro-actively in deciding their career based on their interests, knowledge, skills. Students/Freshers should start interacting more with industry people, start gathering/attending to technical/industry forums, discussions and talks.
This kind of socializing will make them understand the reality and they can be prepared for the same and this would help the industry to get skilled people or right attitude people.
As far as I know, Twincling is the one such group with lots of momentum among the student groups, communities, industry that is doing it's role of spreading the awareness. Twincling members are ready to travel length and breadth of Andhra Pradesh (for time being) and conduct workshops for free. Contact the group for more details.
Labels:
andhra pradesh,
AP,
career steps,
hyderabad,
skills,
swecha,
twincling
Wednesday, May 7
Extra Money OR Extra Skill !!!
There is slight personal experience attached to this post. Though I though it will fit on my personal blog, still the skill/technlogy is involved it would equally fit even here.
It's been three years (short of few days) in this IT industry. It's been great learning and at every stage and reminds me there is still more to learn.
There was a great temptation in the initial days to look out for extra money options. It's the general feeling that every individual carried on with. It was the time when Blogging culture was spreading very rampant in India and across the world, I got few opportunities to work with Wordpress Blog Engine.
Somehow, the way of the customization, deployment and taking it to live was very very simple(at least I felt) at the same time decent money. From then on I started working towards improvising/gaining more and more knowledge on Blogs. I started marketing myself as Blogger/Blog Expert.
Extra Money:
Coming on to my experience, though I ventured out as an Extra money (though not so successful) option this was really turned out to be an Extra Skill (which I really feel added some flavor to my skill set).
There are more such things which can not be comprised into single post. But I thought to reveal more as series of posts :)
It's been three years (short of few days) in this IT industry. It's been great learning and at every stage and reminds me there is still more to learn.
There was a great temptation in the initial days to look out for extra money options. It's the general feeling that every individual carried on with. It was the time when Blogging culture was spreading very rampant in India and across the world, I got few opportunities to work with Wordpress Blog Engine.
Somehow, the way of the customization, deployment and taking it to live was very very simple(at least I felt) at the same time decent money. From then on I started working towards improvising/gaining more and more knowledge on Blogs. I started marketing myself as Blogger/Blog Expert.
- Marketing a Business/Company/Individual
- Making blog as revenue generator.
- Improvising the Blog/Website traffic.
- SEO (Search Engine Optimization)
- Google AdSense and Adwords.
- RSS Feeds.
- Blog Widgets.
- Rich User Interface.
- Blog making it more user centric.
- ....
- ...
Extra Money:
- You start looking out more options only when you feel/evaluated/decide that this going to be paid later.
- One may find difficult to survive as the competition grows.
- Transition to other technologies/expertise is difficult.
- With gaining knowledge in the back of mind, you explore more and more soon you will discover that you have an edge over others.
- Survival is not the issue as your interest was to gain more knowledge/expertise.
- This is not a transition, but just another skill set.
Coming on to my experience, though I ventured out as an Extra money (though not so successful) option this was really turned out to be an Extra Skill (which I really feel added some flavor to my skill set).
There are more such things which can not be comprised into single post. But I thought to reveal more as series of posts :)
Labels:
blogs,
drupal,
expression engine,
extra skill,
joomla,
money,
skils,
wordpress
Wednesday, April 9
Build your own OpenSearch/Sherlock engine
It's been long since I blogged anything other than Ruby on Rails. I am trying my best to make RoR tutorials as simple as possible. Just little bit deviation from RoR but still on to Web based topics - "Browsers".

I thought of writing a post on creating/building an opensearch engine for your own site, but I just documented for better understanding and made it availble to download/view online.
The document covers the two approaches to create a search client. The code snippet contains the code with sphred as the example site.

View on Scribd:
Download :
Feedback/Suggestions welcome :-)

I thought of writing a post on creating/building an opensearch engine for your own site, but I just documented for better understanding and made it availble to download/view online.
The document covers the two approaches to create a search client. The code snippet contains the code with sphred as the example site.

View on Scribd:
Download :
Feedback/Suggestions welcome :-)
Labels:
firefox tips,
mozilla,
opensearch,
sherlock engine,
sphred
Thursday, April 3
ActiveRecord - CRUD operations - 2
We learn t how to create rows in the database. Moving next in CRUD, it is Reading data from db tables. Reading data involves/requires set of constraints/conditions. Something like, details of specific user, product pricing range, sorting order, matching criteria... and the list goes on. To go ahead with these operations ActiveRecord provides the following handy methods, parameter symbols to you:
find
find_by_xyz
find_by_sql
:first :all :conditions :include :order :limit :select :joins :offset :readonly :lock
etc...
Getting into details, previously we created few rows about user into users table. Now we use this find to read/retrieve the data. Little about "find", it is counterpart for "select * from users" in SQL. The syntax is very plain and simple to pick up.
Say, now I want to read/retrieve the data of all users.
Like, I want user with a specific name
User.find(:first,
:conditions => "name='sumanth'" )
but in case the name to be matched comes dynamically through params, then there would be slight change in the above syntax. Like this,
if you want more than one parameter to be checked/matched in the conditions then we can separate each with 'and'.
find
find_by_xyz
find_by_sql
:first :all :conditions :include :order :limit :select :joins :offset :readonly :lock
etc...
Getting into details, previously we created few rows about user into users table. Now we use this find to read/retrieve the data. Little about "find", it is counterpart for "select * from users" in SQL. The syntax is very plain and simple to pick up.
Say, now I want to read/retrieve the data of all users.
User.find(:all)so the find method connects to users table (through User class of model) and through parameter "all" it fetches info of all the users a simple array. If we use parameter :first, then only first record would be fetched.
User.find(:first)say now I want to introduce some constraints. :conditions is the parameter to be used.
Like, I want user with a specific name
User.find(:first,
:conditions => "name='sumanth'" )
but in case the name to be matched comes dynamically through params, then there would be slight change in the above syntax. Like this,
User.find(:first,
:conditions => "name=?,params[:name] ")
or
User.find(:first,
:conditions => "name= '#{params[:name] }'")
if you want more than one parameter to be checked/matched in the conditions then we can separate each with 'and'.
User.find(:first,thus we can play around with more options/parameter that "find" accommodates. Don't forget to separate each options with "," as I had used it after :first and before :conditions options.
:conditions => ["name=? and email=?",params[:name] ,params[:email]])
Labels:
:all,
:first,
activerecord,
CRUD,
find,
rails,
ruby on rails
Wednesday, April 2
ActiveRecord - CRUD operations -1
Having seen how do we handle the relationships across db tables through rails now let us dig little deeper on how to perform CRUD operations.
Create
Read
Update
Delete
Well Rails ActiveRecord does help you out with lots of keywords and many more convenient, easily understandable, meaningful commands. In nut shell, you can carryout all these sql queries without using sql syntax at all...
Inserting data - We generally use SQL Insert statements to insert/create new rows of data and Rails offers a simple way of creating new rows in tables. One of doing it is by using "new" or by "create" method.
The syntax looks very simple, as below:
Based on previous posts we can coolly observe/interpret the above code like this:
Because, new method would only creates an object and so to store into db we need to explicitly say it to save.
Is there any alternative one?
In many instances, people create objects, define the data and they tend to forget saving the data. Active Record offers another method, create, which would instantiates the model object as well as stores it into the database.

Using both new, create methods we can either insert multiple rows of data or even the form data can be passed as parameters.
Create
Read
Update
Delete
Well Rails ActiveRecord does help you out with lots of keywords and many more convenient, easily understandable, meaningful commands. In nut shell, you can carryout all these sql queries without using sql syntax at all...
Inserting data - We generally use SQL Insert statements to insert/create new rows of data and Rails offers a simple way of creating new rows in tables. One of doing it is by using "new" or by "create" method.
The syntax looks very simple, as below:

- As per ActiveRecord pattern in rails, this says that User is the model connecting to users table in database.
- All the columns (eg:name here...) of the "users" table go in do ... end loop, 'u' is the iterator.
- Once you set the values of each column then end with save (u.save).
Because, new method would only creates an object and so to store into db we need to explicitly say it to save.
Is there any alternative one?
In many instances, people create objects, define the data and they tend to forget saving the data. Active Record offers another method, create, which would instantiates the model object as well as stores it into the database.

Using both new, create methods we can either insert multiple rows of data or even the form data can be passed as parameters.
Wednesday, March 19
ActiveRecord - Connecting to DB and tables
I thought compiling of all my previous posts and documenting would be of great help to all users including off line. I compiled all the posts where I discussed on
Connecting to databases
Pluralization convention
Relationships between tables
...
Download here
View on Scribd
this would help all to keep in touch before we go deeper on to more Active Record.
more fun awaiting :-)
Connecting to databases
Pluralization convention
Relationships between tables
...
Download here
View on Scribd
this would help all to keep in touch before we go deeper on to more Active Record.
more fun awaiting :-)
Thursday, March 13
Firefox Profile Manager
I am fond of using the one of the key feature of Firefox browser i.e., Profile Manager. For developers especially, it means not to mess up our work.
I prefer to use each different profile for the different extensions/add ons that I am working on for Firefox browser and not to mess up these with my default profile which I mail use for browsing and mailing purposes.
For the benefit of first timers, profiles can be created (in Windows) from the run command window
I run teh command
With Minefield (Firefox 3.0*) around we need to start our development/testing even on Minefield apart from regular FF2.0*. Now the same old commands of creating profiles firefox would not work...
Since the minefield is intalled, and being latest the above commands would result in creating profiles in the Minefield but not into the Firefox. There is another command which many might have forgotten:
Thanks to my friend Aruna, whose query had made me dig into Profile Manager of Mozillazine Knowledge base and resulted in writing this post.
I prefer to use each different profile for the different extensions/add ons that I am working on for Firefox browser and not to mess up these with my default profile which I mail use for browsing and mailing purposes.
For the benefit of first timers, profiles can be created (in Windows) from the run command window
I run teh command
- firefox.exe -P
- firefox.exe -profilemanager
With Minefield (Firefox 3.0*) around we need to start our development/testing even on Minefield apart from regular FF2.0*. Now the same old commands of creating profiles firefox would not work...
Since the minefield is intalled, and being latest the above commands would result in creating profiles in the Minefield but not into the Firefox. There is another command which many might have forgotten:
- "C:\Program Files\Mozilla Firefox\firefox.exe" -profilemanager
- "C:\Program Files\Minefield\firefox.exe" -profilemanager
Thanks to my friend Aruna, whose query had made me dig into Profile Manager of Mozillazine Knowledge base and resulted in writing this post.
Labels:
firefox addons,
firefox extensions,
firefox tips
ActiveRecord association has_many :through
We had seen how a has_and_belongs_to_many works with a join table. But apart from carrying the foreign keys the join table has nothing much to do over there. So to have more features added and retaining the goal of having many-to-many relationships we will discuss now another rails offering "has_many, :through".
The above snippet shows a simple example from Josh Susser's blog.
The scenario shows that there are two tables "books" and "contributors" and the a join table "contributions". This is entirely different from habtm, where we had the join table with combination of tables.
And syntactically, we say to each of tables (books, contributors) that they are related to each other through "contributions".
So the join table would have a simple belongs_to and the individual tables will be related with has_many:'table_name' and keyword :through=>'name_of_join_table'
That is with the ActiveRecord relationships. Just to recap
has_and_belongs_to_many
has_many, has_one, belongs_to
We will be slowly moving into other part of rails packages, ActionPack soon.
The scenario shows that there are two tables "books" and "contributors" and the a join table "contributions". This is entirely different from habtm, where we had the join table with combination of tables.
And syntactically, we say to each of tables (books, contributors) that they are related to each other through "contributions".
So the join table would have a simple belongs_to and the individual tables will be related with has_many:'table_name' and keyword :through=>'name_of_join_table'
That is with the ActiveRecord relationships. Just to recap
has_and_belongs_to_many
has_many, has_one, belongs_to
We will be slowly moving into other part of rails packages, ActionPack soon.
Labels:
activerecord,
habtm,
has_many :through,
many-to-many
Sunday, March 9
ROR Workshop -1
Ruby on Rails workshop went on well. As stated in my previous post, I introduced the Ruby and Rails. Spent bit time around how the web applications work in general and the features that rails equipped with to address the each and every requirement.
Though I am not getting into more details in this post, soon I will be writing/discussing more about them. I thought I would thank one and all in making this workshop pretty informative and very good overall.
Members of Twincling Community
Saifi
Namita
Sumith
My Friends
Rajesh Batta
Hareesh Kumar
My Juniors
Anas
Hafeez
Haritha
Lokesh
Rasheed
Sravanthi
and the great audience. At the end of the day, I felt very very good when few of the attendees asked details about next session.
In fact, I would like to cover few other topics like, Testing in Rails, Exceptional Handling, Migrations & Generators and Plugin integrations ... feel free to comment :-)
Though I am not getting into more details in this post, soon I will be writing/discussing more about them. I thought I would thank one and all in making this workshop pretty informative and very good overall.
Members of Twincling Community
Saifi
Namita
Sumith
My Friends
Rajesh Batta
Hareesh Kumar
My Juniors
Anas
Hafeez
Haritha
Lokesh
Rasheed
Sravanthi
and the great audience. At the end of the day, I felt very very good when few of the attendees asked details about next session.
In fact, I would like to cover few other topics like, Testing in Rails, Exceptional Handling, Migrations & Generators and Plugin integrations ... feel free to comment :-)
Subscribe to:
Posts (Atom)