Clonespy is a nice duplicate file detection program for windows.
Anything that interests me finds place here. Software dominates my interests and hence a good part of this blog as well.
Thursday, May 31, 2012
Tuesday, May 29, 2012
Words and meaning
"The software industry delights in taking words and stretching them into a myriad of subtly contradictory meanings."
- Martin J Fowler in "Patterns of Enterprise Application Architecture"
- Martin J Fowler in "Patterns of Enterprise Application Architecture"
Saturday, May 19, 2012
Instead of "what do you do", try asking "where do you invest your energy"
Labels:
Attitude
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
Labels:
Attitude
Wednesday, April 25, 2012
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
- Mahatma Gandhi through A Flourishing Life
Labels:
Attitude
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.
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.
Labels:
Attitude
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
- Prof. Randy Pausch
Labels:
Attitude
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
- Prof. Randy Pausch
Labels:
Attitude
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
- Prof. Randy Pausch
Labels:
Attitude
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
- Prof. Randy Pausch
Labels:
Attitude
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)
Labels:
Postgresql
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
- “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
Labels:
Attitude
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.
Labels:
Java
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.
- Ken Keyes Jr.
Labels:
Attitude
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
- Maureen dowd
Labels:
Attitude
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
- Louis Sachar through Julie911
Labels:
Attitude
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"
2. Implementing InitializingBean and DisposableBean interfaces
The bean can implement these methods InitializingBean.afterPropertiesSet() and DisposableBean.destroy(). Like so:
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
}
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
}
Subscribe to:
Posts (Atom)