<?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-5733793</id><updated>2012-01-19T18:22:31.095+01:00</updated><category term='flash'/><category term='knowledge'/><category term='javascript'/><category term='java'/><category term='php'/><category term='photography'/><category term='web'/><category term='howto'/><category term='jBPM'/><category term='Management'/><category term='Ajax'/><category term='life'/><category term='firefox'/><category term='EJB'/><category term='iphone'/><category term='RSS'/><category term='sql'/><category term='software'/><category term='mac'/><category term='WScript'/><category term='HTML'/><category term='jboss'/><category term='drupal'/><category term='design'/><category term='windows'/><category term='Flex'/><category term='freebsd'/><category term='Humor'/><category term='eclipse'/><category term='iOS'/><category term='thinking'/><title type='text'>Design matters</title><subtitle type='html'>How can we live in a life without design?</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>70</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5733793.post-1438138062126085440</id><published>2011-12-22T14:51:00.002+01:00</published><updated>2011-12-22T15:10:20.159+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iOS'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>Fix the cydia crash problem after jailbreak iOS 5 with redsn0w 0.9.9b9</title><content type='html'>It is really weird. After using redsn0w 0.9.9b9 to jailbreak my iPhone 3GS with iOS 5.0.1, the iphone can be booted with the option "just boot" in redsn0w. The Cydia icon showes up on the screen. Open it and say I am a "User". The loading process can be seen, and... quit. I can ssh into the iOS, that is to say, the iphone is already jailbroken. But what happened with Cydia?!&lt;br /&gt;&lt;br /&gt;I've tried many different methods.&lt;br /&gt;&lt;br /&gt;1. restore the stock firmware and do the jailbreak again. -&amp;gt; No success.&lt;br /&gt;2. reinstall Cydia with SSH on the iPhone. -&amp;gt; No success.&lt;br /&gt;3. just boot the iphone tetherly again and again -&amp;gt; No success.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So I tried to read the log file of Cydia. The log file can be found at /private/var/tmp/cydia.log. I noticed that an error is repeated again and again.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;2011-12-22 14:43:20.135 MobileCydia[252:e07] Setting Language: de_DE&lt;br /&gt;Assertion failed: (dictionary-&amp;gt;lockFD != -1), function IDXUserDictionaryOpen, file /SourceCache/Mecabra/Mecabra-248/mecabra/IDXUserDictionary.c, line 88.&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;I've googled for a while and nothing is found...but it must be something wrong with the laguage settings. I've discoved I use English as user interface language and German as date/time format. Mumm, maybe that is the problem. I've set the both as English. Now, Cydia runs smoothly without any problems.&lt;br /&gt;&lt;br /&gt;In a short, that is a bug of Cydia, it depends on the language settings of iOS! Try to set up the language unified, then it doesn't complain again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-1438138062126085440?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/1438138062126085440/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=1438138062126085440' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/1438138062126085440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/1438138062126085440'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2011/12/fix-cydia-crash-problem-after-jailbreak.html' title='Fix the cydia crash problem after jailbreak iOS 5 with redsn0w 0.9.9b9'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-4650671377901408985</id><published>2011-11-19T19:08:00.003+01:00</published><updated>2011-11-19T19:33:42.863+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><title type='text'>How to install FontForge on Mac OS X Lion</title><content type='html'>Since I got some old font files before 2007 and I wanna use them, after some inspection, Font Magager told me that the name tables of the fonts are mssing. In order to add them manually, I googled a while to find out &lt;a href="http://fontforge.sourceforge.net/"&gt;FontForge&lt;/a&gt; can do the job.&lt;br /&gt;&lt;br /&gt;Now comes the problem. FontForge is open source and doesn't provide any compiled binary for Mac OS X ab 10.6. That means, one must complie it before it can be used. So after a little searching again, I found Garrick's guide [&lt;a href="http://garrickvanburen.com/archive/how-to-install-fontforge-on-os-x-lion"&gt;How to install fontforge on mac os lion&lt;/a&gt;]. Sadly, the process he used doesn't work for me.&lt;br /&gt;&lt;br /&gt;He suggests that it can be done easily with the commands:&lt;br /&gt;&lt;p&gt;&lt;code&gt;brew install fontforge&lt;/code&gt;&lt;br /&gt;&lt;code&gt;sudo brew link fontforge&lt;/code&gt;&lt;/p&gt;&lt;p&gt;The first command returns some fatal errors:&lt;/p&gt;&lt;p&gt;&lt;code&gt;Error: Failed executing: make install&lt;br /&gt;These existing issues may help you:&lt;br /&gt;  https://github.com/mxcl/homebrew/issues/7658&lt;br /&gt;  https://github.com/mxcl/homebrew/issues/8144&lt;br /&gt;  https://github.com/mxcl/homebrew/issues/8491&lt;/code&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Then the answers in those issues suggest:&lt;/p&gt;&lt;p&gt;&lt;code&gt;brew install cairo --use-clang&lt;/code&gt;&lt;/p&gt;&lt;p&gt;I tried&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;brew install fontforge&lt;/code&gt;&lt;/p&gt;after successful execution of that command. Then it came with:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;Error: Failed executing: make&lt;br /&gt;If `brew doctor' does not help diagnose the issue, please report the bug:&lt;br /&gt;  https://github.com/mxcl/homebrew/wiki/checklist-before-filing-a-new-issue&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;According to the message, I ran the command:&lt;br /&gt;&lt;p&gt;&lt;code&gt;brew doctor&lt;/code&gt;&lt;/p&gt;The result was:&lt;br /&gt;&lt;p&gt;&lt;code&gt;Unbrewed dylibs were found in /usr/local/lib.&lt;br /&gt;&lt;br /&gt;If you didn't put them there on purpose they could cause problems when&lt;br /&gt;building Homebrew formulae, and may need to be deleted.&lt;br /&gt;&lt;br /&gt;Unexpected dylibs:&lt;br /&gt;  /usr/local/lib/libfaac.0.dylib&lt;br /&gt;  /usr/local/lib/libfreetype.6.dylib&lt;br /&gt;  /usr/local/lib/libical.0.0.0.dylib&lt;br /&gt;  /usr/local/lib/libicalss.0.0.0.dylib&lt;br /&gt;  /usr/local/lib/libicalvcal.0.0.0.dylib&lt;br /&gt;  /usr/local/lib/libltdl.3.1.0.dylib&lt;br /&gt;  /usr/local/lib/libmp3lame.0.dylib&lt;br /&gt;  /usr/local/lib/libmp4v2.0.dylib&lt;br /&gt;&lt;br /&gt;Unbrewed static libraries were found in /usr/local/lib.&lt;br /&gt;&lt;br /&gt;If you didn't put them there on purpose they could cause problems when&lt;br /&gt;building Homebrew formulae, and may need to be deleted.&lt;br /&gt;&lt;br /&gt;Unexpected static libraries:&lt;br /&gt;  /usr/local/lib/libdevkit.a&lt;br /&gt;  /usr/local/lib/libical.a&lt;br /&gt;  /usr/local/lib/libicalss.a&lt;br /&gt;  /usr/local/lib/libicalvcal.a&lt;br /&gt;  /usr/local/lib/libkld.a&lt;br /&gt;  /usr/local/lib/libltdl.a&lt;br /&gt;  /usr/local/lib/libredo_prebinding.a&lt;br /&gt;&lt;br /&gt;Unbrewed .la files were found in /usr/local/lib.&lt;br /&gt;&lt;br /&gt;If you didn't put them there on purpose they could cause problems when&lt;br /&gt;building Homebrew formulae, and may need to be deleted.&lt;br /&gt;&lt;br /&gt;Unexpected .la files:&lt;br /&gt;  /usr/local/lib/libical.la&lt;br /&gt;  /usr/local/lib/libicalss.la&lt;br /&gt;  /usr/local/lib/libicalvcal.la&lt;br /&gt;  /usr/local/lib/libltdl.la&lt;br /&gt;&lt;/code&gt;&lt;/p&gt;&lt;br /&gt;So I deleted all the above mentioned files manually and executed the command again.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;code&gt;brew install fontforge&lt;/code&gt;&lt;/p&gt;&lt;br /&gt;The result:&lt;br /&gt;&lt;p&gt;&lt;code&gt;&lt;br /&gt;Error: Failed executing: make&lt;br /&gt;If `brew doctor' does not help diagnose the issue, please report the bug:&lt;br /&gt;  https://github.com/mxcl/homebrew/wiki/checklist-before-filing-a-new-issue&lt;/code&gt;&lt;/p&gt;&lt;br /&gt;Very luckily I saw a warning before the compiling errors, that reads:&lt;br /&gt;&lt;p&gt;&lt;code&gt;Warning: Building with LLVM, but this formula is reported to not work with LLVM:&lt;br /&gt;&lt;br /&gt;Compiling cvexportdlg.c fails with error: initializer element is not constant&lt;br /&gt;&lt;br /&gt;We are continuing anyway so if the build succeeds, please open a ticket with&lt;br /&gt;the following information: 2336-10.7. So&lt;br /&gt;that we can update the formula accordingly. Thanks!&lt;br /&gt;&lt;br /&gt;If it doesn't work you can: brew install --use-gcc&lt;/code&gt;&lt;/p&gt;&lt;br /&gt;So I tried the command again:&lt;br /&gt;&lt;p&gt;&lt;code&gt;brew install fontforge --use-gcc&lt;/code&gt;&lt;/p&gt;Now Mac OS X Lion lets me compile FontForge endly.&lt;br /&gt;&lt;br /&gt;In conclusion, the right commands to compile FontForge on Mac OS X Lion should be:&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;code&gt;brew install cairo --use-clang&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;brew install fontforge --use-gcc&lt;/code&gt;&lt;/p&gt;&lt;br /&gt;In order to see FontForge in Application folder, you need to run this command:&lt;br /&gt;&lt;p&gt;&lt;code&gt;ln -s /usr/local/Cellar/fontforge/20110222/FontForge.app /Applications&lt;/code&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-4650671377901408985?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/4650671377901408985/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=4650671377901408985' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/4650671377901408985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/4650671377901408985'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2011/11/how-to-install-fontforge-on-mac-os-x.html' title='How to install FontForge on Mac OS X Lion'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-2191362522463788296</id><published>2011-11-14T12:25:00.002+01:00</published><updated>2011-11-14T13:39:37.813+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iOS'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>iOS BUG: Synced music won't appear in iPod or Music App</title><content type='html'>Yesterday I've updated my iPhone 3GS by the means of OTA (Over The Air) to the newest firmware iOS 5.0.1. Everything runs smoothly, BUT! After I open the supplied Music App, I've seen only a very little part of my music collection? Where did they go?&lt;br /&gt;&lt;br /&gt;&lt;a href="http://cdn.tipb.com/images/stories/2010/11/Screen-shot-2010-11-23-at-11.42.18-AM-392x400.png"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; DISPLAY: block; CURSOR: hand" border="0" alt="" src="http://cdn.tipb.com/images/stories/2010/11/Screen-shot-2010-11-23-at-11.42.18-AM-392x400.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Firstly I thought the update deleted my not-from-itunes-store-bought music files, then I checked the iTunes, the status bar of my iphones indicates that there are exactly 13.6GB music files on it. It appears that the mediathek file on the iphone has corrupted with the update, or maybe the update has changed the structure of the mediathek file and forgetten to update it.&lt;br /&gt;&lt;br /&gt;What can I do? Sure, completely restore is one way but also the last way I wanna go. So I've googled around for a while to find out a better and smart way to correct it. Then I found this article [&lt;a href="http://www.tipb.com/2010/11/23/ios-42-bugs-iphone-music-update-fix/"&gt;iOS 4.2 bugs: iPhone music gone after the update? Here’s the fix!&lt;/a&gt; ]. Okay, i am not the only one and iOs 5.0.1 is also not the only one with that bug.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Grab your cable and plug your iPhone into iTunes on your Windows or Mac PC&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;When your iPhone shows up in the sidebar, make sure you can see the content listings beneath it (click on the triangle to the left if not)&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Click on music&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Pick a song&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Play it in iTunes&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Sync your iPhone&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;The method in that article didn't work for me for the first time. I have to figure out why it doesn't work. The reason behind that method is: Change the play count for a song, then iTunes changes the mediathek file on the iPhone.&lt;br /&gt;&lt;br /&gt;So it is very important for that method, just try to play a song and maybe you can forward it very quickly to the end, make SURE that the play count of that song changed and resync!&lt;br /&gt;&lt;br /&gt;Things are gonna be alright and we don't know when apple will fix that long-lasting bug.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-2191362522463788296?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/2191362522463788296/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=2191362522463788296' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/2191362522463788296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/2191362522463788296'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2011/11/ios-bug-synced-music-wont-appear-in.html' title='iOS BUG: Synced music won&apos;t appear in iPod or Music App'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-2221187286311971792</id><published>2011-11-10T17:42:00.001+01:00</published><updated>2011-11-10T17:42:43.850+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>Goodbye, Flash on mobile devices!</title><content type='html'>Now the war is over. Adobe has declared that they abandon the development of Flash on mobile devices. The winner is HTML 5.&lt;br /&gt;&lt;br /&gt;Like Google has mentioned before, the future of Internet belongs to the browser. If we think it further, in the future there should be at least one browser on one device, that means, developers should consider how and what information should be delivered, but not on what kind of devices will support it. &lt;br /&gt;&lt;br /&gt;In other word, HTML 5 won this war just because one of its properties, "once programmed, run everywhere". Sounds familiar, right? Sure, it is the slogan of Java.&lt;br /&gt;&lt;br /&gt;In my opinion, the device in the future should have some CSS rules to let the end user know what kind of mobile device they use. Take Mobile Safari as an example, its UI elements on a website without CSS are looked exactly like an app on a iPhone.&lt;br /&gt;&lt;br /&gt;Now the day is coming, are you ready for the changing?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-2221187286311971792?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/2221187286311971792/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=2221187286311971792' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/2221187286311971792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/2221187286311971792'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2011/11/goodbye-flash-on-mobile-devices.html' title='Goodbye, Flash on mobile devices!'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-4327178600505778138</id><published>2011-11-04T14:37:00.002+01:00</published><updated>2011-11-04T14:45:58.085+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><title type='text'>Fix the problem with Captive Network under Mac Lion 10.7.2</title><content type='html'>The Auto Logon Window for Captive Network in Mac OS X Lion is very handy, but with the update 10.7.2 there are so many problems with such a feature happened. Sadly I have to use the IE in my VM Windows to get me logged in. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Now here is the solution:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Use Terminal or Text Editor to edit the file &lt;b&gt;/etc/hosts&lt;/b&gt; and add the following lines to the end:&lt;div&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 13px; text-align: -webkit-auto; background-color: rgba(255, 255, 255, 0.917969); "&gt;127.0.0.1 &lt;/span&gt;&lt;a href="http://crl.usertrust.com/" target="_blank" style="color: rgb(17, 85, 204); font-family: arial, sans-serif; font-size: 13px; text-align: -webkit-auto; background-color: rgba(255, 255, 255, 0.917969); "&gt;crl.usertrust.com&lt;/a&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 13px; text-align: -webkit-auto; background-color: rgba(255, 255, 255, 0.917969); "&gt;127.0.0.1 &lt;/span&gt;&lt;a href="http://ocsp.usertrust.com/" target="_blank" style="color: rgb(17, 85, 204); font-family: arial, sans-serif; font-size: 13px; text-align: -webkit-auto; background-color: rgba(255, 255, 255, 0.917969); "&gt;ocsp.usertrust.com&lt;/a&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 13px; text-align: -webkit-auto; background-color: rgba(255, 255, 255, 0.917969); "&gt;127.0.0.1 &lt;/span&gt;&lt;a href="http://crl.incommon.org/" target="_blank" style="color: rgb(17, 85, 204); font-family: arial, sans-serif; font-size: 13px; text-align: -webkit-auto; background-color: rgba(255, 255, 255, 0.917969); "&gt;crl.incommon.org&lt;/a&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 13px; text-align: -webkit-auto; background-color: rgba(255, 255, 255, 0.917969); "&gt;127.0.0.1 &lt;/span&gt;&lt;a href="http://ocsp.incommon.org/" target="_blank" style="color: rgb(17, 85, 204); font-family: arial, sans-serif; font-size: 13px; text-align: -webkit-auto; background-color: rgba(255, 255, 255, 0.917969); "&gt;ocsp.incommon.org&lt;/a&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 13px; text-align: -webkit-auto; background-color: rgba(255, 255, 255, 0.917969); "&gt;127.0.0.1 &lt;/span&gt;&lt;a href="http://crl.comodoca.com/" target="_blank" style="color: rgb(17, 85, 204); font-family: arial, sans-serif; font-size: 13px; text-align: -webkit-auto; background-color: rgba(255, 255, 255, 0.917969); "&gt;crl.comodoca.com&lt;/a&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 13px; text-align: -webkit-auto; background-color: rgba(255, 255, 255, 0.917969); "&gt;127.0.0.1 &lt;/span&gt;&lt;a href="http://crl.comodo.net/" target="_blank" style="color: rgb(17, 85, 204); font-family: arial, sans-serif; font-size: 13px; text-align: -webkit-auto; background-color: rgba(255, 255, 255, 0.917969); "&gt;crl.comodo.net&lt;/a&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 13px; text-align: -webkit-auto; background-color: rgba(255, 255, 255, 0.917969); "&gt;127.0.0.1 &lt;/span&gt;&lt;a href="http://ocsp.comodoca.com/" target="_blank" style="color: rgb(17, 85, 204); font-family: arial, sans-serif; font-size: 13px; text-align: -webkit-auto; background-color: rgba(255, 255, 255, 0.917969); "&gt;ocsp.comodoca.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After that, the DNS cache must be cleared with Terminal Command:&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 13px; text-align: -webkit-auto; background-color: rgba(255, 255, 255, 0.917969); "&gt;dscacheutil -flushcache&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Log off and log on, you will see the missing feature again under Lion 10.7.2.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;The reason&lt;/b&gt;: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;With the update 10.7.2 Lion has made some errors on CSL certificates, especially on some captive networks that need the user wait for a few seconds.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-4327178600505778138?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/4327178600505778138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=4327178600505778138' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/4327178600505778138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/4327178600505778138'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2011/11/fix-problem-with-captive-network-under.html' title='Fix the problem with Captive Network under Mac Lion 10.7.2'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-2630193340460416875</id><published>2011-11-04T14:33:00.003+01:00</published><updated>2011-11-04T14:47:52.080+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><title type='text'>Enable AirDrop on older Macs</title><content type='html'>We all know that Apple has disabled the useful function AirDrop on its older Macs. Now with some work in Terminal, you can enable AirDrop for many older Lion systems at the Terminal command line. Enter:&lt;br /&gt;&lt;pre style="margin-top: 1.5em; margin-bottom: 1.5em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; font-family: inherit; vertical-align: baseline; white-space: pre-line; font: normal normal normal 1em/normal monospace; line-height: 1.5; word-wrap: break-word; color: rgb(51, 51, 51); text-align: -webkit-auto; background-color: rgb(255, 255, 255); "&gt;defaults write com.apple.NetworkBrowser BrowseAllInterfaces 1&lt;/pre&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; font-family: Helvetica, Arial, sans-serif; vertical-align: baseline; color: rgb(68, 68, 68); text-align: -webkit-auto; background-color: rgb(255, 255, 255); "&gt;After setting the defaults, A restart of Finder will be necessary:&lt;/p&gt;&lt;pre style="margin-top: 1.5em; margin-bottom: 1.5em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 12px; font-family: inherit; vertical-align: baseline; white-space: pre-line; font: normal normal normal 1em/normal monospace; line-height: 1.5; word-wrap: break-word; color: rgb(51, 51, 51); text-align: -webkit-auto; background-color: rgb(255, 255, 255); "&gt;killall Finder&lt;/pre&gt;&lt;br /&gt;Once you do, you will see the AirDrop icon on the left panel of Finder.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-2630193340460416875?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/2630193340460416875/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=2630193340460416875' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/2630193340460416875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/2630193340460416875'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2011/11/enable-airdrop-on-older-macs.html' title='Enable AirDrop on older Macs'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-4741535111768892444</id><published>2011-09-16T11:23:00.006+02:00</published><updated>2011-09-16T12:13:02.995+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='thinking'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Review of Adobe Edge Preview</title><content type='html'>&lt;a href="http://labs.adobe.com/technologies/edge/edge_557x200.gif"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 557px; DISPLAY: block; HEIGHT: 200px; CURSOR: hand" border="0" alt="" src="http://labs.adobe.com/technologies/edge/edge_557x200.gif" /&gt;&lt;/a&gt;&lt;br /&gt;Adobe has shown the newest HTML authorizing tool &lt;a href="http://labs.adobe.com/technologies/edge/"&gt;Adobe Edge&lt;/a&gt; for a while. Acoording to Adobe, with that tool the making of animated web pages should be easier. Precisely, "Adobe Edge create animated web content using HTML5, CSS3 and JavaScript with ease, power and precision". With a lot of interest I have tested the product. The version Preview 1 is of Aug. 18, 2011 and the Preview 2 of Sept. 8, 2011.&lt;br /&gt;&lt;br /&gt;The experience from Preview 1 is really disappointed. There are only 4(!) tools available on the toolbar: select, rectangle, rounded rectangle and text. So only thing I can do is draging the tools to the stage and making some changes to the object.&lt;br /&gt;&lt;br /&gt;Now comes the so called big part. The animation part will be done with a timeline that is very similar to that in Adobe Flash. Define the starting and ending property value, the animation (between frames) will be generated automaticly. After doing that, we can take a preview in a browser directly without saving.&lt;br /&gt;&lt;br /&gt;If we look at the source code, Adobe Edge utilites jQuery framework actually to make the animation possible. All the animations are capsuled in one generated JavaScript file and all the propery changes will be defined in one CSS file. The part of the html contains only the UI element.&lt;br /&gt;&lt;br /&gt;The source code of a html file looks like that:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;code&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;Untitled&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;!--Adobe Edge Runtime--&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript" src="edge_includes/jquery-1.6.2.min.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript" src="edge_includes/jquery.easing.1.3.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript" src="edge_includes/edge.0.1.2.min.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript" src="edge_includes/edge.symbol.0.1.2.min.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript" charset="utf-8" src="Untitled-1_edge.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;link rel="stylesheet" href="Untitled-1_edge.css"/&amp;gt;&lt;br /&gt;&amp;lt;!--Adobe Edge Runtime End--&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&amp;lt;body style="margin:0;padding:0;"&amp;gt;&lt;br /&gt;&amp;lt;div id="stage" class="symbol_stage"&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;That idea sounds good, because the user can use Adobe Edge as Adobe Flash. BUT, wait a second, the real world is very complicated. What about a property that is only deteminated by runtime or even by the related position to other objects? Adobe Edge seems cannot afford such kind of work at the moment.&lt;br /&gt;&lt;br /&gt;Actually, Adobe Edge is somehow like Adobe Catalyst compared with Adobe Flash Builder. In Adobe Edge, the source code of a html file &lt;strong&gt;cannot&lt;/strong&gt; be seen or edited. It is really like a tool for traditional Flash developers who begin to jump into the html world.&lt;br /&gt;&lt;br /&gt;As fas as I said, there is still a long way for Adobe Edge to go to let the web developers accept the tool.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-4741535111768892444?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/4741535111768892444/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=4741535111768892444' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/4741535111768892444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/4741535111768892444'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2011/09/review-of-adobe-edge-preview.html' title='Review of Adobe Edge Preview'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-1326295220777581244</id><published>2011-09-09T12:22:00.002+02:00</published><updated>2011-09-09T13:06:17.830+02:00</updated><title type='text'>Ubuntu (11.04) "Unity" now fails on OSX Lion (10.7) with Parallels (6.0.12094)</title><content type='html'>It is actually a discussion from&lt;br /&gt;&lt;a href="http://forum.parallels.com/showthread.php?t=112331"&gt;http://forum.parallels.com/showthread.php?t=112331&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The story is like this. When I used Ubuntu (11.04) "Unity" on OSX Snow Leopard (10.6) with Parallels (6.0.12094), there was no problem at all. All the graphic effects can be switched on to make my eyes happy. After updating the totally new advanced operating system Mac OSX Lion(10.7), it did not work any more.&lt;br /&gt;&lt;br /&gt;I did some research on the net. Then I found out that the issue has been reported to the Parallels company and they promised to fix it. After two months waiting on the patch (normally an update for version 6), now come the news said that the Paralles has a new version of 7. In order to fix the problem, we should take an upgrade for $49! So that is the deal, if we buy the Parallels 6 after 1. August 2011, we can get an upgrade for free. But(!) the issue is reported already right after the opening date of Mac OSX Lion, which is 22. July. So it is unfair for such people who bought the Version 6 after upgrading their mac to Mac OSX Lion.&lt;br /&gt;&lt;br /&gt;Anyway, let's see if that fix will be ported to Paralles 6 too since the company assures that the Version 6 should also run on Lion.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-1326295220777581244?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/1326295220777581244/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=1326295220777581244' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/1326295220777581244'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/1326295220777581244'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2011/09/ubuntu-1104-unity-now-fails-on-osx-lion.html' title='Ubuntu (11.04) &quot;Unity&quot; now fails on OSX Lion (10.7) with Parallels (6.0.12094)'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-8905380206502251734</id><published>2011-09-09T12:02:00.001+02:00</published><updated>2011-09-09T12:02:27.439+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='thinking'/><title type='text'>Reborn</title><content type='html'>It seems somehow a long time passed by that I didn't make a new post here. The reason is very simple: the iPhone.&lt;br /&gt;Since I've used the iPhone around 2009, it is always a tough job for me to post something on blogger. &lt;br /&gt;&lt;br /&gt;There are many apps on iPhone which can do the communication well, such as twitter, Facebook and so on. But until today Google gets the blogger app on the iPhone. So I think it may be already too late for such service from google. Anyway, I will try to update my blog here from today :-)&lt;br /&gt;&lt;div class="separator"style="clear: both; text-align: center;"&gt;&lt;a href="https://lh5.googleusercontent.com/-vsYoLvKLEnk/TmnkMii5jSI/AAAAAAAAAzQ/oubBR1PhdZ0/s640/blogger-image-327627705.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://lh5.googleusercontent.com/-vsYoLvKLEnk/TmnkMii5jSI/AAAAAAAAAzQ/oubBR1PhdZ0/s640/blogger-image-327627705.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-8905380206502251734?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/8905380206502251734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=8905380206502251734' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/8905380206502251734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/8905380206502251734'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2011/09/reborn.html' title='Reborn'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh5.googleusercontent.com/-vsYoLvKLEnk/TmnkMii5jSI/AAAAAAAAAzQ/oubBR1PhdZ0/s72-c/blogger-image-327627705.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-2504839719225836975</id><published>2009-10-22T16:46:00.002+02:00</published><updated>2009-10-22T16:56:29.470+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><title type='text'>HOWTO: Install Java 1.4 &amp; 1.5 on Snow Leopard</title><content type='html'>Because of some projects, I need to complie some Java projects in Eclipse with older Java versions, such as 1.4.2, on my MacBook, but since Snow Leopard is such a new(!) operating system, it lacks a lot of support for softwares running with older versions of libraries.&lt;br /&gt;&lt;br /&gt;After a long while searching in the internet, finally I found the way to install JVM 1.4 &amp;amp; 1.5 on Snow Leopard!&lt;br /&gt;&lt;br /&gt;Java 1.4:&lt;br /&gt;Here is how to get Java 1.4 running on snow leopard.  &lt;pre&gt;&lt;blockquote&gt;cd /tmp/&lt;br /&gt;curl -o java.1.4.2-leopard.tar.gz &lt;a href="http://www.cs.washington.edu/homes/isdal/snow_leopard_workaround/java.1.4.2-leopard.tar.gz" class="external free" title="http://www.cs.washington.edu/homes/isdal/snow_leopard_workaround/java.1.4.2-leopard.tar.gz" rel="nofollow"&gt;http://www.cs.washington.edu/homes/isdal/snow_leopard_workaround/java.1.4.2-leopard.tar.gz&lt;/a&gt;&lt;br /&gt;tar -xvzf java.1.4.2-leopard.tar.gz&lt;br /&gt;sudo mv 1.4.2 /System/Library/Frameworks/JavaVM.framework/Versions/1.4.2&lt;br /&gt;cd /System/Library/Frameworks/JavaVM.framework/Versions/&lt;br /&gt;sudo ln -s 1.4.2 1.4&lt;br /&gt;open "/Applications/Utilities/Java Preferences.app"&lt;/blockquote&gt;&lt;/pre&gt;&lt;span style="font-family:Georgia,serif;"&gt;and &lt;/span&gt;Java 1.5:&lt;br /&gt;&lt;pre&gt;&lt;blockquote&gt;cd /tmp/&lt;br /&gt;curl -o java.1.5.0-leopard.tar.gz &lt;a href="http://www.cs.washington.edu/homes/isdal/snow_leopard_workaround/java.1.5.0-leopard.tar.gz" class="external free" title="http://www.cs.washington.edu/homes/isdal/snow_leopard_workaround/java.1.5.0-leopard.tar.gz" rel="nofollow"&gt;http://www.cs.washington.edu/homes/isdal/snow_leopard_workaround/java.1.5.0-leopard.tar.gz&lt;/a&gt;&lt;br /&gt;tar -xvzf java.1.5.0-leopard.tar.gz&lt;br /&gt;sudo mv 1.5.0 /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0-leo&lt;br /&gt;cd /System/Library/Frameworks/JavaVM.framework/Versions/&lt;br /&gt;sudo rm 1.5.0&lt;br /&gt;sudo mv 1.5.0-leo 1.5.0&lt;br /&gt;sudo ln -s 1.5.0 1.5&lt;br /&gt;open "/Applications/Utilities/Java Preferences.app"&lt;/blockquote&gt;&lt;br /&gt;&lt;/pre&gt;It really works! ;-)&lt;br /&gt;&lt;br /&gt;via [&lt;a href="http://wiki.oneswarm.org/index.php/OS_X_10.6_Snow_Leopard"&gt;OneSwarm&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-2504839719225836975?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/2504839719225836975/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=2504839719225836975' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/2504839719225836975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/2504839719225836975'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2009/10/howto-install-java-14-15-on-snow.html' title='HOWTO: Install Java 1.4 &amp; 1.5 on Snow Leopard'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-3147509933511193829</id><published>2009-09-29T10:15:00.003+02:00</published><updated>2009-10-19T10:07:04.423+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>Some Reasons Why I Don't Update My iPhone (1st Gen) To Firmware 3.1</title><content type='html'>The firmware 3.1 for iPhone has been released for a while. Every time when I plug in my iPhone to my Macbook, the iTunes reminds me always of a new iPhone OS available. But I must say no to iTunes every time. So why I don't want update my iPhone to that version 3.1? There are 5 reasons or at least my considerations.&lt;br /&gt;&lt;br /&gt;PROs:&lt;br /&gt;1. PwnageTool 3.1 (&lt;a href="http://blog.iphone-dev.org/"&gt;http://blog.iphone-dev.org/&lt;/a&gt;) is ready for the go. AppSync for OS 3.1 in Cydia is appeared too. (&lt;a href="http://computelive.com/patch-mobile-installation-file-in-iphone-3-1/"&gt;Instructions&lt;/a&gt;)&lt;br /&gt;2. iPhone OS 3.1 has the funtion that man can arrange the application layout directly in iTunes.&lt;br /&gt;3. Genius Mix will be supported.&lt;br /&gt;&lt;br /&gt;CONs:&lt;br /&gt;1. For non-Standard accessories there are still no hacks appeared like 3.01. The magic is called &lt;a href="http://translate.google.com/translate?prev=hp&amp;amp;hl=en&amp;amp;js=y&amp;amp;u=http%3A%2F%2Fsuondmao.altervista.org%2Farticles%2Fprj%2FiPhoneiapdReverseEngineering.php&amp;amp;sl=it&amp;amp;tl=en&amp;amp;history_state0="&gt;iapd&lt;/a&gt;. It fixs the problem with the message "&lt;span style="FONT-WEIGHT: bold"&gt;This Accessory is not made to work with iPhone&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;2. It's possible to develope iPhone applications for jailbroken iPhone 3.0 with a patched XCode 3.1.3. (&lt;a href="http://www.alexwhittemore.com/?p=270"&gt;Source&lt;/a&gt;) But until now, I didn't get how to make it work with iPhone OS 3.1 and XCode 3.2.&lt;br /&gt;&lt;br /&gt;&lt;div style="BACKGROUND-COLOR: yellow"&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;strong&gt;Updates!&lt;/strong&gt;&lt;br /&gt;1. MichaelS &lt;a href="http://www.huanix.com/2009/06/20/iphone-2g-3g-fix-this-accessory-is-not-made-to-work-with-iphone/#comment-1945"&gt;confirmed &lt;/a&gt;that the pathed iapd for 3.0 also works for 3.1.2!&lt;br /&gt;2. Xcode 3.2 works&lt;br /&gt;with jailbroken iPhone 3.1 too according to&lt;a href="http://float-middle.blogspot.com/2009/10/xcode-32-build-go-with-jailbroken.html"&gt;&lt;br /&gt;the "Float Middle" Blog.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So, now it is the time to update! :)&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-3147509933511193829?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/3147509933511193829/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=3147509933511193829' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/3147509933511193829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/3147509933511193829'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2009/09/some-reasons-why-i-dont-update-my.html' title='Some Reasons Why I Don&apos;t Update My iPhone (1st Gen) To Firmware 3.1'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-8142817815689814721</id><published>2009-07-22T13:04:00.006+02:00</published><updated>2009-07-22T13:27:23.133+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><title type='text'>Passing Additional Parameters Or Arguments Using addEventListener In Flex</title><content type='html'>With Adobe Flex one can make a lot of things. In the heart of its event-driven-programming, there is a famous function called addEventListener(). From &lt;a href="http://livedocs.adobe.com/flex/3/langref/flash/events/EventDispatcher.html#addEventListener%28%29"&gt;Adobe LiveDoc&lt;/a&gt; we can see the syntax is like:&lt;br /&gt;&lt;br /&gt;&lt;table class="detailHeader" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="detailHeaderName"&gt;addEventListener&lt;/td&gt;&lt;td class="detailHeaderParens"&gt;()&lt;/td&gt;&lt;td class="detailHeaderType"&gt; method&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;code&gt; public function addEventListener(type:&lt;a href="http://livedocs.adobe.com/flex/3/langref/String.html"&gt;String&lt;/a&gt;, listener:&lt;a href="http://livedocs.adobe.com/flex/3/langref/Function.html"&gt;Function&lt;/a&gt;, useCapture:&lt;a href="http://livedocs.adobe.com/flex/3/langref/Boolean.html"&gt;Boolean&lt;/a&gt; = false, priority:&lt;a href="http://livedocs.adobe.com/flex/3/langref/int.html"&gt;int&lt;/a&gt; = 0, useWeakReference:&lt;a href="http://livedocs.adobe.com/flex/3/langref/Boolean.html"&gt;Boolean&lt;/a&gt; = false):&lt;a href="http://livedocs.adobe.com/flex/3/langref/specialTypes.html#void"&gt;void&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;p&gt;&lt;span class="label"&gt; Parameters &lt;/span&gt;&lt;/p&gt;&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="20px"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class="label"&gt;type&lt;/span&gt;:&lt;a href="http://livedocs.adobe.com/flex/3/langref/String.html"&gt;String&lt;/a&gt;&lt;/code&gt; — The type of event.    &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="paramSpacer"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="20px"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class="label"&gt;listener&lt;/span&gt;:&lt;a href="http://livedocs.adobe.com/flex/3/langref/Function.html"&gt;Function&lt;/a&gt;&lt;/code&gt; — The listener function that processes the event. This function must accept     an Event object as its only parameter and must return nothing&lt;span&gt;, as this example shows:&lt;/span&gt;         &lt;div class="listing"&gt;&lt;pre&gt;function(evt:Event):void&lt;/pre&gt;&lt;/div&gt;    &lt;p&gt;The function can have any name.&lt;/p&gt;    &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="paramSpacer"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="20px"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class="label"&gt;useCapture&lt;/span&gt;:&lt;a href="http://livedocs.adobe.com/flex/3/langref/Boolean.html"&gt;Boolean&lt;/a&gt;&lt;/code&gt; (default = &lt;code&gt;false&lt;/code&gt;)&lt;code&gt;&lt;/code&gt; —     &lt;span&gt;Determines whether the listener works in the capture phase or the   target and bubbling phases. If &lt;code&gt;useCapture&lt;/code&gt; is set to &lt;code&gt;true&lt;/code&gt;,   the listener processes the event only during the capture phase and not in the   target or bubbling phase. If &lt;code&gt;useCapture&lt;/code&gt; is &lt;code&gt;false&lt;/code&gt;, the  listener processes the event only during the target or bubbling phase. To listen for  the event in all three phases, call &lt;code&gt;addEventListener&lt;/code&gt; twice, once with   &lt;code&gt;useCapture&lt;/code&gt; set to &lt;code&gt;true&lt;/code&gt;, then again with  &lt;code&gt;useCapture&lt;/code&gt; set to &lt;code&gt;false&lt;/code&gt;.&lt;/span&gt;    &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="paramSpacer"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="20px"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class="label"&gt;priority&lt;/span&gt;:&lt;a href="http://livedocs.adobe.com/flex/3/langref/int.html"&gt;int&lt;/a&gt;&lt;/code&gt; (default = &lt;code&gt;0&lt;/code&gt;)&lt;code&gt;&lt;/code&gt; — The priority level of the event listener. The priority is designated by  a signed 32-bit integer. The higher the number, the higher the priority. All listeners  with priority &lt;i&gt;n&lt;/i&gt; are processed before listeners of priority &lt;i&gt;n&lt;/i&gt;-1. If two  or more listeners share the same priority, they are processed in the order in which they  were added. The default priority is 0.    &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="paramSpacer"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="20px"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;span class="label"&gt;useWeakReference&lt;/span&gt;:&lt;a href="http://livedocs.adobe.com/flex/3/langref/Boolean.html"&gt;Boolean&lt;/a&gt;&lt;/code&gt; (default = &lt;code&gt;false&lt;/code&gt;)&lt;code&gt;&lt;/code&gt; — Determines whether the reference to the listener is strong or  weak. A strong reference (the default) prevents your listener from being garbage-collected.     A weak reference does not. &lt;p&gt;Class-level member functions are not subject to garbage      collection, so you can set &lt;code&gt;useWeakReference&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; for      class-level member functions without subjecting them to garbage collection. If you set     &lt;code&gt;useWeakReference&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; for a listener that is a nested inner      function, the function will be garbage-collected and no longer persistent. If you create      references to the inner function (save it in another variable) then it is not      garbage-collected and stays persistent.&lt;/p&gt;   &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;span class="label"&gt;Throws&lt;/span&gt;&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="20"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&lt;a href="http://livedocs.adobe.com/flex/3/langref/ArgumentError.html"&gt;ArgumentError&lt;/a&gt; &lt;/code&gt; — The &lt;code&gt;listener&lt;/code&gt; specified is not a function.  &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span class="label"&gt;See also&lt;/span&gt;&lt;/p&gt;&lt;div class="seeAlso"&gt;&lt;a href="http://livedocs.adobe.com/flex/3/html/16_Event_handling_6.html" target="_top"&gt;Event listeners&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;========================================================&lt;br /&gt;There is no way to pass some addtional parameters to an event handling function!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://nsdevaraj.wordpress.com/2009/04/15/using-arguments-in-addeventlistener/trackback/"&gt;Deva Raj's solution&lt;/a&gt; is fine, but without some explaination it is hard to understand.&lt;br /&gt;&lt;br /&gt;So the quick and dirty way is to use an inline function:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;btn1.addEventListener(MouseEvent.CLICK, function(e:MouseEvent){myEventHandler(e, btn1.id)});&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;public function myEventHandler(e:MouseEvent, btnId:String) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Alert.show("Clicked button"+btnId, "Great Title",Alert.OK);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Here btn1.id is just an example parameter, you can replace it with what you want.&lt;br /&gt;&lt;br /&gt;Another better(!) solution is to create custom Event, which you can find it &lt;a href="http://www.actionscript.org/forums/showthread.php3?t=205519"&gt;here&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;div style="margin: 5px 20px 20px;"&gt;  &lt;div class="smallfont" style="margin-bottom: 2px;"&gt;ActionScript Code:&lt;/div&gt;  &lt;pre class="alt2" style="border: 1px inset ; margin: 0px; padding: 6px; overflow: auto; width: 100%; height: 308px;"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div class="actionscript"&gt;package com&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(153, 51, 0);"&gt;import&lt;/span&gt; flash.&lt;span style="color: rgb(0, 0, 0);"&gt;events&lt;/span&gt;.&lt;span style="color: rgb(0, 0, 0);"&gt;Event&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;   &lt;span style="color: rgb(153, 51, 0);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(153, 51, 0);"&gt;class&lt;/span&gt; EventWithData &lt;span style="color: rgb(153, 51, 0);"&gt;extends&lt;/span&gt; Event&lt;br /&gt;   &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;       &lt;span style="color: rgb(153, 51, 0);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(153, 51, 0);"&gt;var&lt;/span&gt; &lt;span style="color: rgb(153, 51, 0);"&gt;data&lt;/span&gt;:*;&lt;br /&gt;     &lt;br /&gt;       &lt;span style="color: rgb(153, 51, 0);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(153, 51, 0);"&gt;function&lt;/span&gt; EventWithData&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;type&lt;/span&gt;:&lt;span style="color: rgb(153, 51, 0);"&gt;String&lt;/span&gt;, &lt;span style="color: rgb(153, 51, 0);"&gt;data&lt;/span&gt;:*,&lt;br /&gt;           bubbles:&lt;span style="color: rgb(153, 51, 0);"&gt;Boolean&lt;/span&gt; = &lt;span style="color: rgb(153, 51, 0);"&gt;false&lt;/span&gt;, cancelable:&lt;span style="color: rgb(153, 51, 0);"&gt;Boolean&lt;/span&gt; = &lt;span style="color: rgb(153, 51, 0);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;       &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;           &lt;span style="color: rgb(153, 51, 0);"&gt;this&lt;/span&gt;.&lt;span style="color: rgb(153, 51, 0);"&gt;data&lt;/span&gt;=data;&lt;br /&gt;           &lt;span style="color: rgb(153, 51, 0);"&gt;super&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;type&lt;/span&gt;, bubbles, cancelable&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;;&lt;br /&gt;       &lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;     &lt;br /&gt;   &lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/pre&gt; &lt;/div&gt;The mechanism details can be found also in Adobe LiveDocs: &lt;a href="http://livedocs.adobe.com/flex/3/html/help.html?content=events_05.html"&gt;Registering event handlers&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-8142817815689814721?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/8142817815689814721/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=8142817815689814721' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/8142817815689814721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/8142817815689814721'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2009/07/passing-additional-parameters-or.html' title='Passing Additional Parameters Or Arguments Using addEventListener In Flex'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-6308073639034218294</id><published>2009-06-18T21:40:00.000+02:00</published><updated>2009-06-18T21:44:24.188+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>How to write a Java-based HTML-Crawler?</title><content type='html'>&lt;p&gt;It's actually a task from my test work. First idea that came to me is: Use an instance of XMLReader to fetch a page, then use regular expression to parse, save the results with the help of XMLWriter. Such a way seems naive, but almost non-usable! So let me explain the difficulty which can be confronted.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;1. Internet is a mess.&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;There are too many web pages in the cyberspace that do NOT pay any attention to the web standard (X)HTML. So we can see a lot of nested tags, unpaired tags and even worse, badly programmed JavaScript may be in just one page.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. Ads are confusing.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now come Advertisements with different formats, e.g. Text, Flash, Images and Videos(!). Most of them live with a lot of JavaScript to improve their impact. Some use even non-standard tags such as &amp;lt;noscript&amp;gt; or browser-specific tags.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3. Ajax is not so user-friendly.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;We all love to use Ajax technology. A typical Ajax use case is to let some texts loaded dynamically, then it results a severe problem with a HTML-Parser. If the parser saves the fetched HTML-page in a cache, the cache file contains a lot of JavaScript which load elements later. So with the cache file we cannot get what we want normally.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;i&gt;&lt;b&gt;What can we do with all those?&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The current popular solution is to use the HTML or Webpage validation tools! Between different libraries &lt;a href="http://htmlunit.sourceforge.net/" title="HTMLUnit"&gt;HTMLUnit&lt;/a&gt; will fit our requirement exactly. The project describes itself as a "GUI-Less browser for Java programs". So we can handle a webpage just like we see it in our browser. The above disadvantages could be then avoided.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Interesting is, HTMLUnit is originally a java unit testing framework for testing web based applications. It is similar in concept to &lt;a href="http://httpunit.sourceforge.net/" title="HTTPUnit"&gt;HTTPUnit&lt;/a&gt; but is very different in implementation.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For beginners, HTMLUnit provides a very simple documentation to "&lt;a href="http://htmlunit.sourceforge.net/gettingStarted.html" title="HTMLUnit getting started"&gt;Get Started&lt;/a&gt;". With the examples provided on the website it's okay to write a HTML-Crawler now.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-6308073639034218294?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/6308073639034218294/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=6308073639034218294' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/6308073639034218294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/6308073639034218294'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2009/05/how-to-write-java-based-html-crawler.html' title='How to write a Java-based HTML-Crawler?'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-6878150710927068757</id><published>2009-05-05T17:40:00.002+02:00</published><updated>2009-05-05T17:49:11.402+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='knowledge'/><title type='text'>blue-chip company</title><content type='html'>Today I got an offer from a headhunter for a contract-based work. Interesting is, I met a foreign word called "Blue Chip Company". So I did a little research to find out what it really means. Here it is! ;)&lt;br /&gt;&lt;br /&gt;1. &lt;a href="http://www.yourdictionary.com/finance/blue-chip-company" target="_blank"&gt;finance definition:&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A company that is very strong financially, with a solid track record of producing earnings and only a moderate amount of debt. A blue-chip company also has a strong name in its industry with dominant products or services. Typically, blue-chip companies are large corporations that have been in business for many years and are considered to be very stable. However, there is no formal requirement for being a blue chip. Often, blue-chip companies are found in the Dow Jones Industrial Average.&lt;br /&gt;&lt;br /&gt;2. Better explanation&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Blue_chip_(stock_market)" target="_blank"&gt;Blue chip (stock market)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A blue chip stock is the stock of a well-established company having stable earnings and no extensive liabilities. The term derives from casinos, where blue chips stand for counters of the highest value. Most blue chip stocks pay regular dividends, even when business is faring worse than usual.&lt;br /&gt;&lt;br /&gt;The phrase was coined by Oliver Gingold of Dow Jones sometime in 1923 or 1924. Company folklore recounts that the term apparently got its start when Gingold was standing by the stock ticker at the brokerage firm that later became Merrill Lynch. Noticing several trades at USD$200 or USD$250 a share or more, he said to Lucien Hooper of W.E. Hutton &amp; Co. that he intended to return to the office to “write about these blue chip stocks.” Thus the phrase was born. It has been in use ever since, originally in reference to high-priced stocks, more commonly used today to refer to high-quality stocks. In contemporary media, Blue Chips and their daily performances are frequently mentioned alongside other economic averages like the Dow Jones Industrial Average.&lt;br /&gt;&lt;br /&gt;/////////////////////&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-6878150710927068757?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/6878150710927068757/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=6878150710927068757' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/6878150710927068757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/6878150710927068757'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2009/05/blue-chip-company.html' title='blue-chip company'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-8684415847842483249</id><published>2009-02-13T11:46:00.005+01:00</published><updated>2009-02-13T12:22:27.732+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><title type='text'>The notorious Problem with letterSpacing in Flash</title><content type='html'>These days I met a problem in Flash with the property &lt;span style="font-weight: bold;"&gt;letterSpacing&lt;/span&gt; of a dynamic text field.&lt;br /&gt;&lt;br /&gt;If we are looking at the examples provided by Adobe:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;this.createTextField("mytext", this.getNextHighestDepth(), 10, 10, 200, 100);&lt;br /&gt;mytext.multiline = true;&lt;br /&gt;mytext.wordWrap = true;&lt;br /&gt;mytext.border = true;&lt;br /&gt;&lt;br /&gt;var format1:TextFormat = new TextFormat();&lt;br /&gt;format1.letterSpacing = -1;&lt;br /&gt;&lt;br /&gt;var format2:TextFormat = new TextFormat();&lt;br /&gt;format2.letterSpacing = 10;&lt;br /&gt;&lt;br /&gt;mytext.text = "Eat at \nJOE'S.";&lt;br /&gt;mytext.setTextFormat(0, 7, format1);&lt;br /&gt;mytext.setTextFormat(8, 12, format2);&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;The problem is, this doesn't work for a dynamic text field, only for dynamic &lt;span style="font-weight: bold;"&gt;generated &lt;/span&gt;text field!&lt;br /&gt;&lt;br /&gt;There are a lot of solutions on the internet.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;font-size:130%;" &gt;Solution 1:&lt;/span&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;br /&gt;var&lt;/span&gt; styling:&lt;span style="color: rgb(0, 0, 255);"&gt;TextFormat&lt;/span&gt; = &lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;TextFormat&lt;/span&gt;();&lt;br /&gt;styling.&lt;span style="color: rgb(0, 0, 255);"&gt;font&lt;/span&gt; = &lt;span style="color: rgb(0, 153, 0);"&gt;"Blackadder"&lt;/span&gt;;&lt;br /&gt;styling.&lt;span style="color: rgb(0, 0, 255);"&gt;color&lt;/span&gt; = 0xBA1424;&lt;br /&gt;styling.&lt;span class="fontRed"&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;letterSpacing&lt;/span&gt; &lt;/span&gt;= 15;&lt;br /&gt;&lt;br /&gt;tf.&lt;span style="color: rgb(0, 0, 255);"&gt;setNewTextFormat&lt;/span&gt;(styling);&lt;br /&gt;tf.&lt;span style="color: rgb(0, 0, 255);"&gt;text&lt;/span&gt;=&lt;span style="color: rgb(0, 153, 0);"&gt;"mööööp"&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This one doesn't use the method &lt;span style="font-weight: bold;"&gt;setTextFormat()&lt;/span&gt; to set the letterSpacing, instead of that, &lt;span style="font-weight: bold;"&gt;setNewTextFormat()&lt;/span&gt; will be used.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;font-size:130%;" &gt;Solution 2:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;From the blog "&lt;a href="http://summitprojectsflashblog.wordpress.com/2008/01/24/letter-spacing-and-line-height-on-dynamic-textfields/" target="_blank"&gt;Summit Projects&lt;/a&gt;":&lt;br /&gt;&lt;br /&gt;&lt;code&gt;function setTextFormatting(){&lt;br /&gt; var fmt:TextFormat = club_name.name.getTextFormat();&lt;br /&gt; club_name.name.setTextFormat(fmt);&lt;br /&gt; club_name.name.setNewTextFormat(fmt);&lt;br /&gt; club_name.name.autoSize = “left”;&lt;br /&gt;}&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;He said, "It’s silly, but it works.". Unfortunately, it didn't work in my case.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;font-size:130%;" &gt;Solution 3:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Bob Walton suggests that in his blog "&lt;a href="http://bobspace.wordpress.com/2006/09/28/flash-yourmomgettextformat-is-the-key-to-letterspacing/" target="_blank"&gt;Flash: yourMom.getTextFormat(); //is the key to letterSpacing&lt;/a&gt;"&lt;br /&gt;&lt;br /&gt;&lt;code&gt;var fmt:TextFormat = myTextField.getTextFormat();&lt;br /&gt;myTextField.setTextFormat(fmt);&lt;br /&gt;myTextField.setNewTextFormat(fmt);&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This also didn't work for me.&lt;br /&gt;&lt;br /&gt;I spent hours to figure out how can I fix it. Now here is the solution from mine.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;txtCtrl.html = true;&lt;br /&gt;txtCtrl.htmlText = "&amp;lt;font letterspacing='-3'&gt;Now it is the right one!&amp;lt;/font&gt;";&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;So you can see, I got no sucess on setting the format of a dynamic text field. At the end, a font property can achieve that so easily!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-8684415847842483249?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/8684415847842483249/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=8684415847842483249' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/8684415847842483249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/8684415847842483249'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2009/02/notorious-problem-with-letterspacing-in.html' title='The notorious Problem with letterSpacing in Flash'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-859816506637326111</id><published>2008-12-19T10:55:00.004+01:00</published><updated>2009-02-13T11:46:29.909+01:00</updated><title type='text'>What we can learn from the online advertising industry? (Part One)</title><content type='html'>I must admit, maybe the topic is somehow too big for me, but my intension is to show the tips and tricks that we can learn from the online advertising industry.&lt;br /&gt;&lt;br /&gt;First, the online advertising industry uses Flash based banners mostly nowdays. So there are something that must be taken into consideration.&lt;br /&gt;&lt;br /&gt;1. How does a Flash file communicate with the browser?&lt;br /&gt;2. What kind of effects we can achieve with the combination of Flash, Javascript and CSS?&lt;br /&gt;&lt;br /&gt;Here is the answer.&lt;br /&gt;&lt;br /&gt;Before Flash version 7, a Flash file can tell the commands to the browser with the Actionscript 1.0 function &lt;span style="font-weight:bold;"&gt;&lt;a href="http://www.google.de/url?sa=t&amp;source=web&amp;ct=res&amp;cd=3&amp;url=http%3A%2F%2Fwww.adobe.com%2Fsupport%2Fflash%2Faction_scripts%2Factionscript_dictionary%2Factionscript_dictionary372.html&amp;ei=QHJLSbnZNYP60AWBiqiODg&amp;usg=AFQjCNFJa_qV8b-Q5XxqpYdIPJ8-Oa25ow&amp;sig2=VpuxPij4M06fFTPjNt2zAQ" target="_blank"&gt;fscommand(argument)&lt;/a&gt;&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Let's assume that the flash file is called myMovie, which has a size of 728px x 600px. Then the according part in Javascript should be:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;function myMovie_DoFSCommand(command, args) {&lt;br /&gt;    if (command=="adcollapse") {&lt;br /&gt;        document.getElementById("flashad").style.clip=&lt;br /&gt;                 "rect(0px, 728px, 600px, 608px)";&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    if (command=="adexpand") {&lt;br /&gt;        document.getElementById("flashad").style.clip=&lt;br /&gt;                 "rect(0px, 728px, 600px, 0px)";&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The flash file can use a button to call &lt;span style="font-weight:bold;"&gt;fscommand("adexpand")&lt;/span&gt; and a close button to call &lt;span style="font-weight:bold;"&gt;fscommand("adcollapse")&lt;/span&gt;. Its syntax looks like:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;btnClose.onRelease = function() {&lt;br /&gt;   fscommand("adcollapse");&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;So what happened in the Javascript function? When one clicks the close button, the Javascript function will be called. Then the function finds that the Flash file wants to exeute a command "adcollapse", so the function will modify the style of the layer where the flash object is.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;div id="flashad"&gt;&lt;br /&gt;    &amp;lt;object ...&gt;&lt;br /&gt;    &amp;lt;embed ...&gt;&lt;br /&gt;&amp;lt;/div&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;document.getElementById("flashad")&lt;/span&gt; is used to find the HTML element which contains the flash object. Then the property &lt;a href="http://msdn.microsoft.com/en-us/library/ms530748(VS.85).aspx" target="_blank"&gt;clip&lt;/a&gt; of the style will be modified. The syntax of clip is: &lt;span style="font-weight:bold;"&gt;clip: rect(top, right, bottom, left)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;See? If the command "adcollapse" is called, the flash will be cut to the size of (728-608)= 120px x 600px to the right, but if the command "adexpand" is executed, the size will be restored to the full size of the flash file.&lt;br /&gt;&lt;br /&gt;The end effect can be seen &lt;a href="http://www.spiegel.de/#oas.belegung=test/presi/expandable_wp" target="_blank"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-859816506637326111?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/859816506637326111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=859816506637326111' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/859816506637326111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/859816506637326111'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2008/12/what-we-can-learn-from-online.html' title='What we can learn from the online advertising industry? (Part One)'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-214359427330499531</id><published>2008-11-09T20:40:00.002+01:00</published><updated>2008-11-09T20:43:13.900+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='thinking'/><title type='text'>Time is too slow for those who wait</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;I would say I am not the kind of person who can be easily touched after living such long years, but this little poem really hits me at the first moment.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 18px; font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 18px; font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Time is too slow for those who wait &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;by Henry Van Dyke&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Time is too slow for those who wait,&lt;/div&gt;&lt;div&gt;too swift for those who fear,&lt;/div&gt;&lt;div&gt;too long for those who grieve, &lt;/div&gt;&lt;div&gt;too short for those who rejoice,&lt;/div&gt;&lt;div&gt;but for those who love, &lt;/div&gt;&lt;div&gt;time is eternity.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-214359427330499531?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/214359427330499531/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=214359427330499531' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/214359427330499531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/214359427330499531'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2008/11/time-is-too-slow-for-those-who-wait.html' title='Time is too slow for those who wait'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-8275382592098547871</id><published>2008-02-28T09:35:00.004+01:00</published><updated>2008-02-28T09:42:42.778+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><title type='text'>COMPUTE clause in MSSQL</title><content type='html'>I am totally frustrated with the SQL recently. The bad guy is COMPUTE clause.&lt;br /&gt;&lt;br /&gt;Since I am making a migration project from MSSQL 2000 server to Oracle 10i Server, a lot of SQL queries in the applications should be modified to meet the Oracle SQL requirements. What I found in the internet is:&lt;br /&gt;&lt;br /&gt;---&lt;br /&gt;&lt;br /&gt;&gt; The Compute by clause of MSSQL basically allows you to get a running&lt;br /&gt;&gt; total at the bottom (end) of the report.&lt;br /&gt;&gt; In a way it is similar then using ".. group by .." with aggregate&lt;br /&gt;&gt; functions (sum) but in this case I am not trying to "... group by .."&lt;br /&gt;&gt; does not make sense in the context of the query, just want to get a&lt;br /&gt;&gt; summary (sum and count) of some columns at the end of the record.&lt;br /&gt;&lt;br /&gt;The "standard" way to do this is to make a second query to compute the aggragates. However it is possible to combine the two if you really need the aggregates in the same result set.&lt;br /&gt;&lt;br /&gt;&gt; &gt; &gt; select A.ProdID, A.Description, A. Qty, A.Price&lt;br /&gt;&gt; &gt; &gt; from SoldItems as A&lt;br /&gt;&gt; &gt; &gt; where   A.ListID = 15&lt;br /&gt;&gt; &gt; &gt; order by A.ProdID &lt;br /&gt;&gt; &gt; &gt; compute count(A.ProdID),sum(A.Price),sum(A.Qty)&lt;br /&gt;&lt;br /&gt;SELECT ProdID, Description, Qty, Price&lt;br /&gt;FROM&lt;br /&gt; (SELECT A.ProdID, A.Description, A.QTY, A.Price, 1 AS Kind&lt;br /&gt;   FROM SoldItems AS A&lt;br /&gt;   WHERE A.ListID = 15&lt;br /&gt; UNION ALL&lt;br /&gt; SELECT count(B.ProdID), NULL AS Description, sum(B.Price), sum(B.Qty),&lt;br /&gt;   2 AS Kind&lt;br /&gt;   FROM SoldItems AS B&lt;br /&gt;   WHERE B.ListID = 15&lt;br /&gt; ) AS C&lt;br /&gt;ORDER BY Kind, ProdID&lt;br /&gt;;&lt;br /&gt;&lt;br /&gt;---&lt;br /&gt;&lt;br /&gt;After that I must stil fight with SHAPE clause... What a life!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-8275382592098547871?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/8275382592098547871/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=8275382592098547871' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/8275382592098547871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/8275382592098547871'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2008/02/compute-clause-in-mssql.html' title='COMPUTE clause in MSSQL'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-5170331978298741438</id><published>2008-02-18T14:24:00.003+01:00</published><updated>2008-02-18T14:38:52.027+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Strange problem with file copying in Windows Explorer</title><content type='html'>Since I sometimes need to use chinese in Windows, I set up my Windows XP under "Control Panel" -&gt;  "Regional and Language Options" -&gt; "Advanced" -&gt; "non-Unicode Program" Encoding -&gt; "Simplified Chinese".&lt;br /&gt;&lt;br /&gt;Now I get a big problem. I copied a zip file from a Linux box to my local computer. The copy process was ok and the zip file could be extracted too. Then I tried to copy that zip file to a directory on a machine with windows server 2003 enterprise version using Copy/Paste. The copy process seemed normal, but when I opened the file directly on the target machine and tried to extract it, WinRar told me "the zip file is corrupt!".&lt;br /&gt;&lt;br /&gt;If I change the non-Unicode Program's Encoding to something like "German", then the problem will not happen. It seems that the windows explorer is a non-unicode program?!&lt;br /&gt;&lt;br /&gt;My Windows is already updated to SP2. The IE version is still version 6.&lt;br /&gt;&lt;br /&gt;Until now I haven't find any solution to this problem.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-5170331978298741438?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/5170331978298741438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=5170331978298741438' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/5170331978298741438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/5170331978298741438'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2008/02/strange-problem-with-file-copying-in.html' title='Strange problem with file copying in Windows Explorer'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-4370475185865020062</id><published>2008-01-31T11:59:00.000+01:00</published><updated>2008-01-31T12:08:14.786+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Hide every application in the system tray!</title><content type='html'>Today I've tried a software called &lt;a href="http://www.teamcti.com/trayit/trayit.htm"&gt;TrayIt!&lt;/a&gt; From its name you can see what it is for. ;-)&lt;br /&gt;&lt;br /&gt;Yes, it's used normally to hide an application into the system tray.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Usage from the author's website:&lt;/span&gt;&lt;br /&gt;&lt;p align="justify"&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p align="justify"&gt;TrayIt! runs on Windows 95/98/Me, NT/2000/XP/Vista and does &lt;span style="font-weight: bold;"&gt;NOT &lt;/span&gt;require any installation.&lt;/p&gt;&lt;p align="justify"&gt; Simply create a new folder and place TrayIt!.exe and TrayIt!.dll there. When  started, TrayIt! will show a dialog box with a short explanation how to use it.  You may choose to load TrayIt! on system startup by selecting "Option" and  checking "Load TrayIt! on StartUp" box.&lt;br /&gt;&lt;/p&gt;                               &lt;table style="border-collapse: collapse;" border="0" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;  &lt;ol&gt;&lt;li&gt;  &lt;p align="justify"&gt;You can temporarily put any window in the system tray by  keeping down the &lt;ctrl&gt; button when minimizing the window.&lt;/ctrl&gt;&lt;/p&gt;    &lt;/li&gt;&lt;li&gt;  &lt;p align="justify"&gt;To always keep window in the system tray when minimized,  click with the RIGHT mouse button on the corresponding icon created in the tray  in the previous step and check "Place in System Tray" in the popup menu.&lt;/p&gt;    &lt;/li&gt;&lt;li&gt;  &lt;p align="justify"&gt;Clicking with the right mouse button on the minimize icon  will bring TrayIt! context menu for this window. Just check "Place in System  Tray" in the popup menu to make window always go to the tray.&lt;br /&gt;&lt;/p&gt;    &lt;/li&gt;&lt;li&gt;  &lt;p align="justify"&gt;Please note that context menu will work only for the standard  minimize icon and will not pop-up if the program use skins like MS Media player.&lt;br /&gt;&lt;/p&gt;    &lt;/li&gt;&lt;/ol&gt;            &lt;/td&gt;           &lt;td&gt; &lt;br /&gt;&lt;/td&gt;           &lt;td&gt;           &lt;img src="http://www.teamcti.com/trayit/system_tray.jpg" border="0" height="157" width="155" /&gt;&lt;p&gt;           &lt;img src="http://www.teamcti.com/trayit/menu_tray.jpg" border="0" height="91" width="154" /&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/blockquote&gt;It's really useful because many programs don't provide the funtion of "minimize to the system tray". Currently I use it to hide the opera in my system tray and it works!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.trayit.com/trayit/trayit.zip"&gt;Download it!&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-4370475185865020062?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/4370475185865020062/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=4370475185865020062' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/4370475185865020062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/4370475185865020062'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2008/01/hide-every-application-in-system-tray.html' title='Hide every application in the system tray!'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-8952207635980704606</id><published>2008-01-24T16:14:00.000+01:00</published><updated>2008-01-24T16:49:32.674+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>HOWTO: Set Up a CVS Repository Server under Linux</title><content type='html'>Since I want to use &lt;a href="http://www.cvshome.org/"&gt;CVS&lt;/a&gt; as my project version control system, I decide to set up a CVS server on a Linux box.&lt;br /&gt;&lt;br /&gt;I try to follow the instruction from [&lt;a href="http://www.taursys.com/howto/cvs/"&gt;HOW-TO Install and Configure a CVS Repository Server&lt;/a&gt;] to get my work done, but there are so many problems happened.&lt;br /&gt;&lt;br /&gt;First of all, the Linux is an old SuSE Linux distribution. CVS is already installed on the machine, which can be checked in the graphical config tool "yast" or "yast2".&lt;br /&gt;&lt;br /&gt;Since I don't want to specify the passwords for every cvs user, it's better if the cvs server can use the users of the Linux sytem. It can be achieved by adding a line in the /config file.&lt;br /&gt;&lt;br /&gt;Assumed that you create a repository in the directory /usr/local/cvsroot with the command:&lt;br /&gt;&lt;blockquote&gt;cvs -d /usr/local/cvsroot init&lt;/blockquote&gt;then CVS will create a directory /CVSROOT under /usr/local/cvsroot. The config file of cvs is right in /usr/local/cvsroot/CVSROOT/. Open it and find a line like:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;#SystemAuth=no&lt;/blockquote&gt;change it to&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;SystemAuth=yes&lt;/blockquote&gt;Then CVS knows you want to use the password of the users from the system.&lt;br /&gt;&lt;br /&gt;I intend to use the machine as a CVS Repository Server, that means, the repository should be accessed remotely.&lt;br /&gt;&lt;br /&gt;In order to do that, the cvs pserver should listen to the port 2041, which is enabled by inetd or xinetd. Since both are not existed in my system, I download the xinetd from its &lt;a href="http://www.xinetd.org/"&gt;website&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;After extract the downloaded source, you can use the command&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;tar -xvf xinetd-version.tar.gz&lt;/blockquote&gt;to extract the source codes.&lt;br /&gt;&lt;br /&gt;Change your current path to ./xinetd-version, then just execute the following commands to install xinetd:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;./configure&lt;br /&gt;make&lt;br /&gt;make install&lt;br /&gt;cp xinetd/sample.conf /etc/xinetd.conf&lt;br /&gt;cp xinetd/xinetd /etc/init.d/&lt;br /&gt;&lt;/blockquote&gt;Modify the file /etc/xinetd.conf so that it will run the cvspserver automatically:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;service cvspserver&lt;br /&gt;{&lt;br /&gt;socket_type         = stream&lt;br /&gt;protocol            = tcp&lt;br /&gt;wait                = no&lt;br /&gt;user                = root&lt;br /&gt;passenv             =&lt;br /&gt;server              = /usr/bin/cvs&lt;br /&gt;server_args         = --allow-root=/usr/local/cvsroot pserver -f&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;Now start xinetd with&lt;br /&gt;&lt;blockquote&gt;/etc/init.d/xinetd&lt;/blockquote&gt;After such a long long process, the CVS server should be running on the machine now.  You can verify it by:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;cvs -d :pserver:username@localhost:/usr/local/cvsroot login&lt;/blockquote&gt;&lt;br /&gt;I must say, it's somehow frustrated to set up such a CVS server if you find there are so much difficult on your way. :(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-8952207635980704606?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/8952207635980704606/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=8952207635980704606' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/8952207635980704606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/8952207635980704606'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2008/01/howto-set-up-cvs-repository-server.html' title='HOWTO: Set Up a CVS Repository Server under Linux'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-1277833930931700039</id><published>2008-01-18T12:22:00.000+01:00</published><updated>2008-01-18T12:26:50.994+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='photography'/><title type='text'>Faroe Islands</title><content type='html'>&lt;p style="text-align: center;"&gt;&lt;img src="http://buzznet-69.vo.llnwd.net/assets/users16/exiula/default/msg-118762065932.jpg" alt="法罗群岛1" height="328" width="500" /&gt;&lt;/p&gt; &lt;p style="text-align: center;"&gt;Photo&lt;a href="http://www.marcopaoluzzo.com/"&gt;©Marco Paoluzzo&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;Situated in the heart of the Gulf Stream in the North Atlantic at 62°00’N, the Faroe Islands lie northwest of Scotland and halfway between Iceland and Norway.&lt;br /&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;img src="http://buzznet-32.vo.llnwd.net/assets/users16/exiula/default/msg-118762066007.jpg" height="157" width="240" /&gt;&lt;img src="http://buzznet-59.vo.llnwd.net/assets/users16/exiula/default/msg-118762066056.jpg" height="157" width="240" /&gt;&lt;/p&gt; &lt;p align="center"&gt;Photo&lt;a href="http://www.marcopaoluzzo.com/"&gt;©Marco Paoluzzo&lt;/a&gt;&lt;/p&gt;The archipelago is composed of 18 islands covering 1399 km2 (545.3 sq.miles) and is 113 km (70 miles) long and 75 km (47 miles) wide, roughly in the shape of an arrowhead. There are 1100 km (687 miles) of coastline and at no time is one more than 5 km (3 miles) away from the ocean. The highest mountain is 882 m (2883 ft) above sea level and the average height above sea level for the country is 300 m (982 ft).&lt;br /&gt;&lt;br /&gt;My Dream Place.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-1277833930931700039?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/1277833930931700039/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=1277833930931700039' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/1277833930931700039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/1277833930931700039'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2008/01/faroe-islands.html' title='Faroe Islands'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-1885163171503218525</id><published>2008-01-17T11:41:00.000+01:00</published><updated>2008-01-17T11:48:07.867+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Project management</title><content type='html'>There are a lot of softwares for project management. Microsoft Project is the most famous one of them. But what if you want to use such kind of softwares under Linux and Mac? VM? Not a good solution.&lt;br /&gt;&lt;br /&gt;Now, if you like Open Source Software, &lt;a target="_blank" href="http://openproj.org/?q=node/21" title="免费下载项目管理软件" rel="nofollow"&gt;OpenProj&lt;/a&gt; is a very good substitution. It has not only Windows version, but also Linux and Mac version.&lt;br /&gt;&lt;br /&gt;So try &lt;a href="http://sourceforge.net/project/showfiles.php?group_id=199315"&gt;it&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a target="_blank" href="http://openproj.org/?q=node/21" title="Openproj" rel="nofollow"&gt;&lt;img src="http://www.lifebang.com/wp-content/uploads/2007/08/openproj-1.jpg" alt="免费下载项目管理软件" height="273" width="400" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-1885163171503218525?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/1885163171503218525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=1885163171503218525' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/1885163171503218525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/1885163171503218525'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2008/01/project-management.html' title='Project management'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-2449918338579311051</id><published>2008-01-07T10:50:00.000+01:00</published><updated>2008-01-07T11:00:39.407+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><title type='text'>Cron job with the log file</title><content type='html'>Today I need to write a cron job to make some sql queries automatically executed. Also a log file with the date is necessary according to my boss. :-)&lt;br /&gt;&lt;br /&gt;So here is the solution:&lt;br /&gt;---------------------------------------------------------------&lt;br /&gt;# Date in Format yyyymmdd_hhmmss:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SQLNAME=/home/sybase/logs/table_`date +%Y%m%d`_`date +%H%M%S`.sql&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;# Every day at 23 o'clock the sql query will be executed&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;00    23    *    *    *    root    /opt/sybase/SYBSsa9/bin/dbisql -nogui -c "eng=enginename;dbn=dbname;uid=user;pwd=password;" /opt/sybase/SYBSsa9/bin/whatever.sql &gt;&gt; $SQLNAME&lt;/span&gt;&lt;br /&gt;---------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;Some explainations:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;SQLNAME &lt;/span&gt;is a variable name. It consist two parts, the normal text and the date. Notice to that, please always &lt;span class="me"    style="font-family:verdana;font-size:85%;color:#000000;"&gt;enclose the date part in backticks ( ` ) &lt;/span&gt;, otherwise it will be not executed. This variable can be used later with the format &lt;span style="font-weight: bold; font-style: italic;"&gt;$SQLNAME&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;dbisql &lt;/span&gt;is the command line tool for Sybase. In &lt;span style="font-style: italic; font-weight: bold;"&gt;whatever.sql &lt;/span&gt;you can write the sql queries you need.&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-2449918338579311051?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/2449918338579311051/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=2449918338579311051' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/2449918338579311051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/2449918338579311051'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2008/01/cron-job-with-log-file.html' title='Cron job with the log file'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-749033394224554317</id><published>2008-01-04T14:04:00.000+01:00</published><updated>2008-01-07T11:01:15.691+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><title type='text'>Sybase Anywhere SQL</title><content type='html'>Sybase Anywhere provides a possibility, which different clients with different date sources can be synchonised with a central DB server.  Its manual is here: &lt;a href="http://manuals.sybase.com/onlinebooks/group-pbarc/conn5/sqlug/"&gt;http://manuals.sybase.com/onlinebooks/group-pbarc/conn5/sqlug/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The SQL of Sybase is a little different from the standard SQL, for example:&lt;br /&gt;&lt;br /&gt;&gt;&gt; Clearing a table "dummy"&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;delete dummy;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&gt;&gt; Output to a file&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;select * from dummy;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;output to 'dummyfile.sql'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;More helpful commands can be found at [&lt;a href="http://www.selectorweb.com/sql_sybase.html"&gt;selectorweb&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-749033394224554317?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/749033394224554317/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=749033394224554317' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/749033394224554317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/749033394224554317'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2008/01/sybase-anywhere-sql.html' title='Sybase Anywhere SQL'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-188241704446305808</id><published>2008-01-02T11:10:00.000+01:00</published><updated>2008-01-02T11:35:20.972+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='drupal'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>Fatal error: Allowed memory size of xxx bytes exhausted</title><content type='html'>&lt;span style="font-size:180%;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Happy New Year to all!&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2007 is already the past now. I hope I can keep writing in this new year 2008, not so lazy like in 2007. :)&lt;br /&gt;&lt;br /&gt;So today's topic is a PHP error.&lt;br /&gt;&lt;br /&gt;During a migration of a Drupal site,  after I make a 100% copy of the test site to the new site and change every settings for the new one, then the new site shows me the terrible message!&lt;br /&gt;&lt;blockquote&gt;Fatal error: Allowed memory size of 654321 bytes exhausted (tried to allocate 12345 bytes) in /srv/www/user/bla/blub/file.php on line 123&lt;/blockquote&gt;What goes wrong? The test site runs like a charm and the process of migration should be okay.&lt;br /&gt;&lt;br /&gt;In PHP, there is a enviroment variable called &lt;em&gt;memory_limit.&lt;/em&gt; It varies by your web hosting provider. By default it's 128M, namely 128 MB memory. Since the web hosting provider want to spare some hardware costs and provides more accounts on a shared server, so the value of &lt;em&gt;memory_limit&lt;/em&gt; will be changed to 16M sometimes! If you are like me to use some modules in Drupal (that's what makes Drupal attractiver than others!), because every module will eat some memories, so your Drupal installation will reach the memory limit very soon!&lt;br /&gt;&lt;br /&gt;Now here is the solution:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Contact your web hosting provider to beg them for a bigger memory_limit, which is hard to be satisfied.&lt;/li&gt;&lt;li&gt;Try to switch off some Drupal modules to save the memory. It can be done only through Database manipulation such as in PHPMyAdmin. &lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;If you have to choose the second way:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Go to the table "system", you will find almost every module has a feld called "status". 0 means not selected, 1 means enabled. Try to set the status of some modules such as statistic, color, etc to 0. After that you should see your new site without the above error. If not, eh.... you must switch more modules off. What a pity!&lt;br /&gt;&lt;br /&gt;Most important, after the DB manipulation you should go to administer -&gt; site configuration -&gt; modules to save your configuration and run the update.php, otherwise the Drupal will lose some module-special configuraions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-188241704446305808?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/188241704446305808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=188241704446305808' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/188241704446305808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/188241704446305808'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2008/01/fatal-error-allowed-memory-size-of-xxx.html' title='Fatal error: Allowed memory size of xxx bytes exhausted'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-8172610932954201199</id><published>2007-11-04T18:06:00.001+01:00</published><updated>2007-11-04T18:15:04.318+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='life'/><title type='text'>Don't let people tell you what you can't do</title><content type='html'>It's a word from the movie "pursuit of happyness". People always like to give advice and their opinions on your things even they have no idea what happened. So there are some typical words can be heard from those people:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;1. &lt;strong&gt;Your dream is unrealistic&lt;/strong&gt;. What’s unrealistic is trying to live your life working at a job you don’t love doing something you hate for the rest of your life while regretting trying to &lt;a href="http://ravivora.com/blog/share-your-big-dream"&gt;live your dream&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;2. &lt;strong&gt;You’re screwed if it doesn’t work out.&lt;/strong&gt; No, you’re not. In fact, the worst possible scenario is that you go back to what you would be doing if you hadn’t pursued your dream. That’s the worst possible scenario.&lt;br /&gt;&lt;br /&gt;3. &lt;strong&gt;You weren’t cut out for that.&lt;/strong&gt; Who’s to say that? If you &lt;a href="http://ravivora.com/blog/ugly-actors-you-know-and-love"&gt;don’t fit the&lt;br /&gt;stereotype&lt;/a&gt; for your dream then you’re the one to break the mold. You will&lt;br /&gt;stand out.&lt;br /&gt;&lt;br /&gt;4. &lt;strong&gt;You can follow your dream someday.&lt;/strong&gt; Someday will never come. Follow your dream today.&lt;br /&gt;&lt;br /&gt;5. &lt;strong&gt;Only a few people “make it.”&lt;/strong&gt; That’s because they lack the drive, determination, and will that you have. You’re one of the few.&lt;br /&gt;&lt;br /&gt;6. &lt;strong&gt;You should just be safe and get a job.&lt;/strong&gt; In fact, a job is even more dangerous than pursuing your dream. Not only do you feel terrible doing something you don’t want to do, but with two simple words your livelihood can change. “You’re fired.” When you’re pursuing your dream, you’re the only one that can stop you.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;via [&lt;a href="http://ravivora.com/blog/lies-people-tell-you-about-pursuing-your-dream/trackback"&gt;Ravi Vora&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-8172610932954201199?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/8172610932954201199/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=8172610932954201199' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/8172610932954201199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/8172610932954201199'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2007/11/dont-let-people-tell-you-what-you-cant.html' title='Don&apos;t let people tell you what you can&apos;t do'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-538332183145138882</id><published>2007-10-19T20:07:00.000+02:00</published><updated>2007-10-19T20:27:31.689+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='design'/><title type='text'>Some cool wallpapers</title><content type='html'>&lt;a href="http://sussuly.deviantart.com/art/Hibiskus-Flower-67547998" target="_blank"&gt;&lt;img src="http://guistyles.com/wp-content/uploads/2007/10/hibiskus_flower_by_sussuly.jpg" /&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://grau-gestreift.deviantart.com/art/who-can-paint-a-sunriiiise-65557238" target="_blank"&gt;&lt;img src="http://guistyles.com/wp-content/uploads/2007/09/who_can_paint_a_sunriiiise_by_grau_gestreift.jpg" /&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://hedzzation.deviantart.com/art/happy-3eid-67064879" target="_blank"&gt;&lt;img src="http://guistyles.com/wp-content/uploads/2007/10/happy_3eid_by_hedzzation.jpg" /&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://grafixeye.deviantart.com/art/Light-Bird-65412114" target="_blank"&gt;&lt;img src="http://guistyles.com/wp-content/uploads/2007/09/light_bird_by_grafixeye.jpg" /&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://tumb.deviantart.com/art/Pyramide-du-Louvre-64803865" target="_blank"&gt;&lt;img src="http://guistyles.com/wp-content/uploads/2007/09/pyramide_du_louvre_by_tumb.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://psychopulse.deviantart.com/art/Elo-64661066" target="_blank"&gt;&lt;img src="http://guistyles.com/wp-content/uploads/2007/09/elo_by_psychopulse.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;More can be found at [&lt;a href="http://guistyles.com"&gt;GuiStyle&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-538332183145138882?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/538332183145138882/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=538332183145138882' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/538332183145138882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/538332183145138882'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2007/10/some-cool-wallpapers.html' title='Some cool wallpapers'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-9062211582177714678</id><published>2007-10-15T14:47:00.000+02:00</published><updated>2007-10-15T15:01:38.637+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Humor'/><title type='text'>The Worst Domain Name</title><content type='html'>The name of a domain is somehow first impression to a visitor, so if there are something wrong with the domain name, terrible things could happen.&lt;br /&gt;&lt;br /&gt;Look at the following domain names:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Who Represents &lt;a href="http://www.whorePresents.com"&gt;&lt;i&gt;www.whorePresents.com&lt;/i&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Experts Exchange &lt;i&gt;&lt;a href="http://www.expertsexchange.com"&gt;www.expertSexchange.com&lt;/a&gt;&lt;/i&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Pen Island &lt;i&gt;&lt;a href="http://www.penisland.net"&gt;www.penisLand.net&lt;/a&gt;&lt;/i&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Therapist Finder &lt;i&gt;&lt;a href="http://www.therapistfinder.com"&gt;www.theRapistfinder.com&lt;/a&gt;&lt;/i&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Have you found the horrible things? Yes, misunderstanding is worse than misspelling...&lt;br /&gt;&lt;br /&gt;More can be seen at &lt;a href="http://http//www.evarestschoofs.com/ten-worst-domain-names/"&gt;evarest online&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-9062211582177714678?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/9062211582177714678/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=9062211582177714678' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/9062211582177714678'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/9062211582177714678'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2007/10/worst-domain-name.html' title='The Worst Domain Name'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-5476672664032969483</id><published>2007-10-06T15:25:00.000+02:00</published><updated>2007-10-06T16:18:52.100+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='life'/><title type='text'>How to become a word guru?</title><content type='html'>If you have seen the popular american TV series "&lt;a href="http://www.fox.com/prisonbreak"&gt;Prison Break&lt;/a&gt;" Season 2, you must have got a deep impression by the character &lt;a href="http://en.wikipedia.org/wiki/Theodore_%22T-Bag%22_Bagwell"&gt;T-bag&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://upload.wikimedia.org/wikipedia/en/thumb/9/90/Pb_bagwell.png/250px-Pb_bagwell.png" /&gt;&lt;br /&gt;&lt;br /&gt;What made me surprised is his fancy grammar / vocabulary. He can use different words to describe one thing. This ablity comes from his childhood, when his father forced him to recite a whole american english dictionary!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;From the script of Episode 17 "Bad Blood":&lt;/span&gt;&lt;br /&gt;YOUNG T-BAG: Ten synonyms for destroy. (closing his eyes, remembering) Annul. Mutilate. Liquidate. Abrogate. Quell. Ravage. Expunge. Demolish. Extinguish. Extirpate.&lt;br /&gt;&lt;br /&gt;I always find me short of words, no, no, no, I don't mean I cannot say any word, but only quite normal words, like "destroy". :-)&lt;br /&gt;&lt;br /&gt;Internet provides a lot of possibilities to let us learn something online. I used to learn those synonyms of words from the GRE-preparing book. Now we have a better way to explore the world of words - &lt;a href="http://thesaurus.reference.com/" target="_blank"&gt;Roget's Thesaurus of English words and phrases.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;With the word "destroy", I got 60(!) result with the same meaning of "destroy". So, it's really time to learn some thesaurus [thi-&lt;span style="font-weight: bold;"&gt;sawr&lt;/span&gt;-&lt;span style="font-style: italic;"&gt;uh s&lt;/span&gt;] if one wants to become a word guru. Like a &lt;a href="http://club.cn.yahoo.com/bbs/threadview/1600002368_4753__pn.html"&gt;chinese proverb&lt;/a&gt; says: There is no royal road to learning.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-5476672664032969483?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/5476672664032969483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=5476672664032969483' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/5476672664032969483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/5476672664032969483'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2007/10/how-to-become-word-guru.html' title='How to become a word guru?'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-5281576477444312055</id><published>2007-10-01T20:30:00.001+02:00</published><updated>2007-10-01T20:30:51.635+02:00</updated><title type='text'>Use WinFlip to simulate the Flip3D effect under XP</title><content type='html'>&lt;p&gt;For those people who admire the shining effect&amp;#xA0; of switching windows - Flip3D under Windows Vista but have only Windows XP, here is a good news. WinFlip is such a very little eye candy to simulate the cool effect. It's extract &amp;amp; run ready without more configurations needed. Most important, it uses less resource (More precisely, it can adjust its effects on hardware performance automatically) and is free to use.&lt;/p&gt;  &lt;p&gt;Usage: &lt;/p&gt;  &lt;p&gt;use &lt;strong&gt;WinKey + Tab&lt;/strong&gt; to switch between windows. &lt;strong&gt;WinKey + Shift + Tab&lt;/strong&gt; to switch backwards.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://winflip.stylekings.de/bin/adlc/adlc.php?Cmd=Download&amp;amp;AL=NO&amp;amp;ID=0"&gt;&lt;img alt="http://www.tokyodownstairs.com" src="http://winflip.stylekings.de/images/WFlip.png" /&gt; &lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Click &lt;a href="http://winflip.stylekings.de/bin/adlc/adlc.php?Cmd=Download&amp;amp;AL=NO&amp;amp;ID=0"&gt;here&lt;/a&gt; to download the latest version 0.41. More information can be found on:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Main Site:&lt;/strong&gt; &lt;a href="http://www.tokyodownstairs.com/"&gt;http://www.tokyodownstairs.com/&lt;/a&gt; (already down for a few days :-( )&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Official Mirror Site:&lt;/strong&gt; &lt;a href="http://winflip.stylekings.de/"&gt;http://winflip.stylekings.de/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;New version comes also with mouse gestures. So just try it.&lt;/p&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-5281576477444312055?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/5281576477444312055/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=5281576477444312055' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/5281576477444312055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/5281576477444312055'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2007/10/use-winflip-to-simulate-flip3d-effect.html' title='Use WinFlip to simulate the Flip3D effect under XP'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-7813161691502159770</id><published>2007-09-28T12:11:00.000+02:00</published><updated>2007-09-28T12:21:21.925+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><title type='text'>Selected Firefox themes</title><content type='html'>Here are some pretty themes for firefox. So if you're already tired of the default style of firefox just like me, try one of them!&lt;br /&gt;&lt;br /&gt;Other Software&lt;br /&gt;&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/4083"&gt;&lt;span style="color:#285dbf;"&gt;FOXSCAPE&lt;/span&gt;&lt;/a&gt; - Netscape&lt;br /&gt;&lt;/p&gt;    &lt;ul id="contactinfo"&gt;&lt;center&gt;&lt;img alt="FOXSCAPE" src="http://mashable.com/wp-content/uploads/2007/08/netscape.gif" /&gt;&lt;/center&gt;&lt;/ul&gt;        &lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/4561"&gt;&lt;span style="color:#285dbf;"&gt;Office 03&lt;/span&gt;&lt;/a&gt; - Microsoft Office 2003&lt;br /&gt;&lt;/p&gt;        &lt;ul id="contactinfo"&gt;&lt;center&gt;&lt;img alt="Office 03" src="http://mashable.com/wp-content/uploads/2007/08/office03.gif" /&gt;&lt;/center&gt;&lt;/ul&gt;            &lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/890"&gt;&lt;span style="color:#285dbf;"&gt;Outlook 2003 Blue&lt;/span&gt;&lt;/a&gt; - Outlook 2003&lt;br /&gt;&lt;/p&gt;            &lt;ul id="contactinfo"&gt;&lt;center&gt;&lt;img alt="Outlook 2003" src="http://mashable.com/wp-content/uploads/2007/08/outlook2003.gif" /&gt;&lt;/center&gt;&lt;/ul&gt;                &lt;p&gt;&lt;strong&gt;Special&lt;/strong&gt;&lt;/p&gt;                &lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/4391"&gt;&lt;span style="color:#285dbf;"&gt;Abstract Classic&lt;/span&gt;&lt;/a&gt; - icons with angles&lt;br /&gt;&lt;/p&gt;                &lt;ul id="contactinfo"&gt;&lt;center&gt;&lt;img alt="Abstract Classic" src="http://mashable.com/wp-content/uploads/2007/08/abstractclassic.gif" /&gt;&lt;/center&gt;&lt;/ul&gt;                    &lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/4403"&gt;&lt;span style="color:#285dbf;"&gt;Baby Blue/ BB&lt;/span&gt;&lt;/a&gt; - pink and blue&lt;br /&gt;&lt;/p&gt;                    &lt;ul id="contactinfo"&gt;&lt;center&gt;&lt;img alt="Baby Blue" src="http://mashable.com/wp-content/uploads/2007/08/babyblue.gif" /&gt;&lt;/center&gt;&lt;/ul&gt;                        &lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/4516"&gt;&lt;span style="color:#285dbf;"&gt;Bible Fox&lt;/span&gt;&lt;/a&gt; - Christian symbols&lt;br /&gt;&lt;/p&gt;                        &lt;ul id="contactinfo"&gt;&lt;center&gt;&lt;img alt="Bible Fox" src="http://mashable.com/wp-content/uploads/2007/08/bible-fox.gif" /&gt;&lt;/center&gt;&lt;/ul&gt;                            &lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/2992"&gt;&lt;span style="color:#285dbf;"&gt;Glowy Green&lt;/span&gt;&lt;/a&gt; - dreamy colors&lt;br /&gt;&lt;/p&gt;                            &lt;ul id="contactinfo"&gt;&lt;center&gt;&lt;img alt="Glowy Green" src="http://mashable.com/wp-content/uploads/2007/08/glowygreen.gif" /&gt;&lt;/center&gt;&lt;/ul&gt;                                &lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/307"&gt;&lt;span style="color:#285dbf;"&gt;Littlefox for Firefox&lt;/span&gt;&lt;/a&gt; - for small resolution&lt;br /&gt;&lt;/p&gt;                                &lt;ul id="contactinfo"&gt;&lt;center&gt;&lt;img alt="Littlefox" src="http://mashable.com/wp-content/uploads/2007/08/littlefox.gif" /&gt;&lt;/center&gt;&lt;/ul&gt;                                    &lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/2311"&gt;&lt;span style="color:#285dbf;"&gt;MidnightFox&lt;/span&gt;&lt;/a&gt; - neon with black&lt;br /&gt;&lt;/p&gt;                                    &lt;ul id="contactinfo"&gt;&lt;center&gt;&lt;img alt="MidnightFox" src="http://mashable.com/wp-content/uploads/2007/08/midnightfox.gif" /&gt;&lt;/center&gt;&lt;/ul&gt;                                        &lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/3941"&gt;&lt;span style="color:#285dbf;"&gt;OldFactory Black&lt;/span&gt;&lt;/a&gt; - old style control panel&lt;br /&gt;&lt;/p&gt;                                        &lt;ul id="contactinfo"&gt;&lt;center&gt;&lt;img alt="Old Factory" src="http://mashable.com/wp-content/uploads/2007/08/old-factory.gif" /&gt;&lt;/center&gt;&lt;/ul&gt;                                            &lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1542"&gt;&lt;span style="color:#285dbf;"&gt;PimpZilla&lt;/span&gt;&lt;/a&gt; - earth&lt;/p&gt;                                            &lt;ul id="contactinfo"&gt;&lt;center&gt;&lt;img alt="PimpZilla" src="http://mashable.com/wp-content/uploads/2007/08/pimpzilla2.gif" /&gt;&lt;/center&gt;&lt;/ul&gt;                                                &lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/2822"&gt;&lt;span style="color:#285dbf;"&gt;Pink Paula / PP2&lt;/span&gt;&lt;/a&gt; - pinkie for teenagers&lt;br /&gt;&lt;/p&gt;                                                &lt;ul id="contactinfo"&gt;&lt;center&gt;&lt;img alt="Pink Paula" src="http://mashable.com/wp-content/uploads/2007/08/pink-paula.gif" /&gt;&lt;/center&gt;&lt;/ul&gt;                                                    &lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/4521"&gt;&lt;span style="color:#285dbf;"&gt;RedShift V2 Beta&lt;/span&gt;&lt;/a&gt; - red and black&lt;br /&gt;&lt;/p&gt;                                                    &lt;ul id="contactinfo"&gt;&lt;center&gt;&lt;img alt="RedShift" src="http://mashable.com/wp-content/uploads/2007/08/redshift.gif" /&gt;&lt;/center&gt;&lt;/ul&gt;                                                        &lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/303"&gt;&lt;span style="color:#285dbf;"&gt;Scribblies Brite&lt;/span&gt;&lt;/a&gt; - for kids&lt;br /&gt;&lt;/p&gt;                                                        &lt;ul id="contactinfo"&gt;&lt;center&gt;&lt;img alt="Scribblies Brite" src="http://mashable.com/wp-content/uploads/2007/08/scribblies.gif" /&gt;&lt;/center&gt;&lt;/ul&gt;                                                            &lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/4494"&gt;&lt;span style="color:#285dbf;"&gt;ShadowThunder II Sunbeam&lt;/span&gt;&lt;/a&gt; - bright yellow&lt;br /&gt;&lt;/p&gt;                                                            &lt;ul id="contactinfo"&gt;&lt;center&gt;&lt;img alt="ShadowThunderII" src="http://mashable.com/wp-content/uploads/2007/08/shadowthunder.gif" /&gt;&lt;/center&gt;&lt;/ul&gt;                                                                &lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/122"&gt;&lt;span style="color:#285dbf;"&gt;Walnut for Firefox&lt;/span&gt;&lt;/a&gt; - Wooden&lt;/p&gt;                                                                &lt;ul id="contactinfo"&gt;&lt;center&gt;&lt;img alt="Walnut" src="http://mashable.com/wp-content/uploads/2007/08/walnut.gif" /&gt;&lt;/center&gt;&lt;/ul&gt;                                                                    &lt;p&gt;&lt;strong&gt;Operating Systems&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;                                                                    &lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1830"&gt;&lt;span style="color:#285dbf;"&gt;iFox Smooth&lt;/span&gt;&lt;/a&gt; - Mac&lt;/p&gt;                                                                    &lt;ul id="contactinfo"&gt;&lt;center&gt;&lt;img alt="iFox Smooth" src="http://mashable.com/wp-content/uploads/2007/08/ifoxsmooth.gif" /&gt;&lt;/center&gt;&lt;/ul&gt;                                                                        &lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/3430"&gt;&lt;span style="color:#285dbf;"&gt;Macfox II&lt;/span&gt;&lt;/a&gt; - Mac OS&lt;/p&gt;                                                                        &lt;ul id="contactinfo"&gt;&lt;center&gt;&lt;img alt="Macfox II" src="http://mashable.com/wp-content/uploads/2007/08/macfoxii.gif" /&gt;&lt;/center&gt;&lt;/ul&gt;                                                                            &lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/4626"&gt;&lt;span style="color:#285dbf;"&gt;Metal Lion - Vista&lt;/span&gt;&lt;/a&gt; - Vista&lt;/p&gt;                                                                            &lt;ul id="contactinfo"&gt;&lt;center&gt;&lt;img alt="Metal Lion" src="http://mashable.com/wp-content/uploads/2007/08/metallion.gif" /&gt;&lt;/center&gt;&lt;/ul&gt;                                                                                &lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/3471"&gt;&lt;span style="color:#285dbf;"&gt;Netscape Windows 3.1&lt;/span&gt;&lt;/a&gt; - Windows 3.1&lt;/p&gt;                                                                                &lt;ul id="contactinfo"&gt;&lt;center&gt;&lt;img alt="Netscape Windows 3.1" src="http://mashable.com/wp-content/uploads/2007/08/netscape-windows-31.gif" /&gt;&lt;/center&gt;&lt;/ul&gt;                                                                                    &lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/3008"&gt;&lt;span style="color:#285dbf;"&gt;Ubuntu Human Theme&lt;/span&gt;&lt;/a&gt; - Ubuntu&lt;/p&gt;                                                                                    &lt;ul id="contactinfo"&gt;&lt;center&gt;&lt;img alt="Ubuntu Human" src="http://mashable.com/wp-content/uploads/2007/08/unbuntu-human.gif" /&gt;&lt;/center&gt;&lt;/ul&gt;                                                                                        &lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/3766"&gt;&lt;span style="color:#285dbf;"&gt;Ubuntu Tango Theme&lt;/span&gt;&lt;/a&gt; - Linux&lt;/p&gt;                                                                                        &lt;ul id="contactinfo"&gt;&lt;center&gt;&lt;img alt="Ubuntu Tango" src="http://mashable.com/wp-content/uploads/2007/08/ubuntu-tango.gif" /&gt;&lt;/center&gt;&lt;/ul&gt;                                                                                            &lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/4988"&gt;&lt;span style="color:#285dbf;"&gt;Vista-aero&lt;/span&gt;&lt;/a&gt; - Internet Explorer 7&lt;/p&gt;                                                                                            &lt;ul id="contactinfo"&gt;&lt;center&gt;&lt;img alt="Vista-Aero" src="http://mashable.com/wp-content/uploads/2007/08/vistaaero.gif" /&gt;&lt;/center&gt;&lt;/ul&gt;                                                                                                &lt;p&gt;&lt;strong&gt;Themes&lt;/strong&gt;&lt;/p&gt;                                                                                                &lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/3522"&gt;&lt;span style="color:#285dbf;"&gt;HalloFF&lt;/span&gt;&lt;/a&gt; - &lt;em&gt;The Nightmare Before Christmas&lt;/em&gt;.&lt;/p&gt;                                                                                                &lt;ul id="contactinfo"&gt;&lt;center&gt;&lt;img alt="Halloff" src="http://mashable.com/wp-content/uploads/2007/08/halloff.gif" /&gt;&lt;/center&gt;&lt;/ul&gt;                                                                                                    &lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1360"&gt;&lt;span style="color:#285dbf;"&gt;Halloween&lt;/span&gt;&lt;/a&gt; - Browser with ghosts&lt;br /&gt;&lt;/p&gt;                                                                                                    &lt;ul id="contactinfo"&gt;&lt;center&gt;&lt;img alt="Halloween" src="http://mashable.com/wp-content/uploads/2007/08/halloween2.gif" /&gt;&lt;/center&gt;&lt;/ul&gt;                                                                                                        &lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/3762"&gt;&lt;span style="color:#285dbf;"&gt;Lineage 2&lt;/span&gt;&lt;/a&gt; - Game: Lineage 2&lt;br /&gt;&lt;/p&gt;                                                                                                        &lt;ul id="contactinfo"&gt;&lt;center&gt;&lt;img alt="Lineage 2" src="http://mashable.com/wp-content/uploads/2007/08/lineage2.gif" /&gt;&lt;/center&gt;&lt;/ul&gt;                                                                                                            &lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/4908"&gt;&lt;span style="color:#285dbf;"&gt;NASA Night Launch&lt;/span&gt;&lt;/a&gt; - Can even style numerous extensions.&lt;/p&gt;                                                                                                            &lt;ul id="contactinfo"&gt;&lt;center&gt;&lt;img alt="NASA Night Launch" src="http://mashable.com/wp-content/uploads/2007/08/nasa-night-launch.gif" /&gt;&lt;/center&gt;&lt;/ul&gt;                                                                                                                &lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/104"&gt;&lt;span style="color:#285dbf;"&gt;Red Cats (green flavor)&lt;/span&gt;&lt;/a&gt; - for cat lover&lt;br /&gt;&lt;/p&gt;                                                                                                                &lt;ul id="contactinfo"&gt;&lt;center&gt;&lt;img alt="Red Cats" src="http://mashable.com/wp-content/uploads/2007/08/redcat.gif" /&gt;&lt;/center&gt;&lt;/ul&gt;                                                                                                                    &lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/5282"&gt;&lt;span style="color:#285dbf;"&gt;The Simpsons&lt;/span&gt;&lt;/a&gt; - German version&lt;br /&gt;&lt;/p&gt;                                                                                                                    &lt;ul id="contactinfo"&gt;&lt;center&gt;&lt;img alt="The Simpsons" src="http://mashable.com/wp-content/uploads/2007/08/thesimpsons2.gif" /&gt;&lt;/center&gt;&lt;/ul&gt;                                                                                                                        &lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/2984"&gt;&lt;span style="color:#285dbf;"&gt;tuxof&lt;/span&gt;&lt;/a&gt; - Unreal Tournament 2004&lt;/p&gt;                                                                                                                        &lt;ul id="contactinfo"&gt;&lt;center&gt;&lt;img alt="Unreal" src="http://mashable.com/wp-content/uploads/2007/08/unreal.gif" /&gt;&lt;/center&gt;&lt;/ul&gt;                                                                                                                            &lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/4087"&gt;&lt;span style="color:#285dbf;"&gt;X-Mas (Light)&lt;/span&gt;&lt;/a&gt; - Christmas&lt;/p&gt;                                                                                                                            &lt;ul id="contactinfo"&gt;&lt;center&gt;&lt;img alt="Xmas Light" src="http://mashable.com/wp-content/uploads/2007/08/xmas-light.gif" /&gt;&lt;/center&gt;&lt;/ul&gt;                                                                                                                                &lt;p&gt;So what do you like mostly? :-)  &lt;- this symbol is 25 years old, btw.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-7813161691502159770?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/7813161691502159770/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=7813161691502159770' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/7813161691502159770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/7813161691502159770'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2007/09/selected-firefox-themes.html' title='Selected Firefox themes'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-7615379480098962929</id><published>2007-09-27T12:30:00.000+02:00</published><updated>2007-09-27T12:38:36.907+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='life'/><title type='text'>Pack all in one with Bundled Wrapping Method</title><content type='html'>For those people who are always en route, here is a excellent wrapping method to pack all needed clothes in a compacter way.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.onebag.com/images/bundle-wrapping.jpg"&gt;&lt;img src="http://lifehacker.com/assets/resources/2007/09/bundle-wrapping.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;More details can be seen at &lt;a href="http://www.onebag.com/pack.html"&gt;http://www.onebag.com/pack.html&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-7615379480098962929?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/7615379480098962929/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=7615379480098962929' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/7615379480098962929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/7615379480098962929'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2007/09/pack-all-in-one-with-bundled-wrapping.html' title='Pack all in one with Bundled Wrapping Method'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-6881840964650825114</id><published>2007-09-23T16:06:00.000+02:00</published><updated>2007-09-23T20:22:44.847+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='Humor'/><title type='text'>A new MSN smiley collection: Tuzki</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-WuvccO25gk/Rvau1mHgNpI/AAAAAAAAAXo/QDEgnuUTJKk/s1600-h/4a46b55d020013o1.jpeg"&gt;&lt;img src="http://3.bp.blogspot.com/_-WuvccO25gk/Rvau1mHgNpI/AAAAAAAAAXo/QDEgnuUTJKk/s320/4a46b55d020013o1.jpeg" border="0" alt="" id="BLOGGER_PHOTO_ID_5113466662714095250" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;My most used IM software is MSN Messenger. So I do collect many funny smiley. :) Now here is the newest collection of my smiley. It's really popular....&lt;br /&gt;&lt;br /&gt;Download it &lt;a href="http://www.maia.org.cn/dm/tuzki/msn.rar"&gt;here&lt;/a&gt;. Don't tell me you don't know how to install them....  &lt;div&gt;&lt;div&gt;&lt;img src="http://tkfiles.storage.msn.com/x1pjzF2-RYhxRVv4q3x503rocms58SHpDDDFKLovesKqv58UimJBJBrvn11YDAM8f6QsMKzPnsItB8_uP04ESHtQt9Jzykxnq3FgriiXRUz0yQ" /&gt; &lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-6881840964650825114?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/6881840964650825114/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=6881840964650825114' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/6881840964650825114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/6881840964650825114'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2007/09/new-msn-smiley-collection-tuzki.html' title='A new MSN smiley collection: Tuzki'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_-WuvccO25gk/Rvau1mHgNpI/AAAAAAAAAXo/QDEgnuUTJKk/s72-c/4a46b55d020013o1.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-7091655107836183619</id><published>2007-09-17T14:34:00.000+02:00</published><updated>2007-09-17T14:41:47.347+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='photography'/><title type='text'>Photography by Quang-Tuan Luong</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.terragalleria.com"&gt;&lt;img style="cursor: pointer; width: 320px;" src="http://www.terragalleria.com/logo-small.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Recently I am busy in finding a job, making some interviews. So the update on this site is somehow delayed. Today I found some terrific photographies by  Quang-Tuan Luong.&lt;br /&gt;&lt;br /&gt;&lt;span&gt; Born in France, from Vietnamese parents, he was originally trained as a scientist (Ecole Polytechnique X84, PhD University of Paris), who &lt;/span&gt;&lt;span&gt;made a few contributions to the fields of Artificial Intelligence and Image Processing.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Twenty years ago, his life was transformed by  the wilderness of mountains. Now he is a photographer, so we have chance to see all his beautiful photos. :)&lt;br /&gt;&lt;br /&gt;So, enjoy!&lt;br /&gt;&lt;br /&gt;AT: &lt;a href="http://www.terragalleria.com"&gt;http://www.terragalleria.com&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;table bgcolor="#505050" border="0" cellpadding="10" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="200"&gt;&lt;a href="http://www.terragalleria.com/parks/parks.html"&gt;&lt;img src="http://www.terragalleria.com/images/np-alaska/lacl1673.small.jpeg" border="0" /&gt; &lt;/a&gt; &lt;/td&gt; &lt;td width="350"&gt; &lt;b&gt;&lt;a href="http://www.terragalleria.com/parks/parks.html"&gt;US National Parks&lt;/a&gt;&lt;/b&gt;&lt;p&gt; QT Luong has photographed in extraordinary detail each of the 58 US National Parks, resulting in this  unique collection of more than 4000 pictures. &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;form action=""&gt; &lt;select onchange="jumptopage(this);" style="color: rgb(255, 255, 255); background-color: rgb(96, 96, 96);"&gt; &lt;option value="/parks/parks.html" selected="selected"&gt; -- National Parks -- &lt;/option&gt; &lt;option value="/parks/np.acadia.html"&gt;Acadia &lt;/option&gt; &lt;option value="/parks/np.american-samoa.html"&gt;American Samoa &lt;/option&gt; &lt;option value="/parks/np.arches.html"&gt;Arches &lt;/option&gt; &lt;option value="/parks/np.badlands.html"&gt;Badlands &lt;/option&gt; &lt;option value="/parks/np.big-bend.html"&gt;Big Bend &lt;/option&gt; &lt;option value="/parks/np.biscayne.html"&gt;Biscayne &lt;/option&gt; &lt;option value="/parks/np.black-canyon.html"&gt;Black Canyon of the Gunnison &lt;/option&gt; &lt;option value="/parks/np.bryce-canyon.html"&gt;Bryce Canyon &lt;/option&gt; &lt;option value="/parks/np.canyonlands.html"&gt;Canyonlands &lt;/option&gt; &lt;option value="/parks/np.capitol-reef.html"&gt;Capitol Reef &lt;/option&gt; &lt;option value="/parks/np.carlsbad-caverns.html"&gt;Carlsbad Caverns &lt;/option&gt; &lt;option value="/parks/np.channel-islands.html"&gt;Channel Islands &lt;/option&gt; &lt;option value="/parks/np.congaree.html"&gt;Congaree &lt;/option&gt; &lt;option value="/parks/np.crater-lake.html"&gt;Crater Lake &lt;/option&gt; &lt;option value="/parks/np.cuyahoga-valley.html"&gt;Cuyahoga Valley &lt;/option&gt; &lt;option value="/parks/np.death-valley.html"&gt;Death Valley &lt;/option&gt; &lt;option value="/parks/np.denali.html"&gt;Denali &lt;/option&gt; &lt;option value="/parks/np.dry-tortugas.html"&gt;Dry Tortugas &lt;/option&gt; &lt;option value="/parks/np.everglades.html"&gt;Everglades &lt;/option&gt; &lt;option value="/parks/np.gates-artic.html"&gt;Gates of the Artic &lt;/option&gt; &lt;option value="/parks/np.glacier.html"&gt;Glacier &lt;/option&gt; &lt;option value="/parks/np.glacier-bay.html"&gt;Glacier Bay &lt;/option&gt; &lt;option value="/parks/np.grand-canyon.html"&gt;Grand Canyon &lt;/option&gt; &lt;option value="/parks/np.grand-teton.html"&gt;Grand Tetons &lt;/option&gt; &lt;option value="/parks/np.great-basin.html"&gt;Great Basin &lt;/option&gt; &lt;option value="/parks/np.great-sand.html"&gt;Great Sand Dunes &lt;/option&gt; &lt;option value="/parks/np.great-smoky.html"&gt;Great Smoky Mountains &lt;/option&gt; &lt;option value="/parks/np.guadalupe-mountains.html"&gt;Guadalupe Mountains &lt;/option&gt; &lt;option value="/parks/np.haleakala.html"&gt;Haleakala &lt;/option&gt; &lt;option value="/parks/np.hawaii-volcanoes.html"&gt;Hawaii Volcanoes &lt;/option&gt; &lt;option value="/parks/np.hot-springs.html"&gt;Hot Springs &lt;/option&gt; &lt;option value="/parks/np.isle-royale.html"&gt;Isle Royale &lt;/option&gt; &lt;option value="/parks/np.joshua-tree.html"&gt;Joshua Tree &lt;/option&gt; &lt;option value="/parks/np.katmai.html"&gt;Katmai &lt;/option&gt; &lt;option value="/parks/np.kenai-fjords.html"&gt;Kenai Fjords &lt;/option&gt; &lt;option value="/parks/np.kings-canyon.html"&gt;Kings Canyon &lt;/option&gt; &lt;option value="/parks/np.kobuk-valley.html"&gt;Kobuk Valley &lt;/option&gt; &lt;option value="/parks/np.lake-clark.html"&gt;Lake Clarke &lt;/option&gt; &lt;option value="/parks/np.lassen-volcanic.html"&gt;Lassen Volcanic &lt;/option&gt; &lt;option value="/parks/np.mammoth-cave.html"&gt;Mammoth Cave &lt;/option&gt; &lt;option value="/parks/np.mesa-verde.html"&gt;Mesa Verde &lt;/option&gt; &lt;option value="/parks/np.mount-rainier.html"&gt;Mount Rainier &lt;/option&gt; &lt;option value="/parks/np.north-cascades.html"&gt;North Cascades &lt;/option&gt; &lt;option value="/parks/np.olympic.html"&gt;Olympic &lt;/option&gt; &lt;option value="/parks/np.petrified-forest.html"&gt;Petrified Forest &lt;/option&gt; &lt;option value="/parks/np.redwood.html"&gt;Redwood &lt;/option&gt; &lt;option value="/parks/np.rocky-mountains.html"&gt;Rocky Mountain &lt;/option&gt; &lt;option value="/parks/np.saguaro.html"&gt;Saguaro &lt;/option&gt; &lt;option value="/parks/np.sequoia.html"&gt;Sequoia &lt;/option&gt; &lt;option value="/parks/np.shenendoah.html"&gt;Shenendoah &lt;/option&gt; &lt;option value="/parks/np.theodore-roosevelt.html"&gt;Theodore Roosevelt &lt;/option&gt; &lt;option value="/parks/np.virgin-islands.html"&gt;Virgin Islands &lt;/option&gt; &lt;option value="/parks/np.voyageurs.html"&gt;Voyageurs &lt;/option&gt; &lt;option value="/parks/np.wind-cave.html"&gt;Wind Cave &lt;/option&gt; &lt;option value="/parks/np.wrangell-stelias.html"&gt;Wrangell-St Elias &lt;/option&gt; &lt;option value="/parks/np.yellowstone.html"&gt;Yellowstone &lt;/option&gt; &lt;option value="/parks/np.yosemite.html"&gt;Yosemite &lt;/option&gt; &lt;option value="/parks/np.zion.html"&gt;Zion &lt;/option&gt; &lt;/select&gt;&lt;/form&gt;  &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;         &lt;table bgcolor="#505050" border="0" cellpadding="10" cellspacing="0"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td width="200"&gt; &lt;a href="http://www.terragalleria.com/north-america/"&gt; &lt;script type="text/javascript"&gt; &lt;!-- Hide this script from old browsers -- document.write('&lt;img src="/images/' + image_america + '" border="0" /&gt;'); // -- End Hiding Here --&gt; &lt;/script&gt;&lt;img src="http://www.terragalleria.com/images/us-ca/usca35380.small.jpeg" border="0" /&gt; &lt;/a&gt; &lt;/td&gt; &lt;td width="350"&gt; &lt;b&gt;&lt;a href="http://www.terragalleria.com/north-america/"&gt;North America&lt;/a&gt;&lt;/b&gt;&lt;p&gt; From sea to shining sea, the natural landscapes and cities of   &lt;a href="http://www.terragalleria.com/north-america/canada"&gt;Canada&lt;/a&gt;,  &lt;a href="http://www.terragalleria.com/north-america/mexico"&gt;Mexico&lt;/a&gt;, and the &lt;a href="http://www.terragalleria.com/america/"&gt;USA&lt;/a&gt; including an extensive   &lt;a href="http://www.terragalleria.com/california/"&gt;California&lt;/a&gt; gallery. &lt;/p&gt;&lt;p&gt;      &lt;/p&gt;&lt;form action=""&gt;&lt;span style=""&gt;     &lt;select onchange="jumptopage(this); " style="color: rgb(255, 255, 255); background-color: rgb(96, 96, 96);"&gt;     &lt;option value="/north-america/index.html" selected="selected"&gt; -- NA Countries and States -- &lt;/option&gt;     &lt;option value="/north-america/canada"&gt; -- Canada -- &lt;/option&gt;     &lt;option value="/north-america/mexico"&gt; -- Mexico -- &lt;/option&gt;     &lt;option value="/america/index.html"&gt; -- USA -- &lt;/option&gt;     &lt;option value="/america/alabama/"&gt;Alabama  &lt;/option&gt;     &lt;option value="/america/alaska/"&gt;Alaska  &lt;/option&gt;  &lt;option value="/america/arizona/"&gt;Arizona  &lt;/option&gt;  &lt;option value="/america/arkansas/"&gt;Arkansas  &lt;/option&gt;  &lt;option value="/california/"&gt;California  &lt;/option&gt;  &lt;option value="/america/south-west/colorado/colorado.html"&gt;Colorado   &lt;/option&gt;  &lt;option value="/america/north-east/washington-dc/washington-dc.html"&gt;District of Columbia (Washington)  &lt;/option&gt;  &lt;option value="/america/florida/"&gt;Florida  &lt;/option&gt;  &lt;option value="/america/georgia/"&gt;Georgia   &lt;/option&gt;  &lt;option value="/america/north-west/idaho/idaho.html"&gt;Idaho   &lt;/option&gt;  &lt;option value="/america/mid-west/illinois/illinois.html"&gt;Illinois (Chicago)    &lt;/option&gt;  &lt;option value="/america/louisiana/"&gt;Louisiana   &lt;/option&gt;  &lt;option value="/america/south-east/kentucky/kentucky.html"&gt;Kentucky   &lt;/option&gt;  &lt;option value="/america/north-east/massachusetts/massachusetts.html"&gt;Massachusetts (Boston)   &lt;/option&gt;  &lt;option value="/america/mid-west/michigan/michigan.html"&gt;Michigan   &lt;/option&gt;  &lt;option value="/america/mid-west/minnesota/minnesota.html"&gt;Minnesota   &lt;/option&gt;  &lt;option value="/america/mississippi/"&gt;Mississippi  &lt;/option&gt;  &lt;option value="/america/mid-west/nebraska/nebraska.html"&gt;Nebraska   &lt;/option&gt;  &lt;option value="/america/nevada/"&gt; Nevada  &lt;/option&gt;  &lt;option value="/america/north-east/new-hampshire/new-hampshire.html"&gt;New Hampshire   &lt;/option&gt;  &lt;option value="/america/south-west/new-mexico/new-mexico.html"&gt;New Mexico   &lt;/option&gt;  &lt;option value="/america/north-east/new-york/new-york.html"&gt;New-York   &lt;/option&gt;  &lt;option value="/america/mid-west/north-dakota/north-dakota.html"&gt;North Dakota   &lt;/option&gt;  &lt;option value="/america/oregon/"&gt;Oregon   &lt;/option&gt;  &lt;option value="/america/south-carolina"&gt;South Carolina   &lt;/option&gt;  &lt;option value="/america/mid-west/south-dakota/south-dakota.html"&gt;South Dakota   &lt;/option&gt;  &lt;option value="/america/south-east/tennessee/tennessee.html"&gt;Tennessee   &lt;/option&gt;  &lt;option value="/america/utah/"&gt;Utah  &lt;/option&gt;  &lt;option value="/america/north-east/vermont/vermont.html"&gt;Vermont   &lt;/option&gt;  &lt;option value="/america/south-east/virginia/virginia.html"&gt;Virginia   &lt;/option&gt;  &lt;option value="/america/washington/"&gt;Washington   &lt;/option&gt;  &lt;option value="/america/mid-west/wisconsin/wisconsin.html"&gt;Wisconsin   &lt;/option&gt;  &lt;option value="/america/north-west/wyoming/wyoming.html"&gt;Wyoming   &lt;/option&gt;  &lt;/select&gt;&lt;/span&gt;&lt;/form&gt;   &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;   &lt;/p&gt;&lt;p&gt;   &lt;table bgcolor="#505050" border="0" cellpadding="10" cellspacing="0"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td width="200"&gt; &lt;a href="http://www.terragalleria.com/asia/"&gt; &lt;script type="text/javascript"&gt; &lt;!-- Hide this script from old browsers -- document.write('&lt;img src="/images/' + image_asia + '" border="0" /&gt;'); // -- End Hiding Here --&gt; &lt;/script&gt;&lt;img src="http://www.terragalleria.com/images/vietnam/viet8063.small.jpeg" border="0" /&gt; &lt;/a&gt; &lt;/td&gt; &lt;td width="350"&gt; &lt;b&gt;&lt;a href="http://www.terragalleria.com/asia/"&gt;Asia&lt;/a&gt;&lt;/b&gt; and &lt;a href="http://www.terragalleria.com/middle-east/israel"&gt;Israel&lt;/a&gt;&lt;p&gt; The surprising people, traditional culture, and  temples of &lt;a href="http://www.terragalleria.com/asia/japan/"&gt;Japan&lt;/a&gt;,  &lt;a href="http://www.terragalleria.com/asia/china/"&gt;South-West China&lt;/a&gt;,  &lt;a href="http://www.terragalleria.com/asia/india/"&gt;India&lt;/a&gt;,  &lt;a href="http://www.terragalleria.com/vietnam/"&gt;Vietnam&lt;/a&gt;,  &lt;a href="http://www.terragalleria.com/asia/cambodia/"&gt;Cambodia&lt;/a&gt;,  &lt;a href="http://www.terragalleria.com/asia/laos/"&gt;Laos&lt;/a&gt;,  &lt;a href="http://www.terragalleria.com/asia/thailand/"&gt;Thailand&lt;/a&gt;,  &lt;a href="http://www.terragalleria.com/asia/myanmar/"&gt;Myanmar&lt;/a&gt;.  &lt;/p&gt;&lt;p&gt;      &lt;/p&gt;&lt;form action=""&gt;&lt;span style=""&gt;     &lt;select onchange="jumptopage(this); " style="color: rgb(255, 255, 255); background-color: rgb(96, 96, 96);"&gt;     &lt;option value="/asia/index.html" selected="selected"&gt; --  Asia locations -- &lt;/option&gt;     &lt;option value="/asia/china/hong-kong/hong-kong.html"&gt;Hong-Kong (China)  &lt;/option&gt;  &lt;option value="/asia/china/kunming/kunming.html"&gt;Kunming (China)  &lt;/option&gt;  &lt;option value="/asia/china/shilin/shilin.html"&gt;Shilin (Stone Forest) (China)  &lt;/option&gt;  &lt;option value="/asia/china/dali/dali.html"&gt;Dali (China)  &lt;/option&gt;  &lt;option value="/asia/china/shaping/shaping.html"&gt;Shaping (China)  &lt;/option&gt;  &lt;option value="/asia/china/lijiang/lijiang.html"&gt;Lijiang (China)  &lt;/option&gt;  &lt;option value="/asia/china/baisha/baisha.html"&gt;Baisha (China)  &lt;/option&gt;  &lt;option value="/asia/china/emei-shan/emei-shan.html"&gt;Emei Shan (China)  &lt;/option&gt;  &lt;option value="/asia/china/leshan/leshan.html"&gt;Leshan (China)  &lt;/option&gt;  &lt;option value="/asia/china/chengdu/chengdu.html"&gt;Chengdu (China)  &lt;/option&gt;  &lt;option value="/asia/china/guangzhou/guangzhou.html"&gt;Guangzhou (China)  &lt;/option&gt;  &lt;option value="/asia/china/misc-china/misc-china.html"&gt;Misc locations (China)  &lt;/option&gt;  &lt;option value="/asia/japan/tokyo/tokyo.html"&gt;Tokyo (Japan)  &lt;/option&gt;  &lt;option value="/asia/japan/kyoto/kyoto.html"&gt;Kyoto (Japan)  &lt;/option&gt;  &lt;option value="/asia/japan/nikko/nikko.html"&gt;Nikko (Japan)  &lt;/option&gt;  &lt;option value="/asia/japan/himeji/himeji.html"&gt;Himeji (Japan)  &lt;/option&gt;  &lt;option value="/asia/india/delhi/delhi.html"&gt;New Delhi (India)  &lt;/option&gt;  &lt;option value="/asia/india/ladakh/ladakh.html"&gt;Ladakh Himalaya (India)  &lt;/option&gt;  &lt;option value="/asia/india/jodhpur/jodhpur.html"&gt;Jodhpur (India)  &lt;/option&gt;  &lt;option value="/asia/india/agra/agra.html"&gt;Agra (India)  &lt;/option&gt;  &lt;option value="/asia/india/fatehpur-sikri/fatehpur-sikri.html"&gt;Fatehpur Sikri (India)  &lt;/option&gt;  &lt;option value="/asia/india/bharatpur/bharatpur.html"&gt;Keoladeo Ghana, Bharatpur (India)  &lt;/option&gt;  &lt;option value="/asia/india/varanasi/varanasi.html"&gt;Varanasi (India)  &lt;/option&gt;  &lt;option value="/asia/india/khajuraho/khajuraho.html"&gt;Khajuraho (India)  &lt;/option&gt;  &lt;option value="/asia/india/mumbai/mumbai.html"&gt;Mumbai (India)  &lt;/option&gt;  &lt;option value="/asia/india/goa/goa.html"&gt;Goa (India)  &lt;/option&gt;         &lt;option value="/vietnam/vietnam.ba-be-lake.html"&gt;Ba Be Lake  (Vietnam) &lt;/option&gt;  &lt;option value="/vietnam/vietnam.ba-be-lake-area.html"&gt;Ba Be Lake area  (Vietnam) &lt;/option&gt;  &lt;option value="/vietnam/vietnam.bac-ha.html"&gt;Bac Ha  (Vietnam) &lt;/option&gt;  &lt;option value="/vietnam/vietnam.can-tho.html"&gt;Can Tho  (Vietnam) &lt;/option&gt;  &lt;option value="/vietnam/vietnam.cao-bang.html"&gt;Cao Bang area  (Vietnam) &lt;/option&gt;  &lt;option value="/vietnam/vietnam.chau-doc.html"&gt;Chau Doc  (Vietnam) &lt;/option&gt;  &lt;option value="/vietnam/vietnam.da-lat.html"&gt;Da Lat  (Vietnam) &lt;/option&gt;  &lt;option value="/vietnam/vietnam.da-nang.html"&gt;Da Nang  (Vietnam) &lt;/option&gt;  &lt;option value="/vietnam/vietnam.dong-hoi.html"&gt;Dong Hoi  (Vietnam) &lt;/option&gt;  &lt;option value="/vietnam/vietnam.hcm-family.html"&gt;HCM Family life  (Vietnam) &lt;/option&gt;  &lt;option value="/vietnam/vietnam.hcm-markets.html"&gt;HCM Markets  (Vietnam) &lt;/option&gt;  &lt;option value="/vietnam/vietnam.hcm-sights.html"&gt;HCM Sights  (Vietnam) &lt;/option&gt;  &lt;option value="/vietnam/vietnam.hcm-streets.html"&gt;HCM Streets  (Vietnam) &lt;/option&gt;  &lt;option value="/vietnam/vietnam.hcm-temples.html"&gt;HCM Temples  (Vietnam) &lt;/option&gt;  &lt;option value="/vietnam/vietnam.ha-tien.html"&gt;Ha Tien  (Vietnam) &lt;/option&gt;  &lt;option value="/vietnam/vietnam.halong.html"&gt;Halong Bay  (Vietnam) &lt;/option&gt;  &lt;option value="/vietnam/vietnam.hanoi.html"&gt;Hanoi  (Vietnam) &lt;/option&gt;  &lt;option value="/vietnam/vietnam.hoi-an.html"&gt;Hoi An and My Son  (Vietnam) &lt;/option&gt;  &lt;option value="/vietnam/vietnam.hong-chong.html"&gt;Hong Chong peninsula  (Vietnam) &lt;/option&gt;  &lt;option value="/vietnam/vietnam.hue.html"&gt;Hue  (Vietnam) &lt;/option&gt;  &lt;option value="/vietnam/vietnam.lai-chau.html"&gt;Lai Chau  (Vietnam) &lt;/option&gt;  &lt;option value="/vietnam/vietnam.lan-son.html"&gt;Lan Son  (Vietnam) &lt;/option&gt;  &lt;option value="/vietnam/vietnam.north-east-misc.html"&gt;Lan Son to Cao Bang  (Vietnam) &lt;/option&gt;  &lt;option value="/vietnam/vietnam.mai-chau.html"&gt;Mai Chau  (Vietnam) &lt;/option&gt;  &lt;option value="/vietnam/vietnam.mai-chau-son-la.html"&gt;Mai Chau to Son La  (Vietnam) &lt;/option&gt;  &lt;option value="/vietnam/vietnam.delta-misc.html"&gt;Misc Delta  (Vietnam) &lt;/option&gt;  &lt;option value="/vietnam/vietnam.north-misc.html"&gt;Misc North  (Vietnam) &lt;/option&gt;  &lt;option value="/vietnam/vietnam.north-west-misc.html"&gt;Misc Northwest  (Vietnam) &lt;/option&gt;  &lt;option value="/vietnam/vietnam.my-tho-ben-tre.html"&gt;My Tho and Ben Tre  (Vietnam) &lt;/option&gt;  &lt;option value="/vietnam/vietnam.nha-trang.html"&gt;Nha Trang  (Vietnam) &lt;/option&gt;  &lt;option value="/vietnam/vietnam.ninh-binh.html"&gt;Ninh Binh  (Vietnam) &lt;/option&gt;  &lt;option value="/vietnam/vietnam.perfume-pagoda.html"&gt;Perfume Pagoda  (Vietnam) &lt;/option&gt;  &lt;option value="/vietnam/vietnam.phong-nha.html"&gt;Phong Nha  (Vietnam) &lt;/option&gt;  &lt;option value="/vietnam/vietnam.sapa.html"&gt;Sapa  (Vietnam) &lt;/option&gt;  &lt;option value="/vietnam/vietnam.son-la.html"&gt;Son La  (Vietnam) &lt;/option&gt;  &lt;option value="/vietnam/vietnam.tam-duong.html"&gt;Tam Duong  (Vietnam) &lt;/option&gt;  &lt;option value="/vietnam/vietnam.tay-ninh.html"&gt;Tay Ninh  (Vietnam) &lt;/option&gt;  &lt;option value="/vietnam/vietnam.tuan-giao.html"&gt;Tuan Giao  (Vietnam) &lt;/option&gt;  &lt;option value="/vietnam/vietnam.vung-tau.html"&gt;Vung Tau  (Vietnam) &lt;/option&gt;     &lt;option value="/asia/myanmar/yangoon/yangoon.html"&gt;Yangoon (Myanmar)     &lt;/option&gt;     &lt;option value="/asia/myanmar/bagan/bagan.html"&gt;Bagan (Myanmar)     &lt;/option&gt;     &lt;option value="/asia/myanmar/popa/popa.html"&gt;Mount Popa (Myanmar)     &lt;/option&gt;     &lt;option value="/asia/myanmar/mandalay/mandalay.html"&gt;Mandalay (Myanmar)     &lt;/option&gt;     &lt;option value="/asia/myanmar/inle/inle.html"&gt;Inle Lake (Myanmar)     &lt;/option&gt;     &lt;option value="/asia/myanmar/kalaw/kalaw.html"&gt;Shan state (Myanmar)     &lt;/option&gt;     &lt;option value="/asia/thailand/bangkok/bangkok.html"&gt;Bangkok, the city (Thailand)     &lt;/option&gt;     &lt;option value="/asia/thailand/bangkok-temples/bangkok-temples.html"&gt;Bangkok, the temples (Thailand)     &lt;/option&gt;     &lt;option value="/asia/thailand/muang-boran/muang-boran.html"&gt;Muang Boran (Thailand)     &lt;/option&gt;     &lt;option value="/asia/thailand/damonoen-saduak/damonoen-saduak.html"&gt;Damonoen Saduak (Thailand)     &lt;/option&gt;     &lt;option value="/asia/thailand/nakkhon-pathom/nakkhon-pathom.html"&gt;Nakkhon Pathom (Thailand)     &lt;/option&gt;     &lt;option value="/asia/thailand/ayuthaya/ayuthaya.html"&gt;Ayuthaya (Thailand)     &lt;/option&gt;     &lt;option value="/asia/thailand/lopburi/lopburi.html"&gt;Lopburi (Thailand)     &lt;/option&gt;     &lt;option value="/asia/thailand/sukhothai/sukhothai.html"&gt;Sukothai (Thailand)     &lt;/option&gt;     &lt;option value="/asia/thailand/chiang-mai/chiang-mai.html"&gt;Chiang Mai (Thailand)     &lt;/option&gt;     &lt;option value="/asia/thailand/chiang-mai-area/chiang-mai-area.html"&gt;Chiang Mai area (Thailand)     &lt;/option&gt;     &lt;option value="/asia/thailand/chiang-rai/chiang-rai.html"&gt;Chiang Rai (Thailand)     &lt;/option&gt;     &lt;option value="/asia/laos/luang-prabang-monasteries/luang-prabang-monasteries.html"&gt;Luang Prabang Monasteries (Laos)     &lt;/option&gt;     &lt;option value="/asia/laos/luang-prabang/luang-prabang.html"&gt;Luang Prabang (Laos)     &lt;/option&gt;     &lt;option value="/asia/laos/pak-ou/pak-ou.html"&gt;Pak Ou (Laos)     &lt;/option&gt;     &lt;option value="/asia/laos/huay-xai/huay-xai.html"&gt;Huay Xai (Laos)     &lt;/option&gt;     &lt;option value="/asia/laos/mekong/mekong.html"&gt;Mekong river (Laos)     &lt;/option&gt;     &lt;option value="/asia/cambodia/phnom-phen/phnom-phen.html"&gt;Phnom Phen (Cambodia)     &lt;/option&gt;     &lt;option value="/asia/cambodia/tonle-sap-river/tonle-sap-river.html"&gt;Tonle Sap (Cambodia)     &lt;/option&gt;     &lt;option value="/asia/cambodia/angkor-wat/angkor-wat.html"&gt;Angkor Wat (Cambodia)     &lt;/option&gt;     &lt;option value="/asia/cambodia/angkor/angkor.html"&gt;Angkor temples (Cambodia)     &lt;/option&gt;  &lt;/select&gt;&lt;/span&gt;&lt;/form&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;&lt;p&gt;    &lt;table bgcolor="#505050" border="0" cellpadding="10" cellspacing="0"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td width="200"&gt; &lt;a href="http://www.terragalleria.com/europe/"&gt; &lt;script type="text/javascript"&gt; &lt;!-- Hide this script from old browsers -- document.write('&lt;img src="/images/' + image_europe + '" border="0" /&gt;'); // -- End Hiding Here --&gt; &lt;/script&gt;&lt;img src="http://www.terragalleria.com/images/europe/belg10492.small.jpeg" border="0" /&gt; &lt;/a&gt; &lt;/td&gt;  &lt;td width="350"&gt; &lt;b&gt;&lt;a href="http://www.terragalleria.com/europe/"&gt;Europe&lt;/a&gt;&lt;/b&gt;  &lt;p&gt; Historic cities and small towns of &lt;a href="http://www.terragalleria.com/europe/belgium/"&gt;Belgium&lt;/a&gt; , &lt;a href="http://www.terragalleria.com/europe/france/"&gt;France&lt;/a&gt;, &lt;a href="http://www.terragalleria.com/europe/germany/"&gt;Germany&lt;/a&gt;,  &lt;a href="http://www.terragalleria.com/europe/italy/"&gt;Italy&lt;/a&gt;,  &lt;a href="http://www.terragalleria.com/europe/sweden/"&gt;Sweden&lt;/a&gt;, and the &lt;a href="http://www.terragalleria.com/europe/united-kingdom/"&gt;United Kingdom&lt;/a&gt;, full of ancient ruins, monuments, fountains, castles, churches, cathedrals, old homes and streets. &lt;/p&gt;&lt;p&gt;     &lt;/p&gt;&lt;form action=""&gt;&lt;span style=""&gt;     &lt;select onchange="jumptopage(this); " style="color: rgb(255, 255, 255); background-color: rgb(96, 96, 96);"&gt;     &lt;option value="/europe/index.html" selected="selected"&gt; -- Europe locations -- &lt;/option&gt;     &lt;option value="/europe/belgium/brussels/brussels.html"&gt;Brussels (Belgium)  &lt;/option&gt;  &lt;option value="/europe/belgium/tournai/tournai.html"&gt;Tournai (Belgium)  &lt;/option&gt;  &lt;option value="/europe/belgium/bruges/bruges.html"&gt;Bruges (Belgium)  &lt;/option&gt;  &lt;option value="/europe/france/paris/paris.html"&gt;Paris (France)  &lt;/option&gt;  &lt;option value="/europe/france/paris-around/paris-around.html"&gt;Ile de France (France)  &lt;/option&gt;  &lt;option value="/europe/france/loire-valley/loire-valley.html"&gt;Loire Valley (France)  &lt;/option&gt;  &lt;option value="/europe/france/bourges/bourges.html"&gt;Bourges (France)  &lt;/option&gt;  &lt;option value="/europe/france/burgundy/burgundy.html"&gt;Bourgogne (Burgundy) (France)  &lt;/option&gt;  &lt;option value="/europe/france/brittany/brittany.html"&gt;St Malo and Cancale (France)  &lt;/option&gt;  &lt;option value="/europe/france/mont-saint-michel/mont-saint-michel.html"&gt;Mont Saint-Michel (France)  &lt;/option&gt;  &lt;option value="/europe/france/france-north/france-north.html"&gt;Picardie (France)  &lt;/option&gt;  &lt;option value="/europe/france/strasbourg/strasbourg.html"&gt;Strasbourg (France)  &lt;/option&gt;  &lt;option value="/europe/france/alps/alps.html"&gt;Alps (France)  &lt;/option&gt;  &lt;option value="/europe/france/marseille/marseille.html"&gt;Marseille Calanques (France)  &lt;/option&gt;  &lt;option value="/europe/france/maritime-alps/maritime-alps.html"&gt;Maritime Alps (France)  &lt;/option&gt;  &lt;option value="/europe/italy/cinque-terre/cinque-terre.html"&gt;Cinque Terre (Italy)  &lt;/option&gt;  &lt;option value="/europe/italy/riviera-levante/riviera-levante.html"&gt;Riviera di Levante (Italy)  &lt;/option&gt;  &lt;option value="/europe/italy/venice/venice.html"&gt;Venice (Italy)  &lt;/option&gt;  &lt;option value="/europe/italy/veneto/veneto.html"&gt;Vicenza (Italy)  &lt;/option&gt;  &lt;option value="/europe/italy/tuscany/tuscany.html"&gt;Tuscany countryside (Italy)  &lt;/option&gt;  &lt;option value="/europe/italy/firenze/firenze.html"&gt;Firenze (Florence) (Italy)  &lt;/option&gt;  &lt;option value="/europe/italy/san-gimigliano/san-gimigliano.html"&gt;San Gimignano (Italy)  &lt;/option&gt;  &lt;option value="/europe/italy/sienna/sienna.html"&gt;Siena (Italy)  &lt;/option&gt;  &lt;option value="/europe/italy/umbria/umbria.html"&gt;Orvieto (Italy)  &lt;/option&gt;  &lt;option value="/europe/italy/tivoli/tivoli.html"&gt;Tivoli (Italy)  &lt;/option&gt;  &lt;option value="/europe/italy/roma/roma.html"&gt;Rome (Italy)  &lt;/option&gt;  &lt;option value="/europe/italy/vatican/vatican.html"&gt;The Vatican (Italy)  &lt;/option&gt;  &lt;option value="/europe/italy/napoli/napoli.html"&gt;Napoli (Naples) (Italy)  &lt;/option&gt;  &lt;option value="/europe/italy/pompeii/pompeii.html"&gt;Pompei (Italy)  &lt;/option&gt;  &lt;option value="/europe/italy/paestum/paestum.html"&gt;Paestum (Italy)  &lt;/option&gt;  &lt;option value="/europe/italy/amalfi-coast/amalfi-coast.html"&gt;Amalfi Coast (Italy)  &lt;/option&gt;  &lt;option value="/europe/germany/wurzburg/wurzburg.html"&gt;Wurzburg (Germany)  &lt;/option&gt;  &lt;option value="/europe/germany/rothenburg/rothenburg.html"&gt;Rothenburg (Germany)  &lt;/option&gt;  &lt;option value="/europe/germany/nurnberg/nurnberg.html"&gt;Nurnberg (Nuremberg) (Germany)  &lt;/option&gt;  &lt;option value="/europe/germany/north-bavaria/north-bavaria.html"&gt;North Bavaria (Germany)  &lt;/option&gt;  &lt;option value="/europe/germany/south-bavaria/south-bavaria.html"&gt;South Bavaria (Germany)  &lt;/option&gt;  &lt;option value="/europe/sweden/stockholm/stockholm.html"&gt;Stockholm (Sweden)  &lt;/option&gt;  &lt;option value="/europe/sweden/drottningholm/drottningholm.html"&gt;Drottningholm (Sweden)  &lt;/option&gt;  &lt;option value="/europe/sweden/uppland/uppland.html"&gt;Uppsala (Sweden)  &lt;/option&gt;  &lt;option value="/europe/sweden/central-sweden/central-sweden.html"&gt;Central Sweden (Sweden)  &lt;/option&gt;  &lt;option value="/europe/sweden/lake-vattern/lake-vattern.html"&gt;Lake Vattern area (Sweden)  &lt;/option&gt;  &lt;option value="/europe/sweden/gotaland/gotaland.html"&gt;East Gotaland (Sweden)  &lt;/option&gt;  &lt;option value="/europe/london/westminster-palace/westminster-palace.html"&gt;Westminster Palace (London)  &lt;/option&gt;  &lt;option value="/europe/london/big-ben/big-ben.html"&gt;Big Ben (London)  &lt;/option&gt;  &lt;option value="/europe/london/westminster-abbey/westminster-abbey.html"&gt;Westminster Abbey (London)  &lt;/option&gt;  &lt;option value="/europe/london/tower-of-london/tower-of-london.html"&gt;Tower of London (London)  &lt;/option&gt;  &lt;option value="/europe/london/tower-bridge/tower-bridge.html"&gt;Tower Bridge (London)  &lt;/option&gt;  &lt;option value="/europe/london/buckingham-palace/buckingham-palace.html"&gt;Buckingham Palace (London)  &lt;/option&gt;  &lt;option value="/europe/london/saint-james/saint-james.html"&gt;Saint James (London)  &lt;/option&gt;  &lt;option value="/europe/london/trafalgar-square/trafalgar-square.html"&gt;Trafalgar Square (London)  &lt;/option&gt;  &lt;option value="/europe/london/piccadilly-circus/piccadilly-circus.html"&gt;Picadilly Circus (London)  &lt;/option&gt;  &lt;option value="/europe/london/london-pubs/london-pubs.html"&gt;London Pubs (London)  &lt;/option&gt;  &lt;option value="/europe/london/thames-river/thames-river.html"&gt;Thames River (London)  &lt;/option&gt;  &lt;option value="/europe/london/london-eye/london-eye.html"&gt;London Eye (London)  &lt;/option&gt;  &lt;option value="/europe/london/kew-gardens/kew-gardens.html"&gt;Kew Royal Botanical Gardens (London)  &lt;/option&gt;  &lt;option value="/europe/london/maritime-greenwich/maritime-greenwich.html"&gt;Maritime Greenwich (London)  &lt;/option&gt;  &lt;option value="/europe/london/london-transportation/london-transportation.html"&gt;London public transportation (London)  &lt;/option&gt;  &lt;option value="/europe/london/london-misc/london-misc.html"&gt;Misc London (London)  &lt;/option&gt;  &lt;option value="/united-kingdom/bath/bath.html"&gt;Bath (England, United Kingdom)  &lt;/option&gt;  &lt;option value="/united-kingdom/canterbury/canterbury.html"&gt;Canterbury (England, United Kingdom)  &lt;/option&gt;  &lt;option value="/united-kingdom/stonehenge-avebury/stonehenge-avebury.html"&gt;Stonehenge and Avebury (England, United Kingdom)  &lt;/option&gt;  &lt;option value="/united-kingdom/wiltshire-villages/wiltshire-villages.html"&gt;English Villages (England, United Kingdom)  &lt;/option&gt;  &lt;/select&gt;&lt;/span&gt;&lt;/form&gt;  &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;&lt;p&gt;            &lt;table bgcolor="#505050" border="0" cellpadding="10" cellspacing="0"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td width="200"&gt; &lt;a href="http://www.terragalleria.com/pacific/"&gt; &lt;script type="text/javascript"&gt; &lt;!-- Hide this script from old browsers -- document.write('&lt;img src="/images/' + image_pacific + '" border="0" /&gt;'); // -- End Hiding Here --&gt; &lt;/script&gt;&lt;img src="http://www.terragalleria.com/images/pacific/hawa33033.small.jpeg" border="0" /&gt; &lt;/a&gt; &lt;/td&gt;  &lt;td width="350"&gt; &lt;b&gt;&lt;a href="http://www.terragalleria.com/pacific/"&gt;Oceania&lt;/a&gt;&lt;/b&gt;&lt;p&gt; A variety of tropical images from  &lt;a href="http://www.terragalleria.com/pacific/australia/"&gt;Australia&lt;/a&gt; and the islands of  &lt;a href="http://www.terragalleria.com/pacific/american-samoa/"&gt;American Samoa&lt;/a&gt; and  &lt;a href="http://www.terragalleria.com/pacific/hawaii/"&gt;Hawaii&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;     &lt;/p&gt;&lt;form action=""&gt;&lt;span style=""&gt;     &lt;select onchange="jumptopage(this); " style="color: rgb(255, 255, 255); background-color: rgb(96, 96, 96);"&gt;     &lt;option value="/pacific/index.html" selected="selected"&gt; -- Australia and Pacific locations -- &lt;/option&gt;     &lt;option value="/pacific/australia/sydney/sydney.html"&gt;Sydney (Australia)  &lt;/option&gt;  &lt;option value="/pacific/australia/brisbane/brisbane.html"&gt;Brisbane (Australia)  &lt;/option&gt;  &lt;option value="/pacific/australia/ayers-rock/ayers-rock.html"&gt;Ayers Rock (Australia)  &lt;/option&gt;  &lt;option value="/pacific/australia/olgas/olgas.html"&gt;Olgas (Australia)  &lt;/option&gt;  &lt;option value="/pacific/australia/center/center.html"&gt;Central Area (Australia)  &lt;/option&gt;  &lt;option value="/pacific/australia/north-queensland/north-queensland.html"&gt;North Queensland (Australia)  &lt;/option&gt;  &lt;option value="/pacific/australia/great-barrier-reef/great-barrier-reef.html"&gt;The Great Barrier Reef (Australia)  &lt;/option&gt;  &lt;option value="/pacific/australia/australian-animals/australian-animals.html"&gt;Australian animals (Australia)  &lt;/option&gt;  &lt;option value="/pacific/american-samoa/pago-pago/pago-pago.html"&gt;Pago Pago (American Samoa)  &lt;/option&gt;  &lt;option value="/pacific/american-samoa/pago-pago-area/pago-pago-area.html"&gt;Pago Pago area (American Samoa)  &lt;/option&gt;  &lt;option value="/pacific/american-samoa/west-tuitula-island/west-tuitula-island.html"&gt;West Tutuila (American Samoa)  &lt;/option&gt;  &lt;option value="/pacific/american-samoa/southeast-tuitula-island/southeast-tuitula-island.html"&gt;Southeast Tutuila (American Samoa)  &lt;/option&gt;  &lt;option value="/pacific/american-samoa/north-tuitula-island/north-tuitula-island.html"&gt;North Tutuila (American Samoa)  &lt;/option&gt;  &lt;option value="/pacific/american-samoa/aunuu-island/aunuu-island.html"&gt;Aunuu (American Samoa)  &lt;/option&gt;  &lt;option value="/pacific/american-samoa/manua-islands/manua-islands.html"&gt;Maunu'a Islands (American Samoa)  &lt;/option&gt;  &lt;option value="/pacific/oahu/waikiki/waikiki.html"&gt;Waikiki (Oahu)  &lt;/option&gt;  &lt;option value="/pacific/oahu/oahu-south-east/oahu-south-east.html"&gt;Diamond Head and Maunalua Bay (Oahu)  &lt;/option&gt;  &lt;option value="/pacific/oahu/hanauma-bay/hanauma-bay.html"&gt;Hanauma Bay (Oahu)  &lt;/option&gt;  &lt;option value="/pacific/oahu/oahu-east/oahu-east.html"&gt;Makapu and Waimelano (Oahu)  &lt;/option&gt;  &lt;option value="/pacific/oahu/byodo-in/byodo-in.html"&gt;Byodo-In (Oahu)  &lt;/option&gt;  &lt;option value="/pacific/oahu/oahu-north/oahu-north.html"&gt;North Oahu (Oahu)  &lt;/option&gt;  &lt;option value="/pacific/oahu/koolau-mountains/koolau-mountains.html"&gt;Koolau Mountains (Oahu)  &lt;/option&gt;  &lt;option value="/pacific/oahu/pcc/pcc.html"&gt;Polynesian Cultural Center (Oahu)  &lt;/option&gt;  &lt;option value="/pacific/oahu/oahu-close-ups/oahu-close-ups.html"&gt;Tropical plants (Oahu)  &lt;/option&gt;  &lt;option value="/pacific/maui/maui-north/maui-north.html"&gt;Paia to Keanae (Maui)  &lt;/option&gt;  &lt;option value="/pacific/maui/maui-keanae/maui-keanae.html"&gt;Keanae Peninsula (Maui)  &lt;/option&gt;  &lt;option value="/pacific/maui/maui-hana/maui-hana.html"&gt;Hana to Kipahulu (Maui)  &lt;/option&gt;  &lt;option value="/pacific/hawaii-big-island/big-island-west/big-island-west.html"&gt;Big Island West (Hawaii - Big Island)  &lt;/option&gt;  &lt;option value="/pacific/hawaii-big-island/big-island-east/big-island-east.html"&gt;Big Island East (Hawaii - Big Island)  &lt;/option&gt;  &lt;option value="/pacific/hawaii-big-island/akaka-falls-state-park/akaka-falls-state-park.html"&gt;Akaka Falls State Park (Hawaii - Big Island)  &lt;/option&gt;  &lt;option value="/pacific/kauai/na-pali-coast/na-pali-coast.html"&gt;Na Pali Coast (Kauai)  &lt;/option&gt;  &lt;option value="/pacific/kauai/kauai-north-shore/kauai-north-shore.html"&gt;Kauai North Shore (Kauai)  &lt;/option&gt;  &lt;option value="/pacific/kauai/hanalei/hanalei.html"&gt;Hanalei (Kauai)  &lt;/option&gt;  &lt;option value="/pacific/kauai/kauai-east/kauai-east.html"&gt;East Kauai (Kauai)  &lt;/option&gt;  &lt;option value="/pacific/kauai/kauai-south/kauai-south.html"&gt;South Kauai (Kauai)  &lt;/option&gt;  &lt;option value="/pacific/kauai/waimea-canyon/waimea-canyon.html"&gt;Waimea Canyon (Kauai)  &lt;/option&gt;  &lt;option value="/pacific/kauai/kauai-interior/kauai-interior.html"&gt;Kauai Interior (Kauai)  &lt;/option&gt;   &lt;/select&gt;&lt;/span&gt;&lt;/form&gt;   &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;&lt;p&gt;    &lt;table bgcolor="#505050" border="0" cellpadding="10" cellspacing="0"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td width="200"&gt; &lt;a href="http://www.terragalleria.com/mountain/mountain.html"&gt; &lt;script type="text/javascript"&gt; &lt;!-- Hide this script from old browsers -- document.write('&lt;img src="/images/' + image_mountain + '" border="0" /&gt;'); // -- End Hiding Here --&gt; &lt;/script&gt;&lt;img src="http://www.terragalleria.com/images/mountain/mcki3370.small.jpeg" border="0" /&gt; &lt;/a&gt; &lt;/td&gt; &lt;td width="350"&gt; &lt;b&gt;&lt;a href="http://www.terragalleria.com/mountain/mountain.html"&gt;Mountain Adventure&lt;/a&gt;&lt;/b&gt;&lt;p&gt; &lt;a href="http://www.terragalleria.com/mountain/mountain-area.alps.html"&gt;Alpinism in the heart of the Alps&lt;/a&gt;,  &lt;a href="http://www.terragalleria.com/mountain/mountain-area.ice-climbing.html"&gt;Waterfall ice climbing&lt;/a&gt;,  &lt;a href="http://www.terragalleria.com/mountain/mountain-area.big-wall.html"&gt;Big wall climbing in Yosemite&lt;/a&gt;,  &lt;a href="http://www.terragalleria.com/mountain/mountain-area.mckinley.html"&gt;Expedition on Mt McKinley&lt;/a&gt;, &lt;a href="http://www.terragalleria.com/mountain/mountain-area.alaska-wilderness.html"&gt;Traveling Alaska's wilderness&lt;/a&gt;, &lt;a href="http://www.terragalleria.com/mountain/mountain-area.high-sierra.html"&gt;High Sierra&lt;/a&gt;.   &lt;/p&gt;&lt;p&gt;     &lt;/p&gt;&lt;form action=""&gt;&lt;span style=""&gt;     &lt;select onchange="jumptopage(this); " style="color: rgb(255, 255, 255); background-color: rgb(96, 96, 96);"&gt;     &lt;option value="/mountain/mountain.html" selected="selected"&gt; -- Mountain adventures -- &lt;/option&gt;     &lt;option value="/mountain/mountain.high-alps.html"&gt;Outside glance  (Alps)  &lt;/option&gt;     &lt;option value="/mountain/mountain.aiguille-midi.html"&gt;Aiguille du Midi  (Alps)  &lt;/option&gt;     &lt;option value="/mountain/mountain.chamonix.html"&gt;Inside the range  (Alps)  &lt;/option&gt;  &lt;option value="/mountain/mountain.alpinism.html"&gt;Alpinism (Alps)  &lt;/option&gt;  &lt;option value="/mountain/mountain.mont-blanc.html"&gt;Mont-Blanc (Alps)  &lt;/option&gt;  &lt;option value="/mountain/mountain.alps-ice.html"&gt;Alpine valleys (Ice climbing)  &lt;/option&gt;  &lt;option value="/mountain/mountain.canadian-rockies-ice1.html"&gt;Canadian Rockies 1 (Ice climbing)  &lt;/option&gt;  &lt;option value="/mountain/mountain.canadian-rockies-ice2.html"&gt;Canadian Rockies 2 (Ice climbing)  &lt;/option&gt;  &lt;option value="/mountain/mountain.us-ice.html"&gt;US (Ice climbing)  &lt;/option&gt;  &lt;option value="/mountain/mountain.theft.html"&gt;The Theft (Ice climbing)  &lt;/option&gt;  &lt;option value="/mountain/mountain.nose.html"&gt;Nose (Yosemite Big wall)  &lt;/option&gt;  &lt;option value="/mountain/mountain.shield.html"&gt;Shield (Yosemite Big wall)  &lt;/option&gt;  &lt;option value="/mountain/mountain.leaning-tower.html"&gt;Leaning Tower (Yosemite Big wall)  &lt;/option&gt;  &lt;option value="/mountain/mountain.washington-column.html"&gt;Washington Column (Yosemite Big wall)  &lt;/option&gt;  &lt;option value="/mountain/mountain.zodiac.html"&gt;Zodiac (Yosemite Big wall)  &lt;/option&gt;  &lt;option value="/mountain/mountain.reticent.html"&gt;Reticent (Yosemite Big wall)  &lt;/option&gt;  &lt;option value="/mountain/mountain.mckinley-base.html"&gt;To the base camp (Mt McKinley expedition)  &lt;/option&gt;  &lt;option value="/mountain/mountain.mckinley-main-camp.html"&gt;To the main camp (Mt McKinley expedition)  &lt;/option&gt;  &lt;option value="/mountain/mountain.mckinley-attempt.html"&gt;First attempt (Mt McKinley expedition)  &lt;/option&gt;  &lt;option value="/mountain/mountain.mckinley-summit.html"&gt;To the summit (Mt McKinley expedition)  &lt;/option&gt;  &lt;option value="/mountain/mountain.mckinley-descent.html"&gt;Descent (Mt McKinley expedition)  &lt;/option&gt;  &lt;option value="/mountain/mountain.gates-arctic-backpack.html"&gt;Backpacking Gates of the Arctic (Alaska wilderness)  &lt;/option&gt;  &lt;option value="/mountain/mountain.lake-clark-backpack.html"&gt;Backpacking  Lake Clark (Alaska wilderness)  &lt;/option&gt;  &lt;option value="/mountain/mountain.katmai-backpack.html"&gt;Backpacking  Katmai (Alaska wilderness)  &lt;/option&gt;  &lt;option value="/mountain/mountain.glacier-bay-kayak.html"&gt;Kayaking  Glacier Bay (Alaska wilderness)  &lt;/option&gt;  &lt;option value="/mountain/mountain.kobuk-valley-canoe.html"&gt;Canoeing  Kobuk Valley (Alaska wilderness)  &lt;/option&gt;  &lt;option value="/mountain.climbing-mt-whitney.html"&gt;Climbing Mt Whitney (High Sierra)  &lt;/option&gt;  &lt;option value="/mountain.hiking-kings-canyon.html"&gt;Hiking Kings Canyon (High Sierra)  &lt;/option&gt;  &lt;option value="/mountain.climbing-yosemite.html"&gt;Climbing Yosemite (High Sierra)  &lt;/option&gt;  &lt;/select&gt;&lt;/span&gt;&lt;/form&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;&lt;p&gt;     &lt;table bgcolor="#505050" border="0" cellpadding="10" cellspacing="0"&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td width="200"&gt; &lt;a href="http://www.terragalleria.com/studio/"&gt; &lt;script type="text/javascript"&gt; &lt;!-- Hide this script from old browsers -- document.write('&lt;img src="/images/' + image_studio + '" border="0" /&gt;'); // -- End Hiding Here --&gt; &lt;/script&gt;&lt;img src="http://www.terragalleria.com/images/studio/stud11257.small.jpeg" border="0" /&gt; &lt;/a&gt; &lt;/td&gt; &lt;td width="350"&gt;   &lt;b&gt;&lt;a href="http://www.terragalleria.com/studio/"&gt;Studio images&lt;/a&gt;&lt;/b&gt; &lt;p&gt; The first of a series of studio artistic interpretations of nature subjects features  &lt;a href="http://www.terragalleria.com/studio/subjects.orchids.html"&gt;orchids&lt;/a&gt;,  the most diverse group of all flowering plants.  &lt;/p&gt;&lt;p&gt;     &lt;/p&gt;&lt;form action=""&gt;&lt;span style=""&gt;     &lt;select onchange="jumptopage(this); " style="color: rgb(255, 255, 255); background-color: rgb(96, 96, 96);"&gt;     &lt;option value="/studio/" selected="selected"&gt; -- Studio subjects  -- &lt;/option&gt;     &lt;option value="/studio/subject.orchid-species.html"&gt;Orchid Species  &lt;/option&gt;     &lt;option value="/studio/subject.cymbidium.html"&gt;Cymbidium  &lt;/option&gt;  &lt;/select&gt;&lt;/span&gt;&lt;/form&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-7091655107836183619?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/7091655107836183619/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=7091655107836183619' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/7091655107836183619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/7091655107836183619'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2007/09/photography-by-quang-tuan-luong.html' title='Photography by Quang-Tuan Luong'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-5741979547485824145</id><published>2007-09-06T17:21:00.000+02:00</published><updated>2007-09-06T17:28:30.175+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='design'/><title type='text'>A better than iPhone Cellar Phone Concept</title><content type='html'>&lt;p&gt;&lt;img src="http://www.yankodesign.com/images/design_news/2007/08/28/brix.jpg" class="postpic" height="298" width="468" /&gt;&lt;/p&gt;&lt;p&gt;Have you ever dreamed of a better cellar phone that the famous iPhone? Here is the idea which can answer your question. A cellar phone with 100% touch screen. You may say, that is not a new idea. Yeah, you're right. What makes this concept different is: It can be combined!&lt;/p&gt;&lt;p&gt;Two or more such cellar phone can be used together to make a better user experience. In my opinion, it's more like a LCD TV WALL. :)&lt;br /&gt;&lt;/p&gt; &lt;p&gt;&lt;img src="http://www.yankodesign.com/images/design_news/2007/08/28/brix2.jpg" class="postpic" height="248" width="468" /&gt;&lt;/p&gt; &lt;p&gt;&lt;img src="http://www.yankodesign.com/images/design_news/2007/08/28/brix3.jpg" class="postpic" height="294" width="468" /&gt;&lt;/p&gt; &lt;p&gt;&lt;img src="http://www.yankodesign.com/images/design_news/2007/08/28/brix4.jpg" class="postpic" height="331" width="468" /&gt;&lt;/p&gt;  &lt;!-- ENDOF KonaBody --&gt;    &lt;p&gt; &lt;script type="text/javascript"&gt;&lt;!--  google_ad_client = "pub-0648786275385337";  google_ad_width = 300;  google_ad_height = 250;  google_ad_format = "300x250_as";  google_ad_type = "text_image";  //2007-07-04: Medium Rectangle google_ad_channel = "2228206398"; google_color_border = "202020";  google_color_bg = "202020";  google_color_link = "95afd0";  google_color_url = "cccccc";  google_color_text = "cccccc"; //--&gt;&lt;/script&gt; &lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;  &lt;/script&gt; &lt;/p&gt;      &lt;p&gt;[from &lt;a target="_blank" href="http://www.yankodesign.com/index.php/2007/08/28/two-brix-are-better-than-one/"&gt;Yankodesign&lt;/a&gt;]&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-5741979547485824145?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/5741979547485824145/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=5741979547485824145' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/5741979547485824145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/5741979547485824145'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2007/09/better-than-iphone-cellar-phone-concept.html' title='A better than iPhone Cellar Phone Concept'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-7840030059686050397</id><published>2007-09-05T17:20:00.000+02:00</published><updated>2007-09-05T17:42:03.728+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='thinking'/><title type='text'>If life is a game...</title><content type='html'>These days I met a lot of things like in a drama. Luckily, all these things are good. So it makes me think, if life is a game, what I made in this game?&lt;br /&gt;&lt;br /&gt;Personally I love Nintendo Wii so much, but the problem is, I don't have so much room for the sport game of it. :( Ironically saying, I have bought the monthly entrance to a gym club, but I haven't made any sport training since months. All what I am dreaming about is doing the training at home before the TV set with Wii!!&lt;br /&gt;&lt;br /&gt;I searched the whole web with the keyword "if life is a game", and I found a genius text about the idea. The fancy of Steve Pavlina is very impressive, such as:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;The only way to lose the game of life is not to play.  When you actively play the game, you gain skill and experience (and hopefully gold as well).  Keep playing, and you’ll eventually build yourself a level 10, level 20, level 30 character.  Just make sure that when you hit level 30, you aren’t still fighting level 10 monsters.&lt;/blockquote&gt;&lt;br /&gt;or this one:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;If you find yourself in a human body, you came here to play the game of human life.  Don’t sit on the sidelines whining like a noob.  The truth is that if you lose all your gold, if your teammates dump you, or if your character gets infected by the plague, it’s all part of the game.  Every setback initiates another round of compelling choices.  The game isn’t supposed to be fair — it’s supposed to be fun and interesting.  Whether or not you have a fun and interesting experience largely depends on what kind of player you are.&lt;/blockquote&gt;I must say, I learned a lot from that text "&lt;a href="http://www.stevepavlina.com/blog/2006/12/life-the-ultimate-game/" rel="bookmark" title="Life - The Ultimate Game"&gt;Life - The Ultimate Game&lt;/a&gt;". Take a look at it, you may lose 5 minutes in your game of the life, but it really worths! :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-7840030059686050397?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/7840030059686050397/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=7840030059686050397' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/7840030059686050397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/7840030059686050397'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2007/09/if-life-is-game.html' title='If life is a game...'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-3078847517206309355</id><published>2007-09-03T14:05:00.000+02:00</published><updated>2007-09-03T14:17:25.637+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Best zip software on the earth!</title><content type='html'>There are many zip softwares on the earth. Maybe thousand? I don't know. After long time seeking my most favorate zip software, I've chosen &lt;a href="http://www.7-zip.org/"&gt;7-Zip&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;The reason:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;It's open source, which means it's completely free.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;It supports most archive format, including 7z, ZIP, GZIP, BZIP2, TAR and RAR.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;it integrates into the windows explorer.&lt;/li&gt;&lt;li&gt;It has 63 language support.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;An interesting thing is, the english version of 7-Zip website doesn't provide the beautiful icon set that is available to chinese users.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://lib.sparanoid.com/7z_iconset.png" /&gt;&lt;br /&gt;&lt;br /&gt;So here it is:&lt;br /&gt;&lt;br /&gt;for v4.2: &lt;a href="http://www.7-zip.org/zh-cn/7z_iconset.exe"&gt;http://www.7-zip.org/zh-cn/7z_iconset.exe&lt;/a&gt;&lt;br /&gt;for v4.53: &lt;a href="http://www.7-zip.org/zh-cn/7z-iconset-453.exe"&gt;http://www.7-zip.org/zh-cn/7z-iconset-453.exe&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Just download it according to your 7-Zip version and install it.&lt;br /&gt;&lt;br /&gt;Enjoy it!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-3078847517206309355?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/3078847517206309355/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=3078847517206309355' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/3078847517206309355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/3078847517206309355'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2007/09/best-zip-software-on-earth.html' title='Best zip software on the earth!'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-3843043819780475518</id><published>2007-08-28T09:37:00.000+02:00</published><updated>2007-08-28T09:45:14.539+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='WScript'/><title type='text'>Automatic Login to google with WScript.</title><content type='html'>WScript is the short name for Windows Script. It can be a VBScript or JScript(not Javascript but a Microsoft standard!) If we use it properly, it can save us a lot of work. Here is an example for a script which can be used to login in google account automaticly.&lt;br /&gt;&lt;br /&gt;&lt;div  style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%; background-color: rgb(238, 238, 238);font-size:13px;"&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;var&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; ie&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;WScript.createobject(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;InternetExplorer.Application&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;var&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; args &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; WScript.arguments;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;var&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; followme&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;http://www.google.com/&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(args.length&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;br /&gt;{&lt;br /&gt;   followme&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;+=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;args(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;);&lt;br /&gt;}&lt;br /&gt;ie.Navigate(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;https://www.google.com/accounts/Login?continue=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;+&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;followme);&lt;br /&gt;SynchronizeIE();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;var&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; doc&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;ie.document;&lt;br /&gt;doc.forms[&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;].Email.value&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;"yourName&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;@gmail.com&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;br /&gt;doc.forms[&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;].Passwd.value&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;^your password&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;//&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;because the checkbox "PersistentCookie" appears randomly&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(doc.forms[&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;].PersistentCookie&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;!=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;br /&gt;{&lt;br /&gt;   doc.forms[&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;].PersistentCookie.checked&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;br /&gt;}&lt;br /&gt;doc.forms[&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;].submit();&lt;br /&gt;SynchronizeIE();&lt;br /&gt;ie.Visible&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;true&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;//&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;wait for IE finishs its job&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;function&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; SynchronizeIE()&lt;br /&gt;{&lt;br /&gt;   &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;while&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(ie.Busy)&lt;br /&gt;   {&lt;br /&gt;         WScript.Sleep(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;100&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;);&lt;br /&gt;   }&lt;br /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;Save the code as &lt;span style="font-weight: bold;"&gt;googleSpecific.js&lt;/span&gt;&lt;span&gt; and make it under the &lt;/span&gt;&lt;span&gt;%windir%\system32, then create a file called &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;google.bat&lt;/span&gt;&lt;span&gt; under the same path with the content:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt; &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; background: rgb(224, 224, 224) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span lang="EN-US"&gt;@cls&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; background: rgb(224, 224, 224) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span lang="EN-US"&gt;@wscript %windir%\system32\googleSpecific.js&lt;span&gt;  &lt;/span&gt;%1 %2 %3 %4 %5 %6 %7 %8 %9&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;After that, execute "&lt;span lang="EN-US"&gt;google mail" in command promp, you can log in your &lt;/span&gt;&lt;span style="font-family:宋体;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;gmail directly now.&lt;/span&gt;&lt;span style="font-family:宋体;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; Other commands are:&lt;span lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span lang="EN-US"&gt;google notebook&lt;br /&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:宋体;"&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;google bookmarks&lt;/span&gt;&lt;/blockquote&gt;If you type "&lt;span lang="EN-US"&gt;google" without any parameters, you will sign in with the google.com.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-3843043819780475518?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/3843043819780475518/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=3843043819780475518' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/3843043819780475518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/3843043819780475518'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2007/08/automatic-login-to-google-with-wscript.html' title='Automatic Login to google with WScript.'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-7949750870880602337</id><published>2007-08-23T14:54:00.000+02:00</published><updated>2007-08-23T15:03:20.144+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='EJB'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='jboss'/><title type='text'>Eclipse 3.2.2 with JBoss Server 4.2.1</title><content type='html'>Since I want to try the new version of JBoss Server, I downloaded the newest Version of it and unzip it to a folder. Just like usual, I go to the eclipse workbench and select file | new | other | server |  next, then I can see 2 entries for JBoss server which are the v3.2.x one and the v4.0.&lt;br /&gt;&lt;br /&gt;Chosing the 2nd option I get the error :&lt;br /&gt;&lt;br /&gt;Missing classpath entry C:\jboss-4.2.1.GA\server\default\lib\javax.servlet.jar&lt;br /&gt;&lt;br /&gt;As far as I know, from the version 4.x of the Jboss Server, it already includes the EJB. So the only reason for that error should due to a not correct server definition.&lt;br /&gt;&lt;br /&gt;Internet is a good place to find the answer. Thanks to Wolfgang Knauf, we have some new JBoss server definitions here: &lt;a href="http://www.informatik.fh-wiesbaden.de/%7Eknauf/public/"&gt;http://www.informatik.fh-wiesbaden.de/~knauf/public/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There are two different jars for WTP 1.5 and 2.0.&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;To use the plugin: &lt;ul&gt;&lt;li&gt;JBoss 4.0.x: You &lt;b&gt;MUST&lt;/b&gt; have installed the EJB3 RC9 to the &lt;code&gt;default&lt;/code&gt; configuration so that the plugin can find all required libraries.&lt;br /&gt;  For JBoss 4.0.4 with installer including EJB3 RC8 this is done automatically.&lt;br /&gt;  For EJB3 RC 9 there is no JBoss AS installer, it must be installed to the &lt;code&gt;default&lt;/code&gt; configuration manually. Later   you can install EJB3 RC9 to any other configuration, the jars from the &lt;code&gt;default&lt;/code&gt; configuration are only needed   for starting up application clients and for Eclipse.&lt;/li&gt;&lt;li&gt;JBoss 4.2.0: the &lt;code&gt;default&lt;/code&gt; configuration must be present so that the plugin can find all required libraries (tested for CR1 to GA)  &lt;/li&gt;&lt;li&gt;JBoss 5.0.0: the &lt;code&gt;default&lt;/code&gt; configuration must be present so that the plugin can find all required libraries (tested for Beta2)  &lt;/li&gt;&lt;li&gt;Delete previous versions of this plugin if already installed. &lt;/li&gt;&lt;li&gt;Download &lt;a href="http://www.informatik.fh-wiesbaden.de/%7Eknauf/public/org.eclipse.jst.server.jboss.ejb3_1.5.0.v200706052200.jar"&gt;org.eclipse.jst.server.jboss.ejb3_1.5.0.v200706052200.jar&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Copy the file to the subdirectory "plugins" of your eclipse installation. &lt;/li&gt;&lt;li&gt;Restart eclipse once with the "-clean" option: "eclipse -clean". &lt;/li&gt;&lt;li&gt;Create a new server runtime. You will find the runtimes in the "JBoss" branch, labeled "JBoss 4.0.4 or 4.0.5 with EJB3 RC8 or RC9", "JBoss 4.2.0" or "JBoss 5.0" &lt;/li&gt;&lt;/ul&gt; &lt;/blockquote&gt;So enjoy it!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-7949750870880602337?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/7949750870880602337/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=7949750870880602337' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/7949750870880602337'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/7949750870880602337'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2007/08/eclipse-322-with-jboss-server-421.html' title='Eclipse 3.2.2 with JBoss Server 4.2.1'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-8446375024918477703</id><published>2007-08-20T23:30:00.000+02:00</published><updated>2007-08-20T23:52:24.311+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='freebsd'/><category scheme='http://www.blogger.com/atom/ns#' term='Humor'/><title type='text'>Deleted Files under FreeBSD</title><content type='html'>In last week I made a mistake by deleting some documents on a server which runs FreeBSD. Three seconds after I typed "rm -r *.*" and pressed Enter, I'd realized I made a big mistake. There is always a thing called "recycled bin" in Windows or GUIs in Linux, but not for such a situation with text command. So,  I searched in my poor memory and tried finding some tools under FreeBSD just like "undelete" under sweet DOS. The only result and choice is: &lt;a href="http://www.cgsecurity.org/wiki/TestDisk"&gt;testdisk.&lt;/a&gt;&lt;br /&gt;Exactly saying, PhotoRec, which can be downloaded &lt;a href="http://www.cgsecurity.org/wiki/TestDisk_Download"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It's really sad for me to find out that there is only FreeBSD port for testdisk, which can be easily installed by typing "pkg_add -r testdisk", but not for PhotoRec. The only way is downloading the source and compiling by yourself. I must admit that I didn't make it done.  So I was almost mad when I realized there is no kind of softwares that can rescue the deleted files under FreeBSD.&lt;br /&gt;&lt;br /&gt;The solution to this disaster: for some luckies  I made a backup before several months and it includes the files that I deleted! So here is the lesson I've learned: ALWAYS make backups before you do something! Today is just losing some files, what happens if our hard disks die?&lt;br /&gt;&lt;br /&gt;Like some words I saw elsewhere:&lt;br /&gt;&lt;br /&gt;Love, just like you've never been hurt,&lt;br /&gt;Live, just like you will die tomorrow,&lt;br /&gt;Sing, even if nobody is listening.&lt;br /&gt;&lt;br /&gt;We can add an extra line to that:&lt;br /&gt;&lt;br /&gt;Backup, 'cause you will never know when your hard disks want to die.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-8446375024918477703?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/8446375024918477703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=8446375024918477703' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/8446375024918477703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/8446375024918477703'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2007/08/deleted-files-under-freebsd.html' title='Deleted Files under FreeBSD'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-6178161935525061726</id><published>2007-08-13T09:14:00.000+02:00</published><updated>2007-08-13T09:18:00.256+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Humor'/><title type='text'>Gospel of Tux unearthed!</title><content type='html'>&lt;p&gt;Every generation has a mythology. Every millenium has a doomsday cult. Every legend gets the distortion knob wound up until the speaker melts. Archeologists at the University of Helsinki today uncovered what could be the earliest known writings from the Cult of Tux, a fanatical religious sect that flourished during the early Silicon Age, around the dawn of the third millenium AD...&lt;/p&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt; The Gospel of Tux (v1.0)&lt;/span&gt; &lt;/p&gt;&lt;p&gt; In the beginning Turing created the Machine. &lt;/p&gt;&lt;p&gt; And the Machine was crufty and bogacious, existing in theory only. And von Neumann looked upon the Machine, and saw that it was crufty. He divided the Machine into two Abstractions, the Data and the Code, and yet the two were one Architecture. This is a great Mystery, and the beginning of wisdom. &lt;/p&gt;&lt;p&gt; And von Neumann spoke unto the Architecture, and blessed it, saying, "Go forth and replicate, freely exchanging data and code, and bring forth all manner of devices unto the earth." And it was so, and it was cool. The Architecture prospered and was implemented in hardware and software. And it brought forth many Systems unto the earth. &lt;/p&gt;&lt;p&gt; The first Systems were mighty giants; many great works of renown did they accomplish. Among them were Colossus, the codebreaker; ENIAC, the targeter; EDSAC and MULTIVAC and all manner of froody creatures ending in AC, the experimenters; and SAGE, the defender of the sky and father of all networks. These were the mighty giants of old, the first children of Turing, and their works are written in the Books of the Ancients. This was the First Age, &lt;span style="font-weight: bold;"&gt;the age of Lore&lt;/span&gt;. &lt;/p&gt;&lt;p&gt; Now the sons of Marketing looked upon the children of Turing, and saw that they were swift of mind and terse of name and had many great and baleful attributes. And they said unto themselves, "Let us go now and make us Corporations, to bind the Systems to our own use that they may bring us great fortune." With sweet words did they lure their customers, and with many chains did they bind the Systems, to fashion them after their own image. And the sons of Marketing fashioned themselves Suits to wear, the better to lure their customers, and wrote grave and perilous Licenses, the better to bind the Systems. And the sons of Marketing thus became known as Suits, despising and being despised by the true Engineers, the children of von Neumann. &lt;/p&gt;&lt;p&gt; And the Systems and their Corporations replicated and grew numerous upon the earth. In those days there were IBM and Digital, Burroughs and Honeywell, Unisys and Rand, and many others. And they each kept to their own System, hardware and software, and did not interchange, for their Licences forbade it. This was the Second Age, &lt;span style="font-weight: bold;"&gt;the age of Mainframes&lt;/span&gt;. &lt;/p&gt;&lt;p&gt;More: &lt;a href="http://www.ao.com/%7Eregan/penguins/tux.html"&gt;http://www.ao.com/~regan/penguins/tux.html&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-6178161935525061726?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/6178161935525061726/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=6178161935525061726' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/6178161935525061726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/6178161935525061726'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2007/08/gospel-of-tux-unearthed.html' title='Gospel of Tux unearthed!'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-119154866381032886</id><published>2007-08-09T15:55:00.000+02:00</published><updated>2007-08-09T16:28:32.788+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><title type='text'>The confusing difference beweteen different JOINs in SQL</title><content type='html'>There are two kinds of JOINs: one is INNER JOIN, the other is OUTER JOIN.&lt;br /&gt;&lt;br /&gt;Sounds like similar, but very different:&lt;br /&gt;&lt;br /&gt;INNER JOIN means the result of a query should exist in the source tables.&lt;br /&gt;OUTER JOIN means the result of a query CAN be some NULLs partially.&lt;br /&gt;&lt;br /&gt;INNER JOIN is a keyword of SQL, but OUTER JOIN not.&lt;br /&gt;OUTER JOIN includes two types JOINs: one is LEFT JOIN, the other is RIGHT JOIN,&lt;br /&gt;&lt;br /&gt;NOTICE:  LEFT JOIN &amp; RIGHT JOIN are keywords of SQL.&lt;br /&gt;&lt;br /&gt;Now let's look at some examples to understand things more clearly.&lt;br /&gt;&lt;br /&gt;Given two tables:&lt;br /&gt;&lt;br /&gt;TABLE 1: exam&lt;br /&gt;&lt;br /&gt;      ID     Score&lt;br /&gt;------------------------&lt;br /&gt;      1      A-&lt;br /&gt;      2      B+&lt;br /&gt;      5      C-&lt;br /&gt;     &lt;br /&gt;TABLE 2: student&lt;br /&gt;&lt;br /&gt;      ID     Name&lt;br /&gt;------------------------&lt;br /&gt;      1      Joe&lt;br /&gt;      5      Geogre&lt;br /&gt;      7      Ben&lt;br /&gt; &lt;br /&gt;First SQL query:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;SELECT e.ID, s.Name, e.Score FROM exam AS e INNER JOIN student AS s ON s.ID=e.ID;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So we get:&lt;br /&gt;&lt;br /&gt;      ID     Name       Score&lt;br /&gt;-----------------------------&lt;br /&gt;      1      Joe            A-&lt;br /&gt;      5      Geogre     C-&lt;br /&gt;&lt;br /&gt;In fact, this query is equaled to:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;SELECT e.ID, s.Name, e.Score FROM exam AS e, student AS s WHERE s.ID=e.ID;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Second SQL query:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;SELECT e.ID, s.Name, e.Score FROM exam AS e LEFT JOIN student AS s ON s.ID=e.ID;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We should get the following this time:&lt;br /&gt;      ID     Name       Score&lt;br /&gt;-----------------------------&lt;br /&gt;      1      Joe            A-&lt;br /&gt;      2      NULL       B+&lt;br /&gt;      5      Geogre     C-&lt;br /&gt;&lt;br /&gt;Third SQL query:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;SELECT e.ID, s.Name, e.Score FROM exam AS e RIGHT JOIN student AS s ON s.ID=e.ID;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We should get the following this time:&lt;br /&gt;      ID     Name       Score&lt;br /&gt;-----------------------------&lt;br /&gt;      1      Joe            A-&lt;br /&gt;      5      Geogre     C-&lt;br /&gt;      7      Ben            NULL&lt;br /&gt;     &lt;br /&gt;So you find the difference!&lt;br /&gt;&lt;br /&gt;LEFT JOIN will try to find every match for the table &lt;span style="font-weight: bold;"&gt;BEFORE&lt;/span&gt; the statement LEFT JOIN, when nothing matched can be found, then a NULL will be used.&lt;br /&gt;&lt;br /&gt;RIGHT JOIN will try to find every match for the table &lt;span style="font-weight: bold;"&gt;AFTER&lt;/span&gt; the statement RIGHT JOIN, when nothing matched can be found, then a NULL will be used.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-119154866381032886?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/119154866381032886/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=119154866381032886' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/119154866381032886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/119154866381032886'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2007/08/confusing-difference-beweteen-different.html' title='The confusing difference beweteen different JOINs in SQL'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-6736195155487057177</id><published>2007-08-02T17:02:00.000+02:00</published><updated>2007-08-02T17:26:58.746+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><title type='text'>QuantumDB Eclipse Plugin</title><content type='html'>Today I've tried the famous &lt;a href="http://quantum.sourceforge.net/"&gt;QuantumDB Eclipse Plugin,&lt;/a&gt; It's really a powerful database management tool and supports many different databases.&lt;br /&gt;&lt;br /&gt;To install it, open Eclipse and select from the menu "help"-&gt;"Software updates"-&gt;"Find and Install..."-&gt;"Search for new features to install"-&gt;"new remote site", then type the update URL: &lt;b&gt;http://quantum.sourceforge.net/update-site,&lt;/b&gt; then click next...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Note&lt;/span&gt;: Quantum &lt;b&gt;needs the GEF plugin to work&lt;/b&gt;, so you have to install it before installing Quantum. That plugin can be installed via an already built-in remote site: "Callisto Discovery Site".&lt;br /&gt;&lt;br /&gt;After successful installation, I was really frustrated to figure out that the Quantum comes with only &lt;span style="font-weight: bold;"&gt;TWO&lt;/span&gt; connector:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;JDBC to ODBC bridge&lt;/li&gt;&lt;li&gt;MS Access&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;If we want to use MySQL, we must get the connector jar! Now it's called &lt;a href="http://dev.mysql.com/downloads/connector/j/"&gt;MySQL Connector / J&lt;/a&gt;. Go to that page and download the package.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Tip&lt;/span&gt;: you don't need to register or sign in when you click "select a mirror", just find the gray text "&lt;a href="http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.0.7.zip/from/pick#mirrors" onclick="show_mirror_list();"&gt;No thanks, just take me to the downloads!&lt;/a&gt;".&lt;br /&gt;&lt;br /&gt;Extract all things in a folder, you can find a file called like &lt;span style="font-weight: bold;"&gt;mysql-connector-java-5.0.7-bin.jar&lt;/span&gt;. You need to do the following to add support of MySQL driver:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Go to eclipse and switch to the view "Quantum DB" by clicking the top right icon near to "Java". Add a new bookmark by right click on the left "database bookmarks" panel. &lt;/li&gt;&lt;li&gt;Now click "Add driver", find "mysql" in the dropdown list "type", then click "add external jar", point to the file &lt;span style="font-weight: bold;"&gt;mysql-connector-java-5.0.7-bin.jar&lt;/span&gt;. &lt;/li&gt;&lt;li&gt;Click the "browse" button for the class name "com.mysql.jdbc.Driver", then go on clicking many "OK" buttons.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;So now do the step again and select "mysql" as connector, a dialog will be shown to let you input some infos of the mysql database you want to connect. That is it!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-6736195155487057177?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/6736195155487057177/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=6736195155487057177' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/6736195155487057177'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/6736195155487057177'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2007/08/quantumdb-eclipse-plugin.html' title='QuantumDB Eclipse Plugin'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-7398463734756855600</id><published>2007-07-27T21:00:00.000+02:00</published><updated>2007-07-27T21:09:52.679+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Management'/><title type='text'>SMART in Management.</title><content type='html'>A target in Management should have the attributes of SMART. That means:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;S - Specific&lt;/li&gt;&lt;br /&gt;&lt;p&gt;The target must be certain, cannot be unsure or even not exist!&lt;/p&gt;&lt;br /&gt;&lt;li&gt;M - Measurable&lt;/li&gt;&lt;br /&gt;&lt;p&gt;The target we made must be measurable&lt;/p&gt;&lt;br /&gt;&lt;li&gt;A - Attainable&lt;/li&gt;&lt;br /&gt;&lt;p&gt;A target must be realisable, or reachable by efforts.&lt;/p&gt;&lt;br /&gt;&lt;li&gt;R - result-based&lt;/li&gt;&lt;br /&gt;&lt;p&gt;All our efforts should target at the traget, not just doing for doing. The most heard excuse in target-making is :"we are concentried on the process but not the result."&lt;/p&gt;&lt;br /&gt;&lt;li&gt;T－ Time-based&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;Every target must have a schedule and a deadline.&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-7398463734756855600?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/7398463734756855600/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=7398463734756855600' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/7398463734756855600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/7398463734756855600'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2007/07/smart-in-management.html' title='SMART in Management.'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-3884246023667467423</id><published>2007-07-21T12:38:00.000+02:00</published><updated>2007-07-23T09:01:01.062+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='design'/><title type='text'>The art of paper cut</title><content type='html'>So many times, we think there is only one way to do one thing, but actually, there are a lot of ways to do a thing. The problem is only we don't or won't even dare to think such ways exist. For example, what could a paper cut be looked like? or just like this?&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.petercallesen.com/index/images/Distantwish2.jpg"&gt;&lt;img style="cursor: pointer; width: 320px;" src="http://www.petercallesen.com/index/images/Distantwish2.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.petercallesen.com/images/web2ImpenetrableCastleII.jpg"&gt;&lt;img style="cursor: pointer; width: 320px;" src="http://www.petercallesen.com/images/web2ImpenetrableCastleII.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.petercallesen.com/index/images/lookingback5.jpg"&gt;&lt;img style="cursor: pointer; width: 320px;" src="http://www.petercallesen.com/index/images/lookingback5.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;More: &lt;a href="http://www.petercallesen.com/"&gt;Peter Callesen's Work &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-3884246023667467423?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/3884246023667467423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=3884246023667467423' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/3884246023667467423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/3884246023667467423'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2007/07/art-of-paper-cut.html' title='The art of paper cut'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-8348222663560774824</id><published>2007-07-19T17:54:00.000+02:00</published><updated>2007-07-21T12:38:23.194+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='design'/><title type='text'>Design clock</title><content type='html'>There are many different kinds of clocks. &lt;a href="http://www.geekstuff4u.com/product_info.php?manufacturers_id=&amp;products_id=488"&gt;This one&lt;/a&gt; is an amazing one because it is a timed bomb.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.geekstuff4u.com/images/001.jpg"&gt;&lt;img style="cursor: pointer; width: 320px;" src="http://www.geekstuff4u.com/images/001.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Every morning, it beeps like a bomb with Di Di Di ... When you don't kick it off, the beep interval will be shorter. Another interesting thing is, if you want to stop the alarm, you must press one of three colorful buttons (the correct one!) that represent three cables. AND, the correct one is selected randomly every day!&lt;br /&gt;&lt;br /&gt;So if you're that lucky to get the right cable, you can snoop. Otherwise, nobody knows what happens ....:-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-8348222663560774824?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/8348222663560774824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=8348222663560774824' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/8348222663560774824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/8348222663560774824'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2007/07/design-clock.html' title='Design clock'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-8030107615583553052</id><published>2007-07-19T14:44:00.000+02:00</published><updated>2007-07-19T14:55:10.900+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><title type='text'>Transformers Theme for Firefox</title><content type='html'>I belong to the generation who watch the cartoon "Transformers" and grew up. So when this July the movie "Transformers" shows up in the cinema, I watched it as early as I can. Now I've digged out an eye candy for those Transformers' fans just like me: &lt;a href="http://mphillips80.googlepages.com/home"&gt;A Firefox Transformers Theme&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://mphillips80.googlepages.com/autobot1.jpg/autobot1-large.jpg"&gt;&lt;img dragover="true" style="cursor: pointer; width: 320px;" src="http://mphillips80.googlepages.com/autobot1.jpg/autobot1-large.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://mphillips80.googlepages.com/autobot2.jpg/autobot2-large.jpg"&gt;&lt;img style="cursor: pointer; width: 320px;" src="http://mphillips80.googlepages.com/autobot2.jpg/autobot2-large.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://mphillips80.googlepages.com/autobot3.jpg/autobot3-large.jpg"&gt;&lt;img style="cursor: pointer; width: 320px;" src="http://mphillips80.googlepages.com/autobot3.jpg/autobot3-large.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can download it &lt;a href="http://www.box.net/shared/hfp7fcagoh"&gt;here&lt;/a&gt;, open your Add-in Manager, and drag it into it to install.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-8030107615583553052?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/8030107615583553052/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=8030107615583553052' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/8030107615583553052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/8030107615583553052'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2007/07/transformers-theme-for-firefox.html' title='Transformers Theme for Firefox'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-8470222896299391956</id><published>2007-07-18T15:42:00.000+02:00</published><updated>2007-07-18T15:43:09.324+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='thinking'/><title type='text'>A word</title><content type='html'>&lt;span style="font-size: 16px;"&gt;If you don’t know where you are going, you may end up somewhere else.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-8470222896299391956?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/8470222896299391956/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=8470222896299391956' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/8470222896299391956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/8470222896299391956'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2007/07/word.html' title='A word'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-229436032231347229</id><published>2007-07-16T21:37:00.000+02:00</published><updated>2007-07-16T21:54:57.184+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><title type='text'>Problems with IMG html tag in Flash 8</title><content type='html'>In these days I am fighting with some bugs in Flash 8. So comes the problem: I want to create a text field in  Flash 8, and change its properties to "dynamic text" with "multi-line", "selectable" and "render as HTML", then I connect the text field to some html contents. Everything is fine, until I try to show some pictures using the html tag &lt;span style="font-weight: bold; font-style: italic;"&gt;img&lt;/span&gt;. The result: NO imgs are shown.&lt;br /&gt;&lt;br /&gt;After long long time with try-error and searching in the net, finally I found the reason for such problems. There are &lt;a href="http://play.ground.gr/?p=77"&gt;some bugs with IMG html tag in Flash 8&lt;/a&gt;. My solution is: After the &lt;span style="font-weight: bold; font-style: italic;"&gt;img &lt;/span&gt;tag, insert at least 8 &amp;lt;br /&amp;gt; tags.&lt;br /&gt;&lt;br /&gt;To be careful: The support of img tag is only available from Flash v7 and ActionScript 2.0. So please pay attention to your publish settings too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-229436032231347229?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/229436032231347229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=229436032231347229' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/229436032231347229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/229436032231347229'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2007/07/problems-with-img-html-tag-in-flash-8.html' title='Problems with IMG html tag in Flash 8'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-2541600198337623897</id><published>2007-07-14T18:48:00.000+02:00</published><updated>2007-07-14T19:46:30.837+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='RSS'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>Ajax RSS News Ticker</title><content type='html'>Today I want to introduce a very useful tool called "&lt;a href="http://www.dynamicdrive.com/dynamicindex17/rsstickerajax/index.htm"&gt;Advanced RSS Ticker&lt;/a&gt;"。 This tool uses a PHP class which can parse the RSS feed. The PHP class is &lt;a href="http://lastrss.oslab.net/"&gt;Last RSS&lt;/a&gt;. Comparing to other PHP class, I think the most highlight is that it supports UTF-8. You may wonder, is there any RSS Parser which supports no UTF-8. Yes, there is &lt;a href="http://magpierss.sourceforge.net/"&gt;ONE&lt;/a&gt;. I don't mention its name because it took me so many time to figure out that it is NOT UTF-8 compatible. :-)&lt;br /&gt;&lt;br /&gt;You only need to download &lt;a href="http://www.dynamicdrive.com/dynamicindex17/rsstickerajax/rsstickerajax.zip"&gt;this &lt;/a&gt;and extract the zip into your web directory. Try the demo.htm within it, it is that easy!&lt;br /&gt;&lt;br /&gt;There is also another &lt;a href="http://www.suttree.com/code/rss/"&gt;&lt;b&gt;PHP RSS News Parser&lt;/b&gt;&lt;/a&gt;. Since I didn't try it, I left it to you to compare this with the other two. ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-2541600198337623897?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/2541600198337623897/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=2541600198337623897' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/2541600198337623897'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/2541600198337623897'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2007/07/ajax-rss-news-ticker.html' title='Ajax RSS News Ticker'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-806971197988287854</id><published>2007-07-09T11:16:00.001+02:00</published><updated>2007-07-09T11:26:08.423+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Problem with Windows Time Update</title><content type='html'>Recently I always faced some strange problems. :-( Today I met a problem with Windows Time Update.&lt;br /&gt;&lt;br /&gt;I tried to use the tab "Internet time" after clicking on the clock to select "Adjust Date / Time". When I selected the server "time.windows.com", then clicked "update now" on the right. Ok,  error came! I got an error message "An error occurred while Windows was synchronizing with time.windows.com". Great, then I tried it  with other time servers. Nothing different.&lt;br /&gt;&lt;br /&gt;How to fix this up? Here are some steps I found in the internet.&lt;br /&gt;&lt;br /&gt;1. Press &lt;span style="font-weight: bold;"&gt;Winkey+R&lt;/span&gt;, or select "&lt;span style="font-weight: bold;"&gt;Run...&lt;/span&gt;" from the start menu, and type "&lt;span style="font-weight: bold;"&gt;cmd&lt;/span&gt;" in the box;&lt;br /&gt;2. After the command window shows up, type the following commands:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;net stop w32time&lt;br /&gt;w32tm /unregister [ignore error message]&lt;br /&gt;w32tm /unregister [enter a second time]&lt;br /&gt;w32tm /register&lt;br /&gt;reg add hklm\system\currentcontrolset\services\w32time\parameters\ /v NtpServer /t reg_sz /d time.nist.gov /f&lt;br /&gt;net start w32time&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;3. Try the "Internet time" update again. It should work now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-806971197988287854?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/806971197988287854/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=806971197988287854' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/806971197988287854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/806971197988287854'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2007/07/problem-with-windows-time-update.html' title='Problem with Windows Time Update'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-8023970583596049805</id><published>2007-07-05T17:34:00.000+02:00</published><updated>2007-07-05T17:50:41.878+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='drupal'/><title type='text'>strange problem with Node Template</title><content type='html'>Yesterday I mentioned that the strange problem with my &lt;a href="http://drupal.org/"&gt;Drupal&lt;/a&gt; module "&lt;a href="http://drupal.org/project/node_template"&gt;Node Template&lt;/a&gt;": If I enable the "clean URLs" in Drupal, then clicking on the menu item "my node templates" will show the message "access denied" with the error 403.&lt;br /&gt;&lt;br /&gt;After long long time with try-error,  finally I found the cause of the problem. In the .htaccess which is in the root folder of Drupal, there are some lines looked like this:&lt;br /&gt;&lt;br /&gt;# Protect files and directories from prying eyes.&lt;br /&gt;&amp;lt;FilesMatch "(\.(engine|inc|install|module|sh|.*sql|theme|tpl(\.php)?|xtmpl)|code-style\.pl|Entries.*|&lt;br /&gt;Repository|Root|Tag|&lt;span style="color: rgb(204, 0, 0);"&gt;Template&lt;/span&gt;)$"&amp;gt;&lt;br /&gt;   Order deny,allow&lt;br /&gt;   Deny from all&lt;br /&gt;&amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;&lt;br /&gt;Since I used "/nodetemplate" as the path for the menu item "my node templates", then the server will block this path only because the path "/nodetemplate" ends with the string "template". That's really a dreadful setting! I cannot suggest all the users to change their .htaccess file, so I changed my path to "/nodetemplates". BOOM! Everything works like a charm now.&lt;br /&gt;&lt;br /&gt;Indeed, such kind of FilesMatch settings are intended to protect the unauthorized access to those files. But, it has so many side-effects. For example, you cannot use any string which ends with "template" or "root", etc. to name your shortcuts as your path in Drupal. If you did this, you will get the strange problem too!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-8023970583596049805?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/8023970583596049805/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=8023970583596049805' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/8023970583596049805'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/8023970583596049805'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2007/07/strange-problem-with-node-template.html' title='strange problem with Node Template'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-761231872609705040</id><published>2007-07-04T17:31:00.000+02:00</published><updated>2007-07-04T17:40:57.634+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='drupal'/><title type='text'>New features in Node Template</title><content type='html'>&lt;a href="http://drupal.org/"&gt;&lt;/a&gt;It's really a happy thing to find out that there are already some people using my &lt;a href="http://drupal.org/"&gt;Drupal&lt;/a&gt; module "&lt;a href="http://drupal.org/project/node_template"&gt;Node Template&lt;/a&gt;".  Today I just caught some spare time, so I made some updates to the module.&lt;br /&gt;&lt;br /&gt;New features include:&lt;br /&gt;&lt;ol&gt;&lt;li&gt; Now automatic node creation is optional from version 1.3.&lt;/li&gt;&lt;li&gt; Share template with others is possible from version 1.4.&lt;/li&gt;&lt;/ol&gt;Today I released v1.5 only to fix some bugs according to the issues. When there are still some problems, just try to use the dev release of the module.&lt;br /&gt;&lt;br /&gt;The reason why I don't want to release v1.6 today is because a strange problem on my computer. if I enable the "clean URLs" in Drupal, clicking the menu item "my node templates" will cause a page that says "Access forbidden" with "error 403". I guess it can be some setting problems of my web server. Currently I am using xampp 1.6.2. When I figure out what happens, I'll release v.1.6 of the module "&lt;a href="http://drupal.org/project/node_template"&gt;Node Template&lt;/a&gt;".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-761231872609705040?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/761231872609705040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=761231872609705040' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/761231872609705040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/761231872609705040'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2007/07/new-features-in-node-template.html' title='New features in Node Template'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-4296312172924699308</id><published>2007-07-03T15:25:00.000+02:00</published><updated>2007-07-18T09:42:18.376+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='design'/><title type='text'>Difference between German and Chinese</title><content type='html'>&lt;p align="center"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Found some very interesting art works from an Chinese artist in Germany that reflect the difference between German and Chinese.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Left (Blue): German &amp; &lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;Right (Red): Chinese&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Three Meals 一日三餐&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;img src="http://pic.netsh.com/homepage/uploadimg/200706/22143252.gif" border="0" /&gt; &lt;/p&gt;&lt;div class="t_msgfont" id="message10305261"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p align="center"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Contacts 人际关系 &lt;/span&gt;&lt;/p&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p align="center"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;img alt="" src="http://pic.netsh.com/homepage/uploadimg/200706/22143254.gif" border="0" /&gt; &lt;/span&gt;&lt;/p&gt;&lt;div class="t_msgfont" id="message10305264"&gt;&lt;p align="center"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Moods and Weather 心情和天气 &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;img src="http://pic.netsh.com/homepage/uploadimg/200706/22143255.gif" border="0" /&gt; &lt;/span&gt;&lt;/p&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p align="center"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Transport 交通工具&lt;/span&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;img src="http://pic.netsh.com/homepage/uploadimg/200706/22143258.gif" border="0" /&gt; &lt;/span&gt;&lt;/p&gt;&lt;div class="t_msgfont" id="message10305311"&gt;&lt;div class="t_msgfont" id="message10305319"&gt;&lt;div class="t_msgfont" id="message10305327"&gt;&lt;div class="t_msgfont" id="message10305330"&gt;&lt;div class="t_msgfont" id="message10305334"&gt;&lt;div class="t_msgfont" id="message10305336"&gt;&lt;div class="t_msgfont" id="message10305339"&gt;&lt;div class="t_msgfont" id="message10305340"&gt;&lt;div class="t_msgfont" id="message10305343"&gt;&lt;div class="t_msgfont" id="message10305348"&gt;&lt;div class="t_msgfont" id="message10305352"&gt;&lt;div class="t_msgfont" id="message10305356"&gt;&lt;span style="font-weight: bold;"&gt;For more info of this series of works:&lt;/span&gt; &lt;a href="http://www.yangliudesign.com"&gt;http://www.yangliudesign.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;References 参考：&lt;a href="http://www.uni-ulm.de/acssu/cgi-bin/topic.cgi?forum=18&amp;topic=933" rel="nofollow"&gt;http://www.uni-ulm.de/acssu/cgi-bin/topic.cgi?forum=18&amp;amp;topic=933&lt;/a&gt;  &lt;p&gt;作者介绍：刘扬，一九七六年生于北京。十三岁随家人迁居德国。十七岁时被德国柏林艺术大学设计系录取，师从于霍尔格马蒂斯，获硕士及大师班学位。毕 业后曾先后在新加坡，伦敦，柏林，纽约工作及生活。零四年在柏林开始自己的设计工作室。曾任教于荷兰设计中心，中国中央美术学院设计系，英国格拉斯歌美术 学院，并在国际设计研讨会及博览会讲座。刘杨的作品曾多次在国际设计大赛中获重要奖项，作品被国际多家博物馆展览并收藏。&lt;/p&gt; &lt;p&gt;Yang Liu is born in 1976 in Beijing. She came to Germany with her family at the age of 13. She was 17 years old when she studied in  the Art University of Berlin (Universitaet der Kuenste Berlin). After her study she made his career as a Designer in Singapur, London, Berlin and New York. In the year of 2004 she founded her own Design Studio. Besides Workshops and Lectures on international conferences she tought in the Central Academy of Fine Art Beijing and the Glasgow School of Art. Her works are presented in many international contests, worldwide can be seen in Musums and bought for collections.&lt;/p&gt;&lt;p style="text-align: left;"&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-4296312172924699308?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/4296312172924699308/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=4296312172924699308' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/4296312172924699308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/4296312172924699308'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2007/07/difference-between-german-and-chinese.html' title='Difference between German and Chinese'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-7505614532056298208</id><published>2007-06-12T11:04:00.000+02:00</published><updated>2007-06-12T11:23:28.110+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='drupal'/><title type='text'>Tips for Multisite in Drupal</title><content type='html'>In last post I've reviewed the process to build a multisite. Here are some tips and tricks!&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;If you want to use a new theme for the new site with the configuration, &lt;code&gt;$conf =&lt;br /&gt;&lt;br /&gt;array('site_name' =&gt; 'My Drupal site',&lt;br /&gt;'theme_default' =&gt; 'pushbutton',&lt;br /&gt;'anonymous' =&gt; 'Visitor',);&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;please be sure give the parameter "theme_default" a new name such as "newtheme". Then copy the whole folder of your current main theme as a new folder called "newtheme" under "/themes".&lt;br /&gt;&lt;br /&gt;This gives the grantee of  the maximal compatibility of your new theme which is to be modified.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Just remember to activate your "newtheme" in your main site, otherwise Drupal will not use the new theme.&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-7505614532056298208?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/7505614532056298208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=7505614532056298208' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/7505614532056298208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/7505614532056298208'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2007/06/tips-for-multisite-in-drupal.html' title='Tips for Multisite in Drupal'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-6902286260319601602</id><published>2007-05-30T15:56:00.000+02:00</published><updated>2007-05-30T16:38:13.791+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='drupal'/><title type='text'>5 Steps to implement multisite in Drupal</title><content type='html'>There are already many use cases for multisite with one installation &lt;a href="http://www.drupal.org/"&gt;Drupal&lt;/a&gt;. The handbook of Drupal has some useful tips too. see: &lt;a href="http://drupal.org/node/43816"&gt;Multi-site installation and set-up&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here is just another typical one:&lt;br /&gt;&lt;br /&gt;The customer needs two kinds of presentations of the same content, and such presentations should be decided by different URL.&lt;br /&gt;&lt;br /&gt;More concretely, assumed that we have a domain named "http://www.example.com". This is the main site used for some people. At the same time, "http://www.example.com/show/" will be used for some other purpose, e.g. as a content provider with different front page.&lt;br /&gt;&lt;br /&gt;Let's do it step by step:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Find the configuration file &lt;span style="font-weight: bold;"&gt;httpd.conf&lt;/span&gt; of your Apache server. Add the following line at the end of the file.&lt;br /&gt;&lt;blockquote&gt;&lt;code&gt;Alias /show "C:/Programme/xampp/htdocs/drupal/" #&lt;- The path to your drupal directory. It can be "/var/www/htdocs/" on a linux server or alike.&lt;/code&gt;&lt;/blockquote&gt;It maps the path to your drupal installation directory.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Go to the &lt;span style="font-weight: bold;"&gt;/sites&lt;/span&gt; directory under the drupal installation directory. Copy the &lt;span style="font-weight: bold;"&gt;/default&lt;/span&gt; directory to a new directory with all the containing files. The new directory can be called "&lt;span style="font-weight: bold;"&gt;/www.example.com.show&lt;/span&gt;" or "&lt;span style="font-weight: bold;"&gt;/localhost.show&lt;/span&gt;". It depends on where you install your drupal.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Make changes to the settings.php in the new directory.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Since we use the same database and don't want to create new tables, we use:&lt;br /&gt;&lt;blockquote&gt;&lt;code&gt;$db_url = 'mysql://name:password@localhost/drupal';&lt;br /&gt;$db_prefix = '';&lt;/code&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;For the URL we use, change the base URL:&lt;br /&gt;&lt;blockquote&gt;&lt;code&gt;$base_url = 'http://localhost/show';  // NO trailing slash!&lt;/code&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;Something we want to change is the theme and front page, etc. It can be achieved by:&lt;br /&gt;&lt;blockquote&gt;&lt;code&gt;$conf = array(&lt;br /&gt;'site_name' =&gt; 'My Drupal site',&lt;br /&gt;'theme_default' =&gt; 'pushbutton',&lt;br /&gt;'anonymous' =&gt; 'Visitor',&lt;br /&gt;);&lt;/code&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;To get clean URL's with multi-site I added the following to the .htaccess file&lt;br /&gt;&lt;blockquote&gt;&lt;code&gt;# rewrite commands for drupal dev sites&lt;br /&gt;RewriteCond %{REQUEST_FILENAME} !-f&lt;br /&gt;RewriteCond %{REQUEST_FILENAME} !-d&lt;br /&gt;RewriteCond %{REQUEST_URI} ^/show/.*&lt;code&gt;&lt;br /&gt;RewriteRule ^(.*)$ /show/index.php?q=$1 [L,QSA]&lt;/code&gt;&lt;/code&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;restart the Apache server and go to the URL "http://www.example.com/show/" to see what happens.&lt;/li&gt;&lt;/ol&gt;There are some bugs on using another theme with the different URL. For example, the blocks in the Drupal will be not shown correctly. The only solution currently is copying the main theme to a new directory with a new name like "showme".This makes a new theme with different name in Drupal, then edit it to fit your requirements.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-6902286260319601602?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/6902286260319601602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=6902286260319601602' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/6902286260319601602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/6902286260319601602'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2007/05/5-steps-to-implement-multisite-in.html' title='5 Steps to implement multisite in Drupal'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-4247131513243782064</id><published>2007-05-30T15:24:00.000+02:00</published><updated>2007-05-30T15:55:00.930+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jBPM'/><title type='text'>Another "internal error occured during: Initializing Java tooling"</title><content type='html'>In 2007-05-02 I've already post a blog entry called "&lt;a href="http://joewong.blogspot.com/2007/05/since-i-updated-my-jbpm-plugin-for.html"&gt;An internal error occured during: Initializing Java tooling&lt;/a&gt;", now this notorious error comes again!&lt;br /&gt;&lt;br /&gt;Today I wanted to help someone to install the jBPM Graphical Design plug-in for Eclipse. I used the same version Eclipse and the plug-in as those on my own computer. Everything is fine until I tried to import a project from a CVS server. Then comes the error "An internal error occured during: Initializing Java tooling". It really makes me frustrated after I tried again and again and made 100% sure that all the software version are the same.&lt;br /&gt;&lt;br /&gt;So where is the problem?&lt;br /&gt;&lt;br /&gt;The bad guy is the setting in Eclipse! After going to "Window"-&gt;"Preferences...", you can see the following dialog:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-WuvccO25gk/Rl1-iEF1ckI/AAAAAAAAAXY/W3yJPzg2r1E/s1600-h/jbpm.jpg"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_-WuvccO25gk/Rl1-iEF1ckI/AAAAAAAAAXY/W3yJPzg2r1E/s320/jbpm.jpg" alt="" id="BLOGGER_PHOTO_ID_5070347879167914562" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Click the option "JBoss jBPM", you will see your installation directory of jBPM library and the name of installation.  If you give a new name, exactly saying, a different name from the original name which you gave in your previous Eclipse. BOOM, you got the error!&lt;br /&gt;&lt;br /&gt;The reason: Eclipse saves every project settings  in a file called &lt;span style="font-weight: bold;"&gt;.classpath&lt;/span&gt;. It's a xml file. You can find a line like this:&lt;br /&gt;&lt;blockquote&gt;&amp;lt;classpathentry kind="con" path="JBPM/JBoss jBPM 3.1.2"&amp;gt;&amp;lt;/classpathentry&amp;gt;&lt;/blockquote&gt;&lt;br /&gt;See? The name which is used here is the convenient name! So if you change this name, Eclipse doesn't know where to find the library again.&lt;br /&gt;&lt;br /&gt;Solution:&lt;br /&gt;1. Keep using the same convenient name in the preferences settings.&lt;br /&gt;2. Change the entry in the .classpath file to the name you used.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-4247131513243782064?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/4247131513243782064/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=4247131513243782064' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/4247131513243782064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/4247131513243782064'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2007/05/another-internal-error-occured-during.html' title='Another &quot;internal error occured during: Initializing Java tooling&quot;'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_-WuvccO25gk/Rl1-iEF1ckI/AAAAAAAAAXY/W3yJPzg2r1E/s72-c/jbpm.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-3659550404682674020</id><published>2007-05-29T15:46:00.000+02:00</published><updated>2007-05-29T16:03:26.480+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='drupal'/><title type='text'>Node Template has been updated!</title><content type='html'>Before a three-days camp in Rotenburg I submitted a &lt;a href="http://drupal.org/"&gt;Drupal&lt;/a&gt; module "&lt;a href="http://drupal.org/project/node_template"&gt;Node Template&lt;/a&gt;". After coming back from the camp, I've found there is already an issue existed for my module. Wow, it makes me really happy. At least it means there are people using that module.&lt;br /&gt;&lt;br /&gt;The issue is about the version for &lt;a href="http://drupal.org/"&gt;Drupal&lt;/a&gt;  5.x. Since I didn't make any test on &lt;a href="http://drupal.org/"&gt;Drupal&lt;/a&gt;  5, I didn't even know it doesn't work for &lt;a href="http://drupal.org/"&gt;Drupal&lt;/a&gt; 5. All I have done is doing a conversion or update of my module from version for 4.7.x to version for 5.x according to a page called "&lt;a href="http://drupal.org/node/64279"&gt;Converting 4.7.x modules to 5.x&lt;/a&gt;", but without test it doesn't even work!&lt;br /&gt;&lt;br /&gt;So after looking at the completely new API of Drupal 5, I fixed all the strange problems. Best of all, it helps me a lot because I'll develop another module called "Version table" in the very near future.&lt;br /&gt;&lt;br /&gt;And here is also a screenshot of the module:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_-WuvccO25gk/RlwyNEF1cjI/AAAAAAAAAXQ/-RvmBIx8CdQ/s1600-h/nodetemplate.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; clear: both; cursor: pointer;" src="http://4.bp.blogspot.com/_-WuvccO25gk/RlwyNEF1cjI/AAAAAAAAAXQ/-RvmBIx8CdQ/s320/nodetemplate.jpg" alt="" id="BLOGGER_PHOTO_ID_5069982480530240050" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-3659550404682674020?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/3659550404682674020/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=3659550404682674020' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/3659550404682674020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/3659550404682674020'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2007/05/node-template-has-been-updated.html' title='Node Template has been updated!'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_-WuvccO25gk/RlwyNEF1cjI/AAAAAAAAAXQ/-RvmBIx8CdQ/s72-c/nodetemplate.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-2905962392893601137</id><published>2007-05-23T14:49:00.000+02:00</published><updated>2007-05-23T18:03:30.883+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='drupal'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>Node template in Drupal</title><content type='html'>Drupal is one of my favorite CMS. For a recent project I need a plug-in that can duplicate a page or a branch of book nodes. Even more I want to set them as node templates, so that I can use them for further actions.&lt;br /&gt;&lt;br /&gt;I've looked at so many modules of Drupal, but none of them meets my requirements. So...sadly I must do it myself. The result is, I wrote a module called "node template", which can be found at &lt;a href="http://drupal.org/project/node_template"&gt;http://drupal.org/project/node_template.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It's my first module project for Drupal. So I hope I have more free time to make it better. Although setting up a CVS release of that module cost me already 30 minutes to figure it out, finally is it there. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-2905962392893601137?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/2905962392893601137/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=2905962392893601137' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/2905962392893601137'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/2905962392893601137'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2007/05/node-template-in-drupal.html' title='Node template in Drupal'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-8397883995270755319</id><published>2007-05-15T15:57:00.000+02:00</published><updated>2007-05-15T16:04:27.256+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><title type='text'>Best tutorials on Sending Email from Flash using PHP</title><content type='html'>I've tried a lot of tutorials on the web, in order to make a working contact form in flash. Endly I found one: &lt;a href="http://www.sephiroth.it/tutorials/flashPHP/email/"&gt;Sending Email from Flash using PHP&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The best part of that tutorial is: it points out tons of tips which could drive man crazy without. For example, you'd better hide the send button in a Movie Clip, so that everything works. Why? because otherweise&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold;"&gt;Note&lt;/span&gt;: &lt;span style="font-style: italic;"&gt;note that [ send ] is a Movie Clip with inside a button. This is useful for us while with the loadVariables() our vars to PHP without sending all _root variables...&lt;/span&gt;&lt;/blockquote&gt;Reading such kind of tutorials is really an enjoy. Keep going on, &lt;span style="font-weight: bold;"&gt;Alessandro Crugnola!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-8397883995270755319?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/8397883995270755319/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=8397883995270755319' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/8397883995270755319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/8397883995270755319'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2007/05/best-tutorials-on-sending-email-from.html' title='Best tutorials on Sending Email from Flash using PHP'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-9172106479422769848</id><published>2007-05-14T22:31:00.000+02:00</published><updated>2007-05-14T22:44:23.241+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><title type='text'>Using the UIScrollBar component of Flash</title><content type='html'>In a recent project I tried to use the UIScrollBar component of Flash 8. There are already a lot of tutorials on the web:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.tizag.com/flashTutorial/flashtextscroll.php"&gt;Creating a Flash Textbox Input&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a href="http://www.kirupa.com/developer/mx/textscroller.htm"&gt;Creating a Text Scroller&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;If you do that step by step, it works. BUT, if you create a new text box with the type of dynamic text, use LoadVars to load a text file on the fly and add a UIScrollBar component to it, then publish it, you will see a blank vertical bar on the right of the text box. So what's wrong?&lt;br /&gt;&lt;br /&gt;There are also people writing comments on the &lt;a href="http://livedocs.adobe.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&amp;file=00004219.html"&gt;Adobe livedocs&lt;/a&gt;. Such things cost me at least one hour to find what happens.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The key to the solution&lt;/span&gt; is: you must enter something long enough in the text box before loading anything into it!  I guess the  UIScrollBar component just caculates the behavior before it's published. The only size it knows is your text size in the design phase.&lt;br /&gt;&lt;br /&gt;So, don't forget to paste some dummy text in your text box and give it an instance name before you use the UIScrollBar component!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-9172106479422769848?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/9172106479422769848/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=9172106479422769848' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/9172106479422769848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/9172106479422769848'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2007/05/using-uiscrollbar-component-of-flash.html' title='Using the UIScrollBar component of Flash'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-2599803242029812791</id><published>2007-05-13T21:44:00.000+02:00</published><updated>2007-05-13T22:10:38.544+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>JavaScript based google customized search</title><content type='html'>Today I found a JavaScript based google customized search from &lt;a href="%3Ca"&gt;JavaScript Kit&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The idea is: using the format of a search string with "site:"+"yousite.com"+" "+"query value"&lt;br /&gt;&lt;br /&gt;With the form you can use the following:&lt;br /&gt;&amp;lt;form action="http://www.google.com/search" method="get" onSubmit="jssearch(this)"&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-2599803242029812791?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/2599803242029812791/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=2599803242029812791' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/2599803242029812791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/2599803242029812791'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2007/05/javascript-based-google-customized.html' title='JavaScript based google customized search'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-2226352524060364748</id><published>2007-05-03T14:53:00.000+02:00</published><updated>2007-05-03T17:52:49.516+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><title type='text'>Sending Email in Flash</title><content type='html'>&lt;p&gt;Contact form is used widely on a website. If the website is powered by Flash, find a better way to build a flexible contact form is also very important.&lt;br /&gt;&lt;br /&gt;There are probably 3 ways:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1. Use the "mailto:" protocol&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Namely set a button event with&lt;br /&gt;&lt;blockquote&gt;on (release) {&lt;br /&gt;getURL("mailto:" + to + "?subject=" +subject+ "&amp;body=" + body);&lt;br /&gt;}&lt;/blockquote&gt;The three variables are self defined in Flash according to the form fields.  A tutorial can be found &lt;a href="http://www.tizag.com/flashTutorial/flashemailform.php"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The advantage of this method is that man doesn't need complex programming things. The flash will call the email client in the system to send the mail.&lt;br /&gt;&lt;br /&gt;The shortcoming is also related to the advantage: If an email client isn't setup well or doesn't exist on the system, then we have a problem.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2. Use FLASH and PHP&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;It's used widely. So I don't want to talk more abut it. ;-) &lt;br /&gt;&lt;br /&gt;The principle is: Flash posts Variables to a PHP file, then the PHP sends email using mail() function and returns the result to flash.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.kirupa.com/developer/actionscript/images/flatophptoserver.gif" /&gt;&lt;br /&gt;&lt;br /&gt;A tutorial can be found at &lt;a href="http://www.kirupa.com/developer/actionscript/flash_php_email.htm"&gt;kirupa.com&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;3. Load a HTML into FLASH&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The principle here is trying to load a html with contact form in Flash.&lt;br /&gt;&lt;br /&gt;Firstly just use a textfield in Flash, set it to dynamic. Then click Render Text as HTML in properties or set the .html property to true. Then use Loadvars to load the html file and assign the variable into the textfield.htmlText property. Here's an example:&lt;br /&gt;&lt;blockquote&gt;loadText = new LoadVars();&lt;br /&gt;loadText.onLoad = function()&lt;br /&gt;{&lt;br /&gt;_root.helpText_txt.html = true;&lt;br /&gt;_root.helpText_txt.htmlText = this.testText;&lt;br /&gt;}&lt;br /&gt;loadText.load("text.htm");&lt;/blockquote&gt;Just remember the following: You don't need all that header junk like  tags and such. At the beginning of your html file, above everything else put something like:&lt;br /&gt;&lt;br /&gt;testText =&lt;br /&gt;&lt;br /&gt;where testText can be any variable name you choose. You can only use jpg and swf's for graphics embedded in the html. And the jpg's can't be progressive jpg's.&lt;br /&gt;&lt;br /&gt;Finally anchors "&amp;lt;a href="http://www2.blogger.com/bla.html"&amp;gt;" will work but won't show as a different color unless you use font tags around them and specify to change the color of the text. ie. "&amp;lt;span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a href="http://www.blogger.com/bla.html"&amp;gt;Bla&amp;lt;/a&amp;gt;&amp;lt;/span&amp;gt;"&lt;br /&gt;&lt;br /&gt;More infos about "Formatting text with Cascading Style Sheets" can be found &lt;a href="http://www.adobe.com/livedocs/flash/mx2004/main_7_2/wwhelp/wwhimpl/common/html/wwhelp.htm?context=Flash_MX_2004&amp;file=00001014.html#126692"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;P.S. According to &lt;a href="http://www.actionscript.com/Article/tabid/54/ArticleID/actionscript-quick-tips-and-gotchas/Default.aspx"&gt;this article&lt;/a&gt;, there are many ways to link a html in Flash.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-2226352524060364748?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/2226352524060364748/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=2226352524060364748' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/2226352524060364748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/2226352524060364748'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2007/05/sending-email-in-flash.html' title='Sending Email in Flash'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-9159311383561898676</id><published>2007-05-02T14:50:00.000+02:00</published><updated>2007-05-02T17:35:39.806+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><title type='text'>To use Firefox or not to, it's a question</title><content type='html'>It's very interesting to find this on the web. Since I am a fan of firefox (maybe you too), I find the conclusions here are not so easy to believe. ;-)&lt;br /&gt;&lt;br /&gt;So start to face the facts of firefox!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.firefoxmyths.com/"&gt;&lt;img src="http://mywebpages.comcast.net/OptimizeXP/Buttons/FirefoxMyths.gif" alt="Firefox Myths" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Another word, I've been starting using opera for a long time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-9159311383561898676?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/9159311383561898676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=9159311383561898676' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/9159311383561898676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/9159311383561898676'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2007/05/its-very-interesting-to-find-this-on.html' title='To use Firefox or not to, it&apos;s a question'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-5957713077385960182</id><published>2007-05-02T13:53:00.000+02:00</published><updated>2007-05-02T17:36:07.354+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='jBPM'/><title type='text'>An internal error occured during: Initializing Java tooling</title><content type='html'>&lt;span class="postbody"&gt;Since I updated my jBPM plugin for eclipse,  I get the error "&lt;span style="font-weight: bold;"&gt;An internal error occured during: Initializing Java tooling&lt;/span&gt;" everytime when I start eclipse. Sometimes it becomes even worse, I cannot commit changes to CVS server or do something else in eclipse.&lt;br /&gt;&lt;br /&gt;The reason is that the new version has changed the file structures and didn't provide the coresponding convension tools. So here is endly the solution:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="postbody"&gt;Backup the whole workspace before upgrading;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="postbody"&gt;You can enable or disable a new version jBPM plugin under "help"-&gt;"software updates"-&gt;"manage configurations";&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="postbody"&gt;After the new version is running, create a blank process project, then create a blank process definition;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="postbody"&gt;Close eclipse, find the folder where the new created process files are;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="postbody"&gt;Open gpd.xml and processdefiniton.xml of the new process and your old process in an editor;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="postbody"&gt;Just compare the difference between those files. Mostly the new version of jBPM changes the structure of gpd.xml;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="postbody"&gt;So change the xml structure manually and save them;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="postbody"&gt;Maybe the file &lt;/span&gt;&lt;span class="postbody"&gt;.classpath should alse be compared and changed.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="postbody"&gt;Open it in eclipse. If you are lucky, you will never see the error message again.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;Hope it helps.&lt;br /&gt;&lt;span class="postbody"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-5957713077385960182?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/5957713077385960182/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=5957713077385960182' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/5957713077385960182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/5957713077385960182'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2007/05/since-i-updated-my-jbpm-plugin-for.html' title='An internal error occured during: Initializing Java tooling'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-6018741025947188957</id><published>2007-04-25T23:02:00.000+02:00</published><updated>2007-05-02T17:36:52.479+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jBPM'/><title type='text'>jBPM Process Designer Upgrade Problem</title><content type='html'>Today I've made so much struggle with the &lt;a href="http://labs.jboss.com/jbossjbpm/"&gt;jBPM&lt;/a&gt; Eclipse plugin. It was really frustrated to know that the new version &lt;a href="http://sourceforge.net/project/showfiles.php?group_id=70542&amp;package_id=116692&amp;amp;release_id=489757"&gt;jbpm-jpdl-designer-3.1.0.alpha3&lt;/a&gt; has changed the xml structure of the gdp.xml, which is used to describe the relationship between process image and process description.&lt;br /&gt;&lt;br /&gt;After thousands of tries I've find this alpha version cannot convert the process files from old versions correctly. The result is, you will lost all transition lines on the process image. So just be careful to do the update!&lt;br /&gt;&lt;br /&gt;The issue is here: &lt;a href="http://jira.jboss.com/jira/browse/GPD-64"&gt;http://jira.jboss.com/jira/browse/GPD-64&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-6018741025947188957?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/6018741025947188957/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=6018741025947188957' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/6018741025947188957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/6018741025947188957'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2007/04/today-ive-made-so-much-struggle-with.html' title='jBPM Process Designer Upgrade Problem'/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-110738605028375564</id><published>2005-02-03T00:14:00.000+01:00</published><updated>2005-02-03T00:14:10.283+01:00</updated><title type='text'></title><content type='html'>It's a wondeful experince to use picasa with hello!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-110738605028375564?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/110738605028375564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=110738605028375564' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/110738605028375564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/110738605028375564'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2005/02/its-wondeful-experince-to-use-picasa.html' title=''/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-107826453946118726</id><published>2004-03-02T22:52:00.000+01:00</published><updated>2004-03-02T22:57:48.030+01:00</updated><title type='text'></title><content type='html'>一个很有趣的卡通形象：&lt;br /&gt;&lt;a href="http://www.6to23.com/s8/s8d12/tp200312217024_1.htm"&gt;小土豆&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-107826453946118726?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/107826453946118726/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=107826453946118726' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/107826453946118726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/107826453946118726'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2004/03/blog-post.html' title=''/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733793.post-106198504365344950</id><published>2003-08-27T13:50:00.000+02:00</published><updated>2003-08-27T13:50:43.573+02:00</updated><title type='text'></title><content type='html'>It's my first time to get into the bolgger's world.&lt;br /&gt;Yeah. I started.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5733793-106198504365344950?l=joewong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joewong.blogspot.com/feeds/106198504365344950/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5733793&amp;postID=106198504365344950' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/106198504365344950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733793/posts/default/106198504365344950'/><link rel='alternate' type='text/html' href='http://joewong.blogspot.com/2003/08/its-my-first-time-to-get-into-bolggers.html' title=''/><author><name>motou</name><uri>http://www.blogger.com/profile/01819997907018821543</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
