Tuesday, 21 August 2012

Java Linux Console print colours






Here's a Java snippet that prints color output to the console (in a VT100 emulating terminal, i.e., in linux only):



public class ColorTest {

   public static void main (String args[]) {
      for (int i = 30; i < 38; i++) {
System.out.println("\033[" + i + "mHello " + "\033[1;" + i + "mWorld!\033[m");
      }

   }
}




It works by "printing" special terminal control commands that change the color. There are other VT100 terminal control commands that let you move the cursor around, clear the screen, and other things.

Who needs Swing, when you can make old-school ASCII interfaces, right? No fancy libraries required either.

Monday, 6 August 2012

Best ways to learn programming

Ref: http://lucas.cis.temple.edu/docs/labs/general/GoodProgramming.html

  1. DO NOT COPY FROM OTHER PEOPLE. When you do this you do not learn what you are supposed to learn by doing the assignment. You then cannot solve the same kinds of problems later. More information.
  2. Keep up with your assigned readings and/or homework assignments. In many classes the lab assignments illustrate or extend what you are supposed to be learning in the class. Once you understand the concepts in use the programs become much easier. If you do not understand what you are meant to be coding how can you do it correctly? Click More information.
  3. Use good programming style. This will help to make your code more readable. This greatly helps when you need to go back and debug your own program or need to change the code from one assignment to another. Poorly written code is hard to follow and leads to stupid errors in logic. It is also not easily portable from one program to another. More information.
  4. Put good comments into the code, including algorithm description and comments for input and output for each function. This is done for the same reason as the previous suggestion. It makes your code more readable when you understand what the code is meant to do and what is input and output from each function. More information.
  5. Break up your code into well-named and useable functions.By doing this you can easily port code from one assignment to another. You may not even need to change any code in many areas to move from one assignment to the next saving yourself a lot of time and effort better spent on the rest of the assignment. More information.
  6. Design what your program needs to do ( break it down into algorithms and steps ) before you start coding. You will save yourself a lot of time by having a clear path for programming development. It also makes defining functions easier if they are defined first. Start with the complete program's defined task, break it down into course steps. These are your big functions. Then break these down again into helper functions and continue until you have small, easy to code blocks. More Information.
  7. Use good descriptive variables in your functions. By doing this you make your code more easier to read and thus easier to debug. When naming the function's variables, give good names for what the variables do in the function, not the functionality of the variable in the complete program. This will make it more transportable. More Information.
  8. Make backups of your work often. As much as we try to make computers as stable as possible, they still are prone to errors. So, if you backup your programs and any data that you cannot easily re-build to a subdirectory or to another storage location before you start to work, and every so often even while you are working, when something goes wrong you at least have something to go back to. More Information.
  9. K.I.S.S. = Keep It Simple Stupid. This is an old programmer's adage. It reminds us not to do too much at one time. Break it down into steps and handle each problem in turn. If you try too much at once you cannot be sure which step failed. You then take more time going back and testing each thing than if you had proceeded more cautiously.

Friday, 3 August 2012

Which Java collection to use?

Ref: http://www.janeve.me/articles/which-java-collection-to-use


Introduction

Java collections are one of the most commonly used data-structures by all Java professionals. But are you using the right collection class that would best suits your need. Most programmers usually use Vectors, ArrayList, HashMap or the Hashtable. There are many other collection classes available with the JDK that you can use instead of re-inventing logic to suite your needs.
We will be trying to understand the different types of classes and when each Collection class could be used. We wouldn't be looking into the implementation details of any collection, for that please refer the latest Java Collection API docs.