Friday, April 27, 2012

The master - Destiny or Man?


"Look! the clay dries into iron, but the potter moulds the clay:-
Destiny to-day is master - Man was master yesterday."

- Toru Dutt

Wednesday, April 25, 2012

Creativity is the residue of time wasted.

Creativity is the residue of time wasted.


Albert Einstein through copyblogger

Tuesday, April 24, 2012

In the attitude of silence...

“In the attitude of silence the soul finds the path in a clearer light, and what is elusive and deceptive resolves itself into crystal clearness.”


- Mahatma Gandhi through A Flourishing Life

Thursday, April 05, 2012

Bad reactions and faults

If somebody acts un-reasonably to you, its their fault.
But if you react un-reasonably in response to their fault, your bad response is completely your fault. They did not control you to give out that un-reasonably response.

Wednesday, April 04, 2012

I have never found anger to make a situation better

"I have never found anger to make a situation better"

- Prof. Randy Pausch 

I can't control the card that I am dealt just how I play the hands

"I can't control the card that I am dealt just how I play the hands"

- Prof. Randy Pausch 

Its not about how you achieve your dreams its about how you lead your life

"Its not about how you achieve your dreams, its about how you lead your life. If you lead your life the right way, the karma will take care of itself, dreams will come to you."

- Prof. Randy Pausch  

Brick walls let us show our dedication

"Brick walls let us show our dedication. They are there to separate us from the people who don't REALLY want to achieve their ... dreams."

- Prof. Randy Pausch 

Wednesday, March 21, 2012

Null values in Postgresql date comparison


test=# begin;
BEGIN
test=# create temp table test(test_date date) on commit drop;
CREATE TABLE
test=# insert into test(test_date) values (null);
INSERT 0 1
test=# insert into test(test_date) values (current_date - interval '1 day');
INSERT 0 1
test=# insert into test(test_date) values (null);
INSERT 0 1
test=# select case when test_date < current_date then 'less' else 'nope' end, coalesce( test_date::varchar, 'NULL') from test;
 case |  coalesce  
------+------------
 nope | NULL
 less | 2012-03-20
 nope | NULL
(3 rows)

Saturday, February 11, 2012

It’s not hard to decide what you want your life to be about. What’s hard, she said, is...


“It’s not hard to decide what you want your life to be about. What’s hard, she said, is figuring out what you’re willing to give up in order to do the things you really care about.”

- “Bittersweet” by Shauna Niequist through Julie911

Maintaining character in every moment


My understanding:

Not all horses are skilled at being swift
Not all dogs are skilled at sniffing
Since I am naturally dull, shall I, for that reason, not take pains?
NO. One should continue to take pains.

I may not be the best body builder in the world, yet, I will not neglect my body.
I may not be the best rich man in the world, yet, I will not neglect my property

In short we do not neglect looking after anything because we despair(loose hope or complete absence of hope) of reaching the highest degree.

- A Selection From The Discourses of Epictetus With The Encheiridion

Thursday, February 02, 2012

Strong, Weak, Soft and Phantom references in Java

The following code instantiates an instance of Student class in the heap and references the created instance from the stack variable s.

Student s = new Student();

The instantiated Student object remains in the heap until it is reachable by at least one reference to it. When the garbage collector runs after the last object reference has been removed, the object is deleted from heap. 

In the above example, s is a strong reference to the Student object. The garbage collector will not remove objects that have a strong reference.

When strong references fall short
There are times when a object should be marked as garbage collectible even when there are active references to it. For example, consider a large image object held in a in-memory cache. This image object should remain in the heap as long as the caching API's clients have reference to the image object. But if the caching API uses strong references, the image object will never get garbage collected as there will always be a strong reference to the image object from the cache itself. Enter weak references.

In the above caching example, the caching API should use a WeakReference. A weak reference "is a reference that isn't strong enough to force the object to remain in memory".

WeakReference weakStudent = new WeakStudent(new Student());

weakStudent.get(); // Returns actual Student object

The weakStudent.get() call could potentially return null if there are no strong references to the Student object.

A WeakHashMap is similar to HashMap except that the keys (not values) are referred to using weak references. So when there are no other Strong references to a key, it will be removed from the map.

Once WeakReference.get() starts returning null, the reference has become garbage collectible and the WeakReference is of no good. The ReferenceQueue class helps keep track of such garbage collectible references and should be passed as argument to WeakReference's constructor. When a object becomes garbage collectable, it will be placed in the ReferenceQueue. The application can read this queue from time to time and perform clean up on its end.

Degrees of weakness
A WeakReference is only one flavor of weakness. There are 2 more flavors:
1. SoftReference - This is less weak than a WeakReference. In a WeakReference, the referenced object is garbage collected the next time garbage collector runs, irrespective of whether memory is in shortage or not. A SoftReference is garbage collected only when memory is in short supply.
2. PhantomReference - This is stronger than a WeakReference. Its get() method always returns null. Its only use is to figure out when the object is enqueued into ReferenceQueues. For a WeakReference, the object is queued as soon as its only weakly reachable. Even before finalization and actual garbage collection. For PhanthomReference, the object is queued only after the object is physically removed from memory.

Saturday, December 03, 2011

To be upset over what you don't have is to waste what you do have.

To be upset over what you don't have is to waste what you do have.

- Ken Keyes Jr.

The minute you settle for less than you deserve

The minute you settle for less than you deserve, you get even less than you settled for.
- Maureen dowd

Wednesday, November 30, 2011

Better to take many small steps

“It is better to take many small steps in the right direction than to make a great leap forward only to stumble backward.”

Louis Sachar through Julie911

Saturday, October 08, 2011

3 ways to initialize and destroy Spring beans

There are 3 ways to initialize (and destroy) spring beans
1. Using init-method and destroy-method attributes
2. Implementing InitializingBean and DisposableBean interfaces
3. Using @PostConstruct and @PreDestroy Annotations (available only in Spring >=2.5)


1. Using init-method and destroy-method attributes
Certain bean methods can designated as initializing and destroying methods using the init-method and destroy-method attributes. Like so:



<bean
    id="studentService"
    class="initMethod.StudentServiceImpl"
    init-method="subscribe"
    destroy-method="unsubscribe"/>



2. Implementing InitializingBean and DisposableBean interfaces
The bean can implement these methods InitializingBean.afterPropertiesSet() and DisposableBean.destroy(). Like so:

public class StudentServiceImpl implements StudentService, InitializingBean, DisposableBean {
    @Override
    public boolean isExists(long studentId) {
        // A fake implementation
        if ( studentId % 2 == 0 )
        {
            return true;
        }
        else
        {
            return false;
        }
    }

    @Override
    public void afterPropertiesSet() throws Exception 
    {
        // subscribe logic goes here
    }

    @Override
    public void destroy() throws Exception 
    {
       // unsubscribe logic goes here
    }
}



3. Using @PostConstruct and @PreDestroy Annotations
Note that both of these are JSR-250 annotations (here is a nice introduction to JSR-250 support introduced in spring 2.5).

@PostConstruct
public void subscribe()
{
  // subscribe logic goes here
}


@PreDestroy
public void unsubscribe()
{
  // unsubscribe logic goes here
}

Wednesday, September 28, 2011

If the work is worthwhile, then whether we can complete it or not, it's worth making the attempt

If the work is worthwhile, then whether we can complete it or not, it's worth making the attempt. That's why courage is important.
- Dalai Lama

Actions driven solely by anger are of no use at all

Actions driven solely by anger are of no use at all; realizing this can help strengthen your determination to resist it. - DalaiLama

Wednesday, September 21, 2011

Monday, September 19, 2011

One hand

"We are afraid of losing what we have, whether it's our life or our possessions and property. But this fear evaporates when we understand that our life stories and the history of the world were written by the same hand." Sometimes, the caravan (in the middle of a desert) met with another. One always had something that the other needed - as if everything were indeed written by one hand. - The Alchemist by Paulo Coelho