Feeds:
Posts
Comments

http://www.javacodegeeks.com/2011/02/domain-driven-design-spring-aspectj.html

UI Pagination

Check out http://www.hdpagination.org/ for UI pagination

Pics Listing

Album Name:Sidana\
DSC_0002.JPG\
DSC_0007_resize.JPG\
DSC_0008.JPG\
DSC_0015.JPG\
DSC_0017.JPG\
DSC_0018.JPG\
DSC_0024.JPG\
DSC_0025.JPG\
DSC_0027.JPG\
DSC_0037.JPG\
DSC_0045.JPG\
DSC_0049.JPG\
DSC_0050.JPG\
DSC_0051.JPG\
DSC_0059.JPG\
DSC_0063.JPG\
DSC_0065.JPG\
DSC_0067.JPG\
DSC_0070.JPG\
DSC_0074.JPG\
DSC_0075.JPG\
DSC_0076.JPG\
DSC_0077.JPG\
DSC_0078.JPG\
DSC_0084.JPG\
DSC_0088.JPG\
DSC_0094.JPG\
DSC_0095.JPG\
DSC_0096.JPG\
DSC_0101.JPG\
DSC_0103.JPG\
DSC_0104.JPG\
DSC_0105.JPG\
DSC_0106.JPG\
DSC_0107.JPG\
DSC_0110.JPG\
DSC_0111.JPG\
DSC_0125.JPG\
DSC_0130.JPG\
DSC_0139.JPG\
DSC_0143.JPG\
DSC_0148.JPG\
DSC_0154.JPG\
DSC_0161.JPG\
DSC_0162.JPG\
DSC_0163.JPG\
DSC_0178.JPG\
DSC_0182.JPG\
DSC_0184.JPG\
DSC_0185.JPG\
DSC_0193.JPG\
DSC_0194.JPG\
DSC_0197.JPG\
DSC_0198.JPG\
DSC_0204.JPG\
DSC_0208.JPG\
DSC_0216.JPG\
DSC_0219.JPG\
DSC_0233.JPG\
DSC_0237.JPG\
DSC_0238.JPG\
DSC_0250.JPG\
DSC_0252.JPG\
DSC_0253.JPG\
DSC_0273.JPG\
\
Album Name:sidhana-1\
DSC_0277.JPG\
DSC_0282.JPG\
DSC_0285.JPG\
DSC_0286.JPG\
DSC_0288.JPG\
DSC_0291.JPG\
DSC_0292.JPG\
DSC_0294.JPG\
DSC_0296.JPG\
DSC_0299.JPG\
DSC_0300.JPG\
DSC_0302.JPG\
DSC_0303.JPG\
DSC_0304.JPG\
DSC_0305.JPG\
DSC_0306.JPG\
DSC_0307.JPG\
DSC_0310.JPG\
DSC_0311.JPG\
DSC_0313.JPG\
DSC_0315.JPG\
DSC_0316.JPG\
DSC_0319.JPG\
DSC_0321.JPG\
DSC_0329.JPG\
DSC_0330.JPG\
DSC_0331.JPG\
DSC_0333.JPG\
DSC_0334.JPG\
DSC_0338.JPG\
DSC_0344.JPG\
DSC_0346.JPG\
DSC_0348.JPG\
DSC_0352.JPG\
DSC_0354.JPG\
DSC_0357.JPG\
DSC_0359.JPG\
DSC_0363.JPG\
DSC_0366.JPG\
DSC_0368.JPG\
DSC_0374.JPG\
DSC_0375.JPG\
DSC_0382.JPG\
DSC_0387.JPG\
DSC_0391.JPG\
DSC_0395.JPG\
DSC_0397.JPG\
DSC_0399.JPG\
DSC_0402.JPG\
DSC_0416.JPG\
DSC_0422.JPG\
DSC_0426.JPG\
DSC_0431.JPG\
DSC_0432.JPG\
DSC_0433.JPG\
DSC_0434.JPG\
DSC_0435.JPG\
DSC_0436.JPG\
DSC_0441.JPG\
DSC_0442.JPG\
DSC_0445.JPG\
DSC_0448.JPG\
DSC_0462.JPG\
DSC_0477.JPG\
DSC_0482.JPG\
DSC_0487.JPG\
DSC_0499.JPG\
DSC_0502.JPG\
DSC_0511.JPG\
DSC_0522.JPG\
DSC_0534.JPG\
DSC_0545.JPG\
DSC_0556.JPG\
DSC_0564.JPG\
DSC_0571.JPG\
DSC_0573.JPG\
DSC_0575.JPG\
DSC_0576.JPG\
DSC_0577.JPG\
DSC_0580.JPG\
DSC_0585.JPG\
DSC_0586.JPG\
DSC_0591.JPG\
DSC_0601.JPG\
DSC_0617.JPG\
DSC_0630.JPG\
DSC_0646.JPG\
DSC_0669.JPG\
DSC_0675.JPG\
DSC_0685.JPG\
DSC_0704.JPG\
DSC_0708.JPG\
DSC_0718.JPG\
DSC_0725.JPG\
DSC_0728.JPG\
DSC_0743.JPG\
DSC_0749.JPG\
DSC_0754.JPG\
DSC_0759.JPG\
DSC_0768.JPG\
DSC_0777.JPG\
DSC_0800.JPG\
\
Album Name:sidhana-2\
DSC_0002.JPG\
DSC_0004.JPG\
DSC_0006.JPG\
DSC_0010.JPG\
DSC_0012.JPG\
DSC_0014.JPG\
DSC_0015.JPG\
DSC_0017.JPG\
DSC_0018.JPG\
DSC_0020.JPG\
DSC_0022.JPG\
DSC_0024.JPG\
DSC_0026.JPG\
DSC_0029.JPG\
DSC_0030.JPG\
DSC_0041.JPG\
DSC_0047.JPG\
DSC_0055.JPG\
DSC_0060.JPG\
DSC_0061.JPG\
DSC_0077.JPG\
DSC_0079.JPG\
DSC_0085.JPG\
DSC_0087.JPG\
DSC_0125.JPG\
DSC_0135.JPG\
DSC_0138.JPG\
DSC_0160.JPG\
DSC_0175.JPG\
DSC_0186.JPG\
DSC_0191.JPG\
DSC_0194.JPG\
DSC_0199.JPG\
DSC_0202.JPG\
DSC_0212.JPG\
DSC_0215.JPG\
DSC_0220.JPG\
DSC_0225.JPG\
DSC_0236.JPG\
DSC_0247.JPG\
DSC_0258.JPG\
DSC_0260.JPG\
DSC_0278.JPG\
DSC_0282.JPG\
DSC_0291.JPG\
DSC_0299.JPG\
DSC_0324.JPG\
DSC_0325.JPG\
DSC_0330.JPG\
DSC_0352.JPG\
DSC_0355.JPG\
DSC_0358.JPG\
DSC_0361.JPG\
DSC_0364.JPG\
DSC_0366.JPG\
DSC_0370.JPG\

Static Imports Eclipse

If you’re using Java 1.5 or later (and why not? Generics are extremely useful) then use the static imports.  Go to the Eclipse preferences then Java > Editor > Content Assist > Favorites and add “junit.framework.Assert.*”, then make sure “Use static imports” is checked in Java > Editor > Content Assist and Eclipse will auto-complete “assertEquals” for you and include the static import.

I have given interviews at some of the best companies for Software Developer position and designing during inteviews is a challenging task. I am trying to make a list of things candidates should run all their programming design solutions before being confident about it.

1. Wait for the ‘Aha’ moment
Don’t rush in a solution. Wait and analyze the problem. Most problems are test of analytical skills and not of maths skills. If solution can be obtained by pen and paper, then its not really a test of the brain skills.

2. Logical Deductions
Always follow through with deductions on the problem set with ur logical choice. In other words think clearly that if  we make a choice, how does it affect the entire problem set. This is the KEY to most problems.

3. Consider Small/Large Data sets
Always run your solutions through a small and a large sample set to be confident of your solutions. Most weak designs will crack with large data sets

4. Patience
Patience is important and perseverance to find a solution to the challenge is crucial.

5. Arrogance for knowledge is Evil
Arrogance for ones knowledge can bring geniuses down.  When you have a superiority complex, think of your role models. That should humble you down.

Lastly, remember the ‘The Alchemist”. If you really want something, the universe conspires in helping you get it.

Geeky Git Introduction

An amazing well explained geeky introduction. Highly recommended.

http://eagain.net/articles/git-for-computer-scientists/

Git is distributed SCM of the future. GIT, an amazing and very smart implementation of basic computer science concepts….

I spent quite a lot of time today tryin to clean up and backup some of my old chat logs from gmail. I wanted to delete the chat logs from my gmail account but also wanted their backup. IMAP/POP only works with emails and not chat logs. And with hundreds of chats in my mailbox, thought of forwarding each chat log manually was dreadful.

The official gmailblog forums says no way to bulk forward chat logs. Looked around for options(greasemonkey, etc) but no luck.

But Finally found a way out.

Check out http://libgmail.sourceforge.net/. It allows to log in to ur gmail and export selected folders and mails and EVEN chat logs.

Steps

- Create Gmail folder for chat messages and add a gmail filter to copy all message logs in that gmail folder
- Setup python.
- Setup mechanize( use easy-install)
- Setup libgmail
- Run  archive.py

and Voila!!!..all mails/chat are exported in .mbox for backup…Sweettttt..:)

A coworker just attended some “Effective Presentation Skills” class and has recommended www.mindjet.com for some commercial products. Checked it briefly and it has some similarities to freely available open-source FreeMind software.

Another resource for some great sketches and drawings is http://hikingartist.com/. Very creative and innovative way of expressing thoughts.

Interesting Reads

Some very interesting readings:

http://www.javaworld.com/javaworld/jw-02-2001/jw-0209-double.html?page=1

Brian Goetz talks about how the Double Check Locking can be broken down due to the way the Java compiler persists variables to memory and the interaction between threads.

http://www.ibm.com/developerworks/library/j-threads3.html

Is a very good introduction of ThreadLocal variables. As the name suggests, these variables are local to each thread.

Cleaner Code

I am a big fan of “The Craftsman” series of articles by Uncle Bob aka Robert C. Martin articles. The best part of his writing is it forms a story line which makes u think and then makes u understand the best practices that should be followed to solve the problem at hand.

Some key points from his clean code articles:

  • The longer the scope of a function, the shorter its name should be. Functions that are called locally from a few nearby places should have long descriptive names, and the longest function names should be given to those functions that are called from just one place.
    • Functions in small scopes should have long and precise names.
    • You should not have to read the body of a function to know what it does. It’s name should tell you.
    • The more complex the behavior of a function, the more generic its name, and the more sub functions should be extracted from it.
  • C1: Inappropriate Information
    It is inappropriate for a comment to hold information better held in a different kind of system such as your source code control system, your issue tracking system, or any other record-keeping system.  Change histories, for example, just clutter up source files with volumes of historical and uninteresting text.  In general, meta-data such as authors, last-modified-date, SPR number, and so on should not appear in comments.  Comments should be reserved for technical notes about the code and design.
  • C2: Obsolete Comment
    A comment that has gotten old, irrelevant, and incorrect is obsolete.  Comments get old quickly.  It is best not to write a comment that will become obsolete.  If you find an obsolete comment, it is best to update it or get rid of it as quickly as possible.  Obsolete comments tend to migrate away from the code they once described.  They become floating islands of irrelevance and misdirection in the code.  
  •  C3: Redundant Comments
    A comment is redundant if it describes something that adequately describes itself.
  • C4: Poorly Written Comment
    A comment worth writing is worth writing well. If you are going to write a comment, take the time to make sure it is the best comment you can write. Choose your words carefully. Use correct grammar and punctuation. Don’t ramble. Don’t state the obvious. Be brief.
  • C5: Commented-Out Code
    Commented-out code is an abomination.
    When you see commented-out code, delete it! Don’t worry; the source code control system still remembers it. If anyone really needs it, he or she can go back and check out a previous version. Don’t suffer commented-out code to survive.

     

Check out his articles on http://www.informit.com/authors/bio.aspx?a=361a5e70-f1e2-432b-9928-b30b4742ae80

Older Posts »

Follow

Get every new post delivered to your Inbox.