<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4440415138052248747</id><updated>2011-09-08T13:30:20.619-07:00</updated><title type='text'>Just Another Geek</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://razanpokhrel.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4440415138052248747/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://razanpokhrel.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Rajan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4440415138052248747.post-80544138257214172</id><published>2010-12-11T15:19:00.001-08:00</published><updated>2010-12-11T15:19:47.294-08:00</updated><title type='text'>Go for it.</title><content type='html'>&lt;a href="http://wikimediafoundation.org/wiki/Support_Wikipedia/en"&gt;&lt;img border="0" alt="Support Wikipedia" src="http://upload.wikimedia.org/wikipedia/commons/2/2a/Fundraising_2009-micro-contributor-en.png" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4440415138052248747-80544138257214172?l=razanpokhrel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://razanpokhrel.blogspot.com/feeds/80544138257214172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://razanpokhrel.blogspot.com/2010/12/go-for-it.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4440415138052248747/posts/default/80544138257214172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4440415138052248747/posts/default/80544138257214172'/><link rel='alternate' type='text/html' href='http://razanpokhrel.blogspot.com/2010/12/go-for-it.html' title='Go for it.'/><author><name>Rajan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4440415138052248747.post-8744892717066898988</id><published>2010-12-02T10:31:00.000-08:00</published><updated>2010-12-02T10:33:05.495-08:00</updated><title type='text'>Google got biased this morning</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_HlN1l2-RSpM/TPfmQBzlEMI/AAAAAAAAAas/OU9Pjyhvk9w/s1600/google%2Bresults.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 400px; height: 324px;" src="http://3.bp.blogspot.com/_HlN1l2-RSpM/TPfmQBzlEMI/AAAAAAAAAas/OU9Pjyhvk9w/s400/google%2Bresults.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5546154629167124674" /&gt;&lt;/a&gt;&lt;br /&gt;Google got just 4 results on first page for me. Above is the snapshot of it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4440415138052248747-8744892717066898988?l=razanpokhrel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://razanpokhrel.blogspot.com/feeds/8744892717066898988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://razanpokhrel.blogspot.com/2010/12/google-got-biased-this-morning.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4440415138052248747/posts/default/8744892717066898988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4440415138052248747/posts/default/8744892717066898988'/><link rel='alternate' type='text/html' href='http://razanpokhrel.blogspot.com/2010/12/google-got-biased-this-morning.html' title='Google got biased this morning'/><author><name>Rajan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_HlN1l2-RSpM/TPfmQBzlEMI/AAAAAAAAAas/OU9Pjyhvk9w/s72-c/google%2Bresults.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4440415138052248747.post-7594302557544095914</id><published>2010-11-30T23:24:00.000-08:00</published><updated>2011-04-26T22:29:16.385-07:00</updated><title type='text'>SEARCH ENGINE BASIC</title><content type='html'>CONTD....&lt;br /&gt;&lt;br /&gt;search.&lt;br /&gt;relevance.&lt;br /&gt;display.&lt;br /&gt;&lt;br /&gt;* no crawling and indexing.&lt;br /&gt;CONTD....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4440415138052248747-7594302557544095914?l=razanpokhrel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://razanpokhrel.blogspot.com/feeds/7594302557544095914/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://razanpokhrel.blogspot.com/2010/11/search-engine-basic.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4440415138052248747/posts/default/7594302557544095914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4440415138052248747/posts/default/7594302557544095914'/><link rel='alternate' type='text/html' href='http://razanpokhrel.blogspot.com/2010/11/search-engine-basic.html' title='SEARCH ENGINE BASIC'/><author><name>Rajan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4440415138052248747.post-8173781868274536141</id><published>2010-09-06T01:53:00.000-07:00</published><updated>2010-09-30T11:28:19.143-07:00</updated><title type='text'>Happens-Before....Java Memory Model</title><content type='html'>"Java Memory Model (JMM) defines a partial ordering called &lt;span style="font-style:italic;"&gt;happens-before&lt;/span&gt; on all actions with the program. Actions are reads and writes to variables, locks and unlocks of monitors etc. To guarantee that the thread executing action B can see the results of action A, there must be happens before relationship between A and B. In the absence of &lt;span style="font-style:italic;"&gt;happens-before&lt;/span&gt; ordering between two operations, the JVM is free to re-order them as it pleases (due to the fact that every processor has it's cache and it needs to flush to the main memory). A correctly synchronized program is one with no data races, correctly synchronized programs exhibits sequential consistency, meaning that all actions within the program appear to happen in a fixed, global order.&lt;br /&gt;&lt;br /&gt;The rules for &lt;span style="font-style:italic;"&gt;happens-before&lt;/span&gt; are:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Program order rule.&lt;/span&gt; Each action in a thread &lt;span style="font-style:italic;"&gt;happens-before&lt;/span&gt; every action in that thread that comes later in the program order.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Monitor lock rule&lt;/span&gt;. An unlock on a monitor lock &lt;span style="font-style:italic;"&gt;happens-before&lt;/span&gt; every subsequent lock on that same monitor lock.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Volatile variable rule&lt;/span&gt;. A write to a volatile field &lt;span style="font-style:italic;"&gt;happens-before&lt;/span&gt; every subsequent read of that same field.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Thread start rule&lt;/span&gt;. A call to Thread.start on a thread &lt;span style="font-style:italic;"&gt;happens-before&lt;/span&gt; any other rhread detects taht thread has terminated, either by successfully return from Thread.join or by Thread.isAlive returning false.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Interruption rule.&lt;/span&gt; A thread calling interrupt on another thread &lt;span style="font-style:italic;"&gt;happens-before&lt;/span&gt; the interrupted thread detects the interrupt( either by having InterruptedException thrown, or invoking isInterrupted or interrupted).&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Finalizer rule.&lt;/span&gt; The end of a constrcutor for an object &lt;span style="font-style:italic;"&gt;happens-before&lt;/span&gt; the start of the finalizer for that obejct.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Transitivity.&lt;/span&gt; If A &lt;span style="font-style:italic;"&gt;happens-before&lt;/span&gt; B, and B &lt;span style="font-style:italic;"&gt;happens-before&lt;/span&gt; C, then A &lt;span style="font-style:italic;"&gt;happens-before&lt;/span&gt; C.&lt;br /&gt;"&lt;br /&gt;Ref: Java Concurrency in Pratice&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4440415138052248747-8173781868274536141?l=razanpokhrel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://razanpokhrel.blogspot.com/feeds/8173781868274536141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://razanpokhrel.blogspot.com/2010/09/happena-beforejava-memory-model.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4440415138052248747/posts/default/8173781868274536141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4440415138052248747/posts/default/8173781868274536141'/><link rel='alternate' type='text/html' href='http://razanpokhrel.blogspot.com/2010/09/happena-beforejava-memory-model.html' title='Happens-Before....Java Memory Model'/><author><name>Rajan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4440415138052248747.post-3724902034916395713</id><published>2010-08-30T11:52:00.000-07:00</published><updated>2011-04-26T22:30:54.559-07:00</updated><title type='text'></title><content type='html'>&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4440415138052248747-3724902034916395713?l=razanpokhrel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://razanpokhrel.blogspot.com/feeds/3724902034916395713/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://razanpokhrel.blogspot.com/2010/08/cookie-across-multiple-domain.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4440415138052248747/posts/default/3724902034916395713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4440415138052248747/posts/default/3724902034916395713'/><link rel='alternate' type='text/html' href='http://razanpokhrel.blogspot.com/2010/08/cookie-across-multiple-domain.html' title=''/><author><name>Rajan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4440415138052248747.post-7223934279218927650</id><published>2010-07-19T20:46:00.000-07:00</published><updated>2010-07-20T19:50:05.903-07:00</updated><title type='text'>I tried Google News today</title><content type='html'>I tried Google News today by typing "google news" in URL bar in Google Crome. Google result shows:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_HlN1l2-RSpM/TEUfHGGVKdI/AAAAAAAAAY8/ZlVtpFDFqgM/s1600/resultss.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 142px;" src="http://1.bp.blogspot.com/_HlN1l2-RSpM/TEUfHGGVKdI/AAAAAAAAAY8/ZlVtpFDFqgM/s400/resultss.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5495833127032269266" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Then I clicked third link "Google News - news.google.com" tab. The result was:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_HlN1l2-RSpM/TEUfRA4etxI/AAAAAAAAAZE/twvivH6ya_I/s1600/css.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 142px;" src="http://2.bp.blogspot.com/_HlN1l2-RSpM/TEUfRA4etxI/AAAAAAAAAZE/twvivH6ya_I/s400/css.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5495833297430689554" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4440415138052248747-7223934279218927650?l=razanpokhrel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://razanpokhrel.blogspot.com/feeds/7223934279218927650/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://razanpokhrel.blogspot.com/2010/07/i-tried-google-news-today.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4440415138052248747/posts/default/7223934279218927650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4440415138052248747/posts/default/7223934279218927650'/><link rel='alternate' type='text/html' href='http://razanpokhrel.blogspot.com/2010/07/i-tried-google-news-today.html' title='I tried Google News today'/><author><name>Rajan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_HlN1l2-RSpM/TEUfHGGVKdI/AAAAAAAAAY8/ZlVtpFDFqgM/s72-c/resultss.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4440415138052248747.post-7711762271454617431</id><published>2010-06-14T20:34:00.000-07:00</published><updated>2010-06-27T11:17:43.768-07:00</updated><title type='text'>Broken code?</title><content type='html'>mid = (low + high)/2&lt;br /&gt;&lt;br /&gt;mid = low + ((high-low)/2)&lt;br /&gt;&lt;br /&gt;mid,low and high are int.&lt;br /&gt;&lt;br /&gt;What's the difference?&lt;br /&gt;&lt;br /&gt;context: Java, C, C++&lt;br /&gt;Ideas Appreciated!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4440415138052248747-7711762271454617431?l=razanpokhrel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://razanpokhrel.blogspot.com/feeds/7711762271454617431/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://razanpokhrel.blogspot.com/2010/06/broken-code.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4440415138052248747/posts/default/7711762271454617431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4440415138052248747/posts/default/7711762271454617431'/><link rel='alternate' type='text/html' href='http://razanpokhrel.blogspot.com/2010/06/broken-code.html' title='Broken code?'/><author><name>Rajan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4440415138052248747.post-1318950969881174832</id><published>2010-05-25T20:21:00.000-07:00</published><updated>2010-05-25T20:28:54.598-07:00</updated><title type='text'>Inactive for Couple of Days</title><content type='html'>Due to large learning curve of new job, keeping myself busy with &lt;a href="http://www.iii.com"&gt;new environment and new people&lt;/a&gt;. Stepping ahead as a &lt;a href="http://www.linkedin.com/myprofile?trk=hb_tab_pro"&gt;Senior Software Engineer&lt;/a&gt;, got more responsibility and need broader knowledge . Stopped working on &lt;a href="http://telluriumsource.org/display/TE/Home"&gt;Tellurium&lt;/a&gt; for a while.&lt;br /&gt;&lt;br /&gt;Will be back in couple of days.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4440415138052248747-1318950969881174832?l=razanpokhrel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://razanpokhrel.blogspot.com/feeds/1318950969881174832/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://razanpokhrel.blogspot.com/2010/05/inactive-for-couple-of-days.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4440415138052248747/posts/default/1318950969881174832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4440415138052248747/posts/default/1318950969881174832'/><link rel='alternate' type='text/html' href='http://razanpokhrel.blogspot.com/2010/05/inactive-for-couple-of-days.html' title='Inactive for Couple of Days'/><author><name>Rajan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4440415138052248747.post-6426561747214478654</id><published>2010-05-05T11:47:00.000-07:00</published><updated>2010-05-05T17:04:49.210-07:00</updated><title type='text'>Tellurium-Reference is finally released</title><content type='html'>With the extra effort from all the team members, tellurium-reference guide is finally released. Hats-off to &lt;a href="http://johnjianfang.blogspot.com/"&gt;Jian Fang's&lt;/a&gt; work.&lt;br /&gt;&lt;br /&gt;Please take a look to our effort on how this framework is changing the era of web testing.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://tellurium-users.googlegroups.com/web/tellurium-reference-0.7.0.pdf?gda=MgsPo08AAAA7fMi2EBxrNTLhqoq3FzPr98X3V0anKJ1CbHfs8KEgImnsk7pRTlVgFdCtB9Lo4vPCs0nktTsExxMN83skmn8NnHMhSp_qzSgvndaTPyHVdA"&gt;Tellurium-Reference Guide&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Further reference link:&lt;br /&gt;&lt;a href="http://code.google.com/p/aost/wiki/UserGuide070Introduction?tm=6"&gt;Wiki&lt;/a&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/aost/"&gt;Google Code&lt;/a&gt;&lt;br /&gt;&lt;a href="http://telluriumsource.org"&gt;Tellurium Home Page&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4440415138052248747-6426561747214478654?l=razanpokhrel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://razanpokhrel.blogspot.com/feeds/6426561747214478654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://razanpokhrel.blogspot.com/2010/05/tellurium-reference-is-finally-released.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4440415138052248747/posts/default/6426561747214478654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4440415138052248747/posts/default/6426561747214478654'/><link rel='alternate' type='text/html' href='http://razanpokhrel.blogspot.com/2010/05/tellurium-reference-is-finally-released.html' title='Tellurium-Reference is finally released'/><author><name>Rajan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4440415138052248747.post-4423595101997969524</id><published>2010-04-17T18:40:00.000-07:00</published><updated>2010-04-26T21:12:15.782-07:00</updated><title type='text'>Tellurium: A new concept of UI testing</title><content type='html'>It's great fun working on this innovative open source project. I have never contributed to any open source project before besides commenting "Awesome Project....Keep Going". But now it's no more like that.&lt;br /&gt;&lt;br /&gt;Yeah, the TELLURIUM, a wonderful open source web testing framework which is build on top of Selenium framework but with different testing concept. We are working on to build our own core engine and consequently remove the Selenium. Most existing web testing framework focus on individual UI element such as links and buttons. Tellerium takes a new approach for automated web testing by using the concept of UI module.&lt;br /&gt;&lt;br /&gt;UI module is a collection of UI elements grouped together. Tellurium is build on the foundation of UI module.  The UI module makes it possible to  build locators for UI elements at runtime. Tellurium is implemented using Groovy and Java. The test cases can be written in Java, Groovy, or pure DSL scripts. Tellurium enforce UI model separate for the test code, making refactoring easy.&lt;br /&gt;&lt;br /&gt;I will definitely update more about TELLURIUM on up coming posts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4440415138052248747-4423595101997969524?l=razanpokhrel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://razanpokhrel.blogspot.com/feeds/4423595101997969524/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://razanpokhrel.blogspot.com/2010/04/tellurium-new-concept-of-ui-testing.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4440415138052248747/posts/default/4423595101997969524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4440415138052248747/posts/default/4423595101997969524'/><link rel='alternate' type='text/html' href='http://razanpokhrel.blogspot.com/2010/04/tellurium-new-concept-of-ui-testing.html' title='Tellurium: A new concept of UI testing'/><author><name>Rajan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4440415138052248747.post-8090943145643541153</id><published>2010-04-17T00:03:00.000-07:00</published><updated>2010-04-20T13:12:39.809-07:00</updated><title type='text'>Memory Structure of Java Object</title><content type='html'>Java Developer on their programming career came across memory management and think about how much memory is used by a Java object. Let’s start off with object copy. The shallow copy is the size occupied by a single Java object. On the other hand, deep copy takes into account the shallow copy of the object and the deep size of each object referenced by this object. So to know the deep size of the object, one should know the shallow size of the object. &lt;br /&gt;&lt;br /&gt;Every object is aligned to an 8 byte granularity. The object except Array has two words header. First word has identity hash code and second work has a reference to the object’s class. So, new Object() will be using 8 byte of the heap for the two header words and nothing else because the Object class doesn’t have any fields. After 8 byte of header, the class attributes fallow. Attributes are always aligned in memory to their size. For example int are aligned to a byte granularity, and long are aligned to an 8 byte granularity.  The cost to read 4 byte word from memory into a 4 byte register of the processor is much cheaper if the word is aligned to a 4 byte granularity.&lt;br /&gt;&lt;br /&gt;The virtual machine organize attributes in a memory in the following order:&lt;br /&gt;&lt;br /&gt;- double and long&lt;br /&gt;- int and float&lt;br /&gt;- short and char&lt;br /&gt;- boolean and byte&lt;br /&gt;- references&lt;br /&gt;&lt;br /&gt;plus the primitive data types supported by the Java virtual machine are the numeric types, the boolean type &lt;a href="http://java.sun.com/docs/books/jvms/second_edition/html/Overview.doc.html#22909"&gt;(§3.3.4)&lt;/a&gt;,1 and the returnAddress type &lt;a href="http://java.sun.com/docs/books/jvms/second_edition/html/Overview.doc.html#34568"&gt;(§3.3.3)&lt;/a&gt;. The numeric types consist of the integral types &lt;a href="http://java.sun.com/docs/books/jvms/second_edition/html/Overview.doc.html#31446"&gt;(§3.3.1)&lt;/a&gt; and the floating-point types &lt;a href="http://java.sun.com/docs/books/jvms/second_edition/html/Overview.doc.html#28147"&gt;(§3.3.2)&lt;/a&gt;. The integral types are:&lt;br /&gt;&lt;br /&gt;- byte, whose values are 8-bit signed two's-complement integers&lt;br /&gt;- short, whose values are 16-bit signed two's-complement integers&lt;br /&gt;- int, whose values are 32-bit signed two's-complement integers&lt;br /&gt;- long, whose values are 64-bit signed two's-complement integers&lt;br /&gt;- char, whose values are 16-bit unsigned integers representing Unicode characters &lt;a href="http://java.sun.com/docs/books/jvms/second_edition/html/Concepts.doc.html#25310"&gt;(§2.1)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And for the reference types and values, there are three kinds of reference types: class types, array types, and interface types. Their values are references to dynamically created class instances, arrays, or class instances or arrays that implement interfaces, respectively. A reference value may also be the special null reference, a reference to no object, which will be denoted here by null. The null reference initially has no runtime type, but may be cast to any type.&lt;br /&gt;&lt;br /&gt;For better memory usages:&lt;br /&gt;&lt;br /&gt;Class myTestClass {&lt;br /&gt; byte  a;&lt;br /&gt; int  c;&lt;br /&gt; boolean  d,&lt;br /&gt; long  e;&lt;br /&gt; Object  f; &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;If JVM didn’t re-order the attributes, the object memory layout would be:&lt;br /&gt;&lt;br /&gt;[HEADER:  8 bytes]  8&lt;br /&gt;[a:       1 byte ]  9&lt;br /&gt;[padding: 3 bytes] 12&lt;br /&gt;[c:       4 bytes] 16&lt;br /&gt;[d:       1 byte ] 17&lt;br /&gt;[padding: 7 bytes] 24&lt;br /&gt;[e:       8 bytes] 32&lt;br /&gt;[f:       4 bytes] 36&lt;br /&gt;[padding: 4 bytes] 40&lt;br /&gt;&lt;br /&gt;Here 14 byte would have been wasted with padding and the object would use 40 bytes of memory. By reordering the object using the above rules above, the in memory structure of the object becomes:&lt;br /&gt;&lt;br /&gt;[HEADER:  8 bytes]  8&lt;br /&gt;[e:       8 bytes] 16&lt;br /&gt;[c:       4 bytes] 20&lt;br /&gt;[a:       1 byte ] 21&lt;br /&gt;[d:       1 byte ] 22&lt;br /&gt;[padding: 2 bytes] 24&lt;br /&gt;[f:       4 bytes] 28&lt;br /&gt;[padding: 4 bytes] 32&lt;br /&gt;&lt;br /&gt;This time, only 6 bytes are used for padding and the object uses 32 bytes memory&lt;br /&gt;So the rule is “class attributes are ordered like this: first longs and doubles; then ints and floats; then chars and shorts; then bytes and booleans, and last the references. The attributes are aligned to their own granularity”.&lt;br /&gt;&lt;br /&gt;Now we know how to calculate the memory used by any instance of a class that extends Object directly. One practical example is the java.lang.Boolean class. Here is its memory layout:&lt;br /&gt;&lt;br /&gt;[HEADER:  8 bytes]  8 &lt;br /&gt;[value:   1 byte ]  9&lt;br /&gt;[padding: 7 bytes] 16&lt;br /&gt;&lt;br /&gt;An instance of the Boolean class takes 16 bytes of memory. Notice the padding at the end to align the object size to an 8 bytes granularity.&lt;br /&gt;&lt;br /&gt;Another rule is “Fields that belong to different classes of the hierarchy are NEVER mixed up together. Fields of the superclass come first, obeying rule 2, followed by the fields of the subclass.”&lt;br /&gt;&lt;br /&gt;class MySuperClass {&lt;br /&gt;   long a;&lt;br /&gt;   int b;&lt;br /&gt;   int c;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;class MySubClass extends MySuperClass {&lt;br /&gt;   long d;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Now the instance of MySubClass in memory:&lt;br /&gt;&lt;br /&gt;[HEADER:  8 bytes]  8&lt;br /&gt;[a:       8 bytes] 16&lt;br /&gt;[b:       4 bytes] 20&lt;br /&gt;[c:       4 bytes] 24&lt;br /&gt;[d:       8 bytes] 32&lt;br /&gt;&lt;br /&gt;Another rule is “Between the last field of the superclass and the first field of the subclass there must be padding to align to a 4 bytes boundary.”&lt;br /&gt;&lt;br /&gt;class MyClassOne {&lt;br /&gt;   byte a;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;class MyClassTwo {&lt;br /&gt;   byte b;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;[HEADER:  8 bytes]  8&lt;br /&gt;[a:       1 byte ]  9&lt;br /&gt;[padding: 3 bytes] 12&lt;br /&gt;[b:       1 byte ] 13&lt;br /&gt;[padding: 3 bytes] 16&lt;br /&gt;&lt;br /&gt;Notice the 3 bytes padding after field a to align b to a 4 bytes granularity. That space is lost and cannot be used by fields of class MyClassTwo.&lt;br /&gt;&lt;br /&gt;The final rule is applied to save some space when the first field of the subclass is a long or double and the parent class doesn't end in an 8 bytes boundary.&lt;br /&gt;”When the first field of a subclass is a double or long and the superclass doesn't align to an 8 bytes boundary, JVM will break rule 2 and try to put an int, then shorts, then bytes, and then references at the beginning of the space reserved to the subclass until it fills the gap.”&lt;br /&gt;&lt;br /&gt;Here is an example:&lt;br /&gt;class MyClassFirst {&lt;br /&gt;  byte a;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;class MyClassSecond {&lt;br /&gt;  long b;&lt;br /&gt;  short c;  &lt;br /&gt;  byte d;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Memory layout is:&lt;br /&gt;&lt;br /&gt;[HEADER:  8 bytes]  8&lt;br /&gt;[a:       1 byte ]  9&lt;br /&gt;[padding: 3 bytes] 12&lt;br /&gt;[c:       2 bytes] 14&lt;br /&gt;[d:       1 byte ] 15&lt;br /&gt;[padding: 1 byte ] 16&lt;br /&gt;[b:       8 bytes] 24&lt;br /&gt;&lt;br /&gt;At byte 12, which is where class MyClassFirst 'ends', the JVM broke rule 2 and stuck a short and a byte before a long, to save 3 out of 4 bytes that would otherwise have been wasted.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Memory layout of arrays&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Arrays have an extra header field that contain the value of the 'length' variable. The array elements follow, and the arrays, as any regular objects, are also aligned to an 8 bytes boundary.&lt;br /&gt;&lt;br /&gt;Here is the layout of a byte array with 3 elements:&lt;br /&gt;&lt;br /&gt;[HEADER:  12 bytes] 12&lt;br /&gt;[[0]:      1 byte ] 13&lt;br /&gt;[[1]:      1 byte ] 14&lt;br /&gt;[[2]:      1 byte ] 15&lt;br /&gt;[padding:  1 byte ] 16&lt;br /&gt;&lt;br /&gt;And here is the layout of a long array with 3 elements:&lt;br /&gt;&lt;br /&gt;[HEADER:  12 bytes] 12&lt;br /&gt;[padding:  4 bytes] 16&lt;br /&gt;[[0]:      8 bytes] 24&lt;br /&gt;[[1]:      8 bytes] 32&lt;br /&gt;[[2]:      8 bytes] 40&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Memory layout of inner classes&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Non-static inner classes have an extra 'hidden' field that holds a reference to the outer class. This field is a regular reference and it follows the rule of the in memory layout of references. Inner classes, for this reason, have an extra 4 bytes cost. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Final Words&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We have learned how to calculate the shallow size of any Java object (32 bit Sun JVM). Knowing how memory is structured can help us understand how much memory is used by instances of our classes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4440415138052248747-8090943145643541153?l=razanpokhrel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://razanpokhrel.blogspot.com/feeds/8090943145643541153/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://razanpokhrel.blogspot.com/2010/04/java-developer-on-their-programming.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4440415138052248747/posts/default/8090943145643541153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4440415138052248747/posts/default/8090943145643541153'/><link rel='alternate' type='text/html' href='http://razanpokhrel.blogspot.com/2010/04/java-developer-on-their-programming.html' title='Memory Structure of Java Object'/><author><name>Rajan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4440415138052248747.post-8133139696072435956</id><published>2010-04-14T22:50:00.000-07:00</published><updated>2010-04-14T23:20:48.609-07:00</updated><title type='text'>NoSQL (Not Only SQL) - Crazy Fast</title><content type='html'>This is next generation database systems started development early 2009. The goal was non-relational, distributed, open source(I like this), schema free, replication support, easy API, eventually consistency, BASE (not ACID). Notable production implementations include Google's Big Table, Amazon's Dynamo and Cassandra(Facebook). Well known limitations include: limited support for dynamic queries and indexing, don't support JOIN like operations of SQL. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;How to query NoSQL:&lt;/span&gt;&lt;br /&gt;- key:value&lt;br /&gt;- Row-id/Column-family:title[/time]&lt;br /&gt;  - &lt;span style="font-style:italic;"&gt;"stella_12"/"dog":"name"  -&gt; Stella&lt;/span&gt;&lt;br /&gt;- Graph Traversal&lt;br /&gt;- API&lt;br /&gt;- Query language&lt;br /&gt;- Integration to indexing and search engines&lt;br /&gt;- Map-Redue&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Map-Reduce:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Map-Reduce is a programming model and associated implementation for processing and generating large datasets. Look at following Map-function:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;function map(doc) {&lt;br /&gt;   if (doc[ 'type' ] == 'Dog') {&lt;br /&gt;      emit(doc[ 'mood' ], doc[ 'birthdate' ]);&lt;br /&gt;   }&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It generates index view of data/document and this view is just another hash, but both key and value can be 'anything'.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Comparition with RDBMS:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;- Strong consistency vs. Eventual Consistency&lt;br /&gt;- Big dataset vs. HUGE dataset&lt;br /&gt;- Scaling is possible vs. Scaling is easy&lt;br /&gt;- SQL vs. Map-Reduce&lt;br /&gt;- Good Availability vs. Very high availability&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4440415138052248747-8133139696072435956?l=razanpokhrel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://razanpokhrel.blogspot.com/feeds/8133139696072435956/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://razanpokhrel.blogspot.com/2010/04/nosql-not-only-sql-crazy-fast.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4440415138052248747/posts/default/8133139696072435956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4440415138052248747/posts/default/8133139696072435956'/><link rel='alternate' type='text/html' href='http://razanpokhrel.blogspot.com/2010/04/nosql-not-only-sql-crazy-fast.html' title='NoSQL (Not Only SQL) - Crazy Fast'/><author><name>Rajan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4440415138052248747.post-7447717245241630819</id><published>2010-04-14T22:33:00.000-07:00</published><updated>2010-04-14T22:49:00.741-07:00</updated><title type='text'>James Gosling left Oracle/Sun</title><content type='html'>He said "Yes, indeed, the rumors are true: I resigned from Oracle a week ago (April 2nd)" and added "As to why I left, it's difficult to answer: Just about anything I could say that would be accurate and honest would do more harm than good.". What the second sentence he mentioned means? Should we aware about the future of Java? Many are commenting he can do better without Oracle. To how extend is that convenient? I mean, I am confused about whether he can do better or not. But still I always trust a GEEK like him and always hope for the best for them, wherever he goes, whatever he does would be innovative, definitely. On the other hand failure of Sun was the failure of James Gosling and he was also failed. But let's hope he never fails again although the failure is the part of success.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4440415138052248747-7447717245241630819?l=razanpokhrel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://razanpokhrel.blogspot.com/feeds/7447717245241630819/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://razanpokhrel.blogspot.com/2010/04/james-gosling-left-oraclesun.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4440415138052248747/posts/default/7447717245241630819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4440415138052248747/posts/default/7447717245241630819'/><link rel='alternate' type='text/html' href='http://razanpokhrel.blogspot.com/2010/04/james-gosling-left-oraclesun.html' title='James Gosling left Oracle/Sun'/><author><name>Rajan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
