<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CEIBSXYycCp7ImA9WhRRFEk.&quot;"><id>tag:blogger.com,1999:blog-7054543485166290590</id><updated>2011-11-27T17:09:18.898-08:00</updated><category term="pdflatex" /><category term="calendar" /><category term="javascript" /><category term="s3" /><category term="client" /><category term="erlang" /><category term="China" /><category term="web" /><category term="perl" /><category term="availability" /><category term="String" /><category term="c10k" /><category term="donate" /><category term="comic" /><category term="load" /><category term="http" /><category term="service" /><category term="switch" /><category term="earthquake" /><category term="firefox" /><category term="tail" /><category term="xkcd" /><category term="Chrome" /><category term="jetty" /><category term="browser" /><category term="printer" /><category term="long tail" /><category term="optiplex" /><category term="function" /><category term="Canada" /><category term="JUnit" /><category term="nitrogen" /><category term="PS" /><category term="mashup" /><category term="power law" /><category term="visualization" /><category term="gossip" /><category term="p2p" /><category term="tool" /><category term="REST" /><category term="decentralized" /><category term="process" /><category term="security" /><category term="programming" /><category term="GoogleApp" /><category term="heavy tail" /><category term="pdftex" /><category term="visio" /><category term="rc10k" /><category term="cloud" /><category term="multi-process" /><category term="Java" /><category term="blog" /><category term="latex2html" /><category term="zipf" /><category term="netpbm" /><category term="time" /><category term="UofS" /><category term="comet" /><category term="consistency" /><category term="fake" /><category term="Eclipse" /><category term="EPS" /><category term="benchmarking" /><category term="wideFinder" /><category term="testing" /><category term="ubuntu" /><category term="landscape" /><category term="LaTeX" /><category term="aptana" /><category term="CFP" /><category term="problem" /><title>Serenity Leads to a Further Vision</title><subtitle type="html">Notes on research, technology, and life</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://dongnotes.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://dongnotes.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Dong Liu</name><uri>http://www.blogger.com/profile/12777478092719343060</uri><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>34</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/SerenityLeadsToAFurtherVision" /><feedburner:info uri="serenityleadstoafurthervision" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CkUEQH4_cCp7ImA9WhdaEk8.&quot;"><id>tag:blogger.com,1999:blog-7054543485166290590.post-1479438778621787398</id><published>2011-10-13T19:10:00.000-07:00</published><updated>2011-10-21T11:03:21.048-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-21T11:03:21.048-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="pdflatex" /><category scheme="http://www.blogger.com/atom/ns#" term="pdftex" /><category scheme="http://www.blogger.com/atom/ns#" term="landscape" /><category scheme="http://www.blogger.com/atom/ns#" term="LaTeX" /><title>Landscape table or image in LaTeX</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/pO3Wf97MRtkKRn14gOfugJBcDTU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pO3Wf97MRtkKRn14gOfugJBcDTU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/pO3Wf97MRtkKRn14gOfugJBcDTU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pO3Wf97MRtkKRn14gOfugJBcDTU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;A thumb rule for landscape table or image in LaTeX: &lt;div&gt;&lt;ol&gt;&lt;li&gt;If you are using latex+dvips+ps2pdf, use the sidewaystable or sidewaysfigure or just sideway environment in rotating package. &lt;/li&gt;&lt;li&gt;If you are on pdflatex, use the landscape environment in pdflscape package instead. sideway prodices a sideway table/figure, but has problem to produce a right landscape view of the page in the pdf file. &lt;/li&gt;&lt;/ol&gt;For the second option, you might also need the afterpage package to have a properly floating page for the landscape table/figure without a half-blank page before it. The environment is like &lt;/div&gt;&lt;blockquote&gt;\afterpage{&lt;br /&gt;\clearpage&lt;br /&gt;\thispagestyle{plain}&lt;br /&gt;\begin{landscape}&lt;br /&gt;\begin{table}[htp]&lt;br /&gt;% your table here&lt;br /&gt;\end{table}&lt;br /&gt;\end{landscape}&lt;br /&gt;\clearpage&lt;br /&gt;}&lt;/blockquote&gt;&lt;blockquote&gt;&lt;div&gt;&lt;p style="margin: 0px; text-indent: 0px;"&gt;&lt;/p&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;p style="margin: 0px; text-indent: 0px;"&gt;&lt;!--EndFragment--&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7054543485166290590-1479438778621787398?l=dongnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SerenityLeadsToAFurtherVision/~4/PWijRjiweJI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://dongnotes.blogspot.com/feeds/1479438778621787398/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7054543485166290590&amp;postID=1479438778621787398" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/1479438778621787398?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/1479438778621787398?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SerenityLeadsToAFurtherVision/~3/PWijRjiweJI/landscape-table-or-image-in-latex.html" title="Landscape table or image in LaTeX" /><author><name>Dong Liu</name><uri>http://www.blogger.com/profile/12777478092719343060</uri><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><feedburner:origLink>http://dongnotes.blogspot.com/2011/10/landscape-table-or-image-in-latex.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MESHk9eip7ImA9WhZTEk8.&quot;"><id>tag:blogger.com,1999:blog-7054543485166290590.post-9086756429597334476</id><published>2011-03-09T19:10:00.000-08:00</published><updated>2011-03-15T13:36:49.762-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-15T13:36:49.762-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="jetty" /><category scheme="http://www.blogger.com/atom/ns#" term="security" /><title>Authentication in embedded Jetty 7 server</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/IwNIPLam78EaFxXfFgM3vpUYuU0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IwNIPLam78EaFxXfFgM3vpUYuU0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/IwNIPLam78EaFxXfFgM3vpUYuU0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IwNIPLam78EaFxXfFgM3vpUYuU0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;A change in Jetty security from 6 to 7 is the introduction of &lt;a href="http://download.eclipse.org/jetty/stable-7/apidocs/org/eclipse/jetty/security/LoginService.html"&gt;LoginService&lt;/a&gt;, which was &lt;a href="http://wiki.eclipse.org/Jetty/Tutorial/Realms"&gt;designed&lt;/a&gt; to replace &lt;a href="http://docs.codehaus.org/display/JETTY/How+to+Configure+Security+with+Embedded+Jetty"&gt;UserRealm based&lt;/a&gt; &lt;a href="http://blogs.usask.ca/dong_notes/technology/jetty6authentication.html"&gt;approach&lt;/a&gt;. The usage of LoginService can be seen in the example &lt;a href="http://download.eclipse.org/jetty/stable-7/xref/org/eclipse/jetty/embedded/SecuredHelloHandler.html"&gt;SecuredHelloHandler&lt;/a&gt; and the test case of &lt;a href="http://dev.eclipse.org/svnroot/rt/org.eclipse.jetty/jetty/trunk/jetty-client/src/test/java/org/eclipse/jetty/client/SecuredContentExchangeTest.java"&gt;SecuredContentExchangeTest&lt;/a&gt; . Basically, the LoginService needs to be attached to a SecurityHander, and the SecurityHandler needs to wrap the handler that needs the authentication service. This can be done by either&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-family: courier new;"&gt;securityHandler.setHandler(yourHandler); &lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;or&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-family: courier new;"&gt;ServletContextHandler theContext = new ServletContextHandler(handlerContainer, contextPath, sessionHandler, securityHandler,&lt;/span&gt; servletHandler, errorHandler);&lt;span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"&gt;&lt;span class="Apple-converted-space"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"&gt;&lt;span class="Apple-converted-space"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7054543485166290590-9086756429597334476?l=dongnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SerenityLeadsToAFurtherVision/~4/Lzsh0fcZWbc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://dongnotes.blogspot.com/feeds/9086756429597334476/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7054543485166290590&amp;postID=9086756429597334476" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/9086756429597334476?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/9086756429597334476?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SerenityLeadsToAFurtherVision/~3/Lzsh0fcZWbc/authentication-in-embedded-jetty-7.html" title="Authentication in embedded Jetty 7 server" /><author><name>Dong Liu</name><uri>http://www.blogger.com/profile/12777478092719343060</uri><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><feedburner:origLink>http://dongnotes.blogspot.com/2011/03/authentication-in-embedded-jetty-7.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0cEQXc_fip7ImA9Wx9UE0Q.&quot;"><id>tag:blogger.com,1999:blog-7054543485166290590.post-9118558207340943656</id><published>2011-02-10T19:30:00.000-08:00</published><updated>2011-02-10T19:30:00.946-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-10T19:30:00.946-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="aptana" /><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu" /><title>Aptana Studio 2.0.5 on Ubuntu 10.04</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/zM9mzk4gCu3x-jDMrxBdp5KLwsQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zM9mzk4gCu3x-jDMrxBdp5KLwsQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/zM9mzk4gCu3x-jDMrxBdp5KLwsQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zM9mzk4gCu3x-jDMrxBdp5KLwsQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Aptana Studio 2.0.5 used to work well in my Ubuntu 9.04. It started to split out error message related to xulrunner after I updated Ubuntu to 10.04. When I removed the Apatana and its workspace, it even stopped to show the messages and silently crashed. After digging and trying for almost an afternoon, I fixed the problem by adding this line to the AptanaStudio.ini file:&lt;br /&gt;&lt;blockquote style="font-family: courier new;"&gt;&lt;span style="font-size:85%;"&gt;-Dorg.eclipse.swt.browser.XULRunnerPath=/usr/lib/xulrunner-1.9.2.13&lt;/span&gt;&lt;/blockquote&gt;You might change the path to whatever on your system. Note that there is a &lt;span style="font-size:85%;"&gt;&lt;span style="font-size:100%;"&gt;/usr/lib/xulrunner&lt;/span&gt; &lt;/span&gt;directory on my system, but that does not contain or link to the real literary files. I did not try if &lt;span style="font-family: courier new;"&gt;export&lt;/span&gt; the &lt;span style="font-family: courier new;"&gt;$MOZILLA_FIVE_HOME&lt;/span&gt; to the &lt;span style="font-weight: bold;"&gt;real&lt;/span&gt; xulrunner lib path will also work. &lt;span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"&gt;&lt;span class="Apple-style-span" style="color: rgb(73, 73, 73); font-family: Verdana,Helvetica,sans-serif; font-size: 12px; line-height: 20px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7054543485166290590-9118558207340943656?l=dongnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SerenityLeadsToAFurtherVision/~4/wjJo4s_tpso" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://dongnotes.blogspot.com/feeds/9118558207340943656/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7054543485166290590&amp;postID=9118558207340943656" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/9118558207340943656?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/9118558207340943656?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SerenityLeadsToAFurtherVision/~3/wjJo4s_tpso/aptana-studio-205-on-ubuntu-1004.html" title="Aptana Studio 2.0.5 on Ubuntu 10.04" /><author><name>Dong Liu</name><uri>http://www.blogger.com/profile/12777478092719343060</uri><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><feedburner:origLink>http://dongnotes.blogspot.com/2011/02/aptana-studio-205-on-ubuntu-1004.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkMEQH86cCp7ImA9Wx5SFEU.&quot;"><id>tag:blogger.com,1999:blog-7054543485166290590.post-5754751589641176906</id><published>2010-08-10T18:00:00.000-07:00</published><updated>2010-08-10T18:00:01.118-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-10T18:00:01.118-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="JUnit" /><title>Eclipse Java test case cannot be found in a project?</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-uvRd_EwBAf1G3KOPV2xuJxLeLw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-uvRd_EwBAf1G3KOPV2xuJxLeLw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-uvRd_EwBAf1G3KOPV2xuJxLeLw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-uvRd_EwBAf1G3KOPV2xuJxLeLw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;span&gt;&lt;span&gt;Eclipse said "No tests found with test runner 'JUnit 4'". &lt;a href="http://junit.sourceforge.net/doc/faq/faq.htm#running_11"&gt;The answer in JUnit FAQ&lt;/a&gt; does not fix my case. And &lt;a href="http://stackoverflow.com/questions/2332832/no-tests-found-with-test-runner-junit-4"&gt;the answers on stackoverflow&lt;/a&gt; did not help as well.  Later I figured out that the reason of the problem was that I did not properly organize the test cases in my project. &lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;The Junit FAQ has &lt;a href="http://junit.sourceforge.net/doc/faq/faq.htm#organize_1"&gt;a good suggestion&lt;/a&gt;. I have a default &lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;src&lt;/span&gt; directory for the source and a &lt;span&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;test&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; directory for the test cases. In order to let the runner find the test case, the &lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;test&lt;/span&gt;&lt;span&gt; directory has to be a &lt;/span&gt;&lt;i&gt;Source Folder&lt;/i&gt;&lt;span&gt;, not just a directory created in the project directory. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7054543485166290590-5754751589641176906?l=dongnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SerenityLeadsToAFurtherVision/~4/2IrqssCOWD4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://dongnotes.blogspot.com/feeds/5754751589641176906/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7054543485166290590&amp;postID=5754751589641176906" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/5754751589641176906?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/5754751589641176906?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SerenityLeadsToAFurtherVision/~3/2IrqssCOWD4/eclipse-java-test-case-cannot-be-found.html" title="Eclipse Java test case cannot be found in a project?" /><author><name>Dong Liu</name><uri>http://www.blogger.com/profile/12777478092719343060</uri><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><feedburner:origLink>http://dongnotes.blogspot.com/2010/08/eclipse-java-test-case-cannot-be-found.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8BSXg-fip7ImA9WxFSGUo.&quot;"><id>tag:blogger.com,1999:blog-7054543485166290590.post-8538587494242445410</id><published>2010-04-22T15:39:00.000-07:00</published><updated>2010-04-22T15:54:18.656-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-22T15:54:18.656-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="firefox" /><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu" /><title>Enable java in Firefox 3.0 on Ubuntu 9.04</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/kb5fWvumdOjoueTrU6O2aHHAa8k/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kb5fWvumdOjoueTrU6O2aHHAa8k/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/kb5fWvumdOjoueTrU6O2aHHAa8k/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kb5fWvumdOjoueTrU6O2aHHAa8k/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;I assume you have install the JVM or SDK already. If not, see &lt;a href="https://help.ubuntu.com/community/JavaInstallation"&gt;this document&lt;/a&gt; for reference. Maybe you also need to use the update-alternatives tool to choose the latest version as the default. Then what you need to do is to ln the libjavaplugin_oji.so plugin in the &lt;span style="font-weight: bold;"&gt;mozilla&lt;/span&gt; plugins directory. Creating a link in the firefox plugins directory in your system won't work. You might use the following commands to locate the plugin and create the link.&lt;br /&gt;&lt;blockquote style="font-family: courier new;"&gt;&lt;span style="font-size:85%;"&gt;locate libjavaplugin_oji.so&lt;br /&gt;sudo ln -s {the latest java}/jre/plugin/i386/ns7/libjavaplugin_oji.so /usr/lib/mozilla/plugins/libjavaplugin_oji.so&lt;/span&gt;&lt;/blockquote&gt;Restart your firefox and you should be able to see java in the Add-ons list.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7054543485166290590-8538587494242445410?l=dongnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SerenityLeadsToAFurtherVision/~4/tGypnxF-BfM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://dongnotes.blogspot.com/feeds/8538587494242445410/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7054543485166290590&amp;postID=8538587494242445410" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/8538587494242445410?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/8538587494242445410?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SerenityLeadsToAFurtherVision/~3/tGypnxF-BfM/enable-java-in-firefox-30-on-ubuntu-904.html" title="Enable java in Firefox 3.0 on Ubuntu 9.04" /><author><name>Dong Liu</name><uri>http://www.blogger.com/profile/12777478092719343060</uri><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><feedburner:origLink>http://dongnotes.blogspot.com/2010/04/enable-java-in-firefox-30-on-ubuntu-904.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkcEQXw8fyp7ImA9WxBWGUk.&quot;"><id>tag:blogger.com,1999:blog-7054543485166290590.post-8712809672349876471</id><published>2010-02-11T18:00:00.000-08:00</published><updated>2010-02-11T18:00:00.277-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-11T18:00:00.277-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="javascript" /><category scheme="http://www.blogger.com/atom/ns#" term="visualization" /><title>dygraphs plot x-axis labels align with grids</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/LKer6Md1cOiZILA0uf-MbYbazKg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LKer6Md1cOiZILA0uf-MbYbazKg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/LKer6Md1cOiZILA0uf-MbYbazKg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LKer6Md1cOiZILA0uf-MbYbazKg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Recently, I learned to use the &lt;a href="http://danvk.org/dygraphs/"&gt;dygraphs&lt;/a&gt; JS library for 2d chart. Dygraphs is designed to&lt;br /&gt;&lt;blockquote&gt;display dense data sets and enable users to explore and interpret them.&lt;/blockquote&gt;&lt;br /&gt;I like it more than &lt;a href="http://code.google.com/p/flot/"&gt;Flot&lt;/a&gt;, another JS ploting library.&lt;br /&gt;&lt;br /&gt;One problem I found was that the x-axis labels do not align with the grids in FireFox, while it is fine in Chrome. The fix is quite simple, just never use &lt;span style="font-style: italic;"&gt;align = center&lt;/span&gt; in the &lt;span style="font-style: italic;"&gt;&lt;div&gt; where the plot is embedded. A note from the author of dygraphs.&lt;br /&gt;&lt;blockquote&gt;dygraphs are not happy when placed inside a tag. This applies to the CSS text-align property as well. If you want to center a Dygraph, put it inside a table with align = center set.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7054543485166290590-8712809672349876471?l=dongnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SerenityLeadsToAFurtherVision/~4/xMA08pyJv1Y" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://dongnotes.blogspot.com/feeds/8712809672349876471/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7054543485166290590&amp;postID=8712809672349876471" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/8712809672349876471?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/8712809672349876471?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SerenityLeadsToAFurtherVision/~3/xMA08pyJv1Y/dygraphs-plot-x-axis-labels-align-with.html" title="dygraphs plot x-axis labels align with grids" /><author><name>Dong Liu</name><uri>http://www.blogger.com/profile/12777478092719343060</uri><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><feedburner:origLink>http://dongnotes.blogspot.com/2010/02/dygraphs-plot-x-axis-labels-align-with.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEMEQHo_fCp7ImA9WxBQF0o.&quot;"><id>tag:blogger.com,1999:blog-7054543485166290590.post-2074910034748516704</id><published>2010-01-17T17:00:00.000-08:00</published><updated>2010-01-17T17:00:01.444-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-17T17:00:01.444-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="printer" /><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu" /><title>HP LaserJet 1020 on Ubunut 9.04</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/msWwr5wPtEpwT4UjvGWtWyNNAtA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/msWwr5wPtEpwT4UjvGWtWyNNAtA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/msWwr5wPtEpwT4UjvGWtWyNNAtA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/msWwr5wPtEpwT4UjvGWtWyNNAtA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;After an update, the printer does not work any more.&lt;br /&gt;&lt;blockquote&gt;Linux hpws 2.6.28-17-generic #58-Ubuntu SMP Tue Dec 1 18:57:07 UTC 2009 i686 GNU/Linux&lt;/blockquote&gt;Delete the printer and reinstall HPLIP&lt;br /&gt;&lt;blockquote&gt;sudo apt-get install hplip&lt;/blockquote&gt;The printer is found, but still does not print. &lt;br /&gt;Only after clicking &lt;span style="font-weight: bold;"&gt;Download Firmfare&lt;/span&gt; in HP Device Manager, it starts to respond to the printing request.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7054543485166290590-2074910034748516704?l=dongnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SerenityLeadsToAFurtherVision/~4/ljFwsOE3GM0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://dongnotes.blogspot.com/feeds/2074910034748516704/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7054543485166290590&amp;postID=2074910034748516704" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/2074910034748516704?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/2074910034748516704?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SerenityLeadsToAFurtherVision/~3/ljFwsOE3GM0/hp-laserjet-1020-on-ubunut-904.html" title="HP LaserJet 1020 on Ubunut 9.04" /><author><name>Dong Liu</name><uri>http://www.blogger.com/profile/12777478092719343060</uri><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><feedburner:origLink>http://dongnotes.blogspot.com/2010/01/hp-laserjet-1020-on-ubunut-904.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0UEQ3o8cSp7ImA9WxBREk8.&quot;"><id>tag:blogger.com,1999:blog-7054543485166290590.post-6882391588377805523</id><published>2009-12-30T17:00:00.000-08:00</published><updated>2009-12-30T17:00:02.479-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-30T17:00:02.479-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><title>What is the web service language/framework Barbara Liskov mentioned</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/hQMjhc9GkxePefj-BqEdQYczQp8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hQMjhc9GkxePefj-BqEdQYczQp8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/hQMjhc9GkxePefj-BqEdQYczQp8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hQMjhc9GkxePefj-BqEdQYczQp8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;In &lt;a href="http://www.infoq.com/presentations/liskov-power-of-abstraction"&gt;her talk&lt;/a&gt; titled "The Power Of Abstraction" given in OOPSLA2009, Barbara Liskov mentioned that she started to learn web services programming, and the language or framework she used has many global variables. I really wonder what she was using.&lt;br /&gt;&lt;br /&gt;The talk is good and especially reveals the history of development of abstract data type by the list of influential papers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7054543485166290590-6882391588377805523?l=dongnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SerenityLeadsToAFurtherVision/~4/uAF2I1HpEAg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://dongnotes.blogspot.com/feeds/6882391588377805523/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7054543485166290590&amp;postID=6882391588377805523" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/6882391588377805523?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/6882391588377805523?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SerenityLeadsToAFurtherVision/~3/uAF2I1HpEAg/what-is-web-service-languageframework.html" title="What is the web service language/framework Barbara Liskov mentioned" /><author><name>Dong Liu</name><uri>http://www.blogger.com/profile/12777478092719343060</uri><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><feedburner:origLink>http://dongnotes.blogspot.com/2009/12/what-is-web-service-languageframework.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUGSXY8fip7ImA9WxBTFUg.&quot;"><id>tag:blogger.com,1999:blog-7054543485166290590.post-8974520653606674350</id><published>2009-12-11T09:55:00.001-08:00</published><updated>2009-12-11T09:57:08.876-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-11T09:57:08.876-08:00</app:edited><title>Zero copy for Java HTTP file server</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/XAb4bkgv1wT9lhL1yq890-LGX5E/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/XAb4bkgv1wT9lhL1yq890-LGX5E/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/XAb4bkgv1wT9lhL1yq890-LGX5E/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/XAb4bkgv1wT9lhL1yq890-LGX5E/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;This makes it impossible for normal Java-based HTTP service to take the advantage of &lt;a href="http://en.wikipedia.org/wiki/Zero-copy"&gt;zero&lt;/a&gt; &lt;a href="http://www.ibm.com/developerworks/library/j-zerocopy/"&gt;copy&lt;/a&gt;.&lt;/p&gt;in reference to: &lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;"It is not possible to create a channel for an arbitrary, pre-existing socket, nor is it possible to specify the SocketImpl object to be used by a socket associated with a socket channel."&lt;br /&gt;- &lt;a href="http://java.sun.com/j2se/1.5.0/docs/api/java/nio/channels/SocketChannel.html"&gt;SocketChannel (Java 2 Platform SE 5.0)&lt;/a&gt; (&lt;a href="http://www.google.com/sidewiki/entry/100350483028755272969/id/q8owFf9riky_wQwjSNQCT2RdhjE"&gt;view on Google Sidewiki&lt;/a&gt;)&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7054543485166290590-8974520653606674350?l=dongnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SerenityLeadsToAFurtherVision/~4/3B5a2iZCaGY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://dongnotes.blogspot.com/feeds/8974520653606674350/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7054543485166290590&amp;postID=8974520653606674350" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/8974520653606674350?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/8974520653606674350?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SerenityLeadsToAFurtherVision/~3/3B5a2iZCaGY/zero-copy-for-java-http-file-server.html" title="Zero copy for Java HTTP file server" /><author><name>Dong Liu</name><uri>http://www.blogger.com/profile/12777478092719343060</uri><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><feedburner:origLink>http://dongnotes.blogspot.com/2009/12/zero-copy-for-java-http-file-server.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUUGR346fyp7ImA9WxNaGUk.&quot;"><id>tag:blogger.com,1999:blog-7054543485166290590.post-2683937266733834924</id><published>2009-12-04T09:20:00.001-08:00</published><updated>2009-12-04T09:20:26.017-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-04T09:20:26.017-08:00</app:edited><title>Free DNS servers</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/KzpkQbuywk0l3ytHE6Ml6c-C-vY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KzpkQbuywk0l3ytHE6Ml6c-C-vY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/KzpkQbuywk0l3ytHE6Ml6c-C-vY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KzpkQbuywk0l3ytHE6Ml6c-C-vY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;Maybe some ISP's like this. The last time I tried to find a free DNS is two years ago when the ISP DNS was down. I like the ip they choose, easy to remember. &lt;br/&gt;&lt;br/&gt;Maybe DNS is the first place that browsing statistic can be collected.&lt;/p&gt;in reference to: &lt;p&gt;&lt;blockquote&gt;"To try it out: Configure your network settings to use the IP addresses 8.8.8.8 and 8.8.4.4 as your DNS servers or Read our configuration instructions."&lt;br/&gt;- &lt;a href='http://code.google.com/speed/public-dns/'&gt;Google Public DNS&lt;/a&gt; (&lt;a href='http://www.google.com/sidewiki/entry/100350483028755272969/id/djXHzNn13M1xuYSqYwtFSe_Jq7o'&gt;view on Google Sidewiki&lt;/a&gt;)&lt;/blockquote&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7054543485166290590-2683937266733834924?l=dongnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SerenityLeadsToAFurtherVision/~4/tabjqZU5Nis" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://dongnotes.blogspot.com/feeds/2683937266733834924/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7054543485166290590&amp;postID=2683937266733834924" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/2683937266733834924?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/2683937266733834924?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SerenityLeadsToAFurtherVision/~3/tabjqZU5Nis/free-dns-servers.html" title="Free DNS servers" /><author><name>Dong Liu</name><uri>http://www.blogger.com/profile/12777478092719343060</uri><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><feedburner:origLink>http://dongnotes.blogspot.com/2009/12/free-dns-servers.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUEEQXo5fyp7ImA9WxNaE0o.&quot;"><id>tag:blogger.com,1999:blog-7054543485166290590.post-2966580733695067243</id><published>2009-11-27T18:00:00.000-08:00</published><updated>2009-11-27T18:00:00.427-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-27T18:00:00.427-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="function" /><category scheme="http://www.blogger.com/atom/ns#" term="process" /><category scheme="http://www.blogger.com/atom/ns#" term="time" /><title>Rich Hickey on function, time, and process</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/nz_RltvLUbbClRACanWcsN0jgUU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nz_RltvLUbbClRACanWcsN0jgUU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/nz_RltvLUbbClRACanWcsN0jgUU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nz_RltvLUbbClRACanWcsN0jgUU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;All the concurrency and timing puzzles suddenly become reasonable after listening to &lt;a href="http://www.infoq.com/presentations/Are-We-There-Yet-Rich-Hickey"&gt;his talk&lt;/a&gt; titled "&lt;a href="http://www.blogger.com/wiki.jvmlangsummit.com/images/a/ab/HickeyJVMSummit2009.pdf"&gt;Are we there yet&lt;/a&gt;". I borrowed the book of "&lt;a href="http://en.wikipedia.org/wiki/Process_and_Reality"&gt;Process and Reality&lt;/a&gt;" from the library, and started to learn &lt;a href="http://en.wikipedia.org/wiki/Alfred_North_Whitehead"&gt;Whitehead&lt;/a&gt;'s system. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you do multithreading programming, or play with JavaScript and XHR, or like Erlnag, Clojure, or Scala, then you would perhaps enjoy his talk.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7054543485166290590-2966580733695067243?l=dongnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SerenityLeadsToAFurtherVision/~4/kyq5gfjvE88" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://dongnotes.blogspot.com/feeds/2966580733695067243/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7054543485166290590&amp;postID=2966580733695067243" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/2966580733695067243?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/2966580733695067243?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SerenityLeadsToAFurtherVision/~3/kyq5gfjvE88/rich-hickey-on-function-time-and.html" title="Rich Hickey on function, time, and process" /><author><name>Dong Liu</name><uri>http://www.blogger.com/profile/12777478092719343060</uri><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><feedburner:origLink>http://dongnotes.blogspot.com/2009/11/rich-hickey-on-function-time-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak8EQ3g8fip7ImA9WxNXE0g.&quot;"><id>tag:blogger.com,1999:blog-7054543485166290590.post-5748626920461904113</id><published>2009-09-30T18:00:00.000-07:00</published><updated>2009-09-30T18:00:02.676-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-30T18:00:02.676-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="perl" /><title>/bin/perl^M: bad interpreter</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/t7sKqxFDAF0Tr3ijZj6Pk41Q3nk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/t7sKqxFDAF0Tr3ijZj6Pk41Q3nk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/t7sKqxFDAF0Tr3ijZj6Pk41Q3nk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/t7sKqxFDAF0Tr3ijZj6Pk41Q3nk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;After digging for a while, it turns out the cause is the perl interpreter on Linux cannot recognize the end of line character &lt;span style="font-weight: bold;"&gt;CRLF&lt;/span&gt; in windows files. What it expects is &lt;span style="font-weight: bold;"&gt;LF&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Using EOL as end of statement is not system independent.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7054543485166290590-5748626920461904113?l=dongnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SerenityLeadsToAFurtherVision/~4/OhxIyV7wrZc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://dongnotes.blogspot.com/feeds/5748626920461904113/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7054543485166290590&amp;postID=5748626920461904113" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/5748626920461904113?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/5748626920461904113?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SerenityLeadsToAFurtherVision/~3/OhxIyV7wrZc/binperlm-bad-interpreter.html" title="/bin/perl^M: bad interpreter" /><author><name>Dong Liu</name><uri>http://www.blogger.com/profile/12777478092719343060</uri><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><feedburner:origLink>http://dongnotes.blogspot.com/2009/09/binperlm-bad-interpreter.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUYCQng9eyp7ImA9WxNQEUs.&quot;"><id>tag:blogger.com,1999:blog-7054543485166290590.post-7000829690392546512</id><published>2009-09-16T22:48:00.000-07:00</published><updated>2009-09-16T22:59:23.663-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-16T22:59:23.663-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="nitrogen" /><category scheme="http://www.blogger.com/atom/ns#" term="comet" /><category scheme="http://www.blogger.com/atom/ns#" term="erlang" /><category scheme="http://www.blogger.com/atom/ns#" term="web" /><title>Slides for TRLab Erlang workshop</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/vmjiOphy4fekN0P56damlz-gJOU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vmjiOphy4fekN0P56damlz-gJOU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/vmjiOphy4fekN0P56damlz-gJOU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vmjiOphy4fekN0P56damlz-gJOU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;These are the slides I prepared for the last session of the &lt;a href="http://www.trlabs.ca/trlabs/about/events/20090916sk.html"&gt;workshop&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;iframe src="http://docs.google.com/present/embed?id=ddxd7dkh_135c493qvd2&amp;interval=5" frameborder="0" width="410" height="342"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7054543485166290590-7000829690392546512?l=dongnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SerenityLeadsToAFurtherVision/~4/JaL3rIJns-Y" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://dongnotes.blogspot.com/feeds/7000829690392546512/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7054543485166290590&amp;postID=7000829690392546512" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/7000829690392546512?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/7000829690392546512?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SerenityLeadsToAFurtherVision/~3/JaL3rIJns-Y/slides-for-trlab-erlang-workshop.html" title="Slides for TRLab Erlang workshop" /><author><name>Dong Liu</name><uri>http://www.blogger.com/profile/12777478092719343060</uri><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><feedburner:origLink>http://dongnotes.blogspot.com/2009/09/slides-for-trlab-erlang-workshop.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0IGRHw5fyp7ImA9WxBQF0k.&quot;"><id>tag:blogger.com,1999:blog-7054543485166290590.post-4773381762085333840</id><published>2009-05-15T08:38:00.000-07:00</published><updated>2010-01-17T08:25:25.227-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-17T08:25:25.227-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="optiplex" /><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu" /><title>Ubuntu 9.04 on Dell Optiplex 760</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/dxjABtlhHp-25azMooyvHfJmWtU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dxjABtlhHp-25azMooyvHfJmWtU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/dxjABtlhHp-25azMooyvHfJmWtU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dxjABtlhHp-25azMooyvHfJmWtU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;The issue was reported as &lt;a href="https://bugs.launchpad.net/ubuntu/+source/linux/+bug/348694"&gt;Bug #348694&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I experienced the same problems reported there. When installing from liveCD, during the first stage you have to push the power switch to generate interruptions until the keyboard is on. Then you can start to strike a key. When the mouse is on, you can move mouse to keep the system awake. I am not sure if there is way to keep the mouse always busy in that way you will save time for installation.&lt;br /&gt;&lt;br /&gt;The next day morning, you will find installation is finished, and you need to restart. Then you need to set the kernel options when the grub screen is on.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;hpet=disable helps, but does not solve the problem.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;acpi=off solve the problem, but you will lose a CPU.&lt;/li&gt;&lt;li&gt;acpi_skip_timer_override is the best solution.&lt;/li&gt;&lt;/ul&gt;Update: Dell has released a bios fix available here &lt;a rel="nofollow" href="http://ftp.us.dell.com/bios/O760-A03.EXE"&gt;http://&lt;wbr&gt;ftp.us.&lt;wbr&gt;dell.com/&lt;wbr&gt;bios/O760-&lt;wbr&gt;A03.EXE&lt;/a&gt;&lt;br /&gt;You need to have windows system installed to fix though.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7054543485166290590-4773381762085333840?l=dongnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SerenityLeadsToAFurtherVision/~4/TWqaU4TYKsA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://dongnotes.blogspot.com/feeds/4773381762085333840/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7054543485166290590&amp;postID=4773381762085333840" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/4773381762085333840?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/4773381762085333840?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SerenityLeadsToAFurtherVision/~3/TWqaU4TYKsA/ubuntu-904-on-dell-optiplex-760.html" title="Ubuntu 9.04 on Dell Optiplex 760" /><author><name>Dong Liu</name><uri>http://www.blogger.com/profile/12777478092719343060</uri><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><feedburner:origLink>http://dongnotes.blogspot.com/2009/05/ubuntu-904-on-dell-optiplex-760.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8NRXwzeCp7ImA9WxVVGUU.&quot;"><id>tag:blogger.com,1999:blog-7054543485166290590.post-6974770991480717878</id><published>2009-03-13T16:06:00.000-07:00</published><updated>2009-03-13T16:28:14.280-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-13T16:28:14.280-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="mashup" /><title>Google search is the biggest server-side mashup</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/veRfX2b1UnlycSSrfte4jhHT0O8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/veRfX2b1UnlycSSrfte4jhHT0O8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/veRfX2b1UnlycSSrfte4jhHT0O8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/veRfX2b1UnlycSSrfte4jhHT0O8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Each search result page is a mashup of multiple pages, their snapshots, and possibly different representations.  Of course, some contents are old, but some "important" pages are refreshed constantly in Google's index. Now they even add features like &lt;a href="http://www.google.ca/support/websearch/bin/answer.py?hl=en&amp;amp;answer=115764"&gt;SearchWiki&lt;/a&gt; to personalize it.  Maybe people will like the idea of SearchWiki more and more.  In fact, we have used a personal mashup for a long time --- the Google Reader.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7054543485166290590-6974770991480717878?l=dongnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SerenityLeadsToAFurtherVision/~4/LWGmZM-hGuw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://dongnotes.blogspot.com/feeds/6974770991480717878/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7054543485166290590&amp;postID=6974770991480717878" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/6974770991480717878?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/6974770991480717878?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SerenityLeadsToAFurtherVision/~3/LWGmZM-hGuw/google-search-is-biggest-server-side.html" title="Google search is the biggest server-side mashup" /><author><name>Dong Liu</name><uri>http://www.blogger.com/profile/12777478092719343060</uri><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><feedburner:origLink>http://dongnotes.blogspot.com/2009/03/google-search-is-biggest-server-side.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU8EQnw6fCp7ImA9WxVWFE0.&quot;"><id>tag:blogger.com,1999:blog-7054543485166290590.post-5505763665473428891</id><published>2009-02-23T07:30:00.000-08:00</published><updated>2009-02-23T07:43:23.214-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-23T07:43:23.214-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="printer" /><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu" /><title>HP printer on Ubuntu 8.10</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/5Tkw4DEVvIgM_uyUFvzq2gqtLbc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5Tkw4DEVvIgM_uyUFvzq2gqtLbc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/5Tkw4DEVvIgM_uyUFvzq2gqtLbc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5Tkw4DEVvIgM_uyUFvzq2gqtLbc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;The lessons I learned by trial and error about my Laserjet 1020.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://foo2zjs.rkkda.com/"&gt;foo2zjs&lt;/a&gt; works sometimes, but will have problem when CUPS is updated.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://hplipopensource.com/hplip-web/install/install/index.html"&gt;HPLIP&lt;/a&gt; always works if you install the latest version, not the one in repository.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7054543485166290590-5505763665473428891?l=dongnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SerenityLeadsToAFurtherVision/~4/b1bBBJjsKg0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://dongnotes.blogspot.com/feeds/5505763665473428891/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7054543485166290590&amp;postID=5505763665473428891" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/5505763665473428891?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/5505763665473428891?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SerenityLeadsToAFurtherVision/~3/b1bBBJjsKg0/hp-printer-on-ubuntu-810.html" title="HP printer on Ubuntu 8.10" /><author><name>Dong Liu</name><uri>http://www.blogger.com/profile/12777478092719343060</uri><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><feedburner:origLink>http://dongnotes.blogspot.com/2009/02/hp-printer-on-ubuntu-810.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMEQH04fSp7ImA9WxVWEUs.&quot;"><id>tag:blogger.com,1999:blog-7054543485166290590.post-1769137665895678798</id><published>2009-02-20T12:51:00.000-08:00</published><updated>2009-02-20T12:56:41.335-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-20T12:56:41.335-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="erlang" /><category scheme="http://www.blogger.com/atom/ns#" term="wideFinder" /><title>A page about the wide finder</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/NqgPnh2InTkNiQ_3RIB3XzX47Ro/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NqgPnh2InTkNiQ_3RIB3XzX47Ro/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/NqgPnh2InTkNiQ_3RIB3XzX47Ro/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NqgPnh2InTkNiQ_3RIB3XzX47Ro/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;I have published &lt;a href="http://docs.google.com/Doc?id=ddxd7dkh_67qmhtt8kj"&gt;the page of wide finder&lt;/a&gt;, which was created for a group discussion on Erlang.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;  &lt;span style="font-size:100%;"&gt; The problem of wide finder was coined by Tim Bray, and is summarized in &lt;/span&gt;&lt;a href="http://www.tbray.org/ongoing/When/200x/2007/09/20/Wide-Finder"&gt;&lt;span style="font-size:100%;"&gt;http://www.tbray.org/ongoing/When/200x/2007/09/20/Wide-Finder&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;  &lt;/span&gt; &lt;/div&gt; &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The task is to read an Apache logfile and figure out which pages have been fetched the most. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt; &lt;div&gt;  &lt;span style="font-size:100%;"&gt; The reference &lt;b&gt;Ruby &lt;/b&gt;code &lt;/span&gt; &lt;/div&gt; &lt;div&gt;&lt;br /&gt;&lt;/div&gt; &lt;blockquote&gt;&lt;b&gt;# 11 lines&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span style="color: rgb(56, 118, 29);"&gt;&lt;b&gt;counts = {}&lt;br /&gt;counts.default = 0&lt;br /&gt;ARGF.each_line do |line|&lt;br /&gt;   if line =~ %r{GET /ongoing/When/\d\d\dx/(\d\d\d\d/\d\d/\d\d/[^ .]+) }&lt;br /&gt;       counts[$1] += 1&lt;br /&gt;   end&lt;br /&gt;end&lt;br /&gt;keys_by_count = counts.keys.sort { |a, b| counts[b] &lt;=&gt; counts[a] }&lt;br /&gt;keys_by_count[0 .. 9].each do |key|&lt;br /&gt;   puts "#{counts[key]}: #{key}"&lt;br /&gt;end&lt;/b&gt;&lt;/span&gt;&lt;/span&gt; &lt;/blockquote&gt; &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Bray's original idea was to check if Erlang is good option for this problem on multi-core platforms.&lt;/div&gt;&lt;a href="http://docs.google.com/Doc?id=ddxd7dkh_67qmhtt8kj"&gt;Read more ...&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7054543485166290590-1769137665895678798?l=dongnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SerenityLeadsToAFurtherVision/~4/nbLnVEJvLuw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://dongnotes.blogspot.com/feeds/1769137665895678798/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7054543485166290590&amp;postID=1769137665895678798" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/1769137665895678798?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/1769137665895678798?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SerenityLeadsToAFurtherVision/~3/nbLnVEJvLuw/page-about-wide-finder.html" title="A page about the wide finder" /><author><name>Dong Liu</name><uri>http://www.blogger.com/profile/12777478092719343060</uri><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><feedburner:origLink>http://dongnotes.blogspot.com/2009/02/page-about-wide-finder.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUUGQHYycSp7ImA9WxVQF0s.&quot;"><id>tag:blogger.com,1999:blog-7054543485166290590.post-4682273379691632105</id><published>2009-02-04T07:30:00.000-08:00</published><updated>2009-02-04T08:00:21.899-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-04T08:00:21.899-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="CFP" /><category scheme="http://www.blogger.com/atom/ns#" term="fake" /><title>Be careful when you see some CFP's or invitations</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/KuTFQhh6x8qHNA6zIiJdd_NyL90/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KuTFQhh6x8qHNA6zIiJdd_NyL90/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/KuTFQhh6x8qHNA6zIiJdd_NyL90/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KuTFQhh6x8qHNA6zIiJdd_NyL90/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Some links for this sensitive topic:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://diehimmelistschoen.blogspot.com/"&gt;http://diehimmelistschoen.blogspot.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://netdriver.blogspot.com/2009/01/from-site-httpwwwanti-plagiarismorg.html"&gt;http://netdriver.blogspot.com/2009/01/from-site-httpwwwanti-plagiarismorg.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://delicious.com/tag/fakeconference"&gt;http://delicious.com/tag/fakeconference&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7054543485166290590-4682273379691632105?l=dongnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SerenityLeadsToAFurtherVision/~4/IzFdwipVciQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://dongnotes.blogspot.com/feeds/4682273379691632105/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7054543485166290590&amp;postID=4682273379691632105" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/4682273379691632105?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/4682273379691632105?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SerenityLeadsToAFurtherVision/~3/IzFdwipVciQ/be-careful-when-you-see-some-cfps-or.html" title="Be careful when you see some CFP's or invitations" /><author><name>Dong Liu</name><uri>http://www.blogger.com/profile/12777478092719343060</uri><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><feedburner:origLink>http://dongnotes.blogspot.com/2009/02/be-careful-when-you-see-some-cfps-or.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C04DQXw6fCp7ImA9WxVQFUQ.&quot;"><id>tag:blogger.com,1999:blog-7054543485166290590.post-5843107990930635777</id><published>2009-01-09T14:18:00.000-08:00</published><updated>2009-02-02T08:26:10.214-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-02T08:26:10.214-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="http" /><category scheme="http://www.blogger.com/atom/ns#" term="rc10k" /><category scheme="http://www.blogger.com/atom/ns#" term="c10k" /><category scheme="http://www.blogger.com/atom/ns#" term="client" /><title>The reverse C10K problem</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/zrbXVEMzLZuvtS_MNv3DWYov59o/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zrbXVEMzLZuvtS_MNv3DWYov59o/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/zrbXVEMzLZuvtS_MNv3DWYov59o/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zrbXVEMzLZuvtS_MNv3DWYov59o/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;The &lt;a href="http://www.kegel.com/c10k.html"&gt;original C10K problem&lt;/a&gt; studies how to provide reasonable service to 10,000 simultaneous clients or HTTP requests using a normal web server. I call the following problem the reverse C10K problem, or RC10K --- how to support 10,000 simultaneous outbound HTTP requests running on a web server. The RC10K problem can be found in scenarios like service orchestrations and server-side mashups. A server-side mashup needs to send several simultaneous HTTP requests to partner services for each inbound request.&lt;br /&gt;&lt;br /&gt;Many approaches to improving the performance and scalability of HTTP servers can be applied to tackle the original C10K problem. However, whether these approaches can tackle the reverse C10K problem needs to be verified.  My &lt;a href="http://homepage.usask.ca/%7Edol142/Files/RC10K.pdf"&gt;recent paper&lt;/a&gt; discussed the RC10K problem, and presented some experiment results got from a prototype mashup server application.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7054543485166290590-5843107990930635777?l=dongnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SerenityLeadsToAFurtherVision/~4/oFgmzWH2KOA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://dongnotes.blogspot.com/feeds/5843107990930635777/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7054543485166290590&amp;postID=5843107990930635777" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/5843107990930635777?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/5843107990930635777?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SerenityLeadsToAFurtherVision/~3/oFgmzWH2KOA/reverse-c10k-problem.html" title="The reverse C10K problem" /><author><name>Dong Liu</name><uri>http://www.blogger.com/profile/12777478092719343060</uri><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><feedburner:origLink>http://dongnotes.blogspot.com/2009/01/reverse-c10k-problem.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEcGR305eSp7ImA9WxVQFUQ.&quot;"><id>tag:blogger.com,1999:blog-7054543485166290590.post-1878867510365214752</id><published>2008-12-31T08:08:00.000-08:00</published><updated>2009-02-02T08:27:06.321-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-02T08:27:06.321-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="xkcd" /><title>People like to try what they are not good at</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/dPPyP91Oe8ihuM5lLJYcv7JXVCc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dPPyP91Oe8ihuM5lLJYcv7JXVCc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/dPPyP91Oe8ihuM5lLJYcv7JXVCc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dPPyP91Oe8ihuM5lLJYcv7JXVCc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://imgs.xkcd.com/comics/google_trends.png" style="text-decoration: none;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;img style="margin: 0px auto 10px; text-decoration: underline; display: block; text-align: center; cursor: pointer; width: 437px; height: 249px;" src="http://imgs.xkcd.com/comics/google_trends.png" alt="" border="0" /&gt;&lt;/a&gt;From &lt;a href="http://xkcd.com/"&gt;xkcd.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7054543485166290590-1878867510365214752?l=dongnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SerenityLeadsToAFurtherVision/~4/rFC5fOgO4b8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://dongnotes.blogspot.com/feeds/1878867510365214752/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7054543485166290590&amp;postID=1878867510365214752" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/1878867510365214752?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/1878867510365214752?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SerenityLeadsToAFurtherVision/~3/rFC5fOgO4b8/people-like-to-try-what-they-are-not.html" title="People like to try what they are not good at" /><author><name>Dong Liu</name><uri>http://www.blogger.com/profile/12777478092719343060</uri><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><feedburner:origLink>http://dongnotes.blogspot.com/2008/12/people-like-to-try-what-they-are-not.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQHR3Yyeip7ImA9WxRWEk4.&quot;"><id>tag:blogger.com,1999:blog-7054543485166290590.post-2659344890052013770</id><published>2008-10-28T14:25:00.000-07:00</published><updated>2008-10-28T15:18:56.892-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-28T15:18:56.892-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="benchmarking" /><category scheme="http://www.blogger.com/atom/ns#" term="tool" /><category scheme="http://www.blogger.com/atom/ns#" term="testing" /><category scheme="http://www.blogger.com/atom/ns#" term="load" /><title>Two models of load testing and corresponding tools</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/u4mlFDtGww7MgDYRzO3knAY-bUc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/u4mlFDtGww7MgDYRzO3knAY-bUc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/u4mlFDtGww7MgDYRzO3knAY-bUc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/u4mlFDtGww7MgDYRzO3knAY-bUc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;When a load testing is conducted, a tester first needs to decide what kind of workload should be applied, that is, load characterized by the number of clients or arrival rate (interarrival time) . For those who always use one tool for load testing, it is better to try other options to get different interpretation of system behaviors.&lt;br /&gt;&lt;br /&gt;Tools specify the number of clients:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://jakarta.apache.org/jmeter/"&gt;JMeter&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://faban.sunsource.net/"&gt;Faban&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;These two are both developed in Java. The most important parameter to be configured is the number of simulated users that will send requests to the server. The simulated concurrent users are natually mapped to Java threads. Both of them can specify thinking time of different distributions. A difference between them is  that JMeter specifies &lt;span style="font-weight: bold;"&gt;how many rounds&lt;/span&gt; the request scenario will run and Faban specifies &lt;span style="font-weight: bold;"&gt;how long&lt;/span&gt; the test will run.&lt;br /&gt;&lt;br /&gt;Tools specify the arrival rate:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://tsung.erlang-projects.org/"&gt;Tsung&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Since the processes in Erlang are very light, new process can be spawned very fast and a machine can support thousands of Erlang processes without problem. This make it possible for Tsung to generate load of given interarrival time, while it is difficult for Java-based tools.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7054543485166290590-2659344890052013770?l=dongnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SerenityLeadsToAFurtherVision/~4/_aJkg9w0j6Q" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://dongnotes.blogspot.com/feeds/2659344890052013770/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7054543485166290590&amp;postID=2659344890052013770" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/2659344890052013770?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/2659344890052013770?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SerenityLeadsToAFurtherVision/~3/_aJkg9w0j6Q/two-models-of-load-testing-and.html" title="Two models of load testing and corresponding tools" /><author><name>Dong Liu</name><uri>http://www.blogger.com/profile/12777478092719343060</uri><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><feedburner:origLink>http://dongnotes.blogspot.com/2008/10/two-models-of-load-testing-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkQFRno9fSp7ImA9WxRXEks.&quot;"><id>tag:blogger.com,1999:blog-7054543485166290590.post-7533022590197026419</id><published>2008-10-17T09:52:00.000-07:00</published><updated>2008-10-17T10:25:17.465-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-17T10:25:17.465-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="service" /><category scheme="http://www.blogger.com/atom/ns#" term="CFP" /><category scheme="http://www.blogger.com/atom/ns#" term="REST" /><category scheme="http://www.blogger.com/atom/ns#" term="web" /><title>Finally they heard that ... "web-based services"</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/nOuB6Z32v-FBVSdqwACqbMhLf0E/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nOuB6Z32v-FBVSdqwACqbMhLf0E/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/nOuB6Z32v-FBVSdqwACqbMhLf0E/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nOuB6Z32v-FBVSdqwACqbMhLf0E/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Back in 2007, W3C had a workshop of "&lt;a href="http://www.blogger.com/post-create.g?blogID=7054543485166290590"&gt;Web of Services for Enterprise Computing&lt;/a&gt;". I have blogged it &lt;a href="http://blogs.usask.ca/dong_notes/technology/servicewebworkshop.html"&gt;here&lt;/a&gt;. The presentations at the workshop made me understand more about why some thought the so-called "web services" were not about web. It was around that time that I started to believe that REST is much better than WS-* for the problems I was looking at. These came to my mind when I read &lt;a href="http://conferences.computer.org/icws/2009/call-for-papers.html"&gt;the CFP of ICWS2009&lt;/a&gt; this morning. It sounds like that the organizers began to realize that "web services" should be "web-based services". Two of three major conference areas have web titled -- "Web-based Services", "Web Services Applications beyond Web".  Hope I can have a manuscript for it by January 19, 2009. &lt;span class="Apple-style-span" style="border-collapse: separate; color: rgb(80, 80, 80); font-style: normal; font-variant: normal; font-weight: bold; letter-spacing: normal; line-height: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;font-family:Tahoma;font-size:13;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7054543485166290590-7533022590197026419?l=dongnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SerenityLeadsToAFurtherVision/~4/gDluNxsYVQY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://dongnotes.blogspot.com/feeds/7533022590197026419/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7054543485166290590&amp;postID=7533022590197026419" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/7533022590197026419?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/7533022590197026419?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SerenityLeadsToAFurtherVision/~3/gDluNxsYVQY/finally-they-heard-that-web-based.html" title="Finally they heard that ... &quot;web-based services&quot;" /><author><name>Dong Liu</name><uri>http://www.blogger.com/profile/12777478092719343060</uri><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><feedburner:origLink>http://dongnotes.blogspot.com/2008/10/finally-they-heard-that-web-based.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUEHRHgzcSp7ImA9WxRREUU.&quot;"><id>tag:blogger.com,1999:blog-7054543485166290590.post-8012255888660919456</id><published>2008-09-23T09:18:00.000-07:00</published><updated>2008-09-23T09:33:55.689-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-23T09:33:55.689-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="consistency" /><category scheme="http://www.blogger.com/atom/ns#" term="cloud" /><category scheme="http://www.blogger.com/atom/ns#" term="s3" /><category scheme="http://www.blogger.com/atom/ns#" term="availability" /><title>Reflection from Pat Helland about Amazon S3 outrage</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/SCkKV6Z1A0u-6u6snwLJS17Ub44/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SCkKV6Z1A0u-6u6snwLJS17Ub44/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/SCkKV6Z1A0u-6u6snwLJS17Ub44/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SCkKV6Z1A0u-6u6snwLJS17Ub44/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;The post titled &lt;span&gt;&lt;span&gt;"&lt;a href="http://blogs.msdn.com/pathelland/archive/2008/09/01/confidence-in-the-cloud.aspx"&gt;Confidence in the Cloud&lt;/a&gt;" by Data guru Pat is really worth reading. Interesting quotations from his post: &lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=";font-family:verdana;font-size:19;"  &gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote&gt;the implementations which sent the minimum amount of data seemed to be the most resilient.&lt;/blockquote&gt;which leads to&lt;br /&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;font-family:verdana;font-size:19;"  &gt;&lt;/span&gt;&lt;blockquote&gt;Communicating less information within a message is usually best.  If you send extra stuff, it can cause corruption!&lt;/blockquote&gt;For cloud, he predicts&lt;blockquote&gt;As I look at data center cost structures, it is clear that it is going to be a competitive business with many advantages to large data center managers with large economies of scale.  In a handful of years, most companies will look to offsite providers for their reliable servers.&lt;/blockquote&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7054543485166290590-8012255888660919456?l=dongnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SerenityLeadsToAFurtherVision/~4/w6i-L07Uzss" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://dongnotes.blogspot.com/feeds/8012255888660919456/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7054543485166290590&amp;postID=8012255888660919456" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/8012255888660919456?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/8012255888660919456?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SerenityLeadsToAFurtherVision/~3/w6i-L07Uzss/reflection-from-pat-helland-about.html" title="Reflection from Pat Helland about Amazon S3 outrage" /><author><name>Dong Liu</name><uri>http://www.blogger.com/profile/12777478092719343060</uri><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><feedburner:origLink>http://dongnotes.blogspot.com/2008/09/reflection-from-pat-helland-about.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EFR347eCp7ImA9WxRTFEU.&quot;"><id>tag:blogger.com,1999:blog-7054543485166290590.post-2959204094746427262</id><published>2008-09-03T15:35:00.001-07:00</published><updated>2008-09-03T15:40:16.000-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-03T15:40:16.000-07:00</app:edited><title>Word cloud of my reading</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/mL8qBU5nFIP6AUL0DDJ_fzl6yn0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mL8qBU5nFIP6AUL0DDJ_fzl6yn0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/mL8qBU5nFIP6AUL0DDJ_fzl6yn0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mL8qBU5nFIP6AUL0DDJ_fzl6yn0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_609qF0DvCaw/SL8Rk65tW0I/AAAAAAAAAmY/4qFfv_H4l8g/s1600-h/word2008.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_609qF0DvCaw/SL8Rk65tW0I/AAAAAAAAAmY/4qFfv_H4l8g/s400/word2008.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5241927817266813762" /&gt;&lt;/a&gt;Created by &lt;a href="http://wordle.net/"&gt;Wordle&lt;/a&gt;. You may need Firefox, because Chrome does not support the applet. &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7054543485166290590-2959204094746427262?l=dongnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SerenityLeadsToAFurtherVision/~4/3udjQd7LEN0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://dongnotes.blogspot.com/feeds/2959204094746427262/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7054543485166290590&amp;postID=2959204094746427262" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/2959204094746427262?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/2959204094746427262?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SerenityLeadsToAFurtherVision/~3/3udjQd7LEN0/word-cloud-of-my-reading.html" title="Word cloud of my reading" /><author><name>Dong Liu</name><uri>http://www.blogger.com/profile/12777478092719343060</uri><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://2.bp.blogspot.com/_609qF0DvCaw/SL8Rk65tW0I/AAAAAAAAAmY/4qFfv_H4l8g/s72-c/word2008.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://dongnotes.blogspot.com/2008/09/word-cloud-of-my-reading.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUEASXY8cCp7ImA9WxRSEUg.&quot;"><id>tag:blogger.com,1999:blog-7054543485166290590.post-1513188776614432072</id><published>2008-09-03T09:02:00.000-07:00</published><updated>2008-09-11T10:20:48.878-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-11T10:20:48.878-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="comic" /><category scheme="http://www.blogger.com/atom/ns#" term="Chrome" /><category scheme="http://www.blogger.com/atom/ns#" term="multi-process" /><category scheme="http://www.blogger.com/atom/ns#" term="browser" /><title>Comic of Google Chrome</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Ds1nCHC2Zc1Rl7p_fv_z9nzD_UY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Ds1nCHC2Zc1Rl7p_fv_z9nzD_UY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Ds1nCHC2Zc1Rl7p_fv_z9nzD_UY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Ds1nCHC2Zc1Rl7p_fv_z9nzD_UY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Its quite interesting to read &lt;a href="http://www.google.com/googlebooks/chrome/"&gt;what Google engineers think&lt;/a&gt; about the web browser or web client design with respect to multi-threading and multi-process for tabs (http tasks). &lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;img src="http://www.google.com/googlebooks/chrome/images/big/4.jpg" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px;" border="0" alt="" /&gt;&lt;div style="text-align: left;"&gt;And what the multi-process means for memory management.  Many blocking and crashing problems result from shared memory and memory space.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;img src="http://www.google.com/googlebooks/chrome/images/big/6.jpg" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px;" border="0" alt="" /&gt;&lt;br /&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px;" src="http://www.google.com/googlebooks/chrome/images/big/7.jpg" border="0" alt="" /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7054543485166290590-1513188776614432072?l=dongnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SerenityLeadsToAFurtherVision/~4/vHI2IqzGEl4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://dongnotes.blogspot.com/feeds/1513188776614432072/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7054543485166290590&amp;postID=1513188776614432072" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/1513188776614432072?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7054543485166290590/posts/default/1513188776614432072?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SerenityLeadsToAFurtherVision/~3/vHI2IqzGEl4/comic-of-google-chrome.html" title="Comic of Google Chrome" /><author><name>Dong Liu</name><uri>http://www.blogger.com/profile/12777478092719343060</uri><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><feedburner:origLink>http://dongnotes.blogspot.com/2008/09/comic-of-google-chrome.html</feedburner:origLink></entry></feed>

