Trust me, I haven’t got enough after hours of playing this one! The graphics are unbelievable, and best of all – iPad2! Yuhuuu!
Tag: 2
-
Happy New Year 2011 Wishes
I wish ALL of you a very Happy & Prosperous New Year 2011 !
-
Happy New Year 2011 – Wishes to my wife
My best wishes, and sincere feelings for my wife Elena, expressed as a little poem.
-
Nicolas performing You should be dancing tonight
Hilarious, isn't it?
-
Maintaining relationship – common friends
I was posed a very trivial question from one of my friends recently. It picked my interest, since I could not readily solve it, and I had the inkling that there is a better, simple solution for this problem.
The problem was, let’s say I have a table of users as below
And these users have friends as below
or more easier to read as
Now, the trivial task was find common friends for users 1, and 5, hence naturally the answer should be
User 1 : Woody’s friends, and User 5 : Andy’s friends are
and
So, the question I had was what could be the best SQL query that would be return me this result?
I thought of 2 different SQL queries
SELECT f.fid, u.name 'Woody and Andy\'s common friends' FROM
(SELECT f.`fid` FROM friends f
WHERE f.`uid` IN (1,5)
GROUP BY f.`fid` HAVING COUNT(f.`fid`) > 1) f INNER JOIN user u ON (u.uid=f.fid)-or- another one was
SELECT f.fid, u.name 'Woody and Andy\'s common friends' FROM
(SELECT a.fid FROM
(SELECT * FROM friends f
WHERE f.`uid`=1) a INNER JOIN
(SELECT * FROM friends f
WHERE f.`uid`=5) b ON (a.fid=b.fid)) f INNER JOIN user u ON (u.uid=f.fid)Both seem to work, but is there any elegant way of getting common friends in a much simpler SQL query? At this moment, I logically find first SQL query more intuitive since all it does is pickup friends who appear more than once when users are 1 and 5. The second SQL query seems plain brute force approach.
-
Merging pre-sorted lists
A while ago, I came across an interesting problem. We have 3 different sorted queues (entries were sorted by time), out of which we had to pickup the smallest time, and send the first arrived entry out of those 3 queues in sequence.
Q1 Q2 Q3 2 3 1 5 4 6 7 6 9 8 10 11 As you can see, all queues (Q1, Q2, Q3) are already sorted, but on application side we have to pickup entries across all queues in sorted order and process them. So the entries should be processed in 1, 2, 3, 4, 5, … 11 sequence. Frankly this is merging of already sorted lists, and a person from computer science background should already know this. But I don’t come from such background, and the solution one of my friends gave was plain amazing.
The solution was pickup first entry from each queue, compare them, choose the smallest and process it first.
Q1 Q2 Q3 Smallest 2 3 1 1 Thus, here 1 is processed first. Now pickup next entry from queue where smallest was found (Q3 in this example), so now the next comparison becomes like this
Q1 Q2 Q3 Smallest 2 3 6 2 The smallest is 2, so this is processed and next entry from Q1 was picked-up
Q1 Q2 Q3 Smallest 5 3 6 3 And so on… giving us
Q1 Q2 Q3 Smallest 2 3 1 1 2 3 6 2 5 3 6 3 5 4 6 4 5 6 6 5 7 6 6 6 7 10 6 6 7 10 9 7 8 10 9 8 10 9 9 10 11 10 11 11 A simple, and elegant solution, isn’t it? Is there any other better alternative?
-
Spring IoC, DI quick tutorial
There has been an (evident) craze amongst Java community with contrived terms such as IoC (Inversion of Control), DI (Dependency Injection) mainly through Spring. I initially found the connotation “Don’t call me, I’ll call you” a bit difficult (yeah, it’s bending your head upside down) to understand, but after spending few hours around Spring documentation, I get the gist.
To a layman (Java layman, of course) it is helpful to picture that each Java program is a set of one or more classes, which act together. Essentially, this means classes are “dependent” on some classes in order to be fully functional. Usually, the class requiring functionality of another class instantiates the class, and uses it. This is called coupling because class instantiates the object of required class. What if we always got an “instantiated” instance of required class, and our class did not have to worry of instantiation? – This is called IoC (Inversion of Control) principle in Spring, and it achieves this by providing ready-to-use instance (injecting dependency) to your class. This has some important uses, since now you don’t worry of creating connections to databases, loggers to log4j, or sessions for JMS queues. Spring will create these for you, and your class can focus on the actual purpose – using the pre-instantiated ready-to-use object.
Get it? OK, to simplify it further, let us assume you have a class A having one field – log. You want to use log to log information, but your class nowhere has the logic to instantiate or initialize log. You accept a pre-instantiated log through constructor, or getter/setter methods, and you will have a ready-to-use log instance passed to your class via Spring!
I won’t go into details of Spring further, since Spring’s own documentation on http://static.springsource.org/spring/docs/2.5.x/reference/index.html is the definitive source to look into.
-
Happy Birthday Nicolas
My dearest son turns 2 today ! It’s been a hell of a tough time these 2 years (wonder what’s next?…), but his gentle smile makes me forget all that. Happy Birthday to you my son !
Love, Papa & Mama (who’s fast asleep now … giggle)Once again, Happy Birthday to you Nicolas !
-
Amazing Javascript trick
Amazing trick with javascript
Goto a page which has lots of images like this.Now paste the below line in the address bar, and hit Enter.
javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; DI=document.getElementsByTagName("img"); DIL=DI.length; function A(){for(i=0; i-DIL; i++){DIS=DI[ i ].style; DIS.position='absolute'; DIS.left=(Math.sin(R*x1+i*x2+x3)*x4+x5)+"px"; DIS.top=(Math.cos(R*y1+i*y2+y3)*y4+y5)+"px"}R++}setInterval('A()',5); void(0);
Sit back, and watch the fun !