<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6294827</id><updated>2011-08-29T06:57:56.305-04:00</updated><title type='text'>Main BLOGGER</title><subtitle type='html'>This is Pop's BLOG, for his bad memory.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://puliu.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default?start-index=101&amp;max-results=100'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>256</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6294827.post-386380227210724346</id><published>2010-05-11T12:42:00.002-04:00</published><updated>2010-05-11T12:50:46.940-04:00</updated><title type='text'>final answer to lazy initialization of Java singleton object</title><summary type='text'>main idea: let Java JVM do the synchronizationstatic class SingletonContainer{    private static Singleton singleton = new Singleton();    public static Singleton getInstance(){       return singleton;    }}http://en.wikipedia.org/wiki/Initialization_on_demand_holder_idiom</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/386380227210724346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/386380227210724346'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2010/05/final-answer-to-lazy-initialization-of.html' title='final answer to lazy initialization of Java singleton object'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-4577525037998392179</id><published>2010-04-27T16:13:00.002-04:00</published><updated>2010-04-27T16:15:47.047-04:00</updated><title type='text'>JavaScript Quine</title><summary type='text'>If in a browser, replace the "print" with "alert"print((function(){return"print(("+arguments.callee.toString().replace(/\s/g,"")+")())";})())</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/4577525037998392179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/4577525037998392179'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2010/04/javascript-quine.html' title='JavaScript Quine'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-1341519245301044026</id><published>2009-04-17T15:27:00.001-04:00</published><updated>2009-04-17T15:27:03.425-04:00</updated><title type='text'>write content to iframe</title><summary type='text'>using ifrm.doc.open()/write()/close()But not perfect for IE7 due to some cross-site issue                function submitFormByAjax(targetId){                    var form = dojo.byId("tab_form"); // save ref to form                     dojo.xhrPost( {                       form: form,                       load: function(data) {                          // set the form's HTML to be the response</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/1341519245301044026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/1341519245301044026'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2009/04/write-content-to-iframe.html' title='write content to iframe'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-8578089091179353036</id><published>2009-03-25T12:37:00.001-04:00</published><updated>2009-03-25T12:37:07.900-04:00</updated><title type='text'>a unified way to display svg in browsers</title><summary type='text'>1. server side   a. using flamingo tool   java -cp flamingo-tst.jar:flamingo.jar:batik-all.jar:xml-apis-ext.jar:xml-apis.jar test.svg.SVGApplicaiton   to convert SVG to Java2D class file   b. The generated Java2D class file can in turn create the JPEG file to be displayed in browser 2. dojo client side   using svg2gfx.xsl (dojox.gfx.demos.data) to convert SVG to JSON file which can be rendered by</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/8578089091179353036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/8578089091179353036'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2009/03/unified-way-to-display-svg-in-browsers.html' title='a unified way to display svg in browsers'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-1401767671683675140</id><published>2008-09-23T19:44:00.001-04:00</published><updated>2008-09-23T19:44:21.775-04:00</updated><title type='text'>T42, Ubuntu, Gusty, boot up too slow</title><summary type='text'>Check /etc/usplash.confAjust the xres and yres to 1024X768then run     sudo update-usplash-theme usplash-theme-ubuntuThis should fix the problem-- Pop (Pu Liu)   </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/1401767671683675140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/1401767671683675140'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2008/09/t42-ubuntu-gusty-boot-up-too-slow.html' title='T42, Ubuntu, Gusty, boot up too slow'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-7062008564142391484</id><published>2008-08-04T16:07:00.001-04:00</published><updated>2008-08-04T16:07:22.181-04:00</updated><title type='text'>Re: Ubuntu font problem</title><summary type='text'>Re: Ugly fonts on UTF-8 encoded Chinese webpages, etc.I just now solved this problem!You should (don't have to) install the firefly font. Google it. It's  cleaner and does look better.Then you need to disable antialiasing.I had to create a file called .fonts.conf and place it in my home  directory.Here is what the file looks like:&lt;?xml version="1.0"?&gt;&lt;!DOCTYPE fontconfig SYSTEM "fonts.dtd"&gt;&lt;</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/7062008564142391484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/7062008564142391484'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2008/08/re-ubuntu-font-problem_04.html' title='Re: Ubuntu font problem'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-3886785700636212439</id><published>2008-08-04T16:05:00.001-04:00</published><updated>2008-08-04T16:05:05.909-04:00</updated><title type='text'>Re: Ubuntu font problem</title><summary type='text'>in home directory, create a hidden file .fonts.confwith the following content&lt;?xml version="1.0"?&gt;&lt;!DOCTYPE fontconfig SYSTEM "fonts.dtd"&gt;&lt;fontconfig&gt; &lt;!-- Disable font alias for Chinese &lt;= 16px --&gt;&lt;match target="font"&gt;&lt;test qual="any" name="family" compare="eq"&gt;&lt;string&gt;AR PL New Sung&lt;/string&gt; &lt;string&gt;AR PL ShanHeiSun Uni&lt;/string&gt;&lt;string&gt;AR PL ZenKai Uni&lt;/string&gt;&lt;string&gt;Ming(ISO10646)&lt;/string&gt;&lt;</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/3886785700636212439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/3886785700636212439'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2008/08/re-ubuntu-font-problem.html' title='Re: Ubuntu font problem'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-3728398362354599477</id><published>2008-08-04T14:43:00.001-04:00</published><updated>2008-08-04T14:43:56.165-04:00</updated><title type='text'>ubuntu, locale generation hangs problem, a fix which works</title><summary type='text'>                Fco Javier Lopez          wrote     on 2008-07-30:                   (permalink)                                 There's a easy workaround. The /usr/share/locales/install-language-pack script, used in the postinst of the language-packs packages, invokes /usr/sbin/locale-gen. locale-gen makes some work and finally it executes localedef, that hangs up. Looking the "ps -aux" output, </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/3728398362354599477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/3728398362354599477'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2008/08/ubuntu-locale-generation-hangs-problem.html' title='ubuntu, locale generation hangs problem, a fix which works'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-9055116828794283853</id><published>2008-07-22T15:56:00.001-04:00</published><updated>2008-07-22T15:56:38.351-04:00</updated><title type='text'>obscured URL</title><summary type='text'>http://email.about.com/gi/dynamic/offsite.htm?site=http://www.pc-help.org/obscure.htm In Sum  URLs can be obscured at least three ways:  Meaningless or deceptive text can be added after   "http://" and before an "@" symbol.The domain name can be expressed as an IP address, in   dotted-decimal, dword, octal or hexadecimal format;   and all of these formats have variants.Characters in the URL can </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/9055116828794283853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/9055116828794283853'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2008/07/obscured-url.html' title='obscured URL'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-8758579062001039538</id><published>2008-07-22T13:40:00.001-04:00</published><updated>2008-07-22T13:40:50.599-04:00</updated><title type='text'>POST redirect issue in HTTP</title><summary type='text'>see:http://www.theserverside.com/tt/articles/article.tss?l=RedirectAfterPostt is interesting that PRG pattern exploits non-standard behavior of browsers   and web servers. HTTP 1.1 defines several redirect response codes in 3xx range.   Some of these codes require browser to use the same request type, some require   to change POST to GET, some require to obtain user confirmation when request   is</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/8758579062001039538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/8758579062001039538'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2008/07/post-redirect-issue-in-http.html' title='POST redirect issue in HTTP'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-1664811884977232719</id><published>2008-07-10T19:29:00.000-04:00</published><updated>2008-07-10T19:30:11.510-04:00</updated><title type='text'>Re: build google desktop sidebar in ubuntu 7.10</title><summary type='text'>Failed to update gadget metadataFix:sudo aptitude install ca-certificatesOn Thu, Jul 10, 2008 at 7:11 PM, Pu Liu &lt;pop.liu@gmail.com&gt; wrote: autoconf &gt;= 2.50   automake &gt;= 1.9 libtool &gt;= 1.5.20   This project also depends on the following libraries: SpiderMonkey &gt;= 1.60 libcurl &gt;= 7.15.0, openssl backend is required   libxml2 &gt;= 2.6.0 zlib &gt;= 1.2.0 xulrunner-dev &gt;= 1.8   D-Bus &gt;= 1.0.2 gstreamer </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/1664811884977232719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/1664811884977232719'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2008/07/re-build-google-desktop-sidebar-in.html' title='Re: build google desktop sidebar in ubuntu 7.10'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-6706512626797926598</id><published>2008-07-10T19:11:00.000-04:00</published><updated>2008-07-10T19:12:12.946-04:00</updated><title type='text'>build google desktop sidebar in ubuntu 7.10</title><summary type='text'>autoconf &gt;= 2.50  automake &gt;= 1.9 libtool &gt;= 1.5.20  This project also depends on the following libraries: SpiderMonkey &gt;= 1.60 libcurl &gt;= 7.15.0, openssl backend is required  libxml2 &gt;= 2.6.0 zlib &gt;= 1.2.0 xulrunner-dev &gt;= 1.8  D-Bus &gt;= 1.0.2 gstreamer and gstreamer-plugin-base &gt;= 0.10.0  You can choose from the two toolkits: GTK or QT. If you choose GTK, this project also depends on the </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/6706512626797926598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/6706512626797926598'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2008/07/build-google-desktop-sidebar-in-ubuntu.html' title='build google desktop sidebar in ubuntu 7.10'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-1063034165619294288</id><published>2008-04-15T12:02:00.000-04:00</published><updated>2008-04-15T12:03:06.602-04:00</updated><title type='text'>ubuntu Linux settings tips</title><summary type='text'>1. after cloning the virtualbox vdi, network if names could change"vboxmanage clonevdi src.vdi dest.vdi"this is due to the change of MAC, in order to map the right MAC to ifname "eth0,eth1,...", need to edit"/etc/udev/rules.d/70-persistent-net.rules"For example: notice the address (MAC) and Name (eth0,eth1...)----------------------------------------backup: /etc/udev/rules.d/z25_</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/1063034165619294288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/1063034165619294288'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2008/04/ubuntu-linux-settings-tips.html' title='ubuntu Linux settings tips'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-8133425204521216762</id><published>2008-03-05T18:39:00.000-05:00</published><updated>2008-03-05T18:38:02.008-05:00</updated><title type='text'>How to install MPI in Ubuntu</title><summary type='text'>1. Go get Ubuntu  at http://www.ubuntu.com/getubuntu/download    I am using Desktop version version 7.04, Feisty FawnAfter installing ubuntu, basically we will follow the instructions in https://help.ubuntu.com/community/MPICHCluster2. Linux environment setup     a. setup NFS server on master node (ub0)        a.1 install NFS server         sudo apt-get install nfs-kernel-server        a.2 </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/8133425204521216762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/8133425204521216762'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2008/03/how-to-install-mpi-in-ubuntu.html' title='How to install MPI in Ubuntu'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-6808507185210926613</id><published>2008-02-26T15:15:00.001-05:00</published><updated>2008-02-26T15:15:21.398-05:00</updated><title type='text'>android resources</title><summary type='text'>1. GPShttp://code.google.com/android/toolbox/apis/lbs.html2. Bluetoothhttp://mylifewithandroid.blogspot.com/2008/01/hacking-into-androids-bluetooth-support.html -- Pop (Pu Liu) </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/6808507185210926613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/6808507185210926613'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2008/02/android-resources.html' title='android resources'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-447877174147532602</id><published>2008-01-14T09:41:00.001-05:00</published><updated>2008-01-14T09:41:57.451-05:00</updated><title type='text'>regular expression links</title><summary type='text'>1. ruleshttp://www.zytrax.com/tech/web/regex.htm2.online testhttp://www.fileformat.info/tool/regex.htm -- Pop (Pu Liu) </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/447877174147532602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/447877174147532602'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2008/01/regular-expression-links.html' title='regular expression links'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-4110887112941078917</id><published>2008-01-04T17:12:00.001-05:00</published><updated>2008-01-04T17:12:45.883-05:00</updated><title type='text'>android xmpp demo</title><summary type='text'> -- Pop (Pu Liu) </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/4110887112941078917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/4110887112941078917'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2008/01/android-xmpp-demo.html' title='android xmpp demo'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-3044277730586698903</id><published>2008-01-04T16:53:00.001-05:00</published><updated>2008-01-04T16:53:46.220-05:00</updated><title type='text'>Android, xmpp sample app</title><summary type='text'>1. Simulator's XMPP settings        At first, run the emulator and registered gmail account  'pop.liu@gmail.com' by [Home / App / Dev Tools / XMPP Settings] and made sure the  item 'Stay connected to server' was checked. 2. Simulator's im.dbIn order to send data message, you need to inform android that the jid  and resource name are 'data message capable'. --- launch adb shell ( &lt;SDK&gt;/tools/</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/3044277730586698903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/3044277730586698903'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2008/01/android-xmpp-sample-app.html' title='Android, xmpp sample app'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-7163603513369087450</id><published>2008-01-03T10:01:00.001-05:00</published><updated>2008-01-03T10:01:30.288-05:00</updated><title type='text'>reference books for good UI design</title><summary type='text'>1. Alan Dix, Janet Finlay, Gregory D. Abowd, and Russell Beale: Human-Computer Interaction2. Ben Shneiderman and Catherine Plaisant: Designing The User Interface3. Donald A. Norman, The Design Of Everyday Things 4. Jenny Preece, Yvonne Rogers, and Helen Sharp: Interaction Design5. Jef Raskin, The Humane Interface6. Terry Winograd (ed.): Bringing Design to Software7. Brenda Laurel (ed.): The Art </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/7163603513369087450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/7163603513369087450'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2008/01/reference-books-for-good-ui-design.html' title='reference books for good UI design'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-8338679969379459755</id><published>2007-09-11T10:31:00.001-04:00</published><updated>2007-09-11T10:31:20.049-04:00</updated><title type='text'>dynamic generate javascript</title><summary type='text'>1. The htmlPollServer.html (from http://xcrc.ucvhost.com/demo/pollServer.html)&lt;META  HTTP-EQUIV="Expires" CONTENT="0"&gt;&lt;title&gt;My client&lt;/ title&gt;&lt;script type="text/javascript"&gt;var myscript = ' time2.asp';var timer;function reloadScript() {	var head = document.getElementsByTagName('head').item(0);	var old  = document.getElementById('scriptId');	if (old) head.removeChild (old);	script = </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/8338679969379459755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/8338679969379459755'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2007/09/dynamic-generate-javascript.html' title='dynamic generate javascript'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-3695358302089392304</id><published>2007-09-05T13:10:00.000-04:00</published><updated>2007-09-05T13:11:02.986-04:00</updated><title type='text'>a link of google interview</title><summary type='text'>http://www.nofluffjuststuff.com/blog/brian_pontarelli/2007/08/google_interviewing.html-- Pop (Pu Liu)  </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/3695358302089392304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/3695358302089392304'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2007/09/link-of-google-interview.html' title='a link of google interview'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-6835914072987514684</id><published>2007-07-30T22:48:00.001-04:00</published><updated>2007-07-30T22:48:02.752-04:00</updated><title type='text'>firefox DOM reference</title><summary type='text'>  http://developer.mozilla.org/en/docs/Gecko_DOM_Reference    </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/6835914072987514684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/6835914072987514684'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2007/07/firefox-dom-reference.html' title='firefox DOM reference'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-3709029349950864441</id><published>2007-07-30T21:10:00.001-04:00</published><updated>2007-07-30T21:10:06.818-04:00</updated><title type='text'>a way to communicate with orphan pop-up window</title><summary type='text'>  http://www.1pixelout.net/2005/04/19/cross-window-javascript-communication/        Cross-window Javascript communication  This solution is now officially obsolete. A much nicer and simpler solution is available here.  This is a solution to a problem that I’ve come accross several times before but never really had a go at solving. This time, I just had to get it right or we would have had to use </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/3709029349950864441'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/3709029349950864441'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2007/07/way-to-communicate-with-orphan-pop-up.html' title='a way to communicate with orphan pop-up window'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-1483477659097616464</id><published>2007-07-25T13:58:00.001-04:00</published><updated>2007-07-25T13:58:52.189-04:00</updated><title type='text'>Another good RPM link</title><summary type='text'>Quoted fromhttp://www.idevelopment.info/data/Unix/Linux/LINUX_RPMCommands.shtml    RPM Commands      by Jeff Hunter, Sr. Database Administrator       This document contains an overview of the principal RPM commands for    installing, uninstalling, upgrading, querying, listing, and checking RPM packages    on your Red Hat Linux system.                       # rpm -ivh foo-2.0-4.i386.rpm# rpm -i </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/1483477659097616464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/1483477659097616464'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2007/07/another-good-rpm-link.html' title='Another good RPM link'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-2688332277145584793</id><published>2007-07-25T13:48:00.001-04:00</published><updated>2007-07-25T13:48:53.823-04:00</updated><title type='text'>RPM by example</title><summary type='text'>Quoted and tested fromhttp://dirac.org/linux/rpm.htmlalso see http://www.dirac.org/linux/1. rpm package name convention wine-0.9.2-1rh9winehq.i386.rpm^^^^^                                          Package name:   wine        ^^^^^                                  Version number: 0.9.2 (independent of vendor)                ^^^^^^^^^^^^^                Release number: 1rh9winehq       (this is </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/2688332277145584793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/2688332277145584793'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2007/07/rpm-by-example.html' title='RPM by example'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-6789653371720578356</id><published>2007-07-20T12:14:00.001-04:00</published><updated>2007-07-20T12:14:39.031-04:00</updated><title type='text'>URL encoding rules</title><summary type='text'>  java.net  Class  URLEncoder java.lang.Object  |  +--java.net.URLEncoder   public class URLEncoderextends Object   The class contains a utility method for converting a  String into a MIME format called  "x-www-form-urlencoded" format.    To convert a String, each character is examined in turn:  The ASCII characters 'a' through 'z',      'A' through 'Z', '0'      through '9', and ".", "-",   "*",</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/6789653371720578356'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/6789653371720578356'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2007/07/url-encoding-rules.html' title='URL encoding rules'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-282558601368053668</id><published>2007-07-17T16:11:00.001-04:00</published><updated>2007-07-17T16:11:24.346-04:00</updated><title type='text'>a good post about JSON/XML debate</title><summary type='text'>http://www.b-list.org/weblog/2006/12/21/i-cant-believe-its-not-xmlquoted from the above link:1.The answer is that JSON works because most people don't really need all that overhead, and because it's often possible to do really interesting things with really simple formats.2.But once you get past the egos and the attachments to this or that language or tool, the XML/s-expressions debate basically </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/282558601368053668'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/282558601368053668'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2007/07/good-post-about-jsonxml-debate.html' title='a good post about JSON/XML debate'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-7082824329773638957</id><published>2007-07-17T10:49:00.001-04:00</published><updated>2007-07-17T10:49:05.607-04:00</updated><title type='text'>A good idea of using Accessibility API to orchestrate GUI applications</title><summary type='text'>http://www.markgrechanik.com/Coins.htmlSee supporting techniques atMSAA http://msdn2.microsoft.com/en-us/library/ms788733.aspxand  SUN ACCESShttp://www.sun.com/access/articles/index.html-- Pop (Pu Liu) </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/7082824329773638957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/7082824329773638957'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2007/07/good-idea-of-using-accessibility-api-to.html' title='A good idea of using Accessibility API to orchestrate GUI applications'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-6302881782392506430</id><published>2007-05-02T15:13:00.001-04:00</published><updated>2007-05-02T15:13:09.172-04:00</updated><title type='text'>Java series in IBM developer works</title><summary type='text'>http://www-128.ibm.com/developerworks/views/java/libraryview.jsp?search_by=practice:-- Pop (Pu Liu)  </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/6302881782392506430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/6302881782392506430'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2007/05/java-series-in-ibm-developer-works.html' title='Java series in IBM developer works'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-6078221973927744069</id><published>2007-05-02T13:31:00.001-04:00</published><updated>2007-05-02T13:31:52.716-04:00</updated><title type='text'>inner class and static members</title><summary type='text'>Registered: 9/7/06        Inner class and static members          Apr 25, 2007 1:25 AM           	 	 	 	 	          	 	               Hi, I know that a non-static inner class can not have static members. But the following code compiles successfully and I am confused at it.class MyOuter{	MyInner inner = new MyInner();   class MyInner  	{     		//private static int[] arr1 = new int[2];     		//</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/6078221973927744069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/6078221973927744069'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2007/05/inner-class-and-static-members.html' title='inner class and static members'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-4182686894160991830</id><published>2007-04-21T11:11:00.001-04:00</published><updated>2007-04-21T11:11:02.513-04:00</updated><title type='text'>all trim of a string in bash</title><summary type='text'>  str=" \t  \n1234 dd 56 \t\n "  trim_str=`expr match "$str" '[ \t\n]*\(.*[^ \t\n]\)[ \t\n]*$'`  echo "'$trim_str'"  #’1234 dd 56’     [ \t\n]* for leading white spaces  \(.*[^ \t\n]\) for substring in between with non-whitespace ending  [ \t\n]*$ for trailing white spaces        expr match "$string" '\($substring\)'  Extracts $substring at beginning of $string, where $substring is a regular </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/4182686894160991830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/4182686894160991830'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2007/04/all-trim-of-string-in-bash.html' title='all trim of a string in bash'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-4628051156502464062</id><published>2007-03-19T16:46:00.001-04:00</published><updated>2007-03-19T16:46:33.647-04:00</updated><title type='text'>Search strings in the file and create new files by replacement</title><summary type='text'>#!/bin/bashARGS=5         # Script requires 3 arguments.E_BADARGS=65   # Wrong number of arguments passed to script.if [ $# -lt "$ARGS" ]# Test number of arguments to script (always a good idea). then  echo "Usage: `basename $0` directory old-pattern new-pattern"  echo "Find all text files under directory recursively and replace old-pattern with new-pattern,        output files are stored in </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/4628051156502464062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/4628051156502464062'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2007/03/search-strings-in-file-and-create-new.html' title='Search strings in the file and create new files by replacement'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-117337384326897203</id><published>2007-03-08T12:10:00.000-05:00</published><updated>2007-03-08T12:10:43.350-05:00</updated><title type='text'>modify vmware bios in Linux</title><summary type='text'>1. Read the thread http://www.vmware.com/community/thread.jspa?threadID=28149&amp;tstart=02. use the following script to get bios rom file #! /bin/bashset -e VMWARE_DIR=`sed -n 's/^libdir *= *"\(.*\)"$/\1/p' &lt; /etc/vmware/config`objcopy $VMWARE_DIR/bin/vmware-vmx -O binary -j .bios440 --set-section-flags .bios440=a /tmp/bios.rom.Z perl -e 'use Compress::Zlib; my $v; read STDIN, $v, 211638; $v = </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/117337384326897203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/117337384326897203'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2007/03/modify-vmware-bios-in-linux.html' title='modify vmware bios in Linux'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-117287184963346403</id><published>2007-03-02T16:44:00.000-05:00</published><updated>2007-03-02T16:44:12.376-05:00</updated><title type='text'>Vnc Display 0</title><summary type='text'>http://www.realvnc.com/products/free/4.1/x0.html-- Pop (Pu Liu) </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/117287184963346403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/117287184963346403'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2007/03/vnc-display-0.html' title='Vnc Display 0'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-117221528651267983</id><published>2007-02-23T02:21:00.000-05:00</published><updated>2007-02-23T02:21:26.613-05:00</updated><title type='text'>Linux force file system check</title><summary type='text'>In Linux, you can not run fsck in the normal runlevel or with the file system in use. You need to do that in single user mode by running "init 1"or use the trick mentioned as following: http://www.karkomaonline.com/article.php/20060411124210124shutdown:       The -f flag means 'reboot fast'. This only creates an advisory file /fastboot which can      be tested by the system when it comes up again</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/117221528651267983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/117221528651267983'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2007/02/linux-force-file-system-check.html' title='Linux force file system check'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-117159136640691804</id><published>2007-02-15T21:02:00.000-05:00</published><updated>2007-02-15T21:02:46.946-05:00</updated><title type='text'>Linux resources and boot disk</title><summary type='text'>  http://www-128.ibm.com/developerworks/linux/  IBM Linux portal     http://www.captain.at/howto-linux-boot-cd.php     This howto uses isolinux to boot the cd, not like other boot CD's, which use "El Torito". Booting a CD via "El Torito" uses a disk image similar like a floppy image, which will take care of loading and configuring the system and the rest of the CD. Booting a CD with isolinux is </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/117159136640691804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/117159136640691804'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2007/02/linux-resources-and-boot-disk.html' title='Linux resources and boot disk'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-117156494333800971</id><published>2007-02-15T13:42:00.000-05:00</published><updated>2007-02-15T13:42:23.346-05:00</updated><title type='text'>Play with initrd</title><summary type='text'>Resources1. http://www.cpqlinux.com/dig-initrd.html2.  http://www.faqs.org/docs/evms/x3834.html Unpacking an initrd#prepare work directorycd ~/temp#Grap initrdcp /media/cdrecorder/initrd.gz .#unzip the filegunzip initrd.gz#you will get a new file named initrd#create a directory as mount point mkdir initrd.dir#before mount it, change to super usersu#mount itmount initrd initrd.dir -o loop#access </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/117156494333800971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/117156494333800971'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2007/02/play-with-initrd.html' title='Play with initrd'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-117156394749698727</id><published>2007-02-15T13:25:00.000-05:00</published><updated>2007-02-15T13:25:47.600-05:00</updated><title type='text'>Linux: Copy Files</title><summary type='text'>1. http://www.sun.com/bigadmin/content/submitted/safely_copy_files.html2. http://www.cs.hmc.edu/qref/targzip.html 3. http://www.unixtips.org/4. http://www.linux.com/guides/abs-guide/cp -r or cp -a might not be appropriate in some cases. 1. NFS (might be a partial copy)2. symbolic links (will copy the actual content)3. file group and permission (will lose)An alternative could be using tar (from  </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/117156394749698727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/117156394749698727'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2007/02/linux-copy-files.html' title='Linux: Copy Files'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-117070053347639077</id><published>2007-02-05T13:35:00.000-05:00</published><updated>2007-02-05T13:35:34.653-05:00</updated><title type='text'>enable existing applications for Grid</title><summary type='text'>Quoted fromhttp://www-128.ibm.com/developerworks/grid/library/gr-enable4/Let's summarize the six strategies:  Strategy 1Batch AnywhereThe application can run as a single job on any of many computers in a grid. Strategy 2Independent Concurrent BatchMultiple independent instances of the application can be running concurrently.Strategy 3Parallel BatchThe work of a batch program is subdivided so that</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/117070053347639077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/117070053347639077'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2007/02/enable-existing-applications-for-grid.html' title='enable existing applications for Grid'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-116982157590374850</id><published>2007-01-26T09:26:00.000-05:00</published><updated>2007-01-26T09:26:16.000-05:00</updated><title type='text'>add sound card to vmware server virtual machine</title><summary type='text'>                        If your virtual machine does not have a virtual sound adapter in the virtual machine configuration file (.vmx)With the virtual machine powered off, try adding the following lines to the end of the .vmx file sound.present = "TRUE"sound.virtualDev = "es1371"sound.fileName = "-1"sound.autodetect = "TRUE"Then you can use wmware server virtual machine configuration to point the</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/116982157590374850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/116982157590374850'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2007/01/add-sound-card-to-vmware-server.html' title='add sound card to vmware server virtual machine'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-116956970417630229</id><published>2007-01-23T11:28:00.000-05:00</published><updated>2007-01-23T11:28:24.280-05:00</updated><title type='text'>UML learning stuff</title><summary type='text'>Java modeling: Summary   Document options  Document options requiring JavaScript are not displayed  Print this page  E-mail this page  Discuss   Rate this page   Help us improve this contentLevel: Introductory Granville Miller (rmiller@togethersoft.com), Mentor, TogetherSoft 01 Jun  2002Welcome to Java modeling, a monthly column for Java developers that examines best practices in the UML, a </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/116956970417630229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/116956970417630229'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2007/01/uml-learning-stuff.html' title='UML learning stuff'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-116948391887422631</id><published>2007-01-22T11:38:00.000-05:00</published><updated>2007-01-22T11:38:38.960-05:00</updated><title type='text'>two articles about C++ assignment operator</title><summary type='text'>http://icu.sourceforge.net/docs/papers/cpp_report/the_anatomy_of_the_assignment_operator.html class TFoo : public TSuperFoo {     TBar* fBar1; //TBar is monomorphic (1)     TBar* fBar2;    // various method definitions go here...}//Do not need to be a virtual function TFoo&amp; const  //considering: a=b=c and (a=b)=cTFoo::operator=(const TFoo&amp; that) {//step 1    if (this == &amp;that) //compare address </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/116948391887422631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/116948391887422631'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2007/01/two-articles-about-c-assignment.html' title='two articles about C++ assignment operator'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-116947663038859983</id><published>2007-01-22T09:37:00.000-05:00</published><updated>2007-01-22T09:37:10.520-05:00</updated><title type='text'>Using copy construction and assign operator</title><summary type='text'>statement:   Using initializer in copy constructor to avoid double initialization for class type members Do not reuse the same for copy constructor and assign operator even they are doing the same thing!In C++, assignment and copy construction are different because the copy constructor initializes uninitialized memory, whereas assignment starts with an existing initialized object.If your class </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/116947663038859983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/116947663038859983'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2007/01/using-copy-construction-and-assign.html' title='Using copy construction and assign operator'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-116947201245895047</id><published>2007-01-22T08:20:00.000-05:00</published><updated>2007-01-22T08:20:12.466-05:00</updated><title type='text'>C++ virtual destructor</title><summary type='text'>5.3.5.3: "If the static type of the operand is different from its dynamic type, the static type shall be a base class of the operand's dynamic type and the static type shall have a virtual destructor or the behavior is undefined." 1. If C++ had a "sealed" keyword, then the rule would be simpler: If you do a "delete p" where p is a pointer to an unsealed class, then that class needs have a virtual</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/116947201245895047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/116947201245895047'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2007/01/c-virtual-destructor.html' title='C++ virtual destructor'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-116344842829983552</id><published>2006-11-13T15:07:00.000-05:00</published><updated>2006-11-13T15:07:08.313-05:00</updated><title type='text'></title><summary type='text'>  SVG learning by example, using Internet Explorerhttp://www.cattocreations.com/LearnSVG/http://www.wpsenergy.com/JayNick/default.aspA free SVG resource websitehttp://www.openclipart.org/SVG and CSShttp://developer.mozilla.org/en/docs/CSS:Getting_Started:SVG_graphicsWeb 2.0 scripthttp://script.aculo.us/Ajax effect with scripthttp://www.thinkvitamin.com/features/ajax/</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/116344842829983552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/116344842829983552'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/11/svg-learning-by-example-using-internet.html' title=''/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-116130160908287056</id><published>2006-10-19T19:46:00.000-04:00</published><updated>2006-10-22T11:47:08.240-04:00</updated><title type='text'>svg tutorial: google "svg, tutorial"</title><summary type='text'>  http://www.kevlindev.com/tutorials/basics/animation/js_dom/index.htm        SVG animation that works for firefox        http://www.kevlindev.com/tutorials/basics/index.htm     http://www.carto.net/papers/svg/samples/     http://apike.ca/prog_svg.html        http://www.codeproject.com/books/learnsvgchapter07.asp  Special HTML codeuse  &amp; # xxx ; http://www.utoronto.ca/webdocs/HTMLdocs/NewHTML/</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/116130160908287056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/116130160908287056'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/10/svg-tutorial-google-svg-tutorial.html' title='svg tutorial: google &quot;svg, tutorial&quot;'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-116069650393811494</id><published>2006-10-12T19:41:00.000-04:00</published><updated>2006-10-12T19:41:46.206-04:00</updated><title type='text'>SVG editor</title><summary type='text'>  GLIPSGraffiti     http://sourceforge.net/project/showfiles.php?group_id=118213&amp;package_id=128699        C:\GLIPSGraffiti1.4&gt;java -classpath GLIPSGraffiti.jar;Libraries.jar fr.itris.gli  ps.svgeditor.SVGEditorMain  </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/116069650393811494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/116069650393811494'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/10/svg-editor.html' title='SVG editor'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-115981527456591395</id><published>2006-10-02T14:54:00.000-04:00</published><updated>2006-10-02T14:54:37.376-04:00</updated><title type='text'>Linux find</title><summary type='text'>Posted By Ken Guest 12:07, 30 June 2006  finder-keepers.  In it's simplest use the find command searches for files in the current directory and its subdirectories: $ find . ./tp1301.txt ./up1301.txt ./tp1302.txt ./up1302.txt ./Up1303.txt ./misc/uploads ./misc/uploads/patch12_13.diff As always, the dot indicates the current directory. Here find has listed all files found in the current directory </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115981527456591395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115981527456591395'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/10/linux-find.html' title='Linux find'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-115939470068063831</id><published>2006-09-27T18:05:00.000-04:00</published><updated>2006-09-27T18:05:01.036-04:00</updated><title type='text'>Kill Linux processes with the same parent PID</title><summary type='text'>1. use pstree to get the tree2. use ps -g &lt;group id&gt;3. use ps -j to list group id4. use ps | awk | xargs kill -9</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115939470068063831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115939470068063831'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/09/kill-linux-processes-with-same-parent.html' title='Kill Linux processes with the same parent PID'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-115928876231973351</id><published>2006-09-26T12:39:00.000-04:00</published><updated>2006-09-26T12:39:22.516-04:00</updated><title type='text'>Virtual Network Computing(VNC)</title><summary type='text'>Quoted from  http://www.frankhilliard.com/remotelinux.cfm  by Frank Hilliard    How to  Run Linux KDE on an Windows Box The answer is with a server-viewer application called Virtual Network Computing from AT&amp;T Laboratories in Cambridge.   Get it from http://www.realvnc.com/ Gunzip it and and untar it and it will create a subdirectory of its own called vnc_x86_linux_2.0. Change directory into it </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115928876231973351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115928876231973351'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/09/virtual-network-computingvnc.html' title='Virtual Network Computing(VNC)'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-115895774106923699</id><published>2006-09-22T16:42:00.000-04:00</published><updated>2006-09-22T16:42:21.176-04:00</updated><title type='text'>Javascript Debugger</title><summary type='text'>For IE explorer, install MSE (Microsoft Script Editor) that is shipped with office XP and office 2003.See http://ciquat.blogspot.com/2006/01/reliable-javascript-debugging-with.htmlFor Firefox, see http://www.mozilla.org/projects/venkman/</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115895774106923699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115895774106923699'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/09/javascript-debugger.html' title='Javascript Debugger'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-115895167394201477</id><published>2006-09-22T15:01:00.000-04:00</published><updated>2006-09-22T15:01:14.200-04:00</updated><title type='text'>Some cool stuff about Javascript</title><summary type='text'>1. tailor the web page as you wishhttp://platypus.mozdev.org/2. view the html source in a better wayhttp://jennifermadden.com/scripts/ViewRenderedSource.html3. thousands of free Javascripts for use.http://www.dynamicdrive.com/</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115895167394201477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115895167394201477'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/09/some-cool-stuff-about-javascript.html' title='Some cool stuff about Javascript'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-115800893608255810</id><published>2006-09-11T17:08:00.000-04:00</published><updated>2006-09-21T12:47:57.016-04:00</updated><title type='text'>Java CodeDOM</title><summary type='text'>http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.jdt.doc.isv/guide/jdt_api_manip.htmFrom scratch  It is possible to create a CompilationUnit from scratch using the factory methods on AST. These method names start with new.... The following is an example that creates a HelloWorld class.  The first snippet is the generated output:  package example; import java.util.*; public class </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115800893608255810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115800893608255810'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/09/java-codedom.html' title='Java CodeDOM'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-115766192153207435</id><published>2006-09-07T16:45:00.000-04:00</published><updated>2006-09-21T12:49:06.433-04:00</updated><title type='text'>A good paper about File Permission from Clement Lefebvre</title><summary type='text'>Get from http://www.linuxforums.org/security/file_permissions.html,  Contributed by Clement Lefebvre  &lt;!--      --&gt;&lt;!--       --&gt;&lt;!--         --&gt;  in Security  In GNU/Linux, file access is restricted. Users don't necessarily have the same rights when it comes to deleting, executing or even reading files. In fact, every file contain data such as its owner, its permissions and other information </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115766192153207435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115766192153207435'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/09/good-paper-about-file-permission-from.html' title='A good paper about File Permission from Clement Lefebvre'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-115755048240965350</id><published>2006-09-06T09:46:00.000-04:00</published><updated>2006-09-06T09:48:02.426-04:00</updated><title type='text'>Semantic Web</title><summary type='text'>from an email talking about AJAX and XLINK, to RDF, to Semantic WebIn wikipedia, search RDF to get the information about Semantic Web</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115755048240965350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115755048240965350'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/09/semantic-web.html' title='Semantic Web'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-115703918322414719</id><published>2006-08-31T10:45:00.000-04:00</published><updated>2006-08-31T11:46:23.346-04:00</updated><title type='text'>Java Preference resources</title><summary type='text'>An introduction to the APIhttp://www-128.ibm.com/developerworks/java/library/j-prefapi.html?ca=dgr-lnxw16PrefAPI1. init the Preference object2. read  value3. write value4. import/export tree5. listening on the changePreference with encryptionhttp://www.ddj.com/dept/windows/184416587 </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115703918322414719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115703918322414719'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/08/java-preference-resources.html' title='Java Preference resources'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-115619492064449923</id><published>2006-08-21T17:11:00.000-04:00</published><updated>2006-08-29T08:46:31.286-04:00</updated><title type='text'>First servlet and JSP</title><summary type='text'>1. download and install Eclipse and Tomcat pluginsee http://www-128.ibm.com/developerworks/library/os-ectom/2. create a Tomcat project3. Write the Servlet code4. create web.xml filespecify servlet and servlet-mapping section5. start tomcatfrom the icon6. in the browser type in:http://localhost:8080/firstServlet/helloAlso seehttp://www.xwt.org/tutorial/eclipse/http://jakarta.apache.org/cactus/</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115619492064449923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115619492064449923'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/08/first-servlet-and-jsp.html' title='First servlet and JSP'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-115582754807920167</id><published>2006-08-17T11:08:00.000-04:00</published><updated>2006-08-18T14:46:45.910-04:00</updated><title type='text'>Subversion: replacement for CVS</title><summary type='text'>http://www-128.ibm.com/developerworks/java/library/j-subversion/index.html 1. Similiar to CVS: diff, patch, tag, commit, revert, and branch2. Support non-ASCII test and binary data3. track moves and deletes4. lack of obliterate (Once the content is in the repository, it will never be lost)1. Install Subversion plugin in Eclipsea. In eclipse, Menu Help --&gt; Software Updates --&gt; Find and Install...b</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115582754807920167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115582754807920167'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/08/subversion-replacement-for-cvs.html' title='Subversion: replacement for CVS'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-115212713075532574</id><published>2006-07-05T15:18:00.000-04:00</published><updated>2006-07-05T15:18:50.763-04:00</updated><title type='text'>ACE_String performance</title><summary type='text'>  From Ajith     String allocation/deallocation is a primary cause of heap fragmentation and poor performance.     There are three things that we can do to speed up string usage.     1.   const SymString fname="my func";   should be .. static const SymChar fname[]=SymText("my func");      SymString will allocate memory for "my func" and copy it every time the function is entered.     2.   </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115212713075532574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115212713075532574'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/07/acestring-performance.html' title='ACE_String performance'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-115212700587730295</id><published>2006-07-05T15:16:00.000-04:00</published><updated>2006-07-05T15:16:45.996-04:00</updated><title type='text'>On performance: socket programming</title><summary type='text'>  http://www-128.ibm.com/developerworks/linux/library/l-hisock.html?ca=dgr-lnxw07BoostSocket          Minimize packet transmit latency.  Minimize system call overhead.  Adjust TCP windows for the Bandwidth Delay      Product.  Dynamically tune the GNU/Linux TCP/IP stack.      </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115212700587730295'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115212700587730295'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/07/on-performance-socket-programming.html' title='On performance: socket programming'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-115145612666964722</id><published>2006-06-27T20:55:00.000-04:00</published><updated>2006-06-27T20:55:26.670-04:00</updated><title type='text'>Readings about Grid Computing</title><summary type='text'>  Introductory Papers:    The Vision of Autonomic      Computing, Jeffrey O.      Kephart, David M. Chess, IEEE Computer 36(1): 41-50 (2003).   Steve R. White, James E. Hanson, Ian      Whalley, David M. Chess, and Jeffrey O. Kephart. An      architectural approach to autonomic computing. In      Proceedings of the International      Conference on Autonomic Computing (ICAC'04), pages 2-9. IEEE </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115145612666964722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115145612666964722'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/06/readings-about-grid-computing.html' title='Readings about Grid Computing'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-115126076066028124</id><published>2006-06-25T14:39:00.000-04:00</published><updated>2006-06-25T21:47:10.213-04:00</updated><title type='text'>Ajax: A new Approach to Web Application</title><summary type='text'>  http://www.adaptivepath.com/publications/essays/archives/000385.php     Quoted from above web site.     Take a look at Google Suggest. Watch the way the suggested terms update as you type, almost instantly. Now look at Google Maps. Zoom in. Use your cursor to grab the map and scroll around a bit. Again, everything happens almost instantly, with no waiting for pages to reload.  Google Suggest </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115126076066028124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115126076066028124'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/06/ajax-new-approach-to-web-application.html' title='Ajax: A new Approach to Web Application'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-115106817253305564</id><published>2006-06-23T09:08:00.000-04:00</published><updated>2006-06-23T09:09:32.553-04:00</updated><title type='text'>WSRF.NET message tracing</title><summary type='text'>In visual studio, open the wse 3.0 property in solution explorer. check the box for message tracing in Diagnotics tab.</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115106817253305564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115106817253305564'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/06/wsrfnet-message-tracing.html' title='WSRF.NET message tracing'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-115090869560111638</id><published>2006-06-21T12:51:00.000-04:00</published><updated>2006-06-25T20:31:59.676-04:00</updated><title type='text'>using inter-process lock</title><summary type='text'>     In Linux     A tutorial on how to use flock      http://www.ecst.csuchico.edu/~beej/guide/ipc/flock.html Linux command: ipcs and ipcrm ACE  In ACE     ACE_OS::flock_xxx is a wrapper facility on top of flock which is fully supported in Linux 2.4.   In windows 2003 server, it is not working well. Instead, we can use ACE_Process_Mutex      Note:      Essentially, the initialization of a lock is</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115090869560111638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115090869560111638'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/06/using-inter-process-lock.html' title='using inter-process lock'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-115030939684925546</id><published>2006-06-14T14:23:00.000-04:00</published><updated>2006-06-14T14:23:16.930-04:00</updated><title type='text'>generic wrapper for logger</title><summary type='text'>  Ggeneralized the service wrapper script that does stdout+err redirection to a file  It's literally 3-4 dead simple lines of code      ServiceWrapper (must be made executable with something like chmod a+x ServiceWrapper)     #!/bin/bash -f # -f: do not source .bashrc (for speed) # Alain Andrieux, Platform     # Wrapper script for stdout/err redirection, service troubleshooting, etc...  # To use </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115030939684925546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115030939684925546'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/06/generic-wrapper-for-logger.html' title='generic wrapper for logger'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-115011434348190319</id><published>2006-06-12T08:12:00.000-04:00</published><updated>2006-06-12T08:12:23.586-04:00</updated><title type='text'>how to add citation reference in word</title><summary type='text'>  An extremely useful skill but can not find it anywhere.     Here is my finding.     1. Create a list of referenced papers, and using “[ index ] “     Select them, click [Format] à [bullet and numbering…] à [customize] à [number format] to add [ ]     2.  In the document, insert a citation     Click [Insert] à [ reference ] à [ cross –reference ], in “Reference Type” choose Numbered item, then </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115011434348190319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115011434348190319'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/06/how-to-add-citation-reference-in-word.html' title='how to add citation reference in word'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-115006825670532114</id><published>2006-06-11T19:24:00.000-04:00</published><updated>2006-06-11T19:24:16.713-04:00</updated><title type='text'>rethink "rethink the Java SOAP stack"</title><summary type='text'>  The main thread: JAX-web service under attack  http://www.theserverside.com/news/thread.tss?thread_id=34298#172874        The response for the paper   Rethink the Java SOAP stack http://www.hpl.hp.com/techreports/2005/HPL-2005-83.pdf     http://weblogs.java.net/blog/arungupta/archive/2005/06/why_rethink_the.html  Introduce JAX-WS 2.0     Further reading  http://radio.javaranch.com/val/2005/06/</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115006825670532114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115006825670532114'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/06/rethink-rethink-java-soap-stack.html' title='rethink &quot;rethink the Java SOAP stack&quot;'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-115006645786074514</id><published>2006-06-11T18:54:00.000-04:00</published><updated>2006-06-11T18:54:18.306-04:00</updated><title type='text'>JAX-RPC, client </title><summary type='text'>  This section shows how to create and run these types of clients:     Static stub  Dynamic proxy  Dynamic invocation      interface (DII)   When you run these client examples, they will access the MyHelloService that you deployed in the preceding section.   http://java.sun.com/j2ee/1.3/docs/tutorial/doc/JAXRPC4.html              Web Service with Apache Axis     http://www.pankaj-k.net/axis4tag/</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115006645786074514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/115006645786074514'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/06/jax-rpc-client.html' title='JAX-RPC, client '/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-114951373023840849</id><published>2006-06-05T09:22:00.000-04:00</published><updated>2006-06-05T09:22:10.280-04:00</updated><title type='text'>Language conversion</title><summary type='text'>  Java to C#  http://www.developer.com/java/other/article.php/2235411  The Java Language Conversion Assistant (JLCA) is a tool that provides the ability to convert Java code and library calls to Microsoft Visual C# .NET. Built based on the ArtinSoft migration technology, this second version adds a number of additional features to its abilities. This includes the ability to convert code from both </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114951373023840849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114951373023840849'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/06/language-conversion.html' title='Language conversion'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-114908804177742020</id><published>2006-05-31T11:07:00.000-04:00</published><updated>2006-05-31T11:07:21.953-04:00</updated><title type='text'>gt4 wsrf soap message</title><summary type='text'>  ---Request CreateResource     &lt;?xml version="1.0" encoding="UTF-8"?&gt;  &lt;soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing"&gt;     &lt;soapenv:Header&gt;    &lt;wsa:MessageID soapenv:mustUnderstand="0"&gt;uuid:083d9e90-f0af-11da-</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114908804177742020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114908804177742020'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/05/gt4-wsrf-soap-message.html' title='gt4 wsrf soap message'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-114904113402673184</id><published>2006-05-30T22:05:00.000-04:00</published><updated>2006-05-30T22:05:34.033-04:00</updated><title type='text'>Java: using system property</title><summary type='text'>  1. use java –D option to define system property     &lt;!-- define the "run-xclient" target --&gt;     &lt;target name="runX" depends="xClient"&gt;        &lt;java classname="xclient.Client" fork="true"&gt;          &lt;jvmarg value="-DcontainerHome=${project-home}"/&gt;          &lt;classpath refid="classpath"/&gt;          &lt;classpath&gt;              &lt;pathelement location="${project-home}/classes"/&gt;          &lt;/classpath&gt;</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114904113402673184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114904113402673184'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/05/java-using-system-property.html' title='Java: using system property'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-114904085985921039</id><published>2006-05-30T22:00:00.000-04:00</published><updated>2006-05-30T22:01:00.123-04:00</updated><title type='text'>JAX-RPC: soap header</title><summary type='text'>  Tried to add SOAP header into the SOAP message in JAX-RPC,   A lot of links showed how to achieve that, but they do not work.  http://www-128.ibm.com/developerworks/webservices/library/ws-tipjax1.html  http://users.skynet.be/pascalbotte/rcx-ws-doc/jaxrpchandler.htm  http://java.boot.by/wsd-guide/ch04s07.html     Finally, found this link (quite old though)  http://www.myfaq.com.cn/A/2003-10-08/</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114904085985921039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114904085985921039'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/05/jax-rpc-soap-header.html' title='JAX-RPC: soap header'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-114851278779095830</id><published>2006-05-24T19:18:00.000-04:00</published><updated>2006-05-24T19:19:47.806-04:00</updated><title type='text'>java jni tutorial</title><summary type='text'>A good one, simple and works well.http://public.cabit.wpcarey.asu.edu/janjua/java/jni/Two methods to load DLL1. System.loadLibrary(String)2. System.load(String)http://www.inonit.com/cygwin/jni/helloWorld/load.html</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114851278779095830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114851278779095830'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/05/java-jni-tutorial.html' title='java jni tutorial'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-114821947863456970</id><published>2006-05-21T09:26:00.000-04:00</published><updated>2006-05-26T12:00:15.166-04:00</updated><title type='text'>WSRF.net Howto</title><summary type='text'>1. install WSRFdotNet2. rebuild the solution by VS20053. go to ${WSRFdotNet}Scripts\SqlExpress, run "setup.bat" to setup database4. run NUnit to test the newly installationtrouble shoot1. can not see WSRF PAT tool bar rebuild add-in trick: have to exit from VS2005 and then manually copied the files from C:\WSRFdotNet\Src\Tools\WSRFServiceAddin\bin\Debug to C:\WSRFdotNet\Bin2. WSRF PAT is not </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114821947863456970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114821947863456970'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/05/wsrfnet-howto.html' title='WSRF.net Howto'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-114783289146088448</id><published>2006-05-16T22:28:00.000-04:00</published><updated>2006-05-16T22:28:11.900-04:00</updated><title type='text'>some thoughts about dynamic deployment</title><summary type='text'>  I am improving my implementation for dynamic deployment via X# code.     Previously, for each incoming X# code, the container will create a separate module (in .JAR or .DLL) by translating X# to Java/C# at first, then invoking the Java compiler or C# compiler. When the user calls the deployed services, which in turn will trigger the newly generated modules, we will face the same situation like </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114783289146088448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114783289146088448'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/05/some-thoughts-about-dynamic-deployment.html' title='some thoughts about dynamic deployment'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-114772681770897718</id><published>2006-05-15T16:58:00.000-04:00</published><updated>2006-05-15T17:00:17.723-04:00</updated><title type='text'>.NET container issues</title><summary type='text'>1. Sandboxing code dynamicallyQuoted from http://www.dotnetthis.com/Articles/DynamicSandboxing.htmI have been getting questions from people about how to make a piece of   managed code execute in a security restricted environment, or how to   "sandbox" it. Some people are trying to use stack walk modifiers (such as   Deny()) to do it, which does not work for this purpose. Other people are   trying</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114772681770897718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114772681770897718'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/05/net-container-issues.html' title='.NET container issues'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-114771202568004414</id><published>2006-05-15T12:33:00.000-04:00</published><updated>2006-05-15T12:53:45.693-04:00</updated><title type='text'>FSM and state pattern</title><summary type='text'>UML Tutorial: Finite State Machineshttp://www.objectmentor.com/resources/articles/umlfsm.pdfState Pattern in C++ Applicationshttp://www.codeproject.com/cpp/statepattern3.asp?df=100&amp;forumid=2614&amp;exp=0&amp;select=1450830</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114771202568004414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114771202568004414'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/05/fsm-and-state-pattern.html' title='FSM and state pattern'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-114770531957874997</id><published>2006-05-15T11:01:00.000-04:00</published><updated>2006-05-15T12:10:54.770-04:00</updated><title type='text'>C++ WS container and WSRF</title><summary type='text'>Deploying C++ Grid Services: Options and Performancehttp://www.cs.duke.edu/~anda/cps296.5/final_projects/PaperWS.pdfWriting Web Services in C/C++ using Globus Toolkit V 4.0 (GT4)http://www.jwork.net/GT4WSC/State and Events for Web Services: A Comparison of Five WSGlobus C core1. WSRFhttp://www.globus.org/toolkit/docs/4.0/common/cwscore/C-GT4-WSRF-Design.pdf2. C container http://www.globus.org/</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114770531957874997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114770531957874997'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/05/c-ws-container-and-wsrf.html' title='C++ WS container and WSRF'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-114728788931372422</id><published>2006-05-10T15:04:00.000-04:00</published><updated>2006-05-10T15:04:49.586-04:00</updated><title type='text'>c++ wrapper for C array</title><summary type='text'>  http://www.informit.com/guides/content.asp?g=cplusplus&amp;seqNum=207&amp;rl=1        template &lt;class T, int _size&gt; struct array_wrapper{ //typedef names used in STL algorithms and containers typedef T value_type; typedef T* iterator; typedef const T * const_iterator; typedef T&amp; reference; typedef const T&amp; const_reference; T v[_size]; //the actual array// member functions of STL containersoperator T* (</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114728788931372422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114728788931372422'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/05/c-wrapper-for-c-array.html' title='c++ wrapper for C array'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-114726836756162480</id><published>2006-05-10T09:39:00.000-04:00</published><updated>2006-05-10T09:39:27.566-04:00</updated><title type='text'>gsoap: from wsdl to .h</title><summary type='text'>  echo gsoap client stub  cd stub  rm *  rem use the typemap.dat  rem xsd__anyType    = | xsd__anyType  rem mcws    = "http://www.cs.binghamton.edu/mcws"  cp ..\typemap.dat .  rem use dom++ for xsd__anyType  cp ..\dom++.h .  wsdl2h -s -c -o gsoap_mcws.h ..\..\wsdl\mcws.wsdl  echo #import "dom++.h" &gt; temp.h  cat gsoap_mcws.h &gt;&gt; temp.h  rem remove the gsoapopt line  sh -c "sed 's_\/\/gsoapopt cw__'</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114726836756162480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114726836756162480'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/05/gsoap-from-wsdl-to-h.html' title='gsoap: from wsdl to .h'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-114713812625989617</id><published>2006-05-08T21:28:00.000-04:00</published><updated>2006-05-08T21:28:47.070-04:00</updated><title type='text'>java code to list jar files in a directory</title><summary type='text'>      private URL[] listJar(String dir)      {        URL[] urls = null;        String suffix=".jar";        int total=0;         try{          File f = new File(dir);          if (!f.exists() || !f.isDirectory())          {             System.out.println ( dir+" does NOT exist" );             return null;          }          String path = f.getPath();          String[] files = f.list();</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114713812625989617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114713812625989617'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/05/java-code-to-list-jar-files-in.html' title='java code to list jar files in a directory'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-114693666882255257</id><published>2006-05-06T13:31:00.000-04:00</published><updated>2006-05-06T13:35:42.533-04:00</updated><title type='text'>Interoperability  for Document-Based Web Services (ASP.NET)</title><summary type='text'>  How to manipulate xsd:anyType in asp.net web service, JWSDP, and gSOAP     This is the first part about ASP.NET      Two good papers are at  http://java.sun.com/developer/technicalArticles/xml/jaxrpcpatterns/index.html  http://java.sun.com/developer/technicalArticles/xml/jaxrpcpatterns2/     Overall, there are five approaches to use document-based web services.         * Using XML in the SOAP </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114693666882255257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114693666882255257'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/05/interoperability-for-document-based.html' title='Interoperability  for Document-Based Web Services (ASP.NET)'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-114649774911330180</id><published>2006-05-01T11:35:00.000-04:00</published><updated>2006-05-01T11:35:49.200-04:00</updated><title type='text'>trouble shooting for firewall and gsoap</title><summary type='text'>  1. change the soap bind to        m = soap_bind(&amp;soap, 0 , m_port, BACKLOG);  DO NOT use   m = soap_bind(&amp;soap, “localhost” , m_port, BACKLOG);     2. in windows, [start] &gt;&gt;&gt; [control panel] &gt;&gt;&gt; [windows Firewall] &gt;&gt;&gt; [Exceptions] &gt;&gt;&gt; [Add Port…]     Give a name and the port for mcws gsoap service.        </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114649774911330180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114649774911330180'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/05/trouble-shooting-for-firewall-and.html' title='trouble shooting for firewall and gsoap'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-114597673550069357</id><published>2006-04-25T10:52:00.000-04:00</published><updated>2006-04-25T10:52:16.133-04:00</updated><title type='text'>Java dynamic class loading issue</title><summary type='text'>  Resource:     The thread to discuss how to add (only) jar files into JVM just like it is added in classpath during start up.  http://forum.java.sun.com/thread.jspa?threadID=300557&amp;start=0&amp;tstart=0     This link talks about how to dynamically plug in/out jar files (the best way)  http://java.sun.com/products/jndi/tutorial/beyond/misc/index.html        A more detailed white paper is available at</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114597673550069357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114597673550069357'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/04/java-dynamic-class-loading-issue.html' title='Java dynamic class loading issue'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-114589997695009088</id><published>2006-04-24T13:32:00.000-04:00</published><updated>2006-04-24T13:32:57.163-04:00</updated><title type='text'>gt4 and jwsdp-1.5 jar difference list</title><summary type='text'>  In GT4 grid service implementation, in order to use client stub generated by jwsdp1.5, we have to copy the following jar files from jwsdp1.5 to gt4.     Details:  ${jwsdp1.5}/jaxrpc/lib/jaxrpc-api.jar  ${jwsdp1.5}/jaxrpc/lib/jaxrpc-impl.jar  ${jwsdp1.5}/jaxrpc/lib/jaxrpc-spi.jar     ${jwsdp1.5}/jwsdp-shared/lib/activation.jar  ${jwsdp1.5}/jwsdp-shared/lib/mail.jar     ${jwsdp1.5}/saaj/lib/</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114589997695009088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114589997695009088'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/04/gt4-and-jwsdp-15-jar-difference-list.html' title='gt4 and jwsdp-1.5 jar difference list'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-114581167371947249</id><published>2006-04-23T13:01:00.000-04:00</published><updated>2006-04-23T13:01:13.873-04:00</updated><title type='text'>WSRF.NET trouble list</title><summary type='text'>  The root cause why in WSRF.NET we can not use object, and object[] is due to the wrong type and element name generated by WSRF.NET           In generated MCWSRFPortType.wsdl     Change tns:Object to xsd:anyType  Change name=”Object” to name=”anyType”     ----------Original -----------------      &lt;xsd:complexType name="Object" /&gt;        &lt;xsd:complexType name="ArrayOfObject"&gt;          &lt;xsd:</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114581167371947249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114581167371947249'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/04/wsrfnet-trouble-list.html' title='WSRF.NET trouble list'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-114575524534023879</id><published>2006-04-22T21:20:00.000-04:00</published><updated>2006-04-22T21:20:45.393-04:00</updated><title type='text'>Play with java SOAPElement in JAX-RPC xsd:anyType</title><summary type='text'>  In JAX_RPC, xsd:anyType is mapped to javax.xml.soap.SOAPElement  Here is the java function to convert an int to SOAPElement         public static SOAPElement int2SOAPElement(String tagName, int value)      {         try{                        SOAPFactory sf = SOAPFactory.newInstance();                SOAPElement e = sf.createElement(tagName);           String xsi = "http://www.w3.org/2001/</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114575524534023879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114575524534023879'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/04/play-with-java-soapelement-in-jax-rpc.html' title='Play with java SOAPElement in JAX-RPC xsd:anyType'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-114564927224584986</id><published>2006-04-21T15:54:00.000-04:00</published><updated>2006-04-21T15:54:32.306-04:00</updated><title type='text'>How to use Java SOAPElement</title><summary type='text'>     1. javax.xml.soap à saaj.jar  Interface SOAPElement  http://java.sun.com/j2ee/1.4/docs/api/javax/xml/soap/SOAPElement.html     This package is defined in the SOAP with Attachments API for JavaTM (SAAJ) 1.1 specification.     SOAPElement could be used as Element  Because  public interface SOAPElement  extends Node, Element        2. Using xsd:anyType to Represent XML Documents in a Service </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114564927224584986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114564927224584986'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/04/how-to-use-java-soapelement.html' title='How to use Java SOAPElement'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-114564334430502931</id><published>2006-04-21T14:15:00.000-04:00</published><updated>2006-04-21T14:15:44.406-04:00</updated><title type='text'>Java web service portal</title><summary type='text'>  1.  Patterns and Strategies for Building Document-Based Web Services     http://java.sun.com/developer/technicalArticles/xml/jaxrpcpatterns/index.html        2.  Writing A JAX-RPC Client from WSDL (quite old though, but the build.xml is useful)     http://www.descriptor.com/articles/web-services/wsdlclient.html        Here is my tutorial     1. get the wsdl file in place  ../wsdl/mcws.wsdl     </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114564334430502931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114564334430502931'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/04/java-web-service-portal.html' title='Java web service portal'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-114545345261644361</id><published>2006-04-19T09:30:00.000-04:00</published><updated>2006-04-19T09:30:52.673-04:00</updated><title type='text'>interoperability between GSOAP and .NET</title><summary type='text'>  The key point is about namespace.     1. How to use gsoap DOM parser to generate xsd:anyType node       extern "C" ACE_Svc_Export soap_dom_element factory()     {      xsd__int ret = main_entry();      struct soap soap;      soap_init(&amp;soap);      soap_set_imode(&amp;soap, SOAP_DOM_NODE);      xsd__int domval=ret ; //we have to use this type  soap_dom_element retDomVal(&amp;soap, "mcws", NULL, &amp;domval,</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114545345261644361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114545345261644361'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/04/interoperability-between-gsoap-and-net.html' title='interoperability between GSOAP and .NET'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-114530476944659329</id><published>2006-04-17T16:10:00.000-04:00</published><updated>2006-04-17T16:12:49.460-04:00</updated><title type='text'></title><summary type='text'>How to program in GT4.A tutorial linkhttp://www.codeguru.com/cpp/data/mfc_database/misc/article.php/c9695__2/1. get service implementation interface frombuild/stubs-xxx/src/org/globus/examples/stubs/MathService_instance/xxxPortType.java2. find stub definition underbuild/stubs-xxx/src/org/globus/examples/stubs/MathService_instance/xxx.java</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114530476944659329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114530476944659329'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/04/how-to-program-in-gt4.html' title=''/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-114484965580048142</id><published>2006-04-12T09:47:00.000-04:00</published><updated>2006-04-12T09:47:35.880-04:00</updated><title type='text'>Tools in HSBC</title><summary type='text'>  1. SysInternals:   http://www.sysinternals.com    Excellent source of tools for network, disk, process monitoring and executions.      * Particularly look for PsTools and Process Explorer.  2. Network related  Ethereal - Good for network packet dumping or point to point monitoring.  Uses the WinPCap drivers.  http://www.ethereal.com/     MRTG - Used by HSBC - CCF   http://people.ee.ethz.ch/~</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114484965580048142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114484965580048142'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/04/tools-in-hsbc.html' title='Tools in HSBC'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-114438221999339251</id><published>2006-04-06T23:56:00.000-04:00</published><updated>2006-04-06T23:57:00.056-04:00</updated><title type='text'>MCWS porting to WSRF.NET done</title><summary type='text'>  Unzip ServiceMCWSRF.zip to C:\Inetpub\wwwroot  Unzip MCWSRF.zip to C:\Documents and Settings\pliu\My Documents\Visual Studio 2005\Projects     1. The path is hard-coded.  2. In order to use web reflection (using System.Object as return type),     Remember to modify MCWSRFPortType.wsdl &lt;change tns:Object to xsd:anyType&gt;  before updating client side web reference  3. Add reference of MathService </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114438221999339251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114438221999339251'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/04/mcws-porting-to-wsrfnet-done.html' title='MCWS porting to WSRF.NET done'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-114434584470888018</id><published>2006-04-06T13:50:00.000-04:00</published><updated>2006-04-06T13:50:44.780-04:00</updated><title type='text'>Linux Longjmp</title><summary type='text'>  -----------Code------  #include &lt;stdio.h&gt;  #include &lt;stdlib.h&gt;  #include &lt;setjmp.h&gt;     jmp_buf env;  int i;  int max;        int main ()  {    int j;    max = 5050;    i = 0;    //longjmp here!!!    j = setjmp(env);    printf("j:= %d\n",j);    if(i &lt; max)      {       printf("i:= %d\n", i);       i = i+j;       longjmp(env, j+1); //jump to setjmp(env) and return j+1       printf("Never reached</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114434584470888018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114434584470888018'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/04/linux-longjmp.html' title='Linux Longjmp'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-114434313750357043</id><published>2006-04-06T12:52:00.000-04:00</published><updated>2006-05-23T08:33:27.650-04:00</updated><title type='text'>WSRF.NET and System.Object</title><summary type='text'>There is an issue on how to use System.Object as parameter or return value in web method.The solution is extremely simple. But it takes me almost two days to figure that out. :-))Step 1.The you can define your web method like       [WebMethod]     public System.Object HelloWorld()     {         string s = "Hello World";         return (object)s;     } Step 2.set it to WSRF and WSE3.0Step 3.invoke</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114434313750357043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114434313750357043'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/04/wsrfnet-and-systemobject.html' title='WSRF.NET and System.Object'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-114433346754780955</id><published>2006-04-06T10:24:00.000-04:00</published><updated>2006-04-06T10:24:27.606-04:00</updated><title type='text'>How to debug ASP.NET web application/services</title><summary type='text'>  http://msdn2.microsoft.com/en-US/library/e8z01xdh(VS.80).aspx     To enable debugging in the project properties  In Visual Studio 2005, use the &lt;Project&gt; Property Pages to set project properties for Web application debugging by doing the following:  &lt;![if !supportLists]&gt;1.      &lt;![endif]&gt;Open the Property Pages by right-clicking the project name in Solution Explorer, and selecting Property </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114433346754780955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114433346754780955'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/04/how-to-debug-aspnet-web.html' title='How to debug ASP.NET web application/services'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-114415658798983211</id><published>2006-04-04T09:16:00.000-04:00</published><updated>2006-04-04T16:21:28.530-04:00</updated><title type='text'>VS 2005, Add-in trouble shoot</title><summary type='text'>  Usually, the add-in configuration file is read from     C:\Documents and Settings\All Users\Application Data\Microsoft\MSEnvShared\Addins     The configuration is a text file, so you can open it and edit it. Make sure the DLL it points to is valid.     I use this method and fix the problem when WSDF add-in does not show up in the VS 2005.In WSRF.NET, usually, we need to re-build the binaries </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114415658798983211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114415658798983211'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/04/vs-2005-add-in-trouble-shoot.html' title='VS 2005, Add-in trouble shoot'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-114383881081867965</id><published>2006-03-31T16:00:00.000-05:00</published><updated>2006-04-19T11:29:06.006-04:00</updated><title type='text'>GT4 tutorial</title><summary type='text'>  1. Go to tutorial http://gdp.globus.org/gt4-tutorial/     2. Download tutorial source code from http://gdp.globus.org/gt4-tutorial/download/progtutorial-examples_0.2.1.tar.gz     3. Unzip the source code package to /home/pliu/gt4_tutorial  Note:  use bash afterwards    4. Make service GAR file: cd /home/pliu/gt4_tutorial./globus-build-service.sh \-d org/globus/examples/services/core/first/ \-s </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114383881081867965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114383881081867965'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/03/gt4-tutorial.html' title='GT4 tutorial'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-114383267699607417</id><published>2006-03-31T14:17:00.000-05:00</published><updated>2006-03-31T14:17:57.013-05:00</updated><title type='text'>gt4, programer guide portal</title><summary type='text'>http://gdp.globus.org/gt4-tutorial/</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114383267699607417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114383267699607417'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/03/gt4-programer-guide-portal.html' title='gt4, programer guide portal'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6294827.post-114382351561162748</id><published>2006-03-31T11:45:00.000-05:00</published><updated>2006-03-31T11:45:18.920-05:00</updated><title type='text'>An approach other than C-- for MCWS</title><summary type='text'>  Given the XML schema, Java/C#/C++ provides a schema compiler to generate the correspondent language binding. That is, for a schema instance XML snippet, the schema compiler can generate the code to un-marshal XML into object for the specific language. This is also true for X#.      For example, in X# schema, we define a method call as          &lt;xs:complexType name="XSharpMethodInvokeStatement"&gt;</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114382351561162748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6294827/posts/default/114382351561162748'/><link rel='alternate' type='text/html' href='http://puliu.blogspot.com/2006/03/approach-other-than-c-for-mcws.html' title='An approach other than C-- for MCWS'/><author><name>Pop</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry></feed>
