Archive

Archive for the ‘Uncategorized’ Category

Apache Kafka – Introduction & Installation

apache_kafkaApache Kafka is a distributed streaming platform. What exactly does that mean? Why this Kafka?

Most traditional messaging systems don’t scale up to handle big data in realtime, however. So engineers at LinkedIn built and open-sourced Kafka: a distributed messaging framework that meets the demands of big data by scaling on commodity hardware.

In this post let we will start with how to install and run Apache Kafka in your development environment.

What is Kafka?

Apache Kafka is messaging system built to scale for big data. Similar to Apache ActiveMQ or RabbitMq, Kafka enables applications built on different platforms to communicate via asynchronous message passing. But Kafka differs from these more traditional messaging systems in key ways:

  • It’s designed to scale horizontally, by adding more commodity servers.
  • It provides much higher throughput for both producer and consumer processes.
  • It can be used to support both batch and real-time use cases.
  • It doesn’t support JMS, Java’s message-oriented middleware API.

Kafka’s basic terminology:

  • A producer is process that can publish a message to a topic.
  • a consumer is a process that can subscribe to one or more topics and consume messages published to topics.
  • A topic category is the name of the feed to which messages are published.
  • Each record consists of a key, a value, and a timestamp.
  • A broker is a process running on single machine.
  • A cluster is a group of brokers working together.
  • Kafka is run as a cluster on one or more servers.

Kafka’s API’s:

  • The Producer API allows an application to publish a stream of records to one or more Kafka topics.
  • The Consumer API allows an application to subscribe to one or more topics and process the stream of records produced to them.
  • The Streams API allows an application to act as a stream processor, consuming an input stream from one or more topics and producing an output stream to one or more output topics, effectively transforming the input streams to output streams.
  • The Connector API allows building and running reusable producers or consumers that connect Kafka topics to existing applications or data systems. For example, a connector to a relational database might capture every change to a table.

More details about Apache Kafka: https://kafka.apache.org/intro.

Kafka Architecture:

kafka_cluster_architecture

Kafka Installation:

Before installing Apache Kafka, you need to install Apache Zookeeper.  Service required by kafka for maintaining  all the required configuration information and for providing distributed synchronization.

Download Apache Zookeeper from: Download Zookeeper

Extract the zookeeper-3.4.10.tar.gz into your local drive eg: C:\apache\zookeeper-3.4.10\

  • Once you extracted the zookeeper, locate the conf folder. eg: C:\apache\zookeeper-3.4.10\conf
  • Rename the “zoo_sample.cfg” to “zoo.cfg” inside the conf folder
  • Create a data directory for zookeeper in your local drive. eg: C:\zk_data
  • and update the “dataDir=C:/zk_data” in the “zoo.cfg” file.

Download Apache Kafka from: Download Kafka

Extract the “kafka_2.10-0.10.2.1.tgz” into your local drive eg: C:\apache\kafka-2.10\

  • after extract you will find the server.properties file in side the config folder, in my case its: C:\apache\kafka-2.10\config\

Lets now start the zookeeper followed by kafka:

  • Start the Zookeeper server by executing the command:

       C:\apache\zookeeper-3.4.10\bin>zkServer.cmd            

zk_start.PNG

  • Start apache Kafka server by executing the command:

  C:\apache\kafka-2.10\bin\windows>kafka-server-start.bat C:/apache/kafka-2.10/config/server.properties 

kfk_start

  • Create a test topic that you can use for testing: “javainsider”

         C:\apache\kafka-2.10\bin\windows>kafka-topics.bat –create –zookeeper localhost:2181 –replication-factor 1 –partitions 1 –topic javainsider      

topic_created.PNG

  • Start a simple console consumer that can consume messages published to a given topic, such as “javainsider”:

    C:\apache\kafka-2.10\bin\windows>kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic javainsider --from-beginning    

kafka_consumer.PNG

  • Start up a simple producer console that can publish messages to the test topic:

     C:\apache\kafka-2.10\bin\windows>kafka-console-producer.bat --broker-list localhost:9092 --topic javainsider   

kfk_producer.PNG

  • Try typing one or two messages into the producer console. Your messages should show in the consumer console.

Congratulations! You are done with Apache Kafka installation and testing a Kafka instance with an out-of-the-box producer and consumer.

In my next blog post I will explain how to use the Apache Kafka with Java programs. Happy learning 🙂

Advertisements

Install MongoDB On Mac OS X

Easy spets to nstall MongoDB on Mac OS X ( I have used MAC OS – Mavericks)

Image

Step 1: Download MongoDB:

Download MongoDB for MAC OS from official MongoDB site:

http://www.mongodb.org/downloads

Step 2: Install MongoDB:

$ cd ~/Download
$ tar xzf mongodb-osx-x86_64-2.6.1.tar
$ sudo mv mongodb-osx-x86_64-2.6.1 /usr/local/mongodb

 

Step 3: Create MongoDB Data Directory:

By default, MongoDB write/store data into the /data/db folder, you need to create this folder manually and assign proper permission as given below:

$ sudo mkdir -p /data/db
$ whoami
garnaik
$ sudo chown garnaik /data/db

Step 4: Set you PATH on Bash Profile for MongoDB:

Create a ~/.bash_profile file if not exists else update, and assign /usr/local/mongodb/bin to $PATH environment variable, so that you can access MongoDB on commands easily.

$ cd ~
$ pwd/Users/garnaik
$ touch .bash_profile
$ vim .bash_profile
 
exportMONGO_PATH=/usr/local/mongodb
exportPATH=$PATH:$MONGO_PATH/bin
 
##restart terminal
 
$ mongo -version
MongoDB shell version: 2.6.1

Step 5: Setting for auto start MongoDB:

To auto start yor installed mongoDB, create a launchd job on your Mac OS.

$ sudo vim /Library/LaunchDaemons/mongodb.plist

And add the following content to “/Library/LaunchDaemons/mongodb.plist”

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
  "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>mongodb</string>
  <key>ProgramArguments</key>
  <array>
    <string>/usr/local/mongodb/bin/mongod</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
  <key>KeepAlive</key>
  <true/>
  <key>WorkingDirectory</key>
  <string>/usr/local/mongodb</string>
  <key>StandardErrorPath</key>
  <string>/var/log/mongodb/error.log</string>
  <key>StandardOutPath</key>
  <string>/var/log/mongodb/output.log</string>
</dict>
</plist>

Save the file and load the above job:

$ sudo launchctl load /Library/LaunchDaemons/mongodb.plist

$ ps -ef | grep mongo
    0    12     1   0  4:06PM ??         0:20.29 /usr/local/mongodb/bin/mongod
  501   542   435   0  4:37PM ttys000    0:00.00 grep mongo

Now restart your MAC OS.

Step 6: Start MongoDB:

If you already have added the above steps then MongoDB will start by the time your MAC OS started.

 

Otherwise you have to start MongoDB by using the below command:

$ mongod

Now ready to use MongoDB,

 

$ mongo
> mongod -version 
MongoDB shell version: 2.6.1
> show dbs
Local (empty)

SAX vs DOM Parser – Concept Revisited

Image

 

Both SAX and DOM Parser’s are used to parse the XML document. Both has advantages and disadvantages and can be used in our programming depending on the situation.

SAX: Is a stream-based processor. You only have a tiny part in memory at any time and you “sniff” the XML stream as it passes. It uses almost no memory, but you can’t do “DOM” stuff, like use xpath or traverse trees.

DOM: You load the whole thing into memory – it’s a massive memory hog. You can blow memory with even medium sized documents. But you can use xpath and traverse the tree etc.

 

SAX:

  • Parses node by node
  • Doesn’t store the XML in memory
  • We cant insert or delete a node
  • SAX is an event based parser
  • SAX is a Simple API for XML
  • doesn’t preserve comments
  • SAX generally runs a little faster than DOM

DOM:

  • Stores the entire XML document into memory before processing
  • Occupies more memory
  • We can insert or delete nodes
  • Traverse in any direction.
  • DOM is a tree model parser
  • Document Object Model (DOM) API
  • Preserves comments
  • SAX generally runs a little faster than DOM

If we need to find a node and doesn’t need to insert or delete we can go with SAX itself otherwise DOM provided we have more memory.

Read More on SAX:

http://en.wikipedia.org/wiki/Simple_API_for_XML

Categories: Uncategorized Tags: , , ,

Common Interview Questions

October 14, 2012 1 comment

After a long time thought off to blog something about the common Interview questions and finally am writing here…

Please review these typical general interview questions and think about how you would answer them. Read the questions listed; you will also find some strategy suggestions with it.

1. Tell me about yourself:
The most often asked question in interviews. You need to have a short statement prepared in your mind. Be careful that it does not sound rehearsed. Limit it to work-related items unless instructed otherwise. Talk about things you have done and jobs you have held that relate to the position you are interviewing for. Start with the item farthest back and work up to the present.

2. Why did you leave your last job?
Stay positive regardless of the circumstances. Never refer to a major problem with management and never speak ill of supervisors, co-workers or the organization. If you do, you will be the one looking bad. Keep smiling and talk about leaving for a positive reason such as an opportunity, a chance to do something special or other forward-looking reasons.

3. What experience do you have in this field?
Speak about specifics that relate to the position you are applying for. If you do not have specific experience, get as close as you can.

4. Do you consider yourself successful?
You should always answer yes and briefly explain why. A good explanation is that you have set goals, and you have met some and are on track to achieve the others.

5. What do co-workers say about you?
Be prepared with a quote or two from co-workers. Either a specific statement or a paraphrase will work. Jill Clark, a co-worker at Smith Company, always said I was the hardest workers she had ever known. It is as powerful as Jill having said it at the interview herself.

6. What do you know about this organization?
This question is one reason to do some research on the organization before the interview. Find out where they have been and where they are going. What are the current issues and who are the major players?

7. What have you done to improve your knowledge in the last year?
Try to include improvement activities that relate to the job. A wide variety of activities can be mentioned as positive self-improvement. Have some good ones handy to mention..

8. Are you applying for other jobs?
Be honest but do not spend a lot of time in this area. Keep the focus on this job and what you can do for this organization. Anything else is a distraction.

9. Why do you want to work for this organization?
This may take some thought and certainly, should be based on the research you have done on the organization. Sincerity is extremely important here and will easily be sensed. Relate it to your long-term career goals.

10. Do you know anyone who works for us?
Be aware of the policy on relatives working for the organization. This can affect your answer even though they asked about friends not relatives. Be careful to mention a friend only if they are well thought of.

11. What kind of salary do you need?
A loaded question. A nasty little game that you will probably lose if you answer first. So, do not answer it. Instead, say something like, That’s a tough question. Can you tell me the range for this position? In most cases, the interviewer, taken off guard, will tell you. If not, say that it can depend on the details of the job. Then give a wide range.

12. Are you a team player?
You are, of course, a team player. Be sure to have examples ready. Specifics that show you often perform for the good of the team rather than for yourself are good evidence of your team attitude. Do not brag, just say it in a matter-of-fact tone. This is a key point.

13. How long would you expect to work for us if hired?
Specifics here are not good. Something like this should work: I’d like it to be a long time. Or As long as we both feel I’m doing a good job.

14. Have you ever had to fire anyone? How did you feel about that?
This is serious. Do not make light of it or in any way seem like you like to fire people. At the same time, you will do it when it is the right thing to do. When it comes to the organization versus the individual who has created a harmful situation, you will protect the organization. Remember firing is not the same as layoff or reduction in force.

15. What is your philosophy towards work?
The interviewer is not looking for a long or flowery dissertation here. Do you have strong feelings that the job gets done? Yes. That’s the type of answer that works best here. Short and positive, showing a benefit to the organization.

16. If you had enough money to retire right now, would you?
Answer yes if you would. But since you need to work, this is the type of work you prefer. Do not say yes if you do not mean it.

17. Have you ever been asked to leave a position?
If you have not, say no. If you have, be honest, brief and avoid saying negative things about the people or organization involved.

18. Explain how you would be an asset to this organization
You should be anxious for this question. It gives you a chance to highlight your best points as they relate to the position being discussed. Give a little advance thought to this relationship.

19. Why should we hire you?
Point out how your assets meet what the organization needs. Do not mention any other candidates to make a comparison.

20. Tell me about a suggestion you have made
Have a good one ready. Be sure and use a suggestion that was accepted and was then considered successful. One related to the type of work applied for is a real plus

21. What irritates you about co-workers?
This is a trap question. Think real hard but fail to come up with anything that irritates you. A short statement that you seem to get along with folks is great.

22. What is your greatest strength?
Numerous answers are good, just stay positive. A few good examples: Your ability to prioritize, Your problem-solving skills, Your ability to work under pressure, Your ability to focus on projects, Your professional expertise, Your leadership skills, Your positive attitude .

23. Tell me about your dream job.
Stay away from a specific job. You cannot win. If you say the job you are contending for is it, you strain credibility. If you say another job is it, you plant the suspicion that you will be dissatisfied with this position if hired. The best is to stay genetic and say something like: A job where I love the work, like the people, can contribute and can’t wait to get to work.

24. Why do you think you would do well at this job?
Give several reasons and include skills, experience and interest.

25. What are you looking for in a job?
See answer # 23

26. What kind of person would you refuse to work with?
Do not be trivial. It would take disloyalty to the organization, violence or lawbreaking to get you to object. Minor objections will label you as a whiner.

27. What is more important to you: the money or the work?
Money is always important, but the work is the most important. There is no better answer.

28. What would your previous supervisor say your strongest point is?
There are numerous good possibilities: Loyalty, Energy, Positive attitude, Leadership, Team player, Expertise, Initiative, Patience, Hard work, Creativity, Problem solver

29. Tell me about a problem you had with a supervisor
Biggest trap of all. This is a test to see if you will speak ill of your boss. If you fall for it and tell about a problem with a former boss, you may well below the interview right there. Stay positive and develop a poor memory about any trouble with a supervisor.

30. What has disappointed you about a job?
Don’t get trivial or negative. Safe areas are few but can include: Not enough of a challenge. You were laid off in a reduction Company did not win a contract, which would have given you more responsibility.

31. Tell me about your ability to work under pressure.
You may say that you thrive under certain types of pressure. Give an example that relates to the type of position applied for.

32. Do your skills match this job or another job more closely?
Probably this one. Do not give fuel to the suspicion that you may want another job more than this one.

33. What motivates you to do your best on the job?
This is a personal trait that only you can say, but good examples are: Challenge, Achievement, Recognition

34. Are you willing to work overtime? Nights? Weekends?
This is up to you. Be totally honest.

35. How would you know you were successful on this job?
Several ways are good measures: You set high standards for yourself and meet them. Your outcomes are a success.Your boss tell you that you are successful

36. Would you be willing to relocate if required?
You should be clear on this with your family prior to the interview if you think there is a chance it may come up. Do not say yes just to get the job if the real answer is no. This can create a lot of problems later on in your career. Be honest at this point and save yourself future grief.

37. Are you willing to put the interests of the organization ahead of your own?
This is a straight loyalty and dedication question. Do not worry about the deep ethical and philosophical implications. Just say yes.

38. Describe your management style.
Try to avoid labels. Some of the more common labels, like progressive, salesman or consensus, can have several meanings or descriptions depending on which management expert you listen to. The situational style is safe, because it says you will manage according to the situation, instead of one size fits all.

39. What have you learned from mistakes on the job?
Here you have to come up with something or you strain credibility. Make it small, well intentioned mistake with a positive lesson learned. An example would be working too far ahead of colleagues on a project and thus throwing coordination off.

40. Do you have any blind spots?
Trick question. If you know about blind spots, they are no longer blind spots. Do not reveal any personal areas of concern here. Let them do their own discovery on your bad points. Do not hand it to them.

41. If you were hiring a person for this job, what would you look for?
Be careful to mention traits that are needed and that you have.

42. Do you think you are overqualified for this position?
Regardless of your qualifications, state that you are very well qualified for the position.

43. How do you propose to compensate for your lack of experience?
First, if you have experience that the interviewer does not know about, bring that up: Then, point out (if true) that you are a hard working quick learner.

44. What qualities do you look for in a boss?
Be generic and positive. Safe qualities are knowledgeable, a sense of humor, fair, loyal to subordinates and holder of high standards. All bosses think they have these traits.

45. Tell me about a time when you helped resolve a dispute between others.
Pick a specific incident. Concentrate on your problem solving technique and not the dispute you settled.

46. What position do you prefer on a team working on a project?
Be honest. If you are comfortable in different roles, point that out.

47. Describe your work ethic.
Emphasize benefits to the organization. Things like, determination to get the job done and work hard but enjoy your work are good.

48. What has been your biggest professional disappointment?
Be sure that you refer to something that was beyond your control. Show acceptance and no negative feelings.

49. Tell me about the most fun you have had on the job.
Talk about having fun by accomplishing something for the organization.

50. Do you have any questions for me?
Always have some questions prepared. Questions prepared where you will be an asset to the organization are good. How soon will I be able to be productive? and What type of projects will I be able to assist on? are examples.

All The Best

All The Best

String Literals and String Pool

The String Pool:
Sun made an optimization that is rather confusing to many new Java programmers called the String Pool. It allows for Strings, which are one of the most used Objects to optimize themselves and save space. An important point to make is that the String Pool only applies to String literals, meaning their value was assigned, not constructed using a String constructor. Let me start off with an example:

public class Main {

public static void main(String[] args) {
String s1 = “abc”;
String s2 = “abc”;

System.out.println(“s1 = ” + s1);
System.out.println(“s2 = ” + s2);
System.out.println(“s1 == s2? ” + (s1 == s2));
System.out.println(“s1.equals(s2)? ” + (s1.equals(s2)));

}

}
If you run this program, you get this:

s1 = abc
s2 = abc
s1 == s2? true
s1.equals(s2)? true

Most beginners are told to only compare strings using the .equals() method, simply because it is safer for beginners, however, what is confusing about my program above is that the == operator actually said those two were the same memory location too. How is s1 == s2? I clearly defined 2 different variables! An important concept about Java that you may not know is that symbols (variable names) aren’t actually the object that they are defined as. They actually hold a reference to the spot in memory where the actual object is kept. Since Strings are SO commonly used, Strings literals that are the same are given the same address so that it saves memory and doesn’t have to make another. Think about it as if there can only be one of each String in there and anything matching is assigned a reference to that String. However, once all references are gone, then the object is erased. However, once they change, the addresses are different:

public class Main {

public static void main(String[] args) {
String s1 = “abc”;
String s2 = “abc”;

System.out.println(“s1 = ” + s1);
System.out.println(“s2 = ” + s2);
System.out.println(“s1 == s2? ” + (s1 == s2));
System.out.println(“s1.equals(s2)? ” + (s1.equals(s2)));

s2 += “abc”;

System.out.println(“s1 = ” + s1);
System.out.println(“s2 = ” + s2);
System.out.println(“s1 == s2? ” + (s1 == s2));
System.out.println(“s1.equals(s2)? ” + (s1.equals(s2)));

}

}

This outputs this:

s1 = abc
s2 = abc
s1 == s2? true
s1.equals(s2)? true
s1 = abc
s2 = abcabc
s1 == s2? false
s1.equals(s2)? false

HOWEVER, if for any reason you want the variables to not occupy the same location in memory, there are two ways to do this. First, you can use the String constructor, since those are not put into the pool:

public class Main {

public static void main(String[] args) {
String s1 = “abc”;
String s2 = new String(“abc”);

System.out.println(“s1 = ” + s1);
System.out.println(“s2 = ” + s2);
System.out.println(“s1 == s2? ” + (s1 == s2));
System.out.println(“s1.equals(s2)? ” + (s1.equals(s2)));

}

}

This code says that == is false. And just to prove a point, let’s make both of them use constructors:

public class Main {

public static void main(String[] args) {
String s1 = new String(“abc”);
String s2 = new String(“abc”);

System.out.println(“s1 = ” + s1);
System.out.println(“s2 = ” + s2);
System.out.println(“s1 == s2? ” + (s1 == s2));
System.out.println(“s1.equals(s2)? ” + (s1.equals(s2)));

}

}

That code yields:

s1 = abc
s2 = abc
s1 == s2? false
s1.equals(s2)? true

OR you can assign them in different steps, forcing it to occupy a different address for each addition. (First they are the same, then s1 is moved to another spot to add on the “c” and the same for s2):

public class Main {

public static void main(String[] args) {
String s1 = “ab”;
String s2 = “a”;
s1 += “c”;
s2 += “bc”;

System.out.println(“s1 = ” + s1);
System.out.println(“s2 = ” + s2);
System.out.println(“s1 == s2? ” + (s1 == s2));
System.out.println(“s1.equals(s2)? ” + (s1.equals(s2)));

}

}

Output:

s1 = abc
s2 = abc
s1 == s2? false
s1.equals(s2)? true

However, there is a way for a literal and a constructor value (assuming value is the same) to == each other. The magic of intern() method of the String class. What this method does is it looks at its value, and if it matches a value ALREADY IN the String pool, it returns a reference to the object in the pool, else it adds itself to the pool. Observe:

public class Main {

public static void main(String[] args) {
String s1 = “abc”;
String s2 = new String(“abc”);
s2 = s2.intern();

System.out.println(“s1 = ” + s1);
System.out.println(“s2 = ” + s2);
System.out.println(“s1 == s2? ” + (s1 == s2));
System.out.println(“s1.equals(s2)? ” + (s1.equals(s2)));

}

}

This returns:

s1 = abc
s2 = abc
s1 == s2? true
s1.equals(s2)? true

Cool huh? This happens because s1 is ASSIGNED to “abc” and is added to the pool. s2, however, is constructed to “abc”, but not added to the pool. But the intern() method sees that the VALUE “abc” is already in the pool and thus returns the reference to s1. I got a challenge problem for you now. Will s1 == s2 in the following code?

public class Main {

public static void main(String[] args) {
String s1 = new String(“abc”);
String s2 = new String(“abc”);
s2 = s2.intern();

System.out.println(“s1 = ” + s1);
System.out.println(“s2 = ” + s2);
System.out.println(“s1 == s2? ” + (s1 == s2));
System.out.println(“s1.equals(s2)? ” + (s1.equals(s2)));

}

}

… The answer is no. The intern() method is called, but neither s1 nor s2 is in the pool so all the intern() method does is add it to the pool. To make THESE ==, you must call intern() twice so that there is already a reference in the pool (from the first call).

public class Main {

public static void main(String[] args) {
String s1 = new String(“abc”);
String s2 = new String(“abc”);
s2 = s2.intern();
s1 = s1.intern();

System.out.println(“s1 = ” + s1);
System.out.println(“s2 = ” + s2);
System.out.println(“s1 == s2? ” + (s1 == s2));
System.out.println(“s1.equals(s2)? ” + (s1.equals(s2)));

}

}

This returns:

s1 = abc
s2 = abc
s1 == s2? true
s1.equals(s2)? true

That’s all I have on that for now! I encourage you all to experiment with this, as I’m sure there is SOMETHING that I missed in this huge concept. Happy reading.

Categories: Uncategorized

Developers Frustrated By Android Market Payment Issues!!!

 
We’ve heard our share of app store woes in recent weeks, but here’s one that’s unfortunately still in progress. A number of Android app developers have been claiming on the Android Market support forum that the amount of money they’re being paid doesn’t match up with the number of apps they have actually sold.
The problem began on July 26, when a beleaguered dev posted the following:

something I noticed the last 2 days: the list of orders in the payout doesn’t match the list of charged orders. And I don’t mean that I miss one or two orders… no I’m getting payed out for less than the half of all orders!

From what the developers were able to piece together, the thread that connected their uncounted purchases was that they were all made through the Android Market’s web store. Customers’ credit cards were apparently charged and marked as shipped through Google Checkout, but with no corresponding payout to the developers.
Much discussion ensued during the next nine days, until Google finally made their official response:

Thanks for posting and for your patience. We’re aware of the issue, and we’re working on fixing it. Once the fix goes out (soon!), orders should be moved to the correct state, which will enable disbursement amounts to be recovered. So if your July activity payouts were underpaid, you will be notified, and your September 1 payout will contain the missing amounts.

According to Google, there is no official ETA for a fix, but they have been proactive in contacting the affected developers by email notifying them of the situation.

While we have every confidence that Google will eventually make things right, a little transparency could have gone a long way here, especially considering how valuable independent developers are to the success of the platform. The devs affected have been more than patient, but it never hurts to call attention to ground-level problems like this just to keep big companies like Google honest. It’s also possible there are more out there who haven’t heard from Google at all, and are simply baffled by their low receipts (you might want to check yours, just in case). Help should be on the way; be sure to voice your support concerns officially with Google and hopefully things will be resolved soon.
Hope google will pay for that with interest to all developers those who affected. 😉
Categories: Uncategorized

Never check in code in EOD !!!

Be cool and do cool !!!

We learn many things as we become more experienced. There are some lesson which are not been written in any book, we learn from our own experience. Each one of the developer has his/her own methods,tools and practices which he/she develops and used as he progresses in life, and no two developer has same set of these. You can assume that each of the developer has an environment created by him/her in by learing/unlearning from his/her past experience. Here I am going to tell one simple practice that helps a lot. It says that:  “Never Check In the code by End of Day(EoD)”.
This is very siple yet powerful process which could stop a lot of bugs.Normally, What happens is that we delay all code check in task till, we are ready to return from office. So, at last we realize that we have to check in and we do it hurrily witout giving proper attention. This results in defect. Code check in is an important process and it should be done carefully. Whatever hard work we had done, if we miss to this process carefully its worth nothing. So, never check in the code by EOD until its necessary and urgent, always try to check in before first half of the day. Another advantage of checkin in the code in first half is that if any there is any error(say compiled) we get enough time to fix those and check in the code. Now it is upto you how you will manage your code…

 

Happy check-in….

 

%d bloggers like this: