<?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-1228707902785326925</id><updated>2012-01-28T01:24:32.504-05:00</updated><category term='install'/><category term='鲁宾逊漂流记'/><category term='root access'/><category term='t-pot'/><category term='funny'/><category term='iphone sdk'/><category term='word checker'/><category term='socks'/><category term='Ganymede'/><category term='java system.currentTimeMillis'/><category term='iphone development'/><category term='spelling'/><category term='sprint'/><category term='end'/><category term='home'/><category term='RMB'/><category term='3g test'/><category term='iphone'/><category term='cracking'/><category term='windows xp'/><category term='top 500'/><category term='hello servlet'/><category term='spam'/><category term='phpbb seo'/><category term='infrarecorder'/><category term='tcmdump'/><category term='java time'/><category term='servlet'/><category term='tmobile'/><category term='two laptop share internet connection'/><category term='alpine'/><category term='vim'/><category term='eclipse'/><category term='su'/><category term='Darwin Streaming Server'/><category term='Dollar'/><category term='difference'/><category term='web spider'/><category term='lamport'/><category term='snaplen'/><category term='attack'/><category term='fails every other time'/><category term='SSH'/><category term='escape sequence'/><category term='tech notes'/><category term='most popular'/><category term='java'/><category term='file system browser'/><category term='security'/><category term='CAPTCHA'/><category term='activeperl'/><category term='regular expression'/><category term='in review'/><category term='root'/><category term='split'/><category term='android'/><category term='xcode'/><category term='AOL mail'/><category term='websites'/><category term='dns'/><category term='iphone modem'/><category term='pixel'/><category term='notepad++'/><category term='html'/><category term='remvoe blank margin'/><category term='mac'/><category term='CD'/><category term='remote desktop'/><category term='校友论坛'/><category term='ubuntu'/><category term='fire wall'/><category term='ipod touch'/><category term='double-quotes'/><category term='OpenSSH'/><category term='usb connection'/><category term='noise'/><category term='remove'/><category term='jailbreak'/><category term='vista'/><category term='svn'/><category term='first java servlet'/><category term='黄石二中'/><category term='windows vista'/><category term='gnuplot'/><category term='app store'/><category term='technology'/><category term='ubuntu 8.10'/><category term='tcpdump'/><category term='approve'/><category term='subversive'/><category term='apple'/><category term='ebay'/><category term='perl'/><category term='wait'/><category term='spammer'/><category term='input'/><category term='tomcat'/><category term='vimrc'/><category term='forum'/><category term='currency'/><category term='string'/><category term='perl tutorial'/><category term='define'/><category term='phrase checker'/><category term='human readable time format'/><category term='sound'/><category term='phpbb'/><category term='python'/><category term='breaking'/><category term='Mac OS'/><category term='g1'/><category term='lookup'/><category term='annoy'/><category term='3proxy'/><category term='codesign'/><category term='web server'/><category term='image'/><category term='apache'/><category term='ad hoc'/><category term='computer science'/><category term='key'/><category term='tech'/><category term='emacs'/><category term='beep'/><category term='true'/><category term='usb'/><category term='php'/><category term='exist'/><category term='kubuntu'/><category term='programming'/><category term='total commander'/><category term='modem'/><category term='adb'/><category term='verizon'/><category term='daily-fun-picture.blogspot.com'/><category term='file system'/><category term='config'/><category term='tip'/><category term='online checker'/><category term='wi-fi'/><category term='gphone'/><category term='rgb'/><category term='sudo'/><category term='push notification'/><category term='hello world'/><category term='cgi'/><category term='terminal'/><category term='SEO'/><category term='wireless'/><category term='single-quote'/><category term='xubuntu'/><category term='Unix time'/><category term='Info.plist'/><category term='fire fox'/><category term='microsoft'/><category term='beetle'/><category term='dotaart'/><category term='att'/><category term='annoying'/><category term='dota-allstars'/><title type='text'>Junxian's Tech Blog</title><subtitle type='html'>Welcome here
I'm dumping random tech articles into this blog</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>61</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-778097381517555273</id><published>2011-03-10T01:32:00.003-05:00</published><updated>2011-03-10T01:52:03.609-05:00</updated><title type='text'>How to efficiently write academic paper on Mac OS?</title><content type='html'>I wanna write something on this because some of my friends using Mac complain about the inconvenience to use Latex-related software to write paper.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I have to admit that WinEdt is pretty awesome (I used it years ago in my undergrad). But&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Can we do all WinEdt can do under Mac?&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I think the answer should be positive.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My current solution is&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;VIM + TexShop&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The special feature I love about TexShop is the "sync" which leads you to the correct tex file and correct line and even correct word which corresponds to the PDF selection (WinEdt can do this of course). Another good thing about TexShop is that compiling LaTex is really fast (compared with my weak Makefile), and also the preview windows loads the file where you were rather than from the beginning. I will talk later how annoying Adobe Reader and Preview are which always loads your new PDF file from the beginning.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;VIM's magic lies in ~/.vimrc and I plan to write more about it.&lt;/div&gt;&lt;div&gt;Today I found a good post writing about &lt;a href="http://tips.webdesign10.com/vim/how-use-vims-spellchecker"&gt;How to Use Vim's Spellchecker&lt;/a&gt; and &lt;a href="http://blog.ezyang.com/2010/03/vim-textwidth/"&gt;How to use Vim’s textwidth like a pro&lt;/a&gt;. Some of these features are not included in &lt;a href="http://junxian-huang.blogspot.com/2010/11/config-file-for-vim-cheating-file.html"&gt;my previous post of a good .vimrc cheat sheet&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For now, I'm still trying to make VIM + TexShop to be as good as WinEdt (currently still lagging behind). For example, I want to make double clicking a word redirect me to the editing location rather than right-click and then click "Sync". Another example is the search function of PDF preview in TexShop does not work, you have to search in the drawer's window, which sucks! &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Adobe Reader's search is way better, but after compilation, it's hard to go to the old editing location in Adobe Reader because it considers the file to be different before and after compilation (so even if you enable "Restore last view settings when reopening documents", after "make clean" and "make all" of your paper, opening the paper will start from the beginning and you have to scroll pages before you find where you were ..., Preview app in Mac has similar problems). &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I feel I need to future change some shortcuts to make VIM+TexShop more efficient and eventually, it should be comparable to WinEdt if not more.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Mac should not be in any case worse than Windows except for hosting viruses!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&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/1228707902785326925-778097381517555273?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/778097381517555273/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=778097381517555273' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/778097381517555273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/778097381517555273'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2011/03/how-to-efficiently-write-academic-paper.html' title='How to efficiently write academic paper on Mac OS?'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-5875789903507660121</id><published>2011-02-27T02:30:00.000-05:00</published><updated>2011-02-27T02:31:01.866-05:00</updated><title type='text'>iPhone compilation problem</title><content type='html'>&lt;a href="http://stackoverflow.com/questions/3098626/appstore-app-works-perfectly-on-iphone-3gs-but-crashes-on-ipod-touch-and-iphone-3"&gt;this post&lt;/a&gt; saved my life!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-5875789903507660121?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/5875789903507660121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=5875789903507660121' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/5875789903507660121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/5875789903507660121'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2011/02/iphone-compilation-problem.html' title='iPhone compilation problem'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-4873717718531554048</id><published>2011-01-18T03:12:00.001-05:00</published><updated>2011-01-18T03:13:15.903-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xcode'/><title type='text'>Display info.plist in program</title><content type='html'>&lt;meta equiv="Content-Type" content="text/html; charset=UTF-8"&gt; &lt;meta equiv="Content-Style-Type" content="text/css"&gt; &lt;title&gt;&lt;/title&gt; &lt;meta name="Generator" content="Cocoa HTML Writer"&gt; &lt;meta name="CocoaVersion" content="1038.35"&gt; &lt;style type="text/css"&gt; p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo} p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #430083} p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; min-height: 13.0px} span.s1 {color: #7925ac} span.s2 {color: #430083} span.s3 {color: #e50000} span.s4 {color: #000000} span.Apple-tab-span {white-space:pre} &lt;/style&gt;   &lt;p class="p1"&gt;&lt;span class="s1"&gt;Display info.plist in program&lt;/span&gt;&lt;/p&gt;&lt;p class="p1"&gt;&lt;span class="s1"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="p1"&gt;&lt;span class="s1"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="p1"&gt;&lt;span class="s1"&gt;NSDictionary&lt;/span&gt;* infoDictionary = [[&lt;span class="s1"&gt;NSBundle&lt;/span&gt; &lt;span class="s2"&gt;mainBundle&lt;/span&gt;] &lt;span class="s2"&gt;infoDictionary&lt;/span&gt;];&lt;/p&gt; &lt;p class="p1"&gt;&lt;span class="Apple-tab-span"&gt;	&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;	&lt;/span&gt;&lt;span class="s2"&gt;NSLog&lt;/span&gt;(&lt;span class="s3"&gt;@"%i Keys: %@ "&lt;/span&gt;, [infoDictionary &lt;span class="s2"&gt;count&lt;/span&gt;],&lt;/p&gt; &lt;p class="p2"&gt;&lt;span class="s4"&gt;&lt;span class="Apple-tab-span"&gt;	&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;	&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;	&lt;/span&gt;  [[infoDictionary &lt;/span&gt;allKeys&lt;span class="s4"&gt;] &lt;/span&gt;componentsJoinedByString&lt;span class="s4"&gt;: &lt;/span&gt;&lt;span class="s3"&gt;@" ,"&lt;/span&gt;&lt;span class="s4"&gt;]);&lt;/span&gt;&lt;/p&gt; &lt;p class="p3"&gt;&lt;span class="Apple-tab-span"&gt;	&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;	&lt;/span&gt;&lt;/p&gt;&lt;p class="p3"&gt;&lt;span class="Apple-tab-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="p3"&gt;&lt;span class="Apple-tab-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="p1"&gt;&lt;span class="Apple-tab-span"&gt;	&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;	&lt;/span&gt;UIDeviceFamily ,CFBundleInfoPlistURL ,DTPlatformName ,LSRequiresIPhoneOS ,CFBundleVersion ,&lt;/p&gt; &lt;p class="p1"&gt;&lt;span class="Apple-tab-span"&gt;	&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;	&lt;/span&gt;CFBundleIdentifier ,CFBundleSignature ,CFBundleExecutable ,CFBundleExecutablePath ,CFBundleDisplayName ,CFBundleName ,CFBundleIconFiles ,&lt;/p&gt; &lt;p class="p1"&gt;&lt;span class="Apple-tab-span"&gt;	&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;	&lt;/span&gt;CFBundleSupportedPlatforms ,CFBundlePackageType ,NSBundleResolvedPath ,DTCompiler ,CFBundleInfoDictionaryVersion ,prefix ,CFBundleIconFile ,&lt;/p&gt; &lt;p class="p1"&gt;&lt;span class="Apple-tab-span"&gt;	&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;	&lt;/span&gt;CFBundleResourceSpecification ,DTXcodeBuild ,DTPlatformBuild ,DTXcode ,&lt;/p&gt; &lt;p class="p1"&gt;&lt;span class="Apple-tab-span"&gt;	&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;	&lt;/span&gt;MinimumOSVersion ,NSBundleInitialPath ,DTPlatformVersion ,UIStatusBarHidden ,UIPrerenderedIcon ,DTSDKName ,CFBundleDevelopmentRegion &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-4873717718531554048?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/4873717718531554048/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=4873717718531554048' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/4873717718531554048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/4873717718531554048'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2011/01/display-infoplist-in-program.html' title='Display info.plist in program'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-639996648860017185</id><published>2011-01-18T02:55:00.004-05:00</published><updated>2011-01-18T03:05:53.273-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fails every other time'/><category scheme='http://www.blogger.com/atom/ns#' term='codesign'/><category scheme='http://www.blogger.com/atom/ns#' term='xcode'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='Info.plist'/><title type='text'>iPhone Xcode codesign problem</title><content type='html'>I met with a really weird problem when programming with iPhone app using xcode&lt;br /&gt;&lt;br /&gt;Every other time, my build will fail with&lt;br /&gt;"Command /usr/bin/codesign failed with exit code 1" as the error.&lt;br /&gt;&lt;br /&gt;However, the second time it will succeed.&lt;br /&gt;&lt;br /&gt;This is the details of the error&lt;br /&gt;&lt;br /&gt;CodeSign "build/Release-iphoneos/x.app"&lt;br /&gt;cd /Users/x/Documents/x/three20/x&lt;br /&gt;setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"&lt;br /&gt;setenv _CODESIGN_ALLOCATE_ /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate&lt;br /&gt;/usr/bin/codesign -f -s "iPhone Developer: x" "--resource-rules=/Users/x/Documents/x/three20/x/build/Release-iphoneos/x.app/ResourceRules.plist" --entitlements "/Users/x/Documents/x/three20/xx/build/template.build/Release-iphoneos/x.build/x.xcent" "/Users/x/Documents/x/three20/x/build/Release-iphoneos/x.app"&lt;br /&gt;&lt;br /&gt;/Users/x/Documents/x/three20/x/build/Release-iphoneos/x.app: object file format invalid or unsuitable&lt;br /&gt;Command /usr/bin/codesign failed with exit code 1&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;While the second time when it succeeds, it has the following warning:&lt;br /&gt;&lt;br /&gt;"&lt;br /&gt;Check dependencies&lt;br /&gt;&lt;br /&gt;[WARN]Warning: The Copy Bundle Resources build phase contains this target's Info.plist file 'Info.plist'.&lt;br /&gt;"&lt;br /&gt;&lt;br /&gt;"Warning: The Copy Bundle Resources build phase contains this target's Info.plist file 'Info.plist'.&lt;br /&gt;&lt;br /&gt;"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;After hours' search, there are NO other good posts talking about this. Many people asked this question, but no good answer found.&lt;br /&gt;&lt;br /&gt;I tried myself many different ways and finally, I know why!!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This is because Info.plist includes self as target.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  &gt;&lt;i&gt;&lt;b&gt;Then how to fix????&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;&lt;i&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;&lt;i&gt;&lt;b&gt;Info.plist -&gt; Get Info -&gt; Targets -&gt; If your app is checked, click that check mark to make it unchecked.&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;&lt;i&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;&lt;i&gt;&lt;b&gt;This simple uncheck fixes everything!&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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/1228707902785326925-639996648860017185?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/639996648860017185/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=639996648860017185' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/639996648860017185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/639996648860017185'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2011/01/iphone-xcode-codesign-problem.html' title='iPhone Xcode codesign problem'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-7467763526430004545</id><published>2010-11-12T01:35:00.002-05:00</published><updated>2010-11-12T01:39:03.823-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><category scheme='http://www.blogger.com/atom/ns#' term='config'/><category scheme='http://www.blogger.com/atom/ns#' term='vimrc'/><title type='text'>Config file for VIM Cheating file (Version 11.11.2010)</title><content type='html'>In case you want a working Config for VIM, download it &lt;a href="http://app2search.com/.vimrc"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Or you can copy and past the following into ~/.vimrc&lt;br /&gt;&lt;br /&gt;It supports syntax, unlimited yank buffer size (default is 50 lines which is annoying), press space to page down just like a web browser. I will keep updating this file&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;" .vimrc by Junxian&lt;br /&gt;" Version 11.11.2010&lt;br /&gt;"&lt;br /&gt;" All system-wide defaults are set in $VIMRUNTIME/debian.vim (usually just&lt;br /&gt;" /usr/share/vim/vimcurrent/debian.vim) and sourced by the call to :runtime&lt;br /&gt;" you can find below.  If you wish to change any of those settings, you should&lt;br /&gt;" do it in this file (/etc/vim/vimrc), since debian.vim will be overwritten&lt;br /&gt;" everytime an upgrade of the vim packages is performed.  It is recommended to&lt;br /&gt;" make changes after sourcing debian.vim since it alters the value of the&lt;br /&gt;" 'compatible' option.&lt;br /&gt;&lt;br /&gt;" This line should not be removed as it ensures that various options are&lt;br /&gt;" properly set to work with the Vim-related packages available in Debian.&lt;br /&gt;runtime! debian.vim&lt;br /&gt;&lt;br /&gt;" Uncomment the next line to make Vim more Vi-compatible&lt;br /&gt;" NOTE: debian.vim sets 'nocompatible'.  Setting 'compatible' changes numerous&lt;br /&gt;" options, so any other options should be set AFTER setting 'compatible'.&lt;br /&gt;"set compatible&lt;br /&gt;&lt;br /&gt;" Vim5 and later versions support syntax highlighting. Uncommenting the next&lt;br /&gt;" line enables syntax highlighting by default.&lt;br /&gt;syntax on&lt;br /&gt;&lt;br /&gt;" If using a dark background within the editing area and syntax highlighting&lt;br /&gt;" turn on this option as well&lt;br /&gt;"set background=dark&lt;br /&gt;&lt;br /&gt;" Uncomment the following to have Vim jump to the last position when&lt;br /&gt;" reopening a file&lt;br /&gt;if has("autocmd")&lt;br /&gt;  au BufReadPost * if line("'\"") &gt; 0 &amp;&amp; line("'\"") &lt;= line("$")&lt;br /&gt;    \| exe "normal! g'\"" | endif&lt;br /&gt;endif&lt;br /&gt;&lt;br /&gt;" Uncomment the following to have Vim load indentation rules according to the&lt;br /&gt;" detected filetype. Per default Debian Vim only load filetype specific&lt;br /&gt;" plugins.&lt;br /&gt;if has("autocmd")&lt;br /&gt;  filetype indent on&lt;br /&gt;  set autoindent&lt;br /&gt;endif&lt;br /&gt;&lt;br /&gt;" The following are commented out as they cause vim to behave a lot&lt;br /&gt;" differently from regular Vi. They are highly recommended though.&lt;br /&gt;set showcmd  " Show (partial) command in status line.&lt;br /&gt;set showmatch  " Show matching brackets.&lt;br /&gt;set ignorecase  " Do case insensitive matching&lt;br /&gt;set smartcase  " Do smart case matching&lt;br /&gt;set incsearch  " Incremental search&lt;br /&gt;set autowrite  " Automatically save before commands like :next and :make&lt;br /&gt;set hidden             " Hide buffers when they are abandoned&lt;br /&gt;"set mouse=a  " Enable mouse usage (all modes) in terminals&lt;br /&gt;&lt;br /&gt;" Source a global configuration file if available&lt;br /&gt;" XXX Deprecated, please move your changes here in /etc/vim/vimrc&lt;br /&gt;if filereadable("/etc/vim/vimrc.local")&lt;br /&gt;  source /etc/vim/vimrc.local&lt;br /&gt;endif&lt;br /&gt;&lt;br /&gt;" Turn on line numbering. Turn it off with "set nonu" &lt;br /&gt;set number&lt;br /&gt;&lt;br /&gt;"all PHP files in current file's directory and recursively will be scanned&lt;br /&gt;"use mapping to re-build tags files after editing&lt;br /&gt;nmap &lt;silent&gt; &lt;F4&gt;&lt;br /&gt; \ :!ctags -f %:p:h/tags&lt;br /&gt; \ --langmap="php:+.inc"&lt;br /&gt; \ -h ".php.inc" -R --totals=yes&lt;br /&gt; \ --tag-relative=yes --PHP-kinds=+cf-v %:p:h&lt;CR&gt;&lt;br /&gt;set tags=./tags,tags&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;"Tell me where I am&lt;br /&gt;set ruler&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;" Higlhight search&lt;br /&gt;set hls&lt;br /&gt;" Map Ctrl+N to remove highlight&lt;br /&gt;nmap &lt;silent&gt; &lt;C-N&gt; :silent noh&lt;CR&gt;&lt;br /&gt;&lt;br /&gt;" make that backspace key work the way it should&lt;br /&gt;set backspace=indent,eol,start&lt;br /&gt;&lt;br /&gt;" make space = page down&lt;br /&gt;nmap &lt;Space&gt; &lt;PageDown&gt;&lt;br /&gt;&lt;br /&gt;" remove the buffer limit when dong yank to copy and past in VIM&lt;br /&gt;set viminfo='100,h&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-7467763526430004545?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/7467763526430004545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=7467763526430004545' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/7467763526430004545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/7467763526430004545'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2010/11/config-file-for-vim-cheating-file.html' title='Config file for VIM Cheating file (Version 11.11.2010)'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-4279306554663911905</id><published>2010-09-16T22:00:00.000-04:00</published><updated>2010-09-16T22:01:58.912-04:00</updated><title type='text'>How to add multiple Icons for iPhone/iPad/iPhone 4 with different resolutions?</title><content type='html'>&lt;a href="http://useyourloaf.com/blog/2010/8/4/application-icon-troubles.html"&gt;This post&lt;/a&gt; pretty much solves the problem completely.&lt;br /&gt;&lt;br /&gt;I haven't tried myself, but it looks promising.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-4279306554663911905?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/4279306554663911905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=4279306554663911905' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/4279306554663911905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/4279306554663911905'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2010/09/how-to-add-multiple-icons-for.html' title='How to add multiple Icons for iPhone/iPad/iPhone 4 with different resolutions?'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-1457026994096752502</id><published>2010-05-10T23:13:00.002-04:00</published><updated>2010-05-11T00:59:40.707-04:00</updated><title type='text'>Mac OS 10.6 Snow Leopard problem after installing MacPorts</title><content type='html'>ps2pdf14 paper.ps paper.pdf&lt;br /&gt;dyld: Library not loaded: /opt/local/lib/libX11.6.dylib&lt;br /&gt;  Referenced from: /opt/local/bin/gs&lt;br /&gt;  Reason: no suitable image found.  Did find:&lt;br /&gt; /opt/local/lib/libX11.6.dylib: mach-o, but wrong architecture&lt;br /&gt;make: *** [paper.pdf] Trace/BPT trap&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So you need to copy  all libs from  /usr/X11R6/lib/ to  /opt/local/lib/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-1457026994096752502?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/1457026994096752502/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=1457026994096752502' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/1457026994096752502'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/1457026994096752502'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2010/05/mac-os-106-snow-leopard-problem-after.html' title='Mac OS 10.6 Snow Leopard problem after installing MacPorts'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-3445284699619584311</id><published>2010-03-28T22:35:00.002-04:00</published><updated>2010-03-28T22:40:24.599-04:00</updated><title type='text'>How to jailbreak iPod Touch 3.1.3 with MAC OS X</title><content type='html'>First, degrade you iPod to 3.1.2 because 3.1.3 is not well-supported by iPhone's hackers' community.&lt;br /&gt;For iPod 2G, you need "iPod2,1_3.1.2_7D11_Restore.ipsw"&lt;br /&gt;It can be downloaded by searching the file name.&lt;br /&gt;&lt;br /&gt;Then follow the steps here&lt;br /&gt;http://tysiphonehelp.com/?p=482&lt;br /&gt;&lt;br /&gt;Very simple and I just tried, it works&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-3445284699619584311?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/3445284699619584311/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=3445284699619584311' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/3445284699619584311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/3445284699619584311'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2010/03/how-to-jailbreak-ipod-touch-313-with.html' title='How to jailbreak iPod Touch 3.1.3 with MAC OS X'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-1949517678078916272</id><published>2010-02-22T23:16:00.003-05:00</published><updated>2010-02-22T23:25:12.480-05:00</updated><title type='text'>How to read crash log file for iPhone OS</title><content type='html'>Search in your "spotlight" for : symbolicatecrash&lt;br /&gt;Or you can download it &lt;a href="http://www.eecs.umich.edu/~hjx/symbolicatecrash"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Run:&lt;br /&gt;&lt;br /&gt;./symbolicatecrash log.crash test.app.dSYM&lt;br /&gt;&lt;br /&gt;The output will transform the memory address to line number and file name.&lt;br /&gt;&lt;br /&gt;This will help you a lot in debugging iPhone's Apps, especially when the crash log is from Apple App Review Team (who sucks!!).&lt;br /&gt;&lt;br /&gt;Before symbolication, the crash log is like:&lt;br /&gt;&lt;br /&gt;"&lt;br /&gt;Version:         ??? (???)&lt;br /&gt;Code Type:       ARM (Native)&lt;br /&gt;Parent Process:  launchd [1]&lt;br /&gt;&lt;br /&gt;Date/Time:       2010-02-22 22:07:41.175 -0500&lt;br /&gt;OS Version:      iPhone OS 3.1.3 (7E18)&lt;br /&gt;Report Version:  104&lt;br /&gt;&lt;br /&gt;Exception Type:  EXC_CRASH (SIGABRT)&lt;br /&gt;Exception Codes: 0x00000000, 0x00000000&lt;br /&gt;Crashed Thread:  0&lt;br /&gt;&lt;br /&gt;Thread 0 Crashed:&lt;br /&gt;0   libSystem.B.dylib              0x33994b2c 0x33904000 + 592684&lt;br /&gt;1   libSystem.B.dylib              0x33994b1a 0x33904000 + 592666&lt;br /&gt;2   libSystem.B.dylib              0x33994b0e 0x33904000 + 592654&lt;br /&gt;3   libSystem.B.dylib              0x339abe34 0x33904000 + 687668&lt;br /&gt;4   libstdc++.6.dylib              0x30800390 0x3079a000 + 418704&lt;br /&gt;5   libobjc.A.dylib                0x3336e898 0x33366000 + 34968&lt;br /&gt;6   libstdc++.6.dylib              0x307fda84 0x3079a000 + 408196&lt;br /&gt;7   libstdc++.6.dylib              0x307fdafc 0x3079a000 + 408316&lt;br /&gt;8   libstdc++.6.dylib              0x307fdc24 0x3079a000 + 408612&lt;br /&gt;9   libobjc.A.dylib                0x3336ce54 0x33366000 + 28244&lt;br /&gt;10  CoreFoundation                 0x3387db2c 0x33857000 + 158508&lt;br /&gt;11  CoreFoundation                 0x3387dacc 0x33857000 + 158412&lt;br /&gt;12  Foundation                     0x32e9970a 0x32e78000 + 136970&lt;br /&gt;13  Foundation                     0x32ebf520 0x32e78000 + 292128&lt;br /&gt;14  Show Off                       0x00002caa -[AppDelegate applicationDidFinishLaunching:] (AppDelegate.m:164)&lt;br /&gt;15  UIKit                          0x32003e88 0x31fff000 + 20104&lt;br /&gt;16  UIKit                          0x32003a60 0x31fff000 + 19040&lt;br /&gt;17  UIKit                          0x32054df8 0x31fff000 + 351736&lt;br /&gt;18  UIKit                          0x32054634 0x31fff000 + 349748&lt;br /&gt;19  UIKit                          0x3205408c 0x31fff000 + 348300&lt;br /&gt;20  GraphicsServices               0x3434f7dc 0x3434a000 + 22492&lt;br /&gt;21  CoreFoundation                 0x338ae524 0x33857000 + 357668&lt;br /&gt;22  CoreFoundation                 0x338adc18 0x33857000 + 355352&lt;br /&gt;23  UIKit                          0x32002c00 0x31fff000 + 15360&lt;br /&gt;24  UIKit                          0x32001228 0x31fff000 + 8744&lt;br /&gt;25  Show Off                       0x000027a0 main (main.m:7)&lt;br /&gt;26  Show Off                       0x0000273c start + 44&lt;br /&gt;&lt;br /&gt;"&lt;br /&gt;&lt;br /&gt;After transformation, it looks like:&lt;br /&gt;"&lt;br /&gt;Version:         ??? (???)&lt;br /&gt;Code Type:       ARM (Native)&lt;br /&gt;Parent Process:  launchd [1]&lt;br /&gt;&lt;br /&gt;Date/Time:       2010-02-22 14:27:43.947 -0800&lt;br /&gt;OS Version:      iPhone OS 3.1.3 (7E18)&lt;br /&gt;Report Version:  104&lt;br /&gt;&lt;br /&gt;Exception Type:  EXC_CRASH (SIGABRT)&lt;br /&gt;Exception Codes: 0x00000000, 0x00000000&lt;br /&gt;Crashed Thread:  0&lt;br /&gt;&lt;br /&gt;Thread 0 Crashed:&lt;br /&gt;0   libSystem.B.dylib              0x33994b2c 0x33904000 + 592684&lt;br /&gt;1   libSystem.B.dylib              0x33994b1a 0x33904000 + 592666&lt;br /&gt;2   libSystem.B.dylib              0x33994b0e 0x33904000 + 592654&lt;br /&gt;3   libSystem.B.dylib              0x339abe34 0x33904000 + 687668&lt;br /&gt;4   libstdc++.6.dylib              0x30800390 0x3079a000 + 418704&lt;br /&gt;5   libobjc.A.dylib                0x3336e898 0x33366000 + 34968&lt;br /&gt;6   libstdc++.6.dylib              0x307fda84 0x3079a000 + 408196&lt;br /&gt;7   libstdc++.6.dylib              0x307fdafc 0x3079a000 + 408316&lt;br /&gt;8   libstdc++.6.dylib              0x307fdc24 0x3079a000 + 408612&lt;br /&gt;9   libobjc.A.dylib                0x3336ce54 0x33366000 + 28244&lt;br /&gt;10  CoreFoundation                 0x338ecbf6 0x33857000 + 613366&lt;br /&gt;11  CoreFoundation                 0x33871b12 0x33857000 + 109330&lt;br /&gt;12  CoreFoundation                 0x33868838 0x33857000 + 71736&lt;br /&gt;13  test                     0x0001a4ce -[TTViewController shouldAutorotateToInterfaceOrientation:] (TTViewController.m:197)&lt;br /&gt;14  UIKit                          0x32085988 0x31fff000 + 551304&lt;br /&gt;15  UIKit                          0x320efe38 0x31fff000 + 986680&lt;br /&gt;16  UIKit                          0x320b439c 0x31fff000 + 742300&lt;br /&gt;17  test                     0x000155be -[TTTableViewController initWithStyle:] (TTTableViewController.m:128)&lt;br /&gt;18  test                     0x0001458e -[TTTableViewController init] (TTTableViewController.m:135)&lt;br /&gt;19  test                     0x0000343e -[CatalogController init] (CatalogController.m:11)&lt;br /&gt;20  test                     0x0003f1fc -[TTURLNavigatorPattern createObjectFromURL:query:] (TTURLPattern.m:747)&lt;br /&gt;21  test                     0x0003dc9e -[TTURLMap objectForURL:query:pattern:] (TTURLMap.m:304)&lt;br /&gt;22  test                    0x000426c4 -[TTNavigator viewControllerForURL:query:pattern:] (TTNavigator.m:478)&lt;br /&gt;23  test                     0x0004291c -[TTNavigator openURL:parent:query:state:animated:transition:withDelay:] (TTNavigator.m:238)&lt;br /&gt;24  test                     0x00041d12 -[TTNavigator openURL:animated:] (TTNavigator.m:390)&lt;br /&gt;25  test                     0x00002d66 -[AppDelegate applicationDidFinishLaunching:] (AppDelegate.m:133)&lt;br /&gt;26  UIKit                          0x32003e88 0x31fff000 + 20104&lt;br /&gt;27  UIKit                          0x32003a60 0x31fff000 + 19040&lt;br /&gt;28  UIKit                          0x32054df8 0x31fff000 + 351736&lt;br /&gt;29  UIKit                          0x32054634 0x31fff000 + 349748&lt;br /&gt;30  UIKit                          0x3205408c 0x31fff000 + 348300&lt;br /&gt;31  GraphicsServices               0x3434f7dc 0x3434a000 + 22492&lt;br /&gt;32  CoreFoundation                 0x338ae524 0x33857000 + 357668&lt;br /&gt;33  CoreFoundation                 0x338adc18 0x33857000 + 355352&lt;br /&gt;34  UIKit                          0x32002c00 0x31fff000 + 15360&lt;br /&gt;35  UIKit                          0x32001228 0x31fff000 + 8744&lt;br /&gt;36  test                     0x00002968 main (main.m:7)&lt;br /&gt;37  test                     0x00002924 start + 44&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/1228707902785326925-1949517678078916272?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/1949517678078916272/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=1949517678078916272' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/1949517678078916272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/1949517678078916272'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2010/02/how-to-read-crash-log-file-for-iphone.html' title='How to read crash log file for iPhone OS'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-3325126065055819314</id><published>2010-02-13T04:14:00.002-05:00</published><updated>2010-02-13T04:15:31.247-05:00</updated><title type='text'>How to extract MP3 audio file out of an FLV file in MAC OS X</title><content type='html'>&lt;a href="http://translate.google.com/translate?prev=_t&amp;hl=en&amp;ie=UTF-8&amp;u=http://www.fraction.jp/log/archives/2008/01/18/FLVMP3Extractor&amp;sl=ja&amp;tl=en&amp;history_state0="&gt;http://translate.google.com/translate?prev=_t&amp;hl=en&amp;ie=UTF-8&amp;u=http://www.fraction.jp/log/archives/2008/01/18/FLVMP3Extractor&amp;sl=ja&amp;tl=en&amp;history_state0=&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Just try this iExtractor.&lt;br /&gt;&lt;br /&gt;Extremely nice and FREE&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-3325126065055819314?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/3325126065055819314/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=3325126065055819314' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/3325126065055819314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/3325126065055819314'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2010/02/how-to-extract-mp3-audio-file-out-of.html' title='How to extract MP3 audio file out of an FLV file in MAC OS X'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-4261656412550046096</id><published>2009-12-31T19:00:00.004-05:00</published><updated>2009-12-31T19:06:09.665-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='push notification'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone sdk'/><title type='text'>iPhone 3.0 Push notification sample code &amp; tutorial</title><content type='html'>I found the following two links quite helpful for me when developing iPhone Application using push notifications.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://iphonesdkdev.blogspot.com/2009/04/apns-client-development-certificate.html"&gt;http://iphonesdkdev.blogspot.com/2009/04/apns-client-development-certificate.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;and&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.boxedice.com/2009/07/10/how-to-build-an-apple-push-notification-provider-server-tutorial"&gt;http://blog.boxedice.com/2009/07/10/how-to-build-an-apple-push-notification-provider-server-tutorial&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I also met with the following ERRORS:&lt;br /&gt;&lt;br /&gt;Error in registration. Error: Error Domain=NSCocoaErrorDomain Code=3000 UserInfo=0x2910d0 "未找到应用程序的“aps-environment”的权利字符串"&lt;br /&gt;&lt;br /&gt;Interestingly,  I solved the problem with this post "I got the solution, when you have configured your AppID for Push notification, then recreate a new provisioning file with this AppID and install it on the Xcode Organiser, this has worked for me ." from the following link:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://blog.werdn.us/2009/07/iphone-os-and-entitlements/"&gt;http://blog.werdn.us/2009/07/iphone-os-and-entitlements/&lt;/a&gt;&lt;/div&gt;&lt;meta charset="utf-8"&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-4261656412550046096?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/4261656412550046096/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=4261656412550046096' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/4261656412550046096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/4261656412550046096'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2009/12/iphone-30-push-notification-sample-code.html' title='iPhone 3.0 Push notification sample code &amp; tutorial'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-6267014146190871892</id><published>2009-12-27T01:21:00.003-05:00</published><updated>2009-12-27T01:23:13.798-05:00</updated><title type='text'>Some thoughts for building my dream</title><content type='html'>I should imagine more than what I can do now. And much more.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The ultimate goal should be big enough that you will try to fulfill it with my whole life&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-6267014146190871892?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/6267014146190871892/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=6267014146190871892' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/6267014146190871892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/6267014146190871892'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2009/12/some-thoughts-for-building-my-dream.html' title='Some thoughts for building my dream'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-3892372682623445287</id><published>2009-11-24T05:38:00.003-05:00</published><updated>2009-11-28T20:23:48.353-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dns'/><category scheme='http://www.blogger.com/atom/ns#' term='att'/><category scheme='http://www.blogger.com/atom/ns#' term='tmobile'/><category scheme='http://www.blogger.com/atom/ns#' term='lookup'/><category scheme='http://www.blogger.com/atom/ns#' term='verizon'/><category scheme='http://www.blogger.com/atom/ns#' term='sprint'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>Slow DNS lookup for T-Mobile and AT&amp;T</title><content type='html'>Based on our study, iPhone/AT&amp;amp;T and G2/T-Mobile is really slow for DNS lookup.&lt;div&gt;But Samsung/Verizon and Palm/Sprint are better.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Times; font-size: medium; color: rgb(255, 255, 255); "&gt;BbUAYORaXy892uDS11xu&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-3892372682623445287?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/3892372682623445287/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=3892372682623445287' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/3892372682623445287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/3892372682623445287'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2009/11/slow-dns-lookup-for-t-mobile-and-at.html' title='Slow DNS lookup for T-Mobile and AT&amp;T'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-5167416484952258750</id><published>2009-11-11T22:51:00.003-05:00</published><updated>2009-11-11T22:54:14.043-05:00</updated><title type='text'>Comparison between Admob and Adsense: which is more profitable?</title><content type='html'>Admob is a very good publisher's tool for iPhone's applications.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Based on my experience, for the same page views, such as 1000 page views,&lt;/div&gt;&lt;div&gt;admob can earn more than adsense.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Why?&lt;/div&gt;&lt;div&gt;I guess this is because the screen size of iPhone/iPod is smaller than an computer.&lt;/div&gt;&lt;div&gt;Also mouse allows users to click more accurately than touchpads.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-5167416484952258750?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/5167416484952258750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=5167416484952258750' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/5167416484952258750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/5167416484952258750'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2009/11/comparison-between-admob-and-adsense.html' title='Comparison between Admob and Adsense: which is more profitable?'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-7842788249001943400</id><published>2009-11-11T22:45:00.003-05:00</published><updated>2009-11-11T22:49:33.432-05:00</updated><title type='text'>iPhone APP using three20 library is rejected</title><content type='html'>&lt;div&gt;I used three20 to develop an iPhone image gallary application&lt;/div&gt;&lt;div&gt;And here comes the nightmare:&lt;/div&gt;&lt;div&gt;"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  border-collapse: collapse; font-family:arial, sans-serif;font-size:13px;"&gt;Please include the line below in follow-up emails for this request.&lt;br /&gt;&lt;br /&gt;Follow-up:  xxxxx&lt;br /&gt;&lt;br /&gt;Dear XXXXXXX,&lt;br /&gt;&lt;br /&gt;Thank you for submitting XXXXX to the App Store.  Unfortunately it cannot be added to the App Store because it is using a private API.  Use of non-public APIs, which as outlined in the iPhone Developer Program License Agreement section 3.3.1 is prohibited:.&lt;br /&gt;&lt;br /&gt;"3.3.1 Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs."&lt;br /&gt;&lt;br /&gt;The non-public APIs that are included in your application are the following undocumented, private UITouch instance variables:&lt;br /&gt;&lt;br /&gt;UITouch._locationInWindow&lt;br /&gt;UITouch._phase&lt;br /&gt;UITouch._&lt;wbr&gt;previousLocationInWindow&lt;br /&gt;UITouch._tapCount&lt;br /&gt;UITouch._timestamp&lt;br /&gt;UITouch._touchFlags&lt;br /&gt;UITouch._view&lt;br /&gt;UITouch._window&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;&lt;span style="color:#888888;"&gt;&lt;br /&gt;iPhone Developer Program&lt;br /&gt;****************************&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;"&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Check the apple store safe three20 here.&lt;/div&gt;&lt;div&gt;Only slight modifications.&lt;/div&gt;&lt;div&gt;But I don't know whether it will be approved by apple or not.&lt;/div&gt;&lt;div&gt;I already resubmitted two days ago.&lt;/div&gt;&lt;div&gt;Let's see&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://github.com/uprise78/three20-P31/commits/master/"&gt;http://github.com/uprise78/three20-P31/commits/master/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-7842788249001943400?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/7842788249001943400/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=7842788249001943400' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/7842788249001943400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/7842788249001943400'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2009/11/iphone-app-using-three20-library-is.html' title='iPhone APP using three20 library is rejected'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-1871532030530717729</id><published>2009-11-05T01:38:00.007-05:00</published><updated>2009-11-05T01:53:23.459-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='app store'/><category scheme='http://www.blogger.com/atom/ns#' term='approve'/><category scheme='http://www.blogger.com/atom/ns#' term='in review'/><category scheme='http://www.blogger.com/atom/ns#' term='wait'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>How long does it take Apple App Store to approve an application for iPhone?</title><content type='html'>&lt;div&gt;Is your application submitted to Apple still "in review" or "waiting for review"?&lt;/div&gt;&lt;div&gt;Personally, I don't know the difference between these two terms, however,&lt;/div&gt;&lt;div&gt;one of my application submitted to Apple App Store for iPhone is "in review", while the other is "waiting for review". Maybe I can assume the one "in review" is being reviewed? Unfortunately, it has been reviewed for at least a week. It really doesn't make any difference to me between "in review" and "waiting for review".&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;My first application &lt;a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=327015685&amp;amp;mt=8&amp;amp;s=143441"&gt;3GTest&lt;/a&gt; took Apple 2 weeks to find a small bug and reject it.&lt;div&gt;I fixed the bug in five minutes and waited another 1 week before Apple found another bug inside.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Finally, 5 weeks after I submitted the application and fixed two lines of code, I received a call from Apple telling me that the application is approved as if I have won a big prize.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The most recent statistics shows that 75% of submitted applications are approved within 2 weeks.&lt;/div&gt;&lt;div&gt;This percentage is about 82% two weeks ago, and about 95% 1 month ago.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So what the hell is wrong with Apple?&lt;/div&gt;&lt;div&gt;We knew that iPhone / iPod touch is really popular and there are many many applications submitted everyday. But given that these applications also help u earn so many bucks and help u sell so many phones and ipods, why can't u just hire more people to review the applications?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After weeks' waiting, I even can't remember what my application looks like.&lt;/div&gt;&lt;div&gt;But one good thing is that, it's quite possible, one day, walking with the help of a stick, I will receive a call from Apple telling me that "congratulations, sir, your application is approved!". I will suddenly realize that "Holyshit, I have ever created an iPhone application in objective-c, I'm so proud of myself when I was young decades ago"&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-1871532030530717729?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/1871532030530717729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=1871532030530717729' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/1871532030530717729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/1871532030530717729'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2009/11/how-long-does-it-take-apple-app-store.html' title='How long does it take Apple App Store to approve an application for iPhone?'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-1352602904595053563</id><published>2009-10-10T15:29:00.003-04:00</published><updated>2009-10-10T15:32:13.948-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RMB'/><category scheme='http://www.blogger.com/atom/ns#' term='Dollar'/><category scheme='http://www.blogger.com/atom/ns#' term='currency'/><title type='text'>US Dollar VS. CHINA Yuan RMB changes over time</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://ichart.finance.yahoo.com/5y?usdcny=x"&gt;&lt;br /&gt;&lt;img style="text-align: left;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 512px; height: 288px; " src="http://ichart.finance.yahoo.com/5y?usdcny=x" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;Current currency, &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  border-collapse: collapse; font-family:Arial, Helvetica, sans-serif;font-size:12px;"&gt;&lt;table width="100%" border="0" align="center" cellpadding="1" cellspacing="0" class="XEtbl_sub"  style="border-collapse: collapse;  background-color: rgb(255, 255, 255); font-size:12px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td height="40" colspan="3" align="center" class="XEenlarge"  style=" ;font-family:Arial, Helvetica, sans-serif;"&gt;&lt;span class="XEsmall"  style=" color: rgb(102, 102, 102); font-size:11px;"&gt;Live rates at 2009.10.10 19:29:18 UTC&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="45%" align="right" class="XEenlarge" style="font-family: Arial, Helvetica, sans-serif; "&gt;&lt;h2 class="XE" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-size: 19px; font-weight: bold; font-family: arial, sans-serif; "&gt;100.00 USD&lt;/h2&gt;&lt;/td&gt;&lt;td valign="top" align="center" class="XEenlarge" style="font-family: Arial, Helvetica, sans-serif; "&gt;&lt;h2 class="XE" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-size: 19px; font-weight: bold; font-family: arial, sans-serif; "&gt;=&lt;/h2&gt;&lt;/td&gt;&lt;td width="45%" align="left" class="XEenlarge" style="font-family: Arial, Helvetica, sans-serif; "&gt;&lt;h2 class="XE" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-size: 19px; font-weight: bold; font-family: arial, sans-serif; "&gt;682.655 CNY&lt;/h2&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="right" class="XEenlarge"  style=" ;font-family:Arial, Helvetica, sans-serif;"&gt;United States Dollars&lt;/td&gt;&lt;td valign="top" align="center" class="XEenlarge" style="font-family: Arial, Helvetica, sans-serif; "&gt; &lt;/td&gt;&lt;td align="left" class="XEenlarge"  style=" ;font-family:Arial, Helvetica, sans-serif;"&gt;China Yuan Renminbi&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="right" class="XEenlarge" face="Arial, Helvetica, sans-serif" style=" "&gt;&lt;span class="XEsmall"  style=" color: rgb(102, 102, 102); font-size:11px;"&gt;1 USD = 6.82655 CNY&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" align="center" class="XEenlarge" style="font-family: Arial, Helvetica, sans-serif; "&gt; &lt;/td&gt;&lt;td align="left" class="XEenlarge" face="Arial, Helvetica, sans-serif" style=" "&gt;&lt;span class="XEsmall"  style=" color: rgb(102, 102, 102); font-size:11px;"&gt;1 CNY = 0.146487 USD&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-1352602904595053563?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/1352602904595053563/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=1352602904595053563' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/1352602904595053563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/1352602904595053563'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2009/10/us-dollar-vs-china-yuan-rmb-changes.html' title='US Dollar VS. CHINA Yuan RMB changes over time'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-2112974543854927671</id><published>2009-09-25T19:13:00.001-04:00</published><updated>2009-09-25T19:13:19.485-04:00</updated><title type='text'>Smartphone 3G Test (3GTest)</title><content type='html'>&lt;a href=http://shar.es/1tk1d&gt;Smartphone 3G Test (3GTest)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Posted using &lt;a href="http://sharethis.com"&gt;ShareThis&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-2112974543854927671?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/2112974543854927671/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=2112974543854927671' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/2112974543854927671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/2112974543854927671'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2009/09/smartphone-3g-test-3gtest.html' title='Smartphone 3G Test (3GTest)'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-6647278099388807691</id><published>2009-09-22T01:35:00.003-04:00</published><updated>2009-09-22T01:56:55.961-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='3g test'/><title type='text'>iPhone 3G Test (3GTest) Free Application Released</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.eecs.umich.edu/3gtest/iphone/1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 480px;" src="http://www.eecs.umich.edu/3gtest/iphone/1.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;Visit the following link in you iPhone or iPod Touch&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=327015685&amp;amp;mt=8&amp;amp;s=143441"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;Install Now&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;Support website&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;&lt;a href="http://www.eecs.umich.edu/3gtest"&gt;http://www.eecs.umich.edu/3gtest&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;Install URL&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;&lt;a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=327015685&amp;amp;mt=8"&gt;http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=327015685&amp;amp;mt=8&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande', serif;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande', serif;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;Introduction:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;Want to score the 3G network of your iPhone and compare the scores with your friends? 3G Test is definitely your best choice!  3G Test is a professional and useful utility in your 3G networks (but it also works for WiFi and EDGE networks).  We support iPhone / iPod (any versions), and other mobile platforms. With 3G Test, you can compare 3G network conditions even with your friends who are not using iPhone, but any other smartphone device!  Using this tool, you will have a good knowledge of your smartphone's 3G network properties, such as local / global / gateway IP addresses, upload / download bandwidth (kbps), signal strength, DNS lookup latency (ms), PING latencies (ms), TCP connection establishment latencies (ms), HTTP benchmark downloading latencies (ms), and much more. You can also easily diagnose any network problems.  All the results are refreshed each time you run our tool, so we encourage you to run it at different time and different locations, in this way, you can compare the scores of your 3G network at different times of day and at different locations.  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande', serif;"&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap;font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;------------------------------------  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande', serif;"&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap;font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;The only information that we use is your device's location information, the unique device ID and area code of your phone number. We will only use these information for aggregate analysis. No personal information will be collected or used. All the other information we collect is obtained from network measurement.  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande', serif;"&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap;font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;------------------------------------  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande', serif;"&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap;font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;Who are we? We are a group of computer science researchers from the University of Michigan, Ann Arbor.  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande', serif;"&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap;font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;Questions? Suggestions? Feedbacks? &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" white-space: pre-wrap; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;E-Mail: 3gtest@umich.edu&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande', serif;"&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap;font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande', serif;"&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap;font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-6647278099388807691?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/6647278099388807691/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=6647278099388807691' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/6647278099388807691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/6647278099388807691'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2009/09/iphone-3g-test-free-application.html' title='iPhone 3G Test (3GTest) Free Application Released'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-8766562799058513731</id><published>2009-08-29T19:57:00.002-04:00</published><updated>2009-08-29T19:59:52.492-04:00</updated><title type='text'>How to upgrade Java from 1.5 to 1.6 on Mac OS X 10.4+</title><content type='html'>This is really simple.&lt;div&gt;Run the following command &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Step 1: rm /usr/bin/java (if you are concerned, make a copy to backup)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Step 2:&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, FreeSans, Luxi-sans, 'Nimbus Sans L', sans-serif; font-size: 13px; color: rgb(51, 51, 51); line-height: 18px; "&gt;"sudo ln -s /System/Library/Frameworks/JavaVM.framework/Versions/1.6/Commands/java /usr/bin/java"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"    style="font-family:Arial, Helvetica, FreeSans, Luxi-sans, 'Nimbus Sans L', sans-serif;font-size:100%;color:#333333;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"    style="font-family:Arial, Helvetica, FreeSans, Luxi-sans, 'Nimbus Sans L', sans-serif;font-size:100%;color:#333333;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Georgia, serif; font-size: 16px; line-height: normal; "&gt;Before upgrade:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"    style="font-family:Arial, Helvetica, FreeSans, Luxi-sans, 'Nimbus Sans L', sans-serif;font-size:100%;color:#333333;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 18px;"&gt;&lt;div&gt;"java -version"&lt;/div&gt;&lt;div&gt;java version "1.5.0_19"&lt;/div&gt;&lt;div&gt;Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_19-b02-304)&lt;/div&gt;&lt;div&gt;Java HotSpot(TM) Client VM (build 1.5.0_19-137, mixed mode, sharing)&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;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Georgia, serif; font-size: 16px; line-height: normal; "&gt;After upgrade:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"    style="font-family:Georgia, serif;font-size:130%;color:#000000;"&gt;&lt;span class="Apple-style-span" style="font-size: 16px; line-height: normal;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, FreeSans, Luxi-sans, 'Nimbus Sans L', sans-serif; font-size: 13px; color: rgb(51, 51, 51); line-height: 18px; "&gt;"java -version"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;java version "1.6.0_13"&lt;/div&gt;&lt;div&gt;Java(TM) SE Runtime Environment (build 1.6.0_13-b03-211)&lt;/div&gt;&lt;div&gt;Java HotSpot(TM) 64-Bit Server VM (build 11.3-b02-83, mixed mode)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-8766562799058513731?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/8766562799058513731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=8766562799058513731' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/8766562799058513731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/8766562799058513731'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2009/08/how-to-upgrade-java-from-15-to-16-on.html' title='How to upgrade Java from 1.5 to 1.6 on Mac OS X 10.4+'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-2933749240532771128</id><published>2009-07-29T23:34:00.002-04:00</published><updated>2009-07-29T23:37:47.499-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iphone sdk'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone development'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>Helling Apple Application design</title><content type='html'>Ever met this problem when you tried to run your application on your iPhone or iPod Touch device?&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;"&lt;/div&gt;&lt;div&gt;Can’t run “3GTest” on the iPod “Someone's iPod Touch”&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The iPod “Someone's iPod Touch” doesn’t have the provisioning profile with which the application was signed.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Please add the provisioning profile via the Organizer, or check the “Code Signing Identity” build setting.&lt;/div&gt;&lt;div&gt;"&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I added the provisioning profile via the Organizer. However it doesn't work.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;FIX:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. Make a totally new provisioning profile and downloaded into your MAC&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. Double click to install it into your XCode.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3. Install it into your ipod or iphone via Organizer&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;4. Restart XCode&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Everything will just work fine.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-2933749240532771128?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/2933749240532771128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=2933749240532771128' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/2933749240532771128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/2933749240532771128'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2009/07/helling-apple-application-design.html' title='Helling Apple Application design'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-675964476873930821</id><published>2009-07-05T02:54:00.001-04:00</published><updated>2009-07-05T02:54:21.376-04:00</updated><title type='text'>Amazed by twitter</title><content type='html'>Want to do sth with it's api&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-675964476873930821?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/675964476873930821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=675964476873930821' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/675964476873930821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/675964476873930821'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2009/07/amazed-by-twitter.html' title='Amazed by twitter'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-8941069418596810480</id><published>2009-06-15T16:00:00.001-04:00</published><updated>2009-06-15T16:01:46.635-04:00</updated><title type='text'>突然在想</title><content type='html'>什么样的生活才是我所真正追求的呢？&lt;div&gt;是自己眼中的好生活？&lt;/div&gt;&lt;div&gt;抑或是别人眼中的好生活？&lt;/div&gt;&lt;div&gt;抑或是Both？&lt;/div&gt;&lt;div&gt;&lt;br /&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/1228707902785326925-8941069418596810480?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/8941069418596810480/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=8941069418596810480' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/8941069418596810480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/8941069418596810480'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2009/06/blog-post.html' title='突然在想'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-4869116431246762039</id><published>2009-05-30T15:50:00.002-04:00</published><updated>2009-05-30T15:52:35.857-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='鲁宾逊漂流记'/><title type='text'>《鲁宾逊漂流记》摘抄</title><content type='html'>&lt;span class="Apple-style-span"   style="color: rgb(51, 51, 51);   line-height: 21px; font-family:Tahoma;font-size:14px;"&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt;最近突然想读点书，于是翻出《鲁宾逊漂流记》开始读。初中时，读过这本书，后来就一直没看过了。&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt; &lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt;摘一段鲁宾逊刚上荒岛时内心的独白吧，读完很有感触&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt; &lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt;——————————————————————————————&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt; &lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt; &lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;我感到自己前景暗淡。因为，我被凶猛的风暴刮到这荒岛上，远离原定的航线，远离人类正常的贸易航线有数百海里之遥。我想，这完全是出于天意，让我孤苦伶仃，在凄凉中了却余生了。想到这些，我眼泪不禁夺眶而出。有时我不禁犯疑，苍天为什么要这样作践自己所创造的生灵，害得他如此不幸，如此孤立无援，又如此沮丧寂寞呢！在这样的环境中，有什么理由要我们认为生活于我们是一种恩赐呢？&lt;/span&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;可是，每当我这样想的时候，立刻又有另一种思想出现在我的脑海里，并责怪我不应有上述这些念头。特别有一天，当我正带枪在海边漫步时，我思考着自己目前的处境。这时，理智从另一方面劝慰我：&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;"&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;的确，你目前形单影只，孑然一身，这是事实。可是，你不想想，你的那些同伴呢？他们到哪儿去了？你们一同上船时，不是有十一个人吗？那么，其他十个人到哪儿去了呢？为什么他们死了，唯独留下你一个人还活着呢？是在这孤岛上强呢，还是到他们那儿去好呢？&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;"&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;说到去他们那儿时，我用手指了指大海&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;--"&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;他们都已葬身大海了！真是，我怎么不想想祸福相倚和祸不单行的道理呢？&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;"&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;这时，我又想到，我目前所拥有的一切，殷实充裕，足以维持温饱。要是那只大船不从触礁的地方浮起来飘近海岸，并让我有时间从船上把一切有用的东西取下来，那我现在的处境又会怎样呢？要知道，像我现在的这种机遇，真是千载难逢的。假如我现在仍像我初上岸时那样一无所有；既没有任何生活必需品，也没有任何可以制造生活必需品的工具，那我现在的情况又会怎么样呢？&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;"&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;尤其是，&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;"&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;我大声对自己说，&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;"&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;如果我没有枪，没有弹药，没有制造东西的工具，没有衣服穿，没有床睡觉，没有帐篷住，甚至没有任何东西可以遮身，我又该怎么办呢？&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;"&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;可是现在，这些东西我都有，而且相当充足，即使以后弹药用尽了，不用枪我也能活下去。我相信，我这一生决不会受冻挨饿，因为我早就考虑到各种意外，考虑到将来的日子；不但考虑到弹药用尽之后的情况，甚至想到我将来体衰力竭之后的日子。&lt;/span&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt; &lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt; &lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt;————————————————————————————————&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt; &lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt; &lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;我开始认真地考虑自己所处的境遇和环境，并把每天的经历用笔详细地记录下来。我这样做，并不是为了留给后人看，因为我相信，在我之后，不会有多少人上这荒岛来；我这样做，只是为了抒发胸中的心事，每日可以浏览，聊以自慰。现在，我已开始振作起来，不再灰心丧气，因此，我尽量自勉自慰。我把当前的祸福利害一一加以比较，以使自己知足安命。我按照商业簿记的格式，分&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;"&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;借方&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;"&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;和&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;"&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;贷方&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;"&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;，把我的幸运和不幸，好处和坏处公允地排列出来：祸与害：我流落荒岛，摆脱困境已属无望。&lt;/span&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;唯我独存，孤苦伶仃，困苦万状。&lt;/span&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;我与世隔绝，仿佛是一个隐士，一个流放者。&lt;/span&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;我没有衣服穿。&lt;/span&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;我无法抵御人类或野兽的袭击。&lt;/span&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;我没有人可以交谈，也没有人能解救我。&lt;/span&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;福与利：&lt;/span&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;唯我独生，船上同伴皆葬身海底。&lt;/span&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;在全体船员中，我独免一死；上帝既然以其神力救我一命，也必然会救我脱离目前的困境。&lt;/span&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;小岛虽荒凉，但我尚有粮食，不至饿死。&lt;/span&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;我地处热带，即使有衣服也穿不祝&lt;/span&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;在我所流落的孤岛上，没有我在非洲看到的那些猛兽。假如我在非洲沿岸覆舟，那又会怎样呢？&lt;/span&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;但上帝神奇地把船送到海岸附近，使我可以从船上取下许多有用的东西，让我终身受用不荆总而言之，从上述情况看，我目前的悲惨处境在世界上是绝无仅有的。但是，即使在这样的处境中，也祸福相济，有令人值得庆幸之处。我希望世上的人都能从我不幸的遭遇中取得经验和教训。那就是，在万般不幸之中，可以把祸福利害一一加以比较，找出可以聊以自慰的事情，然后可以归入账目的&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;"&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;贷方金额&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;"&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;这一项。&lt;/span&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;现在，我对自己的处境稍感宽慰，就不再对着海面望眼欲穿，希求有什么船只经过了。我说，我已把这些事丢在一边，开始筹划度日之计，并尽可能地改善自己的生活。&lt;/span&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt; &lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt;——————————————————————————————&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt; &lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;九月三十日，我没被淹死，逃上岸来，吐掉了灌进胃里的大量海水，略略苏醒了过来。这时，我非但不感谢上帝的救命之恩，反而在岸上胡乱狂奔，又是扭手，又是打自己的头和脸，大叫大嚷自己的不幸，不断地叫嚷着&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;'&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;我完了，我完了！&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;'&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;直至自己精疲力尽，才不得不倒在地上休息，可又不敢入睡，唯恐被野兽吃掉。&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;"&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;几天之后，甚至在我把船上可以搬动的东西都运上岸之后，我还是每天爬到小山顶上，呆呆地望着海面，希望能看到船只经过。妄想过甚，有时仿佛看到极远处有一片帆影，于是欣喜若狂，以为有了希望；这时，我望眼欲穿，帆影却消失得无影无踪，我便一屁股坐在地上，像小孩似地大哭起来。&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;这种愚蠢的行为，反而增加了我的烦恼。&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt; &lt;/span&gt;&lt;/p&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;这个心烦意乱的阶段多少总算过去了，我把住所和一切家什也都安置妥当。&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-4869116431246762039?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/4869116431246762039/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=4869116431246762039' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/4869116431246762039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/4869116431246762039'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2009/05/blog-post_30.html' title='《鲁宾逊漂流记》摘抄'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-2582453335018938052</id><published>2009-05-20T15:06:00.002-04:00</published><updated>2009-05-20T15:08:19.161-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='校友论坛'/><category scheme='http://www.blogger.com/atom/ns#' term='forum'/><category scheme='http://www.blogger.com/atom/ns#' term='黄石二中'/><title type='text'>黄石二中校友论坛</title><content type='html'>&lt;a href="http://huangshierzhong.com/"&gt;http://huangshierzhong.com&lt;/a&gt;&lt;div&gt;黄石二中校友论坛&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 22.0px; font: 14.0px Verdana; color: #444444"&gt;这个论坛是基于Discuz 7.0.0做的&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 22.0px; font: 14.0px Verdana; color: #444444"&gt;包括两个部分&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 22.0px; font: 14.0px Verdana; color: #444444"&gt;一部分是公共论坛&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 22.0px; font: 14.0px Verdana; color: #409797"&gt;&lt;a href="http://huangshierzhong.com/bbs"&gt;http://huangshierzhong.com/bbs&lt;/a&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 22.0px; font: 14.0px Verdana; color: #444444"&gt;一部分是个人空间，和校内网一样，也可以装各种好玩的应用，写日志，发照片，留言等等&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 22.0px; font: 14.0px Verdana; color: #409797"&gt;&lt;a href="http://huangshierzhong.com/home"&gt;http://huangshierzhong.com/home&lt;/a&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 22.0px; font: 14.0px Verdana; color: #444444; min-height: 17.0px"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 22.0px; font: 14.0px Verdana; color: #444444"&gt;祝愿每一位校友身体健康，万事如意！&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; line-height: 22.0px; font: 14.0px Verdana; color: #444444"&gt;让我们共同祝愿我们的母校欣欣向荣，桃李满园！&lt;/p&gt;&lt;div&gt;&lt;span class="Apple-style-span"    style="font-family:Verdana;font-size:130%;color:#444444;"&gt;&lt;span class="Apple-style-span"  style="font-size:14px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&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/1228707902785326925-2582453335018938052?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/2582453335018938052/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=2582453335018938052' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/2582453335018938052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/2582453335018938052'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2009/05/blog-post.html' title='黄石二中校友论坛'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-6731816915700364682</id><published>2009-03-29T03:08:00.005-04:00</published><updated>2009-03-29T03:22:15.849-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='phpbb'/><category scheme='http://www.blogger.com/atom/ns#' term='SEO'/><category scheme='http://www.blogger.com/atom/ns#' term='dotaart'/><category scheme='http://www.blogger.com/atom/ns#' term='phpbb seo'/><category scheme='http://www.blogger.com/atom/ns#' term='dota-allstars'/><title type='text'>Why google don't index my forum powered by phpbb 3.0.4 www.dotaart.com</title><content type='html'>Tried really hard to solve the dynamic link problem.&lt;div&gt;Finally resolved it with the help of &lt;span class="Apple-style-span"  style="color: rgb(0, 0, 139); line-height: 23px; font-family:'Lucida Grande';"&gt;&lt;a href="http://downloads.phpbb-seo.com/phpbb3-seo-url-10/advanced-phpbb3-seo-mod-rewrite-38.html"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Advanced phpBB3 SEO mod Rewrite&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Don't forget to change you "AllowOverride none" to "AllowOverride ALL" to enable mod_rewrite for your websites. I am stunk at this point for quite a long time ...&lt;/div&gt;&lt;div&gt;For me this is modified at &lt;/div&gt;&lt;div&gt;"/etc/apache2/sites-enabled/000-default" where I configured my virtual hosts.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now &lt;a href="http://www.dotaart.com/"&gt;the forum&lt;/a&gt; looks better.&lt;/div&gt;&lt;div&gt;Originally, the URL look like this, &lt;/div&gt;&lt;div&gt;"&lt;/div&gt;&lt;div&gt;www.dotaart.com/viewforum.php?f=2&lt;/div&gt;&lt;div&gt;"&lt;/div&gt;&lt;div&gt;Now the url looks static like this&lt;/div&gt;&lt;div&gt;"&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.dotaart.com/dota-allstars-logo-art-f2.html"&gt;http://www.dotaart.com/dota-allstars-logo-art-f2.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;"&lt;/div&gt;&lt;div&gt;This is more search engine robot friendly.&lt;/div&gt;&lt;div&gt;Which is considered as part of SEO (Search engine optimization)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;However, I still don't manage to get google crawl my page.&lt;/div&gt;&lt;div&gt;In the web master portal, I can see that google didn't index a single page of my site.&lt;/div&gt;&lt;div&gt;I'm sure this is a problem of duplicate contents, however, really difficult to fix&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But now, &lt;a href="http://www.dotaart.com/"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;www.dotaart.com&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;, a forum to share dota video, images, and musics has more than 2000 clicks from 40 countries in just 2 days. I think it will grow more and more popular in the near future.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-6731816915700364682?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/6731816915700364682/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=6731816915700364682' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/6731816915700364682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/6731816915700364682'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2009/03/why-google-dont-index-my-forum-powered.html' title='Why google don&apos;t index my forum powered by phpbb 3.0.4 www.dotaart.com'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-8265088602144180381</id><published>2009-03-25T15:41:00.002-04:00</published><updated>2009-03-25T15:56:44.248-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gphone'/><category scheme='http://www.blogger.com/atom/ns#' term='tcpdump'/><category scheme='http://www.blogger.com/atom/ns#' term='g1'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Finally tcpdump on GPhone G1 Android</title><content type='html'>&lt;a href="http://nerdjusttyped.blogspot.com/"&gt;Timur&lt;/a&gt; helped me a lot with this.&lt;br /&gt;&lt;br /&gt;Step 1.&lt;br /&gt;You need to get the tcpdump binary from &lt;a href="http://googleftps.com/images/tcpdump-arm"&gt;here&lt;/a&gt; or &lt;a href="http://www.eecs.umich.edu/%7Etimuralp/tcpdump-arm"&gt;here&lt;/a&gt;.&lt;br /&gt;If you want to know where this binary is from, refer to &lt;a href="http://nerdjusttyped.blogspot.com/2009/03/android-binary-solo.html"&gt;Timur's post&lt;/a&gt; about cross-compilation.&lt;br /&gt;If you don't want to bother, just download the tcpdump binary.&lt;br /&gt;&lt;br /&gt;Step 2.&lt;br /&gt;Install Android SDK in your machine.&lt;br /&gt;See &lt;a href="http://developer.android.com/sdk/1.1_r1/installing.html"&gt;here&lt;/a&gt; for details.&lt;br /&gt;They have good support for Windows, Linux and Mac.&lt;br /&gt;&lt;br /&gt;Step 3.&lt;br /&gt;Go to android-sdk-linux_x86-1.1_r1/tools&lt;br /&gt;or xxx/tools depending on which build version of android you are using.&lt;br /&gt;run&lt;br /&gt;"sudo ./adb push ./tcpdump-arm /data/local"&lt;br /&gt;You can push the tcpdump binary from your computer to the phone's directory "/data/local".&lt;br /&gt;According to Timur, we can remount the gphone and make other directory writable to user "shell", however, by default, I only found "/data/local" is writable to user "shell" (maybe wrong, but at least it works)&lt;br /&gt;&lt;br /&gt;Step.&lt;br /&gt;run "sudo ./adb kill-server"&lt;br /&gt;run "sudo ./adb shell"&lt;br /&gt;Now you have logined into Gphone's shell command&lt;br /&gt;&lt;br /&gt;You can see this&lt;br /&gt;"&lt;br /&gt;* daemon not running. starting it now *&lt;br /&gt;* daemon started successfully *&lt;br /&gt;$&lt;br /&gt;"&lt;br /&gt;&lt;br /&gt;Run "su"&lt;br /&gt;You will see&lt;br /&gt;"#" and now you are in root mode.&lt;br /&gt;(Our Gphone is a holiday version which is not for sale.&lt;br /&gt;For normal GPhone, I guessed, you can not enter root mode, hence not be able to run "tcpdump". For GPhone Dev version, you can definitely enter root mode)&lt;br /&gt;&lt;br /&gt;Run&lt;br /&gt;"cd /data/local"&lt;br /&gt;&lt;br /&gt;Run&lt;br /&gt;"chmod 777 tcpdump-arm"&lt;br /&gt;To change the binary executable&lt;br /&gt;&lt;br /&gt;then&lt;br /&gt;run&lt;br /&gt;"./tcpdump-arm"&lt;br /&gt;&lt;br /&gt;If you see&lt;br /&gt;"tcpdump: no suitable device found"&lt;br /&gt;Then it means that you need to be root to run tcpdump.&lt;br /&gt;&lt;br /&gt;Have fun dumping traffic on your GPhone Adroid&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-8265088602144180381?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/8265088602144180381/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=8265088602144180381' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/8265088602144180381'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/8265088602144180381'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2009/03/finally-tcpdump-on-gphone-g1-android.html' title='Finally tcpdump on GPhone G1 Android'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-9036134386522570370</id><published>2009-03-25T15:35:00.002-04:00</published><updated>2009-03-25T15:41:28.137-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='android'/><category scheme='http://www.blogger.com/atom/ns#' term='adb'/><title type='text'>Android SDK adb shell error: device not found</title><content type='html'>Thanks Timur for pointing &lt;a href="http://seanpfeifer.objive.com/2008/12/android-dev-phone-1-opensuse-no-sim.html"&gt;this link&lt;/a&gt; to me.&lt;br /&gt;Really helpful.&lt;br /&gt;&lt;br /&gt;I followed all the steps to install Android SDK on a Ubuntu Linux machine.&lt;br /&gt;I went to the "/android-sdk-linux_x86-1.1_r1/tools" directory and run "adb shell"&lt;br /&gt;it replies,&lt;br /&gt;"&lt;br /&gt;* daemon not running. starting it now *&lt;br /&gt;* daemon started successfully *&lt;br /&gt;error: device not found&lt;br /&gt;"&lt;br /&gt;&lt;br /&gt;The problem is that we need to run everything with root.&lt;br /&gt;So by any chance, if you met the same problem with me, run&lt;br /&gt;&lt;br /&gt;"&lt;br /&gt;&lt;br /&gt;sudo ./adb kill-server&lt;br /&gt;sudo ./adb shell&lt;br /&gt;&lt;br /&gt;"&lt;br /&gt;&lt;br /&gt;Then you can use "sudo ./adb push"  or "sudo ./adb pull" to copy file between a Android Gphone and a computer&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-9036134386522570370?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/9036134386522570370/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=9036134386522570370' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/9036134386522570370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/9036134386522570370'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2009/03/android-sdk-adb-shell-error-device-not.html' title='Android SDK adb shell error: device not found'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-7029919983194410661</id><published>2009-03-12T21:27:00.005-04:00</published><updated>2009-03-12T22:40:01.526-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gnuplot'/><category scheme='http://www.blogger.com/atom/ns#' term='remvoe blank margin'/><title type='text'>GNUPlot: How to remove the blank margin space on the left</title><content type='html'>When you plot a figure using gnuplot, sometimes, there will be an extra blank margin on the left. To make the figure more condense, you can use a bash script to remove the extra blank margin. The basic idea is to adjust the Bounding Box for eps more intelligently.&lt;br /&gt;&lt;br /&gt;Usage:&lt;br /&gt;bash fixbb *.eps&lt;br /&gt;&lt;br /&gt;The original image may look like this&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_nKbM1Pg_HmI/Sbm6RNESXAI/AAAAAAAAAlc/rs37ww4TVj0/s1600-h/old.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 250px;" src="http://2.bp.blogspot.com/_nKbM1Pg_HmI/Sbm6RNESXAI/AAAAAAAAAlc/rs37ww4TVj0/s400/old.png" alt="" id="BLOGGER_PHOTO_ID_5312482040188394498" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The original eps file will be replaced with the adjusted eps file&lt;br /&gt;&lt;br /&gt;The new eps file may look like this.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_nKbM1Pg_HmI/Sbm6esMoh-I/AAAAAAAAAlk/yPVXdTdh9XA/s1600-h/new.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 250px;" src="http://2.bp.blogspot.com/_nKbM1Pg_HmI/Sbm6esMoh-I/AAAAAAAAAlk/yPVXdTdh9XA/s400/new.png" alt="" id="BLOGGER_PHOTO_ID_5312482271883200482" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You can download this script from &lt;a href="http://www.gnuplot.info/scripts/files/fixbb"&gt;here&lt;/a&gt;.&lt;br /&gt;Or, copy the following lines into a file named "fixbb" or something else whatever you like.&lt;br /&gt;&lt;br /&gt;You can also copy this file (Assume you are using Linux)&lt;br /&gt;to /usr/local/bin&lt;br /&gt;and run "sudo chmod +x /usr/local/bin/fixbb"&lt;br /&gt;Then in your terminal, you can directly run&lt;br /&gt;"fixbb *.eps"&lt;br /&gt;&lt;br /&gt;This script helps us a lot for our paper.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;# This is fixbb version 0.31.  Copyright 2000 by Jeff Spirko.&lt;br /&gt;# Redistributable under the GNU General Public License.&lt;br /&gt;# See http://topquark.dhs.org/~spirko/fixbb/&lt;br /&gt;&lt;br /&gt;# Changes by Petr Mikulik:&lt;br /&gt;#   -  8.  9. 2000: working file in the $TMP directory; remove backup file&lt;br /&gt;#   - 18. 10. 2000: AWKPARSEBB to support multiple-page (non-EPS) documents&lt;br /&gt;#   - 26. 10. 2000: error if bounding box not determined (GS &lt; gsopts="-dQUIET -dBATCH -dNOPAUSE -sDEVICE=bbox" awkprog="'{" 1 ="=" awkprog="'" 1 ="=" found="1;" awkparsebb="'" x1="99999;" y1="99999;" x2="0;" y2="0;" page="0"&gt;$2 { x1=$2 }&lt;br /&gt;y1&gt;$3 { y1=$3 }&lt;br /&gt;x2&lt;$4 { x2=$4 }  y2&lt;$5 { y2=$5 }  { page++; printf "Page " page ": " $0 "  max = " x1 " " y1 " " x2 " " y2  "  \t\r" &gt;"/dev/stderr" }&lt;br /&gt;END { printf "\t\t\t\t\t\t\t\r" &gt;"/dev/stderr"&lt;br /&gt;   print x1 " " y1 " " x2 " " y2 }&lt;br /&gt;'&lt;br /&gt;&lt;br /&gt;export bbox&lt;br /&gt;&lt;br /&gt;# Each command-line argument is assumed to be a file to process&lt;br /&gt;for FILE in $* ; do&lt;br /&gt;&lt;br /&gt;#  BAK=${FILE}~&lt;br /&gt;#  if [ "$TMP" = "" ]; then TMP="."; fi; BAK=$TMP\fixbb__.ps&lt;br /&gt;BAK='fixbb$$.ps'&lt;br /&gt;&lt;br /&gt;# Get the correct BoundingBox from ghostscript.&lt;br /&gt;# Old: bbox=`gs ${GSOPTS} ${FILE} 2&gt;&amp;amp;1 | gsort | head -1 | cut -d\  -f 2-`&lt;br /&gt;bbox=`/usr/bin/gs ${GSOPTS} ${FILE} 2&gt;&amp;amp;1 | awk "$AWKPARSEBB"`&lt;br /&gt;&lt;br /&gt;case $bbox in&lt;br /&gt;"99999 99999 0 0")&lt;br /&gt;echo "Bounding box was NOT determined (empty pages or Ghostscript &gt;= 5.50 required)"&lt;br /&gt;exit ;;&lt;br /&gt;esac&lt;br /&gt;&lt;br /&gt;echo "Bounding box for \""$FILE"\" is: "$bbox&lt;br /&gt;&lt;br /&gt;# Save the old version of the file&lt;br /&gt;mv $FILE $BAK&lt;br /&gt;&lt;br /&gt;# Create the new version, replacing the old BoundingBox&lt;br /&gt;awk "$AWKPROG" $BAK &gt; $FILE&lt;br /&gt;&lt;br /&gt;case `uname` in&lt;br /&gt;"OS/2") dos2unix $FILE ;;&lt;br /&gt;esac&lt;br /&gt;&lt;br /&gt;# delete the backup file&lt;br /&gt;rm -f $BAK&lt;br /&gt;&lt;br /&gt;done&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-7029919983194410661?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/7029919983194410661/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=7029919983194410661' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/7029919983194410661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/7029919983194410661'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2009/03/gnuplot-how-to-remove-blank-margin-on.html' title='GNUPlot: How to remove the blank margin space on the left'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_nKbM1Pg_HmI/Sbm6RNESXAI/AAAAAAAAAlc/rs37ww4TVj0/s72-c/old.png' height='72' width='72'/><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-5378432560684238585</id><published>2009-03-07T19:48:00.002-05:00</published><updated>2009-03-07T19:49:32.778-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><category scheme='http://www.blogger.com/atom/ns#' term='emacs'/><title type='text'>VIM is such an amazing tool!!!</title><content type='html'>Will post something in the future for VIM.&lt;br /&gt;I really love it like crazy.&lt;br /&gt;100 times better than gedit emacs notepad and notepad++ (lol)!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-5378432560684238585?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/5378432560684238585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=5378432560684238585' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/5378432560684238585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/5378432560684238585'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2009/03/vim-is-such-amazing-tool.html' title='VIM is such an amazing tool!!!'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-1975185154732624202</id><published>2009-03-07T19:45:00.003-05:00</published><updated>2009-03-07T19:47:32.575-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='kubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>How to remove Kubuntu and Xubuntu from Ubuntu</title><content type='html'>Remove Kubuntu:&lt;br /&gt;&lt;br /&gt;sudo apt-get remove adept akregator amarok amarok-common amarok-engine-xine apport-qt ark dolphin dragonplayer exiv2 foomatic-db-gutenprint gdebi-kde gnupg-agent gtk-qt-engine guidance-power-manager gwenview hpijs-ppds hplip-gui ijsgutenprint imagemagick install-package jockey-kde k3b k3b-data kaddressbook kamera kate kde-icons-oxygen kde-printer-applet kde-window-manager kde-zeroconf kdebase-bin kdebase-data kdebase-plasma kdebase-runtime kdebase-runtime-bin-kde4 kdebase-runtime-data kdebase-runtime-data-common kdebase-workspace-bin kdebase-workspace-data kdebase-workspace-libs4+5 kdebluetooth kdegraphics-strigi-plugins kdelibs-bin kdelibs-data kdelibs4c2a kdelibs5 kdelibs5-data kdemultimedia-kio-plugins kdepasswd kdepim-kresources kdepim-strigi-plugins kdepim-wizards kdepimlibs-data kdepimlibs5 kdeplasma-addons kdeplasma-addons-data kdeplasma-addons-libs4 kdesudo kdm kfind kgrubeditor khelpcenter4 klipper kmag kmail kmix kmousetool knotes konqueror konqueror-nsplugins konqueror-plugin-searchbar konsole kontact konversation kopete korganizer krdc krfb ksnapshot ksysguard ksysguardd ksystemlog ktimetracker ktorrent kubuntu-artwork-usplash kubuntu-default-settings kubuntu-desktop kubuntu-docs kubuntu-konqueror-shortcuts kuser kvkbd kwalletmanager language-selector-qt libakonadiprivate1 libarts1c2a libartsc0 libaudio2 libavahi-qt3-1 libcapseo0 libcaptury0 libclucene0ldbl libdbus-1-qt3 libdbus-qt-1-1c2 libexiv2-4 libfftw3-3 libflac++6 libgeoip1 libifp4 libk3b3 libkcddb4 libkdecorations4 libkdepim4 libkholidays4 libkipi-common libkipi5 libkleo4 libkonq5 libkonq5-templates libkpgp4 libksieve4 libkwineffects1 liblua50 liblualib50 libmimelib4 libmodplug0c2 libmpcdec3 libmysqlclient15off libnjb5 libofa0 libokularcore1 libphonon4 libplasma2 libpoppler-qt4-3 libpq5 libqca2 libqca2-plugin-ossl libqimageblitz4 libqt3-mt libqt4-assistant libqt4-core libqt4-dbus libqt4-designer libqt4-help libqt4-network libqt4-opengl libqt4-qt3support libqt4-script libqt4-sql libqt4-sql-mysql libqt4-svg libqt4-test libqt4-webkit libqt4-xml libqt4-xmlpatterns libqtcore4 libqtgui4 libraptor1 librasqal0 librdf0 libruby1.8 libsearchclient0 libsoprano4 libstreamanalyzer0 libstreams0 libstrigihtmlgui0 libstrigiqtdbusclient0 libtunepimp5 libvncserver0 libxcb-shape0 libxcb-shm0 libxcb-xv0 libxine1 libxine1-bin libxine1-console libxine1-misc-plugins libxine1-x libxvmc1 libzip1 mediamanager mysql-common network-manager-kde okular okular-extra-backends openoffice.org-kde openoffice.org-style-crystal oxygen-cursor-theme phonon phonon-backend-gstreamer phonon-backend-xine pinentry-gtk2 pinentry-qt4 plasmoid-quickaccess python-kde4 python-qt3 python-qt4 python-qt4-common python-qt4-dbus python-reportlab python-sip4 qt4-qtconfig raptor-utils redland-utils ruby ruby1.8 software-properties-kde soprano-daemon speedcrunch strigi-client strigi-daemon system-config-printer-kde systemsettings ttf-dustin update-manager-kde update-notifier-kde &amp;amp;&amp;amp; sudo apt-get install ubuntu-desktop&lt;br /&gt;&lt;br /&gt;Remove Kubuntu KDE 4&lt;br /&gt;&lt;br /&gt;sudo apt-get remove adept akregator amarok amarok-common amarok-engine-xine apport-qt ark dolphin dragonplayer exiv2 foomatic-db-gutenprint gdebi-kde gnupg-agent gtk-qt-engine guidance-power-manager gwenview hpijs-ppds hplip-gui ijsgutenprint imagemagick install-package jockey-kde k3b k3b-data kaddressbook kamera kate kde-icons-oxygen kde-printer-applet kde-window-manager kde-zeroconf kdebase-bin kdebase-data kdebase-plasma kdebase-runtime kdebase-runtime-bin-kde4 kdebase-runtime-data kdebase-runtime-data-common kdebase-workspace-bin kdebase-workspace-data kdebase-workspace-libs4+5 kdebluetooth kdegraphics-strigi-plugins kdelibs-bin kdelibs-data kdelibs4c2a kdelibs5 kdelibs5-data kdemultimedia-kio-plugins kdepasswd kdepim-kresources kdepim-strigi-plugins kdepim-wizards kdepimlibs-data kdepimlibs5 kdeplasma-addons kdeplasma-addons-data kdeplasma-addons-libs4 kdesudo kdm kfind kgrubeditor khelpcenter4 klipper kmag kmail kmix kmousetool knotes konqueror konqueror-nsplugins konqueror-plugin-searchbar konsole kontact konversation kopete korganizer krdc krfb ksnapshot ksysguard ksysguardd ksystemlog ktimetracker ktorrent kubuntu-artwork-usplash kubuntu-default-settings kubuntu-desktop kubuntu-docs kubuntu-konqueror-shortcuts kuser kvkbd kwalletmanager language-selector-qt libakonadiprivate1 libarts1c2a libartsc0 libaudio2 libavahi-qt3-1 libcapseo0 libcaptury0 libclucene0ldbl libdbus-1-qt3 libdbus-qt-1-1c2 libexiv2-4 libfftw3-3 libflac++6 libgeoip1 libifp4 libk3b3 libkcddb4 libkdecorations4 libkdepim4 libkholidays4 libkipi-common libkipi5 libkleo4 libkonq5 libkonq5-templates libkpgp4 libksieve4 libkwineffects1 liblua50 liblualib50 libmimelib4 libmodplug0c2 libmpcdec3 libmysqlclient15off libnjb5 libofa0 libokularcore1 libphonon4 libplasma2 libpoppler-qt4-3 libpq5 libqca2 libqca2-plugin-ossl libqimageblitz4 libqt3-mt libqt4-assistant libqt4-core libqt4-dbus libqt4-designer libqt4-help libqt4-network libqt4-opengl libqt4-qt3support libqt4-script libqt4-sql libqt4-sql-mysql libqt4-svg libqt4-test libqt4-webkit libqt4-xml libqt4-xmlpatterns libqtcore4 libqtgui4 libraptor1 librasqal0 librdf0 libruby1.8 libsearchclient0 libsoprano4 libstreamanalyzer0 libstreams0 libstrigihtmlgui0 libstrigiqtdbusclient0 libtunepimp5 libvncserver0 libxcb-shape0 libxcb-shm0 libxcb-xv0 libxine1 libxine1-bin libxine1-console libxine1-misc-plugins libxine1-x libxvmc1 libzip1 mediamanager mysql-common network-manager-kde okular okular-extra-backends openoffice.org-kde openoffice.org-style-crystal oxygen-cursor-theme phonon phonon-backend-gstreamer phonon-backend-xine pinentry-gtk2 pinentry-qt4 plasmoid-quickaccess python-kde4 python-qt3 python-qt4 python-qt4-common python-qt4-dbus python-reportlab python-sip4 qt4-qtconfig raptor-utils redland-utils ruby ruby1.8 software-properties-kde soprano-daemon speedcrunch strigi-client strigi-daemon system-config-printer-kde systemsettings ttf-dustin update-manager-kde update-notifier-kde&lt;br /&gt;&lt;br /&gt;Remove Xubuntu&lt;br /&gt;&lt;br /&gt;sudo apt-get remove a2ps abiword abiword-common abiword-help abiword-plugin-grammar abiword-plugin-mathview abiword-plugins aumix catfish cupsys-driver-gutenprint exo-utils gnumeric gnumeric-common gnumeric-gtk gpicview gtk2-engines-xfce imagemagick latex-xft-fonts libaiksaurus-1.2-0c2a libaiksaurus-1.2-data libaiksaurusgtk-1.2-0c2a libdiscid0 libexo-0.3-0 libfftw3-3 libgda3-3 libgda3-bin libgda3-common libgdl-1-0 libgdl-1-common libgdome2-0 libgdome2-cpp-smart0c2a libgoffice-0-6 libgoffice-0-6-common libgoffice-gtk-0-6 libgsf-gnome-1-114 libgtkmathview0c2a liblink-grammar4 libloudmouth1-0 libmad0 libmpcdec3 libnotify-bin libofa0 libots0 libt1-5 libtagc0 libthunar-vfs-1-2 libtunepimp5 libxfce4mcs-client3 libxfce4mcs-manager3 libxfce4util4 libxfcegui4-4 link-grammar-dictionaries-en listen mousepad mozilla-thunderbird orage psutils python-ctypes python-gnome2-extras python-musicbrainz2 python-mutagen python-ogg python-pymad python-pyogg python-pysqlite2 python-pyvorbis python-tunepimp scim-modules-table scim-tables-additional slocate tango-icon-theme tango-icon-theme-common tcl8.4 thunar thunar-archive-plugin thunar-data thunar-media-tags-plugin thunar-thumbnailers thunar-volman thunderbird vim-runtime wdiff xchat xchat-common xfce4-appfinder xfce4-battery-plugin xfce4-clipman-plugin xfce4-cpugraph-plugin xfce4-dict xfce4-fsguard-plugin xfce4-governor-plugin xfce4-icon-theme xfce4-mailwatch-plugin xfce4-mcs-manager xfce4-mcs-plugins xfce4-mcs-plugins-extra xfce4-mixer xfce4-mixer-alsa xfce4-mount-plugin xfce4-netload-plugin xfce4-notes-plugin xfce4-panel xfce4-places-plugin xfce4-quicklauncher-plugin xfce4-screenshooter-plugin xfce4-session xfce4-smartbookmark-plugin xfce4-systemload-plugin xfce4-terminal xfce4-utils xfce4-verve-plugin xfce4-weather-plugin xfce4-xkb-plugin xfdesktop4 xfdesktop4-data xfprint4 xfwm4 xfwm4-themes xubuntu-artwork-usplash xubuntu-default-settings xubuntu-desktop xubuntu-docs &amp;amp;&amp;amp; sudo apt-get install ubuntu-desktop&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;When you are asked whether to stop KDM, choose NO. Otherwise, you will jump into terminal enviroment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-1975185154732624202?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/1975185154732624202/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=1975185154732624202' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/1975185154732624202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/1975185154732624202'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2009/03/how-to-remove-kubuntu-and-xubuntu-from.html' title='How to remove Kubuntu and Xubuntu from Ubuntu'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-333836174276003026</id><published>2009-03-04T15:10:00.003-05:00</published><updated>2009-03-04T15:26:41.539-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='remote desktop'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu 8.10'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><title type='text'>Remote desktop from Mac OS X 10.5 laptop to Ubuntu linux 8.10 desktop server via VNC</title><content type='html'>I have a Macbook and want to connect to my ubuntu desktop machine via remote desktop. It seems really trivial to do this.&lt;br /&gt;&lt;br /&gt;Step 1. Open remote desktop preferences in your desktop linux machine&lt;br /&gt;    System-&gt;Preferences-&gt;Remote Desktop&lt;br /&gt;Step 2. Enable sharing, better check all&lt;br /&gt;Step 3. Enable Security, the password is limited to be 8 characters at most ...&lt;br /&gt;Step 4. In you mac, download and install VNC client for it. &lt;a href="http://www.jinx.de/JollysFastVNC_files/JollysFastVNC.0.96.86.%28903403%29.dmg"&gt;JollyFastVNC&lt;/a&gt; is a good choice.&lt;br /&gt;Step 5. Using your VNC to connect to your remote Linux machine.&lt;br /&gt;&lt;br /&gt;I suggest not use encryption in your desktop's remote desktop setting.&lt;br /&gt;&lt;br /&gt;Have fun!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-333836174276003026?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/333836174276003026/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=333836174276003026' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/333836174276003026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/333836174276003026'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2009/03/remote-desktop-from-mac-os-x-105-laptop.html' title='Remote desktop from Mac OS X 10.5 laptop to Ubuntu linux 8.10 desktop server via VNC'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-3254187809371512433</id><published>2009-02-24T23:34:00.002-05:00</published><updated>2009-02-24T23:40:01.832-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='escape sequence'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac OS'/><category scheme='http://www.blogger.com/atom/ns#' term='end'/><category scheme='http://www.blogger.com/atom/ns#' term='key'/><category scheme='http://www.blogger.com/atom/ns#' term='terminal'/><category scheme='http://www.blogger.com/atom/ns#' term='home'/><title type='text'>Escape sequence for HOME and END in Mac OS X 10.5 Terminal APP</title><content type='html'>I'm using Macbook Pro with Mac OS X 10.5.6&lt;div&gt;But there is no HOME or END key in the keyboard.&lt;/div&gt;&lt;div&gt;When you use terminal, it is very inconvenient not to have those keys.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You can go to Terminal-&gt;Preferences-&gt;Settings-&gt;Keyboard (tab)&lt;/div&gt;&lt;div&gt;Add two keys:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For example, I specify:&lt;/div&gt;&lt;div&gt;The escape sequence \033 is equal to "control + esc"&lt;/div&gt;&lt;div&gt;option + cursor right (end, go to the end of a line): \033[F&lt;/div&gt;&lt;div&gt;option + cursor left (home, go to the start of a line): \033[H&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Then it works fine in my terminal.&lt;/div&gt;&lt;div&gt;But I don't know how to specify "command + cursor"&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-3254187809371512433?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/3254187809371512433/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=3254187809371512433' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/3254187809371512433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/3254187809371512433'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2009/02/escape-sequence-for-home-and-end-in-mac.html' title='Escape sequence for HOME and END in Mac OS X 10.5 Terminal APP'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-6551238624548875861</id><published>2009-02-20T03:13:00.013-05:00</published><updated>2009-02-22T16:57:07.399-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='breaking'/><category scheme='http://www.blogger.com/atom/ns#' term='ebay'/><category scheme='http://www.blogger.com/atom/ns#' term='spammer'/><category scheme='http://www.blogger.com/atom/ns#' term='cracking'/><category scheme='http://www.blogger.com/atom/ns#' term='CAPTCHA'/><category scheme='http://www.blogger.com/atom/ns#' term='spam'/><category scheme='http://www.blogger.com/atom/ns#' term='AOL mail'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>Break CAPTCHA of AOL Mail and ebay . Crack success rate 10 ~ 15 %</title><content type='html'>&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;I implemented a java program that can recognize AOL Mail's CAPTCHA with success rate of 1 ~ 2 %. Though not high, but still high enough to threaten their system.&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" ;font-family:Times;"&gt;&lt;div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; width: auto; font: normal normal normal 100%/normal Georgia, serif; text-align: left; "&gt;&lt;div&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 240px; height: 100px;" src="http://4.bp.blogspot.com/_nKbM1Pg_HmI/SZ5qKbE-AzI/AAAAAAAAAk0/j2qKelvBg64/s400/4KDNFW7R.jpeg" border="0" alt="" id="BLOGGER_PHOTO_ID_5304794138388857650" /&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-family:verdana;"&gt;I also implemented a java program that can recognize ebay.com CAPTCHA with success rate of 10 ~ 15%. This success rate is high enough to claim that their CAPTCHA is unsecure. &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 155px; height: 55px;" src="http://4.bp.blogspot.com/_nKbM1Pg_HmI/SZ5qQ620QaI/AAAAAAAAAk8/AvkC6y4cdOY/s400/473346.jpeg" border="0" alt="" id="BLOGGER_PHOTO_ID_5304794249998647714" /&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Given that I implemented these attacks only for the purpose of our security course study, I will neither publicize my source codes nor do something harmful to their websites, cauze I'm a student not a spammer. But I just want to warn those two companies that their CAPTCHA systems are not strong enough. We can claim that CAPTCHA for AOL mail is broken, and CAPTCHA for ebay is also broken.&lt;/span&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-family:verdana;"&gt;&lt;br /&gt;&lt;/span&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-family:verdana;"&gt;Based on my study, I found that GMail's CAPTCHA, reCAPTCHA, Hotmail's CAPTCHA are relatively more secure. GMail's CAPTCHA seems strongest. reCAPTCHA and Hotmail's CAPTCHA are somewhat secure. But I will try to see how difficult it is to break them.&lt;/span&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-family:verdana;"&gt;&lt;br /&gt;&lt;/span&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-family:verdana;"&gt;Don't expect to get any of my idea or implementation from me. As a student to research computer science, we should be responsible. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&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-family:verdana;"&gt;I really hope someone from AOL Mail or ebay can by any chance see this post and change their CAPTCHA system.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Break, Crack&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-6551238624548875861?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/6551238624548875861/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=6551238624548875861' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/6551238624548875861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/6551238624548875861'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2009/02/breaking-captcha-of-aol-mail-and-ebay.html' title='Break CAPTCHA of AOL Mail and ebay . Crack success rate 10 ~ 15 %'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_nKbM1Pg_HmI/SZ5qKbE-AzI/AAAAAAAAAk0/j2qKelvBg64/s72-c/4KDNFW7R.jpeg' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-6666625662487019132</id><published>2009-02-05T21:23:00.003-05:00</published><updated>2009-02-05T21:33:17.069-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wi-fi'/><category scheme='http://www.blogger.com/atom/ns#' term='attack'/><category scheme='http://www.blogger.com/atom/ns#' term='SSH'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSH'/><title type='text'>How to SSH to iPhone</title><content type='html'>Well. &lt;div&gt;Step 1. Jail break your iphone. See &lt;a href="http://junxian-huang.blogspot.com/2008/10/how-to-jailbreak-iphone-with-firmware.html"&gt;here&lt;/a&gt; for more.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Step 2. Install OpenSSH from Cydia. My OpenSSH version is (5.1p1-6 or 4.7p1-5, I don't know which is the right version -_-)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Step 3. Connect your iphone to a WiFi (This requires you have internet access through this WiFi though). Then goto Settings-&gt;WiFi-&gt;Click the arrow of the corresponding wifi, a new page will show up-&gt;DHCP-&gt;IP Address, record this IP address on paper.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Step 4. Get a SSH client. On PCs, you can use WinSCP. On linux, you can simply type "ssh root@iphone's ip". On Mac, you can use Cyberduck, or in terminal, use the same command as linux. (Remember iphone's password is? If you forgot, see &lt;a href="http://junxian-huang.blogspot.com/2009/01/what-is-iphone-root-access-password.html"&gt;here&lt;/a&gt;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Step 5. Here we are.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But BE CAREFUL.&lt;/div&gt;&lt;div&gt;Remember you are now logining in as root. You can download anything you want, you can create anything, you can delete anything, and you can kill any process (not critical system processes of course) potentially.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you have a jailbroken iPhone and installed OpenSSH, when you connect to WiFi.&lt;/div&gt;&lt;div&gt;You also need to care for the attackers.&lt;/div&gt;&lt;div&gt;Image how horrible it is if someone can SSH to your iphone as root!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-6666625662487019132?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/6666625662487019132/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=6666625662487019132' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/6666625662487019132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/6666625662487019132'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2009/02/how-to-ssh-to-iphone.html' title='How to SSH to iPhone'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-260764911228801694</id><published>2009-01-30T17:42:00.004-05:00</published><updated>2009-01-30T17:46:23.665-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='split'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='regular expression'/><category scheme='http://www.blogger.com/atom/ns#' term='tip'/><category scheme='http://www.blogger.com/atom/ns#' term='string'/><title type='text'>Java tip: how to split a string with "." (a dot)</title><content type='html'>String a = "a.jpg";&lt;div&gt;String str = a.split(".")[0];&lt;/div&gt;&lt;div&gt;This will throw ArrayOutOfBoundException&lt;/div&gt;&lt;div&gt;Why is this?&lt;/div&gt;&lt;div&gt;This is because "." is a reserved character in regular expression, representing any character.&lt;/div&gt;&lt;div&gt;Instead, we should use the following statement:&lt;/div&gt;&lt;div&gt;String str = a.split("\\.")[0];&lt;/div&gt;&lt;div&gt;When the code is compiled, the regular expression is known as "\.", which is what we want it to be&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-260764911228801694?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/260764911228801694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=260764911228801694' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/260764911228801694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/260764911228801694'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2009/01/java-tip-how-to-split-string-with-dot.html' title='Java tip: how to split a string with &quot;.&quot; (a dot)'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-6769200374104511024</id><published>2009-01-30T00:17:00.001-05:00</published><updated>2009-01-30T00:17:47.905-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='daily-fun-picture.blogspot.com'/><title type='text'>Click here for something funny</title><content type='html'>&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;&lt;a href="http://daily-fun-picture.blogspot.com"&gt;HERE&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-6769200374104511024?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/6769200374104511024/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=6769200374104511024' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/6769200374104511024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/6769200374104511024'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2009/01/click-here-for-something-funny.html' title='Click here for something funny'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-4285467557180250364</id><published>2009-01-29T21:40:00.004-05:00</published><updated>2009-01-29T21:44:20.902-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pixel'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='image'/><category scheme='http://www.blogger.com/atom/ns#' term='rgb'/><title type='text'>Java: How to read pixel RGB values from images</title><content type='html'>&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"&gt;BufferedImage img = &lt;span style="color: #7f0055"&gt;null&lt;/span&gt;;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"&gt;&lt;span style="color: #7f0055"&gt;int&lt;/span&gt; w, h;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"&gt;&lt;span style="color: #7f0055"&gt;int&lt;/span&gt; pixels[];&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"&gt;&lt;span style="color: #7f0055"&gt;try&lt;/span&gt; {&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;img = ImageIO.read(&lt;span style="color: #7f0055"&gt;new&lt;/span&gt; File(&lt;span style="color: #2a00ff"&gt;"images/secret.jpg"&lt;/span&gt;));&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;w = img.getWidth();&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;h = img.getHeight();&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;pixels = &lt;span style="color: #7f0055"&gt;new&lt;/span&gt; &lt;span style="color: #7f0055"&gt;int&lt;/span&gt;[w * h];&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;img.getRGB(0, 0, w, h, pixels, 0, w);&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;System.&lt;span style="color: #0000c0"&gt;out&lt;/span&gt;.println(img.getWidth() + &lt;span style="color: #2a00ff"&gt;" X "&lt;/span&gt; + img.getHeight());&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;System.&lt;span style="color: #0000c0"&gt;out&lt;/span&gt;.println(&lt;span style="color: #2a00ff"&gt;"R:"&lt;/span&gt; + ((pixels[0] &gt;&gt; 16) &amp;amp; 0xff) + &lt;span style="color: #2a00ff"&gt;" G:"&lt;/span&gt; + ((pixels[0] &gt;&gt; 8) &amp;amp; 0xff) + &lt;span style="color: #2a00ff"&gt;" B:"&lt;/span&gt; + (pixels[0] &amp;amp; 0xff));&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"&gt;} &lt;span style="color: #7f0055"&gt;catch&lt;/span&gt; (IOException e) {&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;e.printStackTrace();&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"&gt;}&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"&gt;//Based on the sample code, it is really easy to see how to read RGB values from any image files.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-4285467557180250364?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/4285467557180250364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=4285467557180250364' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/4285467557180250364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/4285467557180250364'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2009/01/java-how-to-read-pixel-rgb-values-from.html' title='Java: How to read pixel RGB values from images'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-1700466653368817090</id><published>2009-01-21T15:29:00.004-05:00</published><updated>2009-03-25T16:04:57.936-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gphone'/><category scheme='http://www.blogger.com/atom/ns#' term='tcpdump'/><category scheme='http://www.blogger.com/atom/ns#' term='g1'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Damn it: How on earth can I get tcpdump running on gphone adroid g1 ???</title><content type='html'>//Anyone have any idea???&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;//I tried to search online and found my own blog -_-!!!&lt;br /&gt;&lt;br /&gt;Finally, with the help of Timur, I can now run tcpdump on a holiday version of GPhone, it also works for Developer version GPhone, but not the normal version, because tcpdump requires root mode.&lt;br /&gt;&lt;br /&gt;See my other post :&lt;br /&gt;&lt;h3 class="post-title entry-title"&gt;&lt;a href="http://junxian-huang.blogspot.com/2009/03/finally-tcpdump-on-gphone-g1-android.html"&gt;Finally tcpdump on GPhone G1 Android&lt;/a&gt;&lt;/h3&gt;See&lt;span style="font-weight: bold; font-style: italic;font-size:180%;" &gt; &lt;a style="color: rgb(255, 0, 0);" href="http://junxian-huang.blogspot.com/2009/03/finally-tcpdump-on-gphone-g1-android.html"&gt;this link&lt;/a&gt;&lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt; &lt;/span&gt;for help.&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/1228707902785326925-1700466653368817090?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/1700466653368817090/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=1700466653368817090' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/1700466653368817090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/1700466653368817090'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2009/01/damn-it-how-on-earth-can-i-get-tcpdump.html' title='Damn it: How on earth can I get tcpdump running on gphone adroid g1 ???'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-8034954362519300800</id><published>2009-01-19T16:55:00.002-05:00</published><updated>2009-01-19T16:58:36.158-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='alpine'/><category scheme='http://www.blogger.com/atom/ns#' term='sudo'/><category scheme='http://www.blogger.com/atom/ns#' term='root access'/><category scheme='http://www.blogger.com/atom/ns#' term='su'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='root'/><title type='text'>What is iPhone root access password?</title><content type='html'>"alpine"&lt;br /&gt;&lt;br /&gt;In iPhone, you can't use this password to use "sudo", but you can still gain root access&lt;br /&gt;In terminal, type "su" and enter pwd "alpine", then you enter root mode.&lt;br /&gt;Really funny that sudo's password is not su's&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-8034954362519300800?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/8034954362519300800/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=8034954362519300800' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/8034954362519300800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/8034954362519300800'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2009/01/what-is-iphone-root-access-password.html' title='What is iPhone root access password?'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-3787330109645335958</id><published>2008-11-18T19:27:00.002-05:00</published><updated>2008-11-18T19:30:30.407-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tmobile'/><category scheme='http://www.blogger.com/atom/ns#' term='gphone'/><category scheme='http://www.blogger.com/atom/ns#' term='g1'/><category scheme='http://www.blogger.com/atom/ns#' term='usb connection'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>How to connect G1 GPhone Android T-Mobile with Computer via USB</title><content type='html'>This is really a simple task.&lt;div&gt;Just connect USB with you gphone and you computer via USB cable.&lt;/div&gt;&lt;div&gt;Then in the phone's notification area (on top the screen). Drag all the notifications out and there is a notification about USB. Click it and a pop up will ask you to "mount" or "unmount". Click mount and you can copy things in and out of G1's SD card between you computer and the phone.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;GL&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-3787330109645335958?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/3787330109645335958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=3787330109645335958' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/3787330109645335958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/3787330109645335958'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2008/11/how-to-connect-g1-gphone-android-t.html' title='How to connect G1 GPhone Android T-Mobile with Computer via USB'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-9086275247832729542</id><published>2008-11-17T19:35:00.002-05:00</published><updated>2008-11-17T19:44:33.203-05:00</updated><title type='text'>Error from debugger: Error launching remote program: security policy error</title><content type='html'>I paid $99 and became an iPhone developer today.&lt;div&gt;When I tried to run a program on iPhone, I got the following error:&lt;/div&gt;&lt;div&gt;"&lt;span class="Apple-style-span" style="font-family: verdana; font-size: 13px; font-weight: bold; "&gt;Error from debugger: Error launching remote program: security policy error&lt;span class="Apple-style-span" style="font-family: Georgia; font-size: 16px; font-weight: normal; "&gt;" in the xcode.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;I followed exactly the steps of it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Later, I found this is a really stupid small mistake.&lt;/div&gt;&lt;div&gt;In xcode, Groups &amp;amp; Files -&gt; Targets -&gt; xxxxx (xxxxx is your project name). Highlight it and click Info (command + i). &lt;/div&gt;&lt;div&gt;In the "Properties" tab, there is an "Identifier" field. DEFAULT VALUE IS WRONG!!!&lt;/div&gt;&lt;div&gt;You need you use your own one that you use in creating an app id.&lt;/div&gt;&lt;div&gt;In iPhone Developer Program's program portal page. Click App IDs. Each id will look like this&lt;/div&gt;&lt;div&gt;"XXXXXXXXXX.com.mywebsitename"&lt;/div&gt;&lt;div&gt;XXXXXXXXXX is the nenerated bundle id.&lt;/div&gt;&lt;div&gt;In the "Identifier" filed of "Properties" tab, type "com.mywebsitename".&lt;/div&gt;&lt;div&gt;If this is not consistent with the one used in program portal page, when you try to launch program. "&lt;span class="Apple-style-span" style="font-family: verdana; font-size: 13px; font-weight: bold; "&gt;Error from debugger: Error launching remote program: security policy error&lt;span class="Apple-style-span" style="font-family: Georgia; font-size: 16px; font-weight: normal; "&gt;" will be prompted.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;How come Apple give such an stupid error that gives no information at all???&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Recently I'm struggling with Apple and iPhone.&lt;/div&gt;&lt;div&gt;If I have a chance to choose whether to choose iPhone as my development platform, I will definitely say "NO!". I would rather use QBASIC in "文曲星" (a small computing device famous in China)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-9086275247832729542?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/9086275247832729542/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=9086275247832729542' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/9086275247832729542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/9086275247832729542'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2008/11/error-from-debugger-error-launching.html' title='Error from debugger: Error launching remote program: security policy error'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-2879781878486546241</id><published>2008-11-04T18:23:00.004-05:00</published><updated>2009-04-24T08:18:59.893-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Unix time'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='java system.currentTimeMillis'/><category scheme='http://www.blogger.com/atom/ns#' term='java time'/><category scheme='http://www.blogger.com/atom/ns#' term='human readable time format'/><title type='text'>Convert Human Readable Time Format to Unix Time &amp; Java Milliseconds ( (Java Code))</title><content type='html'>I just wrote a java program to convert Human Readable Time Format to Unix Time &amp;amp; Java Milliseconds ( (Java Code)).&lt;div&gt;The code can be accessed &lt;a href="http://www.eecs.umich.edu/~hjx/code/HjxTimeConverter.java"&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;I also put it as follows to make it searchable:&lt;/div&gt;&lt;div&gt;To test it, you can convert the milliseconds back to human readable time format &lt;a href="http://www.munc.com/jseffects/timeConverter.html"&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;//Created on Nov 4, 2008 5:31:17 PM&lt;/div&gt;&lt;div&gt;//Author : Junxian Huang&lt;/div&gt;&lt;div&gt;package iperf;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;public class HjxTimeConverter {&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;public static void main(String[] argv){&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;System.out.println("Time converter works");&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;//long milli = HjxTimeConverter.getMilliseconds(1986, 6, 11, 16, 20, 0, 0, -5);&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;long milli = HjxTimeConverter.getMilliseconds(2008, 11, 4, 18, 22, 0, 0, -5);&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;//long milli = HjxTimeConverter.getMilliseconds(1970, 2, 2, 2, 15, 1, 1, -5);&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;System.out.println(milli);&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;System.out.println(System.currentTimeMillis());&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;public static final int BASE_YEAR = 1970;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;public static final int BASE_MONTH = 1;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;public static final int BASE_DAY = 1;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;public static final int BASE_HOUR = 0;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;public static final int BASE_MINUTE = 0;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;public static final int BASE_SECOND = 0;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;public static final long MILLI_IN_A_SECOND = 1000;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;public static final long MILLI_IN_A_MINUTE = 60 * MILLI_IN_A_SECOND;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;public static final long MILLI_IN_A_HOUR = 60 * MILLI_IN_A_MINUTE;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;public static final long MILLI_IN_A_DAY = 24 * MILLI_IN_A_HOUR;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;public static final long MILLI_IN_MONTH[] = {&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;0, //A pad&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;31 * MILLI_IN_A_DAY,&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;28 * MILLI_IN_A_DAY,//For leap year, we add one day&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;31 * MILLI_IN_A_DAY,&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;30 * MILLI_IN_A_DAY,&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;31 * MILLI_IN_A_DAY,&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;30 * MILLI_IN_A_DAY,&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;31 * MILLI_IN_A_DAY,&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;31 * MILLI_IN_A_DAY,&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;30 * MILLI_IN_A_DAY,&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;31 * MILLI_IN_A_DAY,&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;30 * MILLI_IN_A_DAY,&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;31 * MILLI_IN_A_DAY&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;};&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;/**&lt;/div&gt;&lt;div&gt; * @author Junxian Huang&lt;/div&gt;&lt;div&gt; * @Time Created on Nov 4, 2008 5:31:17 PM&lt;br /&gt;&lt;/div&gt;&lt;div&gt; * Given time is local time based on the supplied time zone&lt;br /&gt;&lt;/div&gt;&lt;div&gt; * @param year&lt;/div&gt;&lt;div&gt; * @param month&lt;/div&gt;&lt;div&gt; * @param day&lt;/div&gt;&lt;div&gt; * @param hour : hour should in 24 hour format, e.g. 8pm should be 20, 12am (midnight) is 0, 12pm (noon) is 12&lt;/div&gt;&lt;div&gt; * @param minute&lt;/div&gt;&lt;div&gt; * @param second&lt;/div&gt;&lt;div&gt; * @param millisecond &lt;/div&gt;&lt;div&gt; * @param time_zone : Number follows GMT for your time zone.&lt;br /&gt;&lt;/div&gt;&lt;div&gt; * &lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;For Ann Arbor (EST which is GMT -5, time_zone = -5)&lt;/div&gt;&lt;div&gt; * @return Java Milliseconds&lt;/div&gt;&lt;div&gt; * You can check this using the online converter here (http://www.munc.com/jseffects/timeConverter.html)&lt;/div&gt;&lt;div&gt; */&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;public static long getMilliseconds(int year, int month, int day, int hour, int minute, int second, int millisecond, int time_zone){&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;long milli = 0;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;int i;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;for(i = BASE_YEAR ; i &lt;&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;if(i % 4 == 0){&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;//For leap year&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;milli += 366  * MILLI_IN_A_DAY;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;}else{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;milli += 365  * MILLI_IN_A_DAY;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;for(i = BASE_MONTH ; i &lt;&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;if(year % 4 == 0 &amp;amp;&amp;amp; i == 2){&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;//For leap year, February&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;milli += MILLI_IN_MONTH[i] + MILLI_IN_A_DAY;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;}else{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;milli += MILLI_IN_MONTH[i];&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;for(i = BASE_DAY ; i &lt;&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;milli += MILLI_IN_A_DAY;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;for(i = BASE_HOUR ; i &lt;&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;milli += MILLI_IN_A_HOUR;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;for(i = BASE_MINUTE ; i &lt;&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;milli += MILLI_IN_A_MINUTE;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;for(i = BASE_SECOND ; i &lt;&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;milli += MILLI_IN_A_SECOND;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;milli += millisecond;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;milli -= time_zone * MILLI_IN_A_HOUR; //We should subtract here!&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;return milli;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&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/1228707902785326925-2879781878486546241?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/2879781878486546241/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=2879781878486546241' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/2879781878486546241'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/2879781878486546241'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2008/11/convert-human-readable-time-format-to.html' title='Convert Human Readable Time Format to Unix Time &amp; Java Milliseconds ( (Java Code))'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-9219306283258681689</id><published>2008-11-03T19:30:00.001-05:00</published><updated>2008-11-03T19:32:21.336-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='funny'/><category scheme='http://www.blogger.com/atom/ns#' term='lamport'/><title type='text'>"the string obtained by removing the - characters from the string alllam-portspu-bsonth-eweb."</title><content type='html'>&lt;span class="Apple-style-span" style="  "&gt;&lt;a name="endofpage"&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;"the string obtained by removing the &lt;/span&gt;&lt;/span&gt;&lt;tt&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;-&lt;/span&gt;&lt;/span&gt;&lt;/tt&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; characters from the string &lt;/span&gt;&lt;/span&gt;&lt;tt&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;alllam-portspu-bsonth-eweb&lt;/span&gt;&lt;/span&gt;&lt;/tt&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;."&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" "&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;is "&lt;/span&gt;&lt;/span&gt;&lt;a name="endofpage"&gt;&lt;tt&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;alllamportspubsontheweb"&lt;/span&gt;&lt;/span&gt;&lt;/tt&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" "&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Reference is &lt;/span&gt;&lt;/span&gt;&lt;a href="http://research.microsoft.com/users/lamport/pubs/pubs.html"&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;here&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-9219306283258681689?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/9219306283258681689/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=9219306283258681689' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/9219306283258681689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/9219306283258681689'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2008/11/string-obtained-by-removing-characters.html' title='&quot;the string obtained by removing the - characters from the string alllam-portspu-bsonth-eweb.&quot;'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-2340753870506016560</id><published>2008-10-25T01:05:00.004-04:00</published><updated>2008-10-25T01:54:08.386-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='hello world'/><category scheme='http://www.blogger.com/atom/ns#' term='servlet'/><category scheme='http://www.blogger.com/atom/ns#' term='hello servlet'/><category scheme='http://www.blogger.com/atom/ns#' term='first java servlet'/><category scheme='http://www.blogger.com/atom/ns#' term='tomcat'/><title type='text'>How to run your first Java Servlet</title><content type='html'>Step by step running your first Java Servlet.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Step 1. Install tomcat http server from &lt;a href="http://tomcat.apache.org/download-60.cgi"&gt;here&lt;/a&gt;. Select the binary based on your operating system. If you are using Windows, just click &lt;a href="http://www.gossipcheck.com/mirrors/apache/tomcat/tomcat-6/v6.0.18/bin/apache-tomcat-6.0.18.exe"&gt;here&lt;/a&gt;. After download, just install it. After installation, you can access your home page at "http://localhost:8080" actually it is the content in "C:\xxx\Tomcat 6.0\webapps\" where "xxx" is the installation directory of your tomcat.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Step 2. Install java. How to do that? Search online, it is pretty simple. After installation, run in the command windows "javac", if it says "'javac.exe' is not recognized as an internal or externa command, operable program or batch file." You have to run "set PATH=%PATH%;C:\Program Files\Java\jdk1.6.0_10\bin" to add the java bin directory to Windows PATH variable. Make sure use your own directory for javac (I'm using jdk 6 update 10).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Step 3. Write your first Servlet&lt;/div&gt;&lt;div&gt;Store the following into "HelloServlet"&lt;/div&gt;&lt;div&gt;&lt;div&gt;"&lt;/div&gt;&lt;div&gt;import java.io.IOException;&lt;/div&gt;&lt;div&gt;import java.io.PrintWriter;&lt;/div&gt;&lt;div&gt;import java.util.Date;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;import javax.servlet.ServletException;&lt;/div&gt;&lt;div&gt;import javax.servlet.http.HttpServlet;&lt;/div&gt;&lt;div&gt;import javax.servlet.http.HttpServletRequest;&lt;/div&gt;&lt;div&gt;import javax.servlet.http.HttpServletResponse;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;public class HelloServlet extends HttpServlet {&lt;/div&gt;&lt;div&gt;  &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;private static final long serialVersionUID = 1L;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;public void doGet(HttpServletRequest request,&lt;/div&gt;&lt;div&gt;            HttpServletResponse response)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;throws ServletException, IOException {&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;// Use "request" to read incoming HTTP headers (e.g. cookies)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;// and HTML form data (e.g. data the user entered and submitted)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;// Use "response" to specify the HTTP response line and headers&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;// (e.g. specifying the content type, setting cookies).&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;PrintWriter out = response.getWriter();&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;out.println("Hello Servlet");&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;out.close();&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;// Use "out" to send content to browser&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;"&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Step 4.  In "cmd" command line, run "javac HelloServlet.java", if everything goes well, you will get a new file "HelloServlet.class"&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Step 5. Goto to your home directory for tomcat (mine is "F:\Study\tomcat\Tomcat 6.0\webapps"). Make a new directory called whatever, say "test".&lt;/div&gt;&lt;div&gt;Inside test, make a new directory called "WEB-INF". Go into "WEB-INF", make a new directory called "classes", put "HelloServlet.class" into "classes". &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Step 6. Inside directory "WEB-INF", make a new file called "web.xml".&lt;/div&gt;&lt;div&gt;It can be downloaded &lt;a href="http://www.eecs.umich.edu/~hjx/web.xml2"&gt;here&lt;/a&gt;. After you download, change the file name from "web.xml2" to "web.xml", because .xml file can be interpretted by many browsers.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Step 7. Open your browser and type "http://localhost:8080/test/HelloServlet"&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you see a blank page with a line of words "hello servlet"&lt;span class="Apple-style-span"  style="  white-space: pre-wrap; font-family:-webkit-monospace;"&gt;&lt;span class="Apple-style-span"  style="  white-space: normal; font-family:Georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;, you are all set with your first java servlet.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Actually, I'm new to java servlet too. But I found it really powerful and interesting.&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/1228707902785326925-2340753870506016560?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/2340753870506016560/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=2340753870506016560' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/2340753870506016560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/2340753870506016560'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2008/10/how-to-run-your-first-java-servlet.html' title='How to run your first Java Servlet'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-1203088365820199590</id><published>2008-10-24T18:10:00.002-04:00</published><updated>2008-10-24T18:14:52.850-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hello world'/><category scheme='http://www.blogger.com/atom/ns#' term='input'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Python notes : input</title><content type='html'>In python, the easiest way to get an input is by using:&lt;br /&gt;input&lt;br /&gt;raw_input&lt;br /&gt;The difference between the two is that input will interpret what you have input while raw_input will just record faithfully whatever you have typed in including backspace.&lt;br /&gt;For example, when you type three symbols "H", input method will return H while raw_input will return "H"&lt;br /&gt;&lt;br /&gt;Hello world program for python input:&lt;br /&gt;"&lt;br /&gt;test_str = input("input some thing")&lt;br /&gt;print test&lt;br /&gt;test_str2 = raw_input("input some thing raw")&lt;br /&gt;print test_str2&lt;br /&gt;"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-1203088365820199590?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/1203088365820199590/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=1203088365820199590' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/1203088365820199590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/1203088365820199590'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2008/10/python-notes-input.html' title='Python notes : input'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-6421983715575897994</id><published>2008-10-11T22:36:00.003-04:00</published><updated>2008-10-11T22:42:07.080-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='top 500'/><category scheme='http://www.blogger.com/atom/ns#' term='most popular'/><category scheme='http://www.blogger.com/atom/ns#' term='websites'/><title type='text'>Top 500 most popular websites full list in plain text</title><content type='html'>I just wrote a java program to output the 500 most popular websites full list in plain text for programming purposes. Any one who in need of the plaintext version of this is welcome to use my results.&lt;div&gt;My results are based on the results from Alexa's Global Top 500 most popular websites (&lt;a href="http://www.alexa.com/site/ds/top_sites?ts_mode=global&amp;amp;lang=none"&gt;http://www.alexa.com/site/ds/top_sites?ts_mode=global〈=none&lt;/a&gt;).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Format: Each line contains the index number and an URL separated by a space (" " in java)&lt;/div&gt;&lt;div&gt;__________________________________________________________&lt;/div&gt;&lt;div&gt;&lt;div&gt;1 http://www.yahoo.com/&lt;/div&gt;&lt;div&gt;2 http://www.google.com/&lt;/div&gt;&lt;div&gt;3 http://www.youtube.com/&lt;/div&gt;&lt;div&gt;4 http://www.live.com/&lt;/div&gt;&lt;div&gt;5 http://www.facebook.com/&lt;/div&gt;&lt;div&gt;6 http://www.msn.com/&lt;/div&gt;&lt;div&gt;7 http://www.myspace.com/&lt;/div&gt;&lt;div&gt;8 http://www.wikipedia.org/&lt;/div&gt;&lt;div&gt;9 http://www.blogger.com/&lt;/div&gt;&lt;div&gt;10 http://www.yahoo.co.jp/&lt;/div&gt;&lt;div&gt;11 http://www.baidu.com/&lt;/div&gt;&lt;div&gt;12 http://www.rapidshare.com/&lt;/div&gt;&lt;div&gt;13 http://www.microsoft.com/&lt;/div&gt;&lt;div&gt;14 http://www.google.co.in/&lt;/div&gt;&lt;div&gt;15 http://www.google.de/&lt;/div&gt;&lt;div&gt;16 http://www.hi5.com/&lt;/div&gt;&lt;div&gt;17 http://www.qq.com/&lt;/div&gt;&lt;div&gt;18 http://www.ebay.com/&lt;/div&gt;&lt;div&gt;19 http://www.google.fr/&lt;/div&gt;&lt;div&gt;20 http://www.sina.com.cn/&lt;/div&gt;&lt;div&gt;21 http://www.google.co.uk/&lt;/div&gt;&lt;div&gt;22 http://www.mail.ru/&lt;/div&gt;&lt;div&gt;23 http://www.orkut.com.br/&lt;/div&gt;&lt;div&gt;24 http://www.fc2.com/&lt;/div&gt;&lt;div&gt;25 http://www.aol.com/&lt;/div&gt;&lt;div&gt;26 http://www.vkontakte.ru/&lt;/div&gt;&lt;div&gt;27 http://www.google.com.br/&lt;/div&gt;&lt;div&gt;28 http://www.wordpress.com/&lt;/div&gt;&lt;div&gt;29 http://www.google.it/&lt;/div&gt;&lt;div&gt;30 http://www.flickr.com/&lt;/div&gt;&lt;div&gt;31 http://www.photobucket.com/&lt;/div&gt;&lt;div&gt;32 http://www.yandex.ru/&lt;/div&gt;&lt;div&gt;33 http://www.google.es/&lt;/div&gt;&lt;div&gt;34 http://www.google.co.jp/&lt;/div&gt;&lt;div&gt;35 http://www.google.cn/&lt;/div&gt;&lt;div&gt;36 http://www.amazon.com/&lt;/div&gt;&lt;div&gt;37 http://www.go.com/&lt;/div&gt;&lt;div&gt;38 http://www.naver.com/&lt;/div&gt;&lt;div&gt;39 http://www.craigslist.org/&lt;/div&gt;&lt;div&gt;40 http://www.friendster.com/&lt;/div&gt;&lt;div&gt;41 http://www.odnoklassniki.ru/&lt;/div&gt;&lt;div&gt;42 http://www.orkut.co.in/&lt;/div&gt;&lt;div&gt;43 http://www.google.com.mx/&lt;/div&gt;&lt;div&gt;44 http://www.imdb.com/&lt;/div&gt;&lt;div&gt;45 http://www.bbc.co.uk/&lt;/div&gt;&lt;div&gt;46 http://www.youporn.com/&lt;/div&gt;&lt;div&gt;47 http://www.taobao.com/&lt;/div&gt;&lt;div&gt;48 http://www.cnn.com/&lt;/div&gt;&lt;div&gt;49 http://www.adultfriendfinder.com/&lt;/div&gt;&lt;div&gt;50 http://www.googlesyndication.com/&lt;/div&gt;&lt;div&gt;51 http://www.skyrock.com/&lt;/div&gt;&lt;div&gt;52 http://www.163.com/&lt;/div&gt;&lt;div&gt;53 http://www.redtube.com/&lt;/div&gt;&lt;div&gt;54 http://www.imageshack.us/&lt;/div&gt;&lt;div&gt;55 http://www.youku.com/&lt;/div&gt;&lt;div&gt;56 http://www.ask.com/&lt;/div&gt;&lt;div&gt;57 http://www.google.ca/&lt;/div&gt;&lt;div&gt;58 http://www.uol.com.br/&lt;/div&gt;&lt;div&gt;59 http://www.pornhub.com/&lt;/div&gt;&lt;div&gt;60 http://www.espn.go.com/&lt;/div&gt;&lt;div&gt;61 http://www.adobe.com/&lt;/div&gt;&lt;div&gt;62 http://www.rakuten.co.jp/&lt;/div&gt;&lt;div&gt;63 http://www.orkut.com/&lt;/div&gt;&lt;div&gt;64 http://www.sohu.com/&lt;/div&gt;&lt;div&gt;65 http://www.ebay.de/&lt;/div&gt;&lt;div&gt;66 http://www.netlog.com/&lt;/div&gt;&lt;div&gt;67 http://www.apple.com/&lt;/div&gt;&lt;div&gt;68 http://www.dailymotion.com/&lt;/div&gt;&lt;div&gt;69 http://www.mixi.jp/&lt;/div&gt;&lt;div&gt;70 http://www.metroflog.com/&lt;/div&gt;&lt;div&gt;71 http://www.rambler.ru/&lt;/div&gt;&lt;div&gt;72 http://www.daum.net/&lt;/div&gt;&lt;div&gt;73 http://www.vmn.net/&lt;/div&gt;&lt;div&gt;74 http://www.rediff.com/&lt;/div&gt;&lt;div&gt;75 http://www.livedoor.com/&lt;/div&gt;&lt;div&gt;76 http://www.yahoo.com.cn/&lt;/div&gt;&lt;div&gt;77 http://www.google.com.tr/&lt;/div&gt;&lt;div&gt;78 http://www.fastclick.com/&lt;/div&gt;&lt;div&gt;79 http://www.fotolog.net/&lt;/div&gt;&lt;div&gt;80 http://www.livejournal.com/&lt;/div&gt;&lt;div&gt;81 http://www.about.com/&lt;/div&gt;&lt;div&gt;82 http://www.megavideo.com/&lt;/div&gt;&lt;div&gt;83 http://www.nytimes.com/&lt;/div&gt;&lt;div&gt;84 http://www.globo.com/&lt;/div&gt;&lt;div&gt;85 http://www.nicovideo.jp/&lt;/div&gt;&lt;div&gt;86 http://www.wretch.cc/&lt;/div&gt;&lt;div&gt;87 http://www.mininova.org/&lt;/div&gt;&lt;div&gt;88 http://www.soso.com/&lt;/div&gt;&lt;div&gt;89 http://www.google.com.au/&lt;/div&gt;&lt;div&gt;90 http://www.ameblo.jp/&lt;/div&gt;&lt;div&gt;91 http://www.nasza-klasa.pl/&lt;/div&gt;&lt;div&gt;92 http://www.google.pl/&lt;/div&gt;&lt;div&gt;93 http://www.goo.ne.jp/&lt;/div&gt;&lt;div&gt;94 http://www.google.co.id/&lt;/div&gt;&lt;div&gt;95 http://www.google.com.sa/&lt;/div&gt;&lt;div&gt;96 http://www.ku6.com/&lt;/div&gt;&lt;div&gt;97 http://www.yourfilehost.com/&lt;/div&gt;&lt;div&gt;98 http://www.imagevenue.com/&lt;/div&gt;&lt;div&gt;99 http://www.bebo.com/&lt;/div&gt;&lt;div&gt;100 http://www.comcast.net&lt;/div&gt;&lt;div&gt;101 http://www.google.ru/&lt;/div&gt;&lt;div&gt;102 http://ebay.co.uk/&lt;/div&gt;&lt;div&gt;103 http://www.free.fr/&lt;/div&gt;&lt;div&gt;104 http://www.mediafire.com/&lt;/div&gt;&lt;div&gt;105 http://www.4shared.com/&lt;/div&gt;&lt;div&gt;106 http://www.terra.com.br/&lt;/div&gt;&lt;div&gt;107 http://www.veoh.com/&lt;/div&gt;&lt;div&gt;108 http://www.megaupload.com/&lt;/div&gt;&lt;div&gt;109 http://www.xunlei.com/&lt;/div&gt;&lt;div&gt;110 http://www.google.nl/&lt;/div&gt;&lt;div&gt;111 http://www.xvideos.com/&lt;/div&gt;&lt;div&gt;112 http://www.perfspot.com/&lt;/div&gt;&lt;div&gt;113 http://www.google.co.th/&lt;/div&gt;&lt;div&gt;114 http://www.google.com.ar/&lt;/div&gt;&lt;div&gt;115 http://www.zshare.net/&lt;/div&gt;&lt;div&gt;116 http://www.weather.com/&lt;/div&gt;&lt;div&gt;117 http://www.deviantart.com/&lt;/div&gt;&lt;div&gt;118 http://www.tube8.com/&lt;/div&gt;&lt;div&gt;119 http://www.geocities.com/&lt;/div&gt;&lt;div&gt;120 http://www.doubleclick.com/&lt;/div&gt;&lt;div&gt;121 http://www.download.com/&lt;/div&gt;&lt;div&gt;122 http://www.orange.fr/&lt;/div&gt;&lt;div&gt;123 http://www.nifty.com/&lt;/div&gt;&lt;div&gt;124 http://www.amazon.co.jp/&lt;/div&gt;&lt;div&gt;125 http://www.tagged.com/&lt;/div&gt;&lt;div&gt;126 http://www.livejasmin.com/&lt;/div&gt;&lt;div&gt;127 http://www.sogou.com/&lt;/div&gt;&lt;div&gt;128 http://www.thepiratebay.org/&lt;/div&gt;&lt;div&gt;129 http://www.mop.com/&lt;/div&gt;&lt;div&gt;130 http://www.2ch.net/&lt;/div&gt;&lt;div&gt;131 http://www.gmx.net/&lt;/div&gt;&lt;div&gt;132 http://www.metacafe.com/&lt;/div&gt;&lt;div&gt;133 http://www.clicksor.com/&lt;/div&gt;&lt;div&gt;134 http://www.tudou.com/&lt;/div&gt;&lt;div&gt;135 http://www.adultadworld.com/&lt;/div&gt;&lt;div&gt;136 http://www.pconline.com.cn/&lt;/div&gt;&lt;div&gt;137 http://www.homeway.com.cn/&lt;/div&gt;&lt;div&gt;138 http://www.clicksor.net/&lt;/div&gt;&lt;div&gt;139 http://www.partypoker.com/&lt;/div&gt;&lt;div&gt;140 http://www.biglobe.ne.jp/&lt;/div&gt;&lt;div&gt;141 http://www.xnxx.com/&lt;/div&gt;&lt;div&gt;142 http://www.cyworld.com/&lt;/div&gt;&lt;div&gt;143 http://www.amazon.de/&lt;/div&gt;&lt;div&gt;144 http://www.maktoob.com/&lt;/div&gt;&lt;div&gt;145 http://www.geocities.jp/&lt;/div&gt;&lt;div&gt;146 http://www.google.co.za/&lt;/div&gt;&lt;div&gt;147 http://www.tribalfusion.com/&lt;/div&gt;&lt;div&gt;148 http://www.studiverzeichnis.com/&lt;/div&gt;&lt;div&gt;149 http://www.infoseek.co.jp/&lt;/div&gt;&lt;div&gt;150 http://www.sourceforge.net/&lt;/div&gt;&lt;div&gt;151 http://www.dell.com/&lt;/div&gt;&lt;div&gt;152 http://www.alibaba.com/&lt;/div&gt;&lt;div&gt;153 http://www.google.com.eg/&lt;/div&gt;&lt;div&gt;154 http://www.onet.pl/&lt;/div&gt;&lt;div&gt;155 http://www.cnet.com/&lt;/div&gt;&lt;div&gt;156 http://www.zol.com.cn/&lt;/div&gt;&lt;div&gt;157 http://www.kaixin001.com/&lt;/div&gt;&lt;div&gt;158 http://www.conduit.com/&lt;/div&gt;&lt;div&gt;159 http://www.gamespot.com/&lt;/div&gt;&lt;div&gt;160 http://www.imeem.com/&lt;/div&gt;&lt;div&gt;161 http://www.tinypic.com/&lt;/div&gt;&lt;div&gt;162 http://www.icq.com/&lt;/div&gt;&lt;div&gt;163 http://www.reference.com/&lt;/div&gt;&lt;div&gt;164 http://www.sakura.ne.jp/&lt;/div&gt;&lt;div&gt;165 http://www.alice.it/&lt;/div&gt;&lt;div&gt;166 http://www.ig.com.br/&lt;/div&gt;&lt;div&gt;167 http://www.answers.com/&lt;/div&gt;&lt;div&gt;168 http://www.multiply.com/&lt;/div&gt;&lt;div&gt;169 http://www.libero.it/&lt;/div&gt;&lt;div&gt;170 http://www.aim.com/&lt;/div&gt;&lt;div&gt;171 http://www.hyves.nl/&lt;/div&gt;&lt;div&gt;172 http://www.files.wordpress.com/&lt;/div&gt;&lt;div&gt;173 http://www.google.co.ve/&lt;/div&gt;&lt;div&gt;174 http://www.depositfiles.com/&lt;/div&gt;&lt;div&gt;175 http://www.ign.com/&lt;/div&gt;&lt;div&gt;176 http://www.wikimedia.org/&lt;/div&gt;&lt;div&gt;177 http://www.blogfa.com/&lt;/div&gt;&lt;div&gt;178 http://www.narod.ru/&lt;/div&gt;&lt;div&gt;179 http://www.mapquest.com/&lt;/div&gt;&lt;div&gt;180 http://www.xiaonei.com/&lt;/div&gt;&lt;div&gt;181 http://www.web.de/&lt;/div&gt;&lt;div&gt;182 http://www.hp.com/&lt;/div&gt;&lt;div&gt;183 http://www.google.com.co/&lt;/div&gt;&lt;div&gt;184 http://www.sonico.com/&lt;/div&gt;&lt;div&gt;185 http://www.smileycentral.com/&lt;/div&gt;&lt;div&gt;186 http://www.google.com.pk/&lt;/div&gt;&lt;div&gt;187 http://www.easy-share.com/&lt;/div&gt;&lt;div&gt;188 http://www.google.be/&lt;/div&gt;&lt;div&gt;189 http://www.vnexpress.net/&lt;/div&gt;&lt;div&gt;190 http://www.brazzers.com/&lt;/div&gt;&lt;div&gt;191 http://www.linkedin.com/&lt;/div&gt;&lt;div&gt;192 http://www.allegro.pl/&lt;/div&gt;&lt;div&gt;193 http://www.mozilla.com/&lt;/div&gt;&lt;div&gt;194 http://www.seznam.cz/&lt;/div&gt;&lt;div&gt;195 http://www.bp.blogspot.com/&lt;/div&gt;&lt;div&gt;196 http://www.pogo.com/&lt;/div&gt;&lt;div&gt;197 http://www.people.com.cn/&lt;/div&gt;&lt;div&gt;198 http://www.zedo.com/&lt;/div&gt;&lt;div&gt;199 http://www.miniclip.com/&lt;/div&gt;&lt;div&gt;200 http://www.filefactory.com/&lt;/div&gt;&lt;div&gt;201 http://www.isohunt.com/&lt;/div&gt;&lt;div&gt;202 http://www.typepad.com/&lt;/div&gt;&lt;div&gt;203 http://www.ebay.it/&lt;/div&gt;&lt;div&gt;204 http://www.megarotic.com/&lt;/div&gt;&lt;div&gt;205 http://www.ocn.ne.jp/&lt;/div&gt;&lt;div&gt;206 http://www.hatena.ne.jp/&lt;/div&gt;&lt;div&gt;207 http://www.ziddu.com/&lt;/div&gt;&lt;div&gt;208 http://www.badongo.com/&lt;/div&gt;&lt;div&gt;209 http://www.wp.pl/&lt;/div&gt;&lt;div&gt;210 http://www.google.com.pe/&lt;/div&gt;&lt;div&gt;211 http://www.xhamster.com/&lt;/div&gt;&lt;div&gt;212 http://www.badoo.com/&lt;/div&gt;&lt;div&gt;213 http://www.torrentz.com/&lt;/div&gt;&lt;div&gt;214 http://www.taringa.net/&lt;/div&gt;&lt;div&gt;215 http://www.pchome.net/&lt;/div&gt;&lt;div&gt;216 http://www.soufun.com/&lt;/div&gt;&lt;div&gt;217 http://www.linkbucks.com/&lt;/div&gt;&lt;div&gt;218 http://www.google.at/&lt;/div&gt;&lt;div&gt;219 http://www.sendspace.com/&lt;/div&gt;&lt;div&gt;220 http://www.ebay.fr/&lt;/div&gt;&lt;div&gt;221 http://www.mercadolivre.com.br/&lt;/div&gt;&lt;div&gt;222 http://www.dtiblog.com/&lt;/div&gt;&lt;div&gt;223 http://www.realitykings.com/&lt;/div&gt;&lt;div&gt;224 http://www.schuelervz.net/&lt;/div&gt;&lt;div&gt;225 http://www.gougou.com/&lt;/div&gt;&lt;div&gt;226 http://www.gamefaqs.com/&lt;/div&gt;&lt;div&gt;227 http://www.ning.com/&lt;/div&gt;&lt;div&gt;228 http://www.foxnews.com/&lt;/div&gt;&lt;div&gt;229 http://www.mercadolibre.com.mx/&lt;/div&gt;&lt;div&gt;230 http://www.seesaa.net/&lt;/div&gt;&lt;div&gt;231 http://www.mywebsearch.com/&lt;/div&gt;&lt;div&gt;232 http://www.theplanet.com/&lt;/div&gt;&lt;div&gt;233 http://www.google.se/&lt;/div&gt;&lt;div&gt;234 http://www.ucoz.ru/&lt;/div&gt;&lt;div&gt;235 http://www.6.cn/&lt;/div&gt;&lt;div&gt;236 http://www.indiatimes.com/&lt;/div&gt;&lt;div&gt;237 http://www.tianya.cn/&lt;/div&gt;&lt;div&gt;238 http://www.reuters.com/&lt;/div&gt;&lt;div&gt;239 http://www.sweetim.com/&lt;/div&gt;&lt;div&gt;240 http://www.saatchi-gallery.co.uk/&lt;/div&gt;&lt;div&gt;241 http://www.xtube.com/&lt;/div&gt;&lt;div&gt;242 http://www.google.com.vn/&lt;/div&gt;&lt;div&gt;243 http://www.mlb.com/&lt;/div&gt;&lt;div&gt;244 http://www.kooora.com/&lt;/div&gt;&lt;div&gt;245 http://www.anonym.to/&lt;/div&gt;&lt;div&gt;246 http://www.usercash.com/&lt;/div&gt;&lt;div&gt;247 http://www.google.cl/&lt;/div&gt;&lt;div&gt;248 http://www.foxsports.com/&lt;/div&gt;&lt;div&gt;249 http://www.paypopup.com/&lt;/div&gt;&lt;div&gt;250 http://www.nfl.com/&lt;/div&gt;&lt;div&gt;251 http://www.washingtonpost.com/&lt;/div&gt;&lt;div&gt;252 http://www.watch-movies.net/&lt;/div&gt;&lt;div&gt;253 http://www.ifeng.com/&lt;/div&gt;&lt;div&gt;254 http://www.google.gr/&lt;/div&gt;&lt;div&gt;255 http://www.softonic.com/&lt;/div&gt;&lt;div&gt;256 http://www.google.pt/&lt;/div&gt;&lt;div&gt;257 http://www.att.net/&lt;/div&gt;&lt;div&gt;258 http://www.google.ch/&lt;/div&gt;&lt;div&gt;259 http://www.disney.go.com/&lt;/div&gt;&lt;div&gt;260 http://www.ezinearticles.com/&lt;/div&gt;&lt;div&gt;261 http://www.wamba.com/&lt;/div&gt;&lt;div&gt;262 http://www.china.com/&lt;/div&gt;&lt;div&gt;263 http://www.tom.com/&lt;/div&gt;&lt;div&gt;264 http://www.sportsline.com/&lt;/div&gt;&lt;div&gt;265 http://www.zaycev.net/&lt;/div&gt;&lt;div&gt;266 http://www.target.com/&lt;/div&gt;&lt;div&gt;267 http://www.pcpop.com/&lt;/div&gt;&lt;div&gt;268 http://www.netflix.com/&lt;/div&gt;&lt;div&gt;269 http://www.symantec.com/&lt;/div&gt;&lt;div&gt;270 http://www.google.ro/&lt;/div&gt;&lt;div&gt;271 http://www.walmart.com/&lt;/div&gt;&lt;div&gt;272 http://www.amazon.co.uk/&lt;/div&gt;&lt;div&gt;273 http://www.jugem.jp/&lt;/div&gt;&lt;div&gt;274 http://www.it168.com/&lt;/div&gt;&lt;div&gt;275 http://www.rr.com/&lt;/div&gt;&lt;div&gt;276 http://www.wer-kennt-wen.de/&lt;/div&gt;&lt;div&gt;277 http://www.onemanga.com/&lt;/div&gt;&lt;div&gt;278 http://www.leo.org/&lt;/div&gt;&lt;div&gt;279 http://www.careerbuilder.com/&lt;/div&gt;&lt;div&gt;280 http://www.skype.com/&lt;/div&gt;&lt;div&gt;281 http://www.msn.ca/&lt;/div&gt;&lt;div&gt;282 http://www.milliyet.com.tr/&lt;/div&gt;&lt;div&gt;283 http://www.rmxads.com/&lt;/div&gt;&lt;div&gt;284 http://www.xinhuanet.com/&lt;/div&gt;&lt;div&gt;285 http://www.freewebs.com/&lt;/div&gt;&lt;div&gt;286 http://www.naukri.com/&lt;/div&gt;&lt;div&gt;287 http://www.126.com/&lt;/div&gt;&lt;div&gt;288 http://www.hurriyet.com.tr/&lt;/div&gt;&lt;div&gt;289 http://www.digg.com/&lt;/div&gt;&lt;div&gt;290 http://www.people.com/&lt;/div&gt;&lt;div&gt;291 http://www.marca.com/&lt;/div&gt;&lt;div&gt;292 http://www.verycd.com/&lt;/div&gt;&lt;div&gt;293 http://www.travian.ae/&lt;/div&gt;&lt;div&gt;294 http://www.ameba.jp/&lt;/div&gt;&lt;div&gt;295 http://www.bestbuy.com/&lt;/div&gt;&lt;div&gt;296 http://www.brothersoft.com/&lt;/div&gt;&lt;div&gt;297 http://www.match.com/&lt;/div&gt;&lt;div&gt;298 http://www.bangbros1.com/&lt;/div&gt;&lt;div&gt;299 http://www.runescape.com/&lt;/div&gt;&lt;div&gt;300 http://www.empas.com/&lt;/div&gt;&lt;div&gt;301 http://dantri.com.vn/&lt;/div&gt;&lt;div&gt;302 http://www.xanga.com/&lt;/div&gt;&lt;div&gt;303 http://www.softpedia.com/&lt;/div&gt;&lt;div&gt;304 http://www.bloomberg.com/&lt;/div&gt;&lt;div&gt;305 http://www.paipai.com/&lt;/div&gt;&lt;div&gt;306 http://www.zylom.com/&lt;/div&gt;&lt;div&gt;307 http://www.break.com/&lt;/div&gt;&lt;div&gt;308 http://www.exblog.jp/&lt;/div&gt;&lt;div&gt;309 http://www.slide.com/&lt;/div&gt;&lt;div&gt;310 http://www.wsj.com/&lt;/div&gt;&lt;div&gt;311 http://www.monster.com/&lt;/div&gt;&lt;div&gt;312 http://www.spankwire.com/&lt;/div&gt;&lt;div&gt;313 http://www.marketgid.com/&lt;/div&gt;&lt;div&gt;314 http://www.aweber.com/&lt;/div&gt;&lt;div&gt;315 http://www.msplinks.com/&lt;/div&gt;&lt;div&gt;316 http://www.tripod.com/&lt;/div&gt;&lt;div&gt;317 http://www.xboard.us/&lt;/div&gt;&lt;div&gt;318 http://www.bild.de/&lt;/div&gt;&lt;div&gt;319 http://www.dmm.co.jp/&lt;/div&gt;&lt;div&gt;320 http://www.fling.com/&lt;/div&gt;&lt;div&gt;321 http://www.myfreepaysite.com/&lt;/div&gt;&lt;div&gt;322 http://www.spiegel.de/&lt;/div&gt;&lt;div&gt;323 http://www.fanfiction.net/&lt;/div&gt;&lt;div&gt;324 http://www.wwe.com/&lt;/div&gt;&lt;div&gt;325 http://www.liveinternet.ru/&lt;/div&gt;&lt;div&gt;326 http://www.payserve.com/&lt;/div&gt;&lt;div&gt;327 http://www.last.fm/&lt;/div&gt;&lt;div&gt;328 http://www.scribd.com/&lt;/div&gt;&lt;div&gt;329 http://www.att.com/&lt;/div&gt;&lt;div&gt;330 http://www.repubblica.it/&lt;/div&gt;&lt;div&gt;331 http://www.google.ae/&lt;/div&gt;&lt;div&gt;332 http://www.bigpoint.com/&lt;/div&gt;&lt;div&gt;333 http://www.playlist.com/&lt;/div&gt;&lt;div&gt;334 http://www.google.com.my/&lt;/div&gt;&lt;div&gt;335 http://www.livescore.com/&lt;/div&gt;&lt;div&gt;336 http://www.cocolog-nifty.com/&lt;/div&gt;&lt;div&gt;337 http://www.wikia.com/&lt;/div&gt;&lt;div&gt;338 http://www.ikea.com/&lt;/div&gt;&lt;div&gt;339 http://www.guardian.co.uk/&lt;/div&gt;&lt;div&gt;340 http://www.letitbit.net/&lt;/div&gt;&lt;div&gt;341 http://www.cartoonnetwork.com/&lt;/div&gt;&lt;div&gt;342 http://www.invisionfree.com/&lt;/div&gt;&lt;div&gt;343 http://www.verizon.net/&lt;/div&gt;&lt;div&gt;344 http://www.usps.com/&lt;/div&gt;&lt;div&gt;345 http://www.co.cc/&lt;/div&gt;&lt;div&gt;346 http://www.freeones.com/&lt;/div&gt;&lt;div&gt;347 http://www.nih.gov/&lt;/div&gt;&lt;div&gt;348 http://www.livedoor.biz/&lt;/div&gt;&lt;div&gt;349 http://www.ynet.com/&lt;/div&gt;&lt;div&gt;350 http://www.aebn.net/&lt;/div&gt;&lt;div&gt;351 http://www.ups.com/&lt;/div&gt;&lt;div&gt;352 http://www.yaplog.jp/&lt;/div&gt;&lt;div&gt;353 http://www.justin.tv/&lt;/div&gt;&lt;div&gt;354 http://www.mtv.com/&lt;/div&gt;&lt;div&gt;355 http://www.linternaute.com/&lt;/div&gt;&lt;div&gt;356 http://www.latimes.com/&lt;/div&gt;&lt;div&gt;357 http://www.ebay.com.au/&lt;/div&gt;&lt;div&gt;358 http://www.yesky.com/&lt;/div&gt;&lt;div&gt;359 http://www.sexyono.com/&lt;/div&gt;&lt;div&gt;360 http://www.39.net/&lt;/div&gt;&lt;div&gt;361 http://www.excite.co.jp/&lt;/div&gt;&lt;div&gt;362 http://www.sanook.com/&lt;/div&gt;&lt;div&gt;363 http://www.googlepages.com/&lt;/div&gt;&lt;div&gt;364 http://www.debonairblog.com/&lt;/div&gt;&lt;div&gt;365 http://www.wordreference.com/&lt;/div&gt;&lt;div&gt;366 http://www.google.co.hu/&lt;/div&gt;&lt;div&gt;367 http://www.forumcommunity.net/&lt;/div&gt;&lt;div&gt;368 http://www.edgesuite.net/&lt;/div&gt;&lt;div&gt;369 http://www.elmundo.es/&lt;/div&gt;&lt;div&gt;370 http://www.mobile.de/&lt;/div&gt;&lt;div&gt;371 http://www.musica.com/&lt;/div&gt;&lt;div&gt;372 http://www.myway.com/&lt;/div&gt;&lt;div&gt;373 http://www.neopets.com/&lt;/div&gt;&lt;div&gt;374 http://www.ifolder.ru/&lt;/div&gt;&lt;div&gt;375 http://www.google.dk/&lt;/div&gt;&lt;div&gt;376 http://www.yam.com/&lt;/div&gt;&lt;div&gt;377 http://www.interia.pl/&lt;/div&gt;&lt;div&gt;378 http://www.commentcamarche.net/&lt;/div&gt;&lt;div&gt;379 http://www.4dh.com/&lt;/div&gt;&lt;div&gt;380 http://www.mynet.com/&lt;/div&gt;&lt;div&gt;381 http://www.tuenti.com/&lt;/div&gt;&lt;div&gt;382 http://www.t-online.de/&lt;/div&gt;&lt;div&gt;383 http://www.pornorama.com/&lt;/div&gt;&lt;div&gt;384 http://www.truveo.com/&lt;/div&gt;&lt;div&gt;385 http://www.abcnews.go.com/&lt;/div&gt;&lt;div&gt;386 http://www.y8.com/&lt;/div&gt;&lt;div&gt;387 http://www.quizrocket.com/&lt;/div&gt;&lt;div&gt;388 http://www.startimes2.com/&lt;/div&gt;&lt;div&gt;389 http://www.opendns.com/&lt;/div&gt;&lt;div&gt;390 http://www.myyearbook.com/&lt;/div&gt;&lt;div&gt;391 http://www.clarin.com/&lt;/div&gt;&lt;div&gt;392 http://www.yieldmanager.com/&lt;/div&gt;&lt;div&gt;393 http://www.secureserver.net/&lt;/div&gt;&lt;div&gt;394 http://www.over-blog.com/&lt;/div&gt;&lt;div&gt;395 http://www.altervista.org/&lt;/div&gt;&lt;div&gt;396 http://www.mercadolibre.com.ar/&lt;/div&gt;&lt;div&gt;397 http://www.minijuegos.com/&lt;/div&gt;&lt;div&gt;398 http://www.information.com/&lt;/div&gt;&lt;div&gt;399 http://www.telegraph.co.uk/&lt;/div&gt;&lt;div&gt;400 http://www.thefreedictionary.com/&lt;/div&gt;&lt;div&gt;401 http://google.co.il/&lt;/div&gt;&lt;div&gt;402 http://www.worldofwarcraft.com/&lt;/div&gt;&lt;div&gt;403 http://www.incredimail.com/&lt;/div&gt;&lt;div&gt;404 http://www.dion.ne.jp/&lt;/div&gt;&lt;div&gt;405 http://www.so-net.ne.jp/&lt;/div&gt;&lt;div&gt;406 http://www.nate.com/&lt;/div&gt;&lt;div&gt;407 http://www.enet.com.cn/&lt;/div&gt;&lt;div&gt;408 http://www.teacup.com/&lt;/div&gt;&lt;div&gt;409 http://www.petardas.com/&lt;/div&gt;&lt;div&gt;410 http://www.in.com/&lt;/div&gt;&lt;div&gt;411 http://www.marketwatch.com/&lt;/div&gt;&lt;div&gt;412 http://www.zing.vn/&lt;/div&gt;&lt;div&gt;413 http://www.kakaku.com/&lt;/div&gt;&lt;div&gt;414 http://www.google.ie/&lt;/div&gt;&lt;div&gt;415 http://www.ultimate-guitar.com/&lt;/div&gt;&lt;div&gt;416 http://www.filefront.com/&lt;/div&gt;&lt;div&gt;417 http://www.megaclick.com/&lt;/div&gt;&lt;div&gt;418 http://www.pornotube.com/&lt;/div&gt;&lt;div&gt;419 http://www.forbes.com/&lt;/div&gt;&lt;div&gt;420 http://www.iwiw.hu/&lt;/div&gt;&lt;div&gt;421 http://www.hulu.com/&lt;/div&gt;&lt;div&gt;422 http://www.ggpht.com/&lt;/div&gt;&lt;div&gt;423 http://www.metrolyrics.com/&lt;/div&gt;&lt;div&gt;424 http://www.adsrevenue.net/&lt;/div&gt;&lt;div&gt;425 http://www.sapo.pt/&lt;/div&gt;&lt;div&gt;426 http://www.pichunter.com/&lt;/div&gt;&lt;div&gt;427 http://www.univision.com/&lt;/div&gt;&lt;div&gt;428 http://www.google.fi/&lt;/div&gt;&lt;div&gt;429 http://www.google.com.ph/&lt;/div&gt;&lt;div&gt;430 http://www.56.com/&lt;/div&gt;&lt;div&gt;431 http://www.google.dz/&lt;/div&gt;&lt;div&gt;432 http://www.nbc.com/&lt;/div&gt;&lt;div&gt;433 http://www.sify.com/&lt;/div&gt;&lt;div&gt;434 http://www.bharatstudent.com/&lt;/div&gt;&lt;div&gt;435 http://www.tv.com/&lt;/div&gt;&lt;div&gt;436 http://www.hornymatches.com/&lt;/div&gt;&lt;div&gt;437 http://www.chinaren.com/&lt;/div&gt;&lt;div&gt;438 http://www.ninemsn.com.au/&lt;/div&gt;&lt;div&gt;439 http://www.globe7.com/&lt;/div&gt;&lt;div&gt;440 http://www.addictinggames.com/&lt;/div&gt;&lt;div&gt;441 http://www.leboncoin.fr/&lt;/div&gt;&lt;div&gt;442 http://www.real.com/&lt;/div&gt;&lt;div&gt;443 http://www.bramjnet.com/&lt;/div&gt;&lt;div&gt;444 http://www.corriere.it/&lt;/div&gt;&lt;div&gt;445 http://www.fimserve.com/&lt;/div&gt;&lt;div&gt;446 http://www.webshots.com/&lt;/div&gt;&lt;div&gt;447 http://www.tripadvisor.com/&lt;/div&gt;&lt;div&gt;448 http://www.prizee.com/&lt;/div&gt;&lt;div&gt;449 http://www.chip.de/&lt;/div&gt;&lt;div&gt;450 http://www.blogchina.com/&lt;/div&gt;&lt;div&gt;451 http://www.chase.com/&lt;/div&gt;&lt;div&gt;452 http://www.limewire.com/&lt;/div&gt;&lt;div&gt;453 http://www.freelotto.com/&lt;/div&gt;&lt;div&gt;454 http://www.irctc.co.in/&lt;/div&gt;&lt;div&gt;455 http://www.atdmt.com/&lt;/div&gt;&lt;div&gt;456 http://www.perezhilton.com/&lt;/div&gt;&lt;div&gt;457 http://www.888.com/&lt;/div&gt;&lt;div&gt;458 http://www.shinobi.jp/&lt;/div&gt;&lt;div&gt;459 http://www.zedge.net/&lt;/div&gt;&lt;div&gt;460 http://www.eastmoney.com/&lt;/div&gt;&lt;div&gt;461 http://www.dailymail.co.uk/&lt;/div&gt;&lt;div&gt;462 http://www.ovguide.com/&lt;/div&gt;&lt;div&gt;463 http://www.gametrailers.com/&lt;/div&gt;&lt;div&gt;464 http://www.dyndns.org/&lt;/div&gt;&lt;div&gt;465 http://www.ibm.com/&lt;/div&gt;&lt;div&gt;466 http://www.bankofamerica.com/&lt;/div&gt;&lt;div&gt;467 http://www.plentyoffish.com/&lt;/div&gt;&lt;div&gt;468 http://www.nokia.com/&lt;/div&gt;&lt;div&gt;469 http://www.usatoday.com/&lt;/div&gt;&lt;div&gt;470 http://www.fotka.pl/&lt;/div&gt;&lt;div&gt;471 http://www.nba.com/&lt;/div&gt;&lt;div&gt;472 http://www.xe.com/&lt;/div&gt;&lt;div&gt;473 http://www.uwants.com/&lt;/div&gt;&lt;div&gt;474 http://www.technorati.com/&lt;/div&gt;&lt;div&gt;475 http://www.tu.tv/&lt;/div&gt;&lt;div&gt;476 http://www.gaiaonline.com/&lt;/div&gt;&lt;div&gt;477 http://www.meebo.com/&lt;/div&gt;&lt;div&gt;478 http://www.yimg.com/&lt;/div&gt;&lt;div&gt;479 http://www.cricinfo.com/&lt;/div&gt;&lt;div&gt;480 http://www.expedia.com/&lt;/div&gt;&lt;div&gt;481 http://www.atwiki.jp/&lt;/div&gt;&lt;div&gt;482 http://www.google.com.ua/&lt;/div&gt;&lt;div&gt;483 http://www.gamer.com.tw/&lt;/div&gt;&lt;div&gt;484 http://www.01net.com/&lt;/div&gt;&lt;div&gt;485 http://www.timesonline.co.uk/&lt;/div&gt;&lt;div&gt;486 http://www.iij4u.or.jp/&lt;/div&gt;&lt;div&gt;487 http://www.oyunlar1.com/&lt;/div&gt;&lt;div&gt;488 http://www.1und1.de/&lt;/div&gt;&lt;div&gt;489 http://www.usagc.org/&lt;/div&gt;&lt;div&gt;490 http://www.winamp.com/&lt;/div&gt;&lt;div&gt;491 http://www.gyao.jp/&lt;/div&gt;&lt;div&gt;492 http://www.21cn.com/&lt;/div&gt;&lt;div&gt;493 http://www.ea.com/&lt;/div&gt;&lt;div&gt;494 http://www.esnips.com/&lt;/div&gt;&lt;div&gt;495 http://www.newegg.com/&lt;/div&gt;&lt;div&gt;496 http://www.orgasm.com/&lt;/div&gt;&lt;div&gt;497 http://www.wachovia.com/&lt;/div&gt;&lt;div&gt;498 http://www.mobile9.com/&lt;/div&gt;&lt;div&gt;499 http://www.dada.net/&lt;/div&gt;&lt;div&gt;500 http://www.google.com.tw&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-6421983715575897994?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/6421983715575897994/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=6421983715575897994' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/6421983715575897994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/6421983715575897994'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2008/10/top-500-most-popular-websites-full-list.html' title='Top 500 most popular websites full list in plain text'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-2935152665990647372</id><published>2008-10-09T22:43:00.004-04:00</published><updated>2008-10-09T22:50:05.023-04:00</updated><title type='text'>Big-endian VS Little-endian</title><content type='html'>I've long been confused by these two concepts, because I didn't find a good way to remember.&lt;div&gt;Today I met with them again and finally know where they come from and then can easily remember because I think I found what they actually mean.&lt;/div&gt;&lt;div&gt;For little-endian, see this graph&lt;/div&gt;&lt;div&gt;&lt;img src="http://2.bp.blogspot.com/_nKbM1Pg_HmI/SO7BuhVjmuI/AAAAAAAAAeE/8onUQrMWsqw/s320/280px-Little-Endian.svg.png" style="left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" border="0" alt="" id="BLOGGER_PHOTO_ID_5255350820154874594" /&gt;&lt;/div&gt;&lt;div&gt;For big-endian see this graph&lt;/div&gt;&lt;div&gt;&lt;img src="http://4.bp.blogspot.com/_nKbM1Pg_HmI/SO7CA4bAt3I/AAAAAAAAAeM/RmtSuD3aPzo/s320/280px-Big-Endian.svg.png" style="left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" border="0" alt="" id="BLOGGER_PHOTO_ID_5255351135589414770" /&gt;&lt;/div&gt;&lt;div&gt;What is endian?&lt;/div&gt;&lt;div&gt;It means the end. So big-endian means an end(start) with big value!&lt;/div&gt;&lt;div&gt;So byte in the low address has bigger value.&lt;/div&gt;&lt;div&gt;For little-endian, an end has little value!&lt;/div&gt;&lt;div&gt;So byte in the low address has small value.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Then we can remember.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For 16 bits and 32 bits endian, they are different.&lt;/div&gt;&lt;div&gt;In 32 bits endian, each 32 bits are treated as a whole as a number.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-2935152665990647372?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/2935152665990647372/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=2935152665990647372' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/2935152665990647372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/2935152665990647372'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2008/10/big-endian-vs-little-endian.html' title='Big-endian VS Little-endian'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_nKbM1Pg_HmI/SO7BuhVjmuI/AAAAAAAAAeE/8onUQrMWsqw/s72-c/280px-Little-Endian.svg.png' height='72' width='72'/><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-3915831156293960199</id><published>2008-10-09T16:40:00.004-04:00</published><updated>2008-10-09T17:19:22.833-04:00</updated><title type='text'>Perl Bitwise String Operators</title><content type='html'>The following perl scrap seems horrible, see if you can understand it&lt;div&gt;"&lt;/div&gt;&lt;div&gt;&lt;div&gt;if ($ident !~ /^\241\262\303\324/ &amp;amp;&amp;amp;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;    $ident !~ /^\324\303\262\241/ &amp;amp;&amp;amp;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;    $ident !~ /^\241\262\315\064/ &amp;amp;&amp;amp;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;    $ident !~ /^\064\315\262\241/)&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;        die "ERROR: Not a tcpdump file (or unknown version) $file\n";&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;/div&gt;&lt;div&gt;"&lt;/div&gt;&lt;div&gt;To understand it, we have to first get farmiliar with perl bitwise string operators.&lt;/div&gt;&lt;div&gt;Bitstrings of any size may be manipulated by the bitwise operators (~ | &amp;amp; ^).&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you know them already, just skip them.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;~ is the negation unary operator:&lt;/div&gt;&lt;div&gt;"Unary "~'' performs bitwise negation, i.e., 1's complement. For example, 0666 &amp;amp;~ 027 is 0640." referenced from &lt;a href="http://www.perl.com/doc/manual/html/pod/perlop.html#Bitwise_String_Operators"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;| is the binary or operator, &lt;/div&gt;&lt;div&gt;"Binary "|'' returns its operators ORed together bit by bit."&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;amp; is the binary and operator,&lt;/div&gt;&lt;div&gt;"Binary "&amp;amp;'' returns its operators ANDed together bit by bit."&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;^ is the binary exclusive or operator,&lt;/div&gt;&lt;div&gt;"Binary "^'' returns its operators XORed together bit by bit."&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So what does "!~" mean?&lt;/div&gt;&lt;div&gt;Unary "!'' performs logical negation, i.e., "not''.  "~" for exclusive or.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Well, we should learn that, "!~" itself is a binding operator.&lt;/div&gt;&lt;div&gt;First have a look at "=~", which is related with "!~"&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Binary "=~'' binds a scalar expression to a pattern match. Certain operations search or modify the string $_ by default. This operator makes that kind of operation work on some other string. The right argument is a search pattern, substitution, or transliteration. The left argument is what is supposed to be searched, substituted, or transliterated instead of the default $_. The return value indicates the success of the operation. (If the right argument is an expression rather than a search pattern, substitution, or transliteration, it is interpreted as a search pattern at run time. This can be is less efficient than an explicit search, because the pattern must be compiled every time the expression is evaluated.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Binary "!~'' is just like "=~'' except the return value is negated in the logical sense.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Unary "\'' creates a reference to whatever follows it.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;\241 can be viewed as a char in C, for example, CR+LF is "\012\015" or "\cJ\cM".&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here "^" is not exclusive or, but define the pattern that is at the beginning of a line&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For "$ident !~ /^\241\262\303\324/", the left thing for us to know is /.../&lt;/div&gt;&lt;div&gt;This is a search pattern.&lt;/div&gt;&lt;div&gt;"$ident" is a variable to be matched.&lt;/div&gt;&lt;div&gt;So we know what the following scrap means now:&lt;/div&gt;&lt;div&gt;"&lt;/div&gt;&lt;div&gt;&lt;div&gt;if ($ident !~ /^\241\262\303\324/ &amp;amp;&amp;amp;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt; &lt;/span&gt;    $ident !~ /^\324\303\262\241/ &amp;amp;&amp;amp;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt; &lt;/span&gt;    $ident !~ /^\241\262\315\064/ &amp;amp;&amp;amp;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt; &lt;/span&gt;    $ident !~ /^\064\315\262\241/)&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt; &lt;/span&gt;        die "ERROR: Not a tcpdump file (or unknown version) $file\n";&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;/div&gt;&lt;div&gt;"&lt;/div&gt;&lt;div&gt;If the &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;beginning(^)&lt;/span&gt; of $ident is not one of the following for cases:&lt;/div&gt;&lt;div&gt;\241\262\303\324&lt;br /&gt;&lt;/div&gt;&lt;div&gt;\324\303\262\241&lt;br /&gt;&lt;/div&gt;&lt;div&gt;\241\262\315\064&lt;br /&gt;&lt;/div&gt;&lt;div&gt;\064\315\262\241&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It will die with error "ERROR: Not a tcpdump file (or unknown version) $file\n"&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is the first step to understand god-read-perl&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&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/1228707902785326925-3915831156293960199?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/3915831156293960199/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=3915831156293960199' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/3915831156293960199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/3915831156293960199'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2008/10/perl-bitwise-string-operators.html' title='Perl Bitwise String Operators'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-296103331593663776</id><published>2008-10-07T16:22:00.000-04:00</published><updated>2009-02-04T02:38:59.412-05:00</updated><title type='text'>How to jailbreak iphone with firmware 2.1</title><content type='html'>Step by step jailbreak iphone with firmware 2.1&lt;div&gt;1. Install iTunes 8.0 (I used 8.0.0.35)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. Download the latest 2.1 IPSW firmware from Apple for 3G at &lt;a href="http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-5198.20080909.K3294/iPhone1,2_2.1_5F136_Restore.ipsw"&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3. Download QuickPwn v1.2.0 with 2.1 ipsw support at &lt;a href="http://xpwn.co.uk/quickpwn-2.1-2g-3g.rar"&gt;here&lt;/a&gt;. Then extract the zip (there is no need to install). Don’t use QuickPwn 1.50, it doesn’t work when you try to load it the IPSW file.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;4. Connect your iPhone (with power on) to your computer using USB cable.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;5. Launch itunes 8.0. (You will see the your ipho&lt;/div&gt;&lt;div&gt;ne under the devices menu of itunes)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;6. &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Shift-click&lt;/span&gt; on the restore button and browse to the 2.1 IPSW file you just downloaded.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;7. After the upgrade (about 10 minutes wait for me) your iPhone will be running on 2.1 software &lt;/div&gt;&lt;div&gt;Following steps will be involed, you don't have to control, they are automatic&lt;/div&gt;&lt;div&gt;"Prepare your iphone to restore" (multiple times)&lt;br /&gt;&lt;/div&gt;&lt;div&gt;"Prepare your iphone software to restore"&lt;br /&gt;&lt;/div&gt;&lt;div&gt;"Restoring iPhone software ..." (slowest)&lt;/div&gt;&lt;div&gt;"Verifying iPhone software..."&lt;br /&gt;&lt;/div&gt;&lt;div&gt;"Verifying iPhone restore..."&lt;br /&gt;&lt;/div&gt;&lt;div&gt;"Restoring iPhone firmware..."&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After that, the following box will appear&lt;/div&gt;&lt;div&gt;&lt;img src="http://1.bp.blogspot.com/_nKbM1Pg_HmI/SOvJL8MUrxI/AAAAAAAAAdc/ph8WdIXUn8U/s320/info.jpg" style="left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" border="0" alt="" id="BLOGGER_PHOTO_ID_5254514597231374098" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;8. Don't close iTunes. Launch QuickPwn by opening the folder where you extracted it and double clicking QuickPwnGUI1.20.exe&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;9. Select your device. Click the next arrow (Mine is iphone 3G).&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://1.bp.blogspot.com/_nKbM1Pg_HmI/SOvWK8707gI/AAAAAAAAAdk/t0gKT3lGBa4/s320/pwn.jpg" style="left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" border="0" alt="" id="BLOGGER_PHOTO_ID_5254528873901911554" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;10. On the next page, click browse and load the 2.1 IPSW firmware you just downloaded. Then click next arrow.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;11. On the next page, &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;make sure you select the "Cydia" checkbox &lt;/span&gt;(without Cydia, why do you need to jailbreak your iphone?). You can check "Installer" and replace logo as desired.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;12. Now click on the Go button which will bring up a DOS window with some instructions. (wait for 2 minutes)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;13. You’ll eventually get to a prompt to turn off your iPhone. (Don't hit enter until you've turned your iphone off)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;14. Turn off your iPhone (hold power, slide to power off), then type "y" to contiune. Don’t disconnect your iPhone.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;15. &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;(Read carefully about this step, you have to be really carefully about the time)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;You will be instructed on how to put your iPhone into DFU mode. Read it through to give yourself a refresher and ask yourself, "Are you ready to begin?"&lt;/div&gt;&lt;div&gt;1. Once you hit "y" you will get a 5 second countdown. &lt;/div&gt;&lt;div&gt;YOU DON'T NEED TO DO ANYTHING YET. Let it count down to 0, &lt;/div&gt;&lt;div&gt;2. then start the entire DFU procedure by &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;holding the power button for 5 seconds&lt;/span&gt;, &lt;/div&gt;&lt;div&gt;3. then &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;pressing Home while continuing to hold Power for a 10 second&lt;/span&gt; count down, and &lt;/div&gt;&lt;div&gt;4. &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;finally releasing Power but continuing to hold Home for 30 seconds&lt;/span&gt;. For me, it counted down to about 20 seconds (meaning only 10 seconds passed) after which the computer detected the iPhone was in DFU mode. When this happens, you don’t need to hold anything down anymore and the countdown will terminate.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;16. You'll see a couple tasks execute on the DOS windows and the progress. On your iphone, you will see a pineapple with a crack on it. Let it work its magic and once it finishes, you will have a pwned jailbroken iPhone running 2.1!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;17. During the process you will get some error messages from iTunes. Yawn and ignore.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;18. (Optional, I don't do this) If you don’t get your network provider signal, you need to downgrade the baseband to version 4.6 which is unlockable. Install BootNeuter from Cydia and set the settings as shown. Then hit the Flash button.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;19. (Not complete yet.) Install total commander and T-Pot addon for it. Refer to my &lt;a href="http://junxian-huang.blogspot.com/2008/10/how-to-browse-ipod-touchiphone-with-usb.html"&gt;previous article&lt;/a&gt; for doing this.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;20. Make sure your iPhone is on and still connected to your computer via the USB cable. Use TotalCommander to browse to your iPhone file system by first clicking -/- on the drop down menu with all the drives. Then double click on [T-PoT]. (This trick is just browing iphone file system, refer this my &lt;a href="http://junxian-huang.blogspot.com/2008/10/how-to-browse-ipod-touchiphone-with-usb.html"&gt;previous article&lt;/a&gt;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;21. You are now in your iPhone's file system. Use TotalCommander to navigate to&lt;/div&gt;&lt;div&gt;"/System/Library/PrivateFrameWorks/MobileInstallation.framework"&lt;/div&gt;&lt;div&gt;Just in case things don’t work out, make sure you save your existing MobileInstallation file simply by dragging the file over to the other window.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;22. Now replace the MobileInstallation file on your iPhone with this &lt;a href="http://www.coderetard.com/wp-content/uploads/2008/09/2.1.MI.patched.zip"&gt;patched one&lt;/a&gt; for v2.1 firmware.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;23. Now use TotalCommander to navigate to &lt;/div&gt;&lt;div&gt;"/private/var/mobile/Library/Caches/" &lt;/div&gt;&lt;div&gt;and backup your existing "com.apple.mobile.installation.plist" file first, then delete it&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;24. Reboot your iPhone. Now ponder why you went through all this trouble (like us). Enjoy!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;References pages&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.coderetard.com/2008/09/13/how-to-jailbreak-iphone-21-firmware-ipsw-with-quickpwn-windows/"&gt; How to Jailbreak iPhone 2.1 Firmware IPSW with QuickPwn 1.2.0 (Windows)&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.coderetard.com/2008/08/28/how-to-upgrade-iphone-to-202-firmware-with-quickpwn/"&gt;How to Upgrade iPhone to 2.0.2 Firmware with QuickPwn&lt;/a&gt;&lt;br /&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;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-296103331593663776?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/296103331593663776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=296103331593663776' title='38 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/296103331593663776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/296103331593663776'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2008/10/how-to-jailbreak-iphone-with-firmware.html' title='How to jailbreak iphone with firmware 2.1'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_nKbM1Pg_HmI/SOvJL8MUrxI/AAAAAAAAAdc/ph8WdIXUn8U/s72-c/info.jpg' height='72' width='72'/><thr:total>38</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-794678782214552562</id><published>2008-10-05T23:35:00.002-04:00</published><updated>2008-10-05T23:39:30.739-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tcmdump'/><category scheme='http://www.blogger.com/atom/ns#' term='snaplen'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>Notes for tcpdump</title><content type='html'>&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Note 1&lt;/span&gt; &lt;div&gt;I run tcpdump in iphone to listen to the packet traffic&lt;div&gt;I run "tcpdump -vvv -i en0 &gt; en0" and "tcpdump -vvv -i pdp_ip0" at the same time in the terminal.&lt;/div&gt;&lt;div&gt;I the result file "en0", I find the following&lt;/div&gt;&lt;div&gt;"&lt;/div&gt;&lt;div&gt;&gt;&gt;&gt; NBT UDP PACKET(138) Res=0x110E ID=0x81CE IP=169 (0xa9).254 (0xfe).223 (0xdf).49 (0x31) Port=138 (0x8a) Length=197 (0xc5) Res2=0x0 &lt;/div&gt;&lt;div&gt;SourceName= &lt;/div&gt;&lt;div&gt;WARNING: Short packet. Try increasing the snap length&lt;br /&gt;&lt;/div&gt;&lt;div&gt;"&lt;/div&gt;&lt;div&gt;I searched it and this needs not to be worried.&lt;/div&gt;&lt;div&gt;See &lt;a href="http://atm.tut.fi/list-archive/freebsd-stable/msg00191.html"&gt;this page&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It's not something to be worried about. It's not a FreeBSD or &lt;/div&gt;&lt;div&gt;SAMBA problem, either. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It's tcpdump complaining about snaplen (-s &lt;number&gt;) being &lt;/div&gt;&lt;div&gt;shorter than at least one packet it encountered in the stream.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For recovery purpose, I rewrite this line to "(Recovered by Junxian )id 33230, offset 0", so that the id can be recorded by my Perl script.&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/1228707902785326925-794678782214552562?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/794678782214552562/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=794678782214552562' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/794678782214552562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/794678782214552562'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2008/10/notes-for-tcpdump.html' title='Notes for tcpdump'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-5409112659119242502</id><published>2008-10-05T23:08:00.003-04:00</published><updated>2008-10-05T23:11:11.273-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='double-quotes'/><category scheme='http://www.blogger.com/atom/ns#' term='single-quote'/><category scheme='http://www.blogger.com/atom/ns#' term='perl tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Start to learn Perl: Difference between single-quote and double-quotes</title><content type='html'>&lt;div&gt;$s = 1;&lt;/div&gt;&lt;div&gt;print '$sAND\n';  will result in&lt;/div&gt;&lt;div&gt;$sAND\n&lt;/div&gt;&lt;div&gt;While&lt;/div&gt;&lt;div&gt;print "$s \n"; will result in&lt;/div&gt;&lt;div&gt;1AND&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In single-quote, compiler leaves everything what they are, while for double-quotes, special characters will be replaced&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Refer to &lt;a href="http://www.perlmonks.org/?displaytype=print;node_id=401006"&gt;this page&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/1228707902785326925-5409112659119242502?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/5409112659119242502/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=5409112659119242502' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/5409112659119242502'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/5409112659119242502'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2008/10/start-to-learn-perl-difference-between.html' title='Start to learn Perl: Difference between single-quote and double-quotes'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-7319213668629101555</id><published>2008-10-05T22:47:00.008-04:00</published><updated>2008-10-05T22:51:41.025-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='define'/><category scheme='http://www.blogger.com/atom/ns#' term='perl tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='exist'/><category scheme='http://www.blogger.com/atom/ns#' term='difference'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><category scheme='http://www.blogger.com/atom/ns#' term='true'/><title type='text'>Start to learn Perl: Differences among exists, defined, and true</title><content type='html'>&lt;div&gt;my %h = ();&lt;/div&gt;&lt;div&gt;#%h is a hash table&lt;/div&gt;&lt;div&gt;$h{'undef'} = undef;&lt;/div&gt;&lt;div&gt;$h{'defined_but_false'} = 0;&lt;/div&gt;&lt;div&gt;$h{'defined_and_true'} = 'true';&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;$key = 'undef';&lt;/div&gt;&lt;div&gt;print "Value EXISTS, but may be undefined.\n" if exists  $h{ $key };&lt;/div&gt;&lt;div&gt;print "Value is DEFINED, but may be false.\n" if defined $h{ $key };&lt;/div&gt;&lt;div&gt;print "Value is TRUE at h key $key.\n"     if         $h{ $key };&lt;/div&gt;&lt;div&gt;print "\n";&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;$key = 'defined_but_false';&lt;/div&gt;&lt;div&gt;print "Value EXISTS, but may be undefined.\n" if exists  $h{ $key };&lt;/div&gt;&lt;div&gt;print "Value is DEFINED, but may be false.\n" if defined $h{ $key };&lt;/div&gt;&lt;div&gt;print "Value is TRUE at h key $key.\n"     if         $h{ $key };&lt;/div&gt;&lt;div&gt;print "\n";&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;$key = 'defined_and_true';&lt;/div&gt;&lt;div&gt;print "Value EXISTS, but may be undefined.\n" if exists  $h{ $key };&lt;/div&gt;&lt;div&gt;print "Value is DEFINED, but may be false.\n" if defined $h{ $key };&lt;/div&gt;&lt;div&gt;print "Value is TRUE at h key $key.\n"     if         $h{ $key };&lt;/div&gt;&lt;div&gt;print "\n";&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;____________________________________________________________&lt;/div&gt;&lt;div&gt;Store the above to "test.pl"&lt;/div&gt;&lt;div&gt;and run "perl test.pl"&lt;/div&gt;&lt;div&gt;You will get the following results:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;"&lt;/div&gt;&lt;div&gt;&lt;div&gt;Value EXISTS, but may be undefined.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Value EXISTS, but may be undefined.&lt;/div&gt;&lt;div&gt;Value is DEFINED, but may be false.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Value EXISTS, but may be undefined.&lt;/div&gt;&lt;div&gt;Value is DEFINED, but may be false.&lt;/div&gt;&lt;div&gt;Value is TRUE at h key defined_and_true.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;"&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So if a variable is true, then it is defined, and if a variable is defined, then it exists.&lt;/div&gt;&lt;div&gt;But reverse is not true.&lt;/div&gt;&lt;div&gt;A variable exists but may not have been defined, and a variable is defined but may not be true&lt;/div&gt;&lt;div&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/1228707902785326925-7319213668629101555?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/7319213668629101555/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=7319213668629101555' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/7319213668629101555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/7319213668629101555'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2008/10/start-to-learn-perl-differences-among.html' title='Start to learn Perl: Differences among exists, defined, and true'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-181108521114340255</id><published>2008-10-05T20:06:00.003-04:00</published><updated>2008-10-05T20:35:17.738-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='modem'/><category scheme='http://www.blogger.com/atom/ns#' term='3proxy'/><category scheme='http://www.blogger.com/atom/ns#' term='wi-fi'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone modem'/><category scheme='http://www.blogger.com/atom/ns#' term='jailbreak'/><category scheme='http://www.blogger.com/atom/ns#' term='socks'/><category scheme='http://www.blogger.com/atom/ns#' term='fire fox'/><title type='text'>How to share iphone's internet connection with you laptop using Wi-Fi connection, or say use iphone as a modem</title><content type='html'>This article aims to provide a way to connect your laptop with iphone using Wi-Fi connection, and use iPhone as the modem of your laptop, so you can have access to the internet with your iphone's 3G or 2G data service. This is really cool when you are at home and have a laptop, but you don't have internet access, either wired or wireless. The bandwidth is good, with this trick, you firefox is enabled to surf on the Internet.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Step 1&lt;/span&gt;: Jailbreak your iphone. (How to? I will write another article on how to do this. )&lt;/div&gt;&lt;div&gt;Before you do this, think carefully, because it violates the warrenty.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Step 2&lt;/span&gt;: Create a Ad-Hoc (device-to-device) connection using your laptop, in order to achieve this task, refer to my article for windows xp &lt;a href="http://junxian-huang.blogspot.com/2008/10/set-up-ad-hoc-network-in-your-home-for.html"&gt;here&lt;/a&gt;, for mac os, I think it is also very easy.&lt;/div&gt;&lt;div&gt;Add your iphone to this network (Settings-&gt;Wi-Fi-&gt;enable Wi-Fi and choose the ad-hoc network)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Step 3&lt;/span&gt;: Install 3Proxy and Terminal&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After jail broke iPhone, a Cydia icon will appear on one of the App pages. Load Cydia, and after self updating by Cydia, go to Install tab -&gt; All Packages. Install both MobileTerminal and 3Proxy, then hit the Home button. The phone will restart and Terminal will be installed on iPHone Home screen. (refer to &lt;a href="http://www.mydigitallife.info/2008/07/27/how-to-tether-and-connect-iphone-1g-2g-and-3g-as-modem-for-internet-gateaway/"&gt;this page&lt;/a&gt;)&lt;/div&gt;&lt;div&gt;MobileTerminal enables you to run program with terminal as in linux.&lt;/div&gt;&lt;div&gt;3Proxy is for making your iphone a server using socks 5 protocol.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Step 4&lt;/span&gt;: Find your iPhone's IP address. &lt;/div&gt;&lt;div&gt;This can be found by running "ifconfig" command in the terminal, but of course, you need to first install the package required for "ifconfig", search it in Cydia&lt;/div&gt;&lt;div&gt;Or, the easier way is the go inside the Wi-Fi connection by clicking the "&gt;" sign of the current Wi-Fi connection in the "Settings-&gt;Wi-Fi" menu, write this address down in a paper.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Step 5: &lt;/span&gt;Open the terminal, type "socks" and click "return", it will hang there, it is fine, because the server is running and waiting for connection&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Step 6&lt;/span&gt;:Run Safari on the iPhone and Open a Web Page&lt;/div&gt;&lt;div&gt;Launch Mobile Safari on iPhone and browse to any web page.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Note that this step is&lt;span class="Apple-style-span" style="font-weight: bold;"&gt; important &lt;/span&gt;to ensure that iPhone will internally switch itself and fallback to 3G GSM data connection when it fails to get through to Internet using the ad-hoc wireless connection, without dropping or terminating the ad-hoc network, allowing the SOCKS proxy server to transmit and transfer data via 3G network connection&lt;br /&gt;&lt;/div&gt;&lt;div&gt;(Each time when you find the iphone modem is not working, you should repeat this step)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Step 7&lt;/span&gt;: Configure Web Browser Fire Fox&lt;/div&gt;&lt;div&gt;Run Firefox web browser to configure proxy server for Internet traffic. In Firefox, go to Preferences -&gt; Advanced -&gt; Network -&gt; Settings. Then, fill in the iPhone’s IP address written down from step 5 above into the SOCKS Host field, and enter 1080 as the port number.&lt;/div&gt;&lt;div&gt;Make sure all other proxy fields are blank and/or 0.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Step 8&lt;/span&gt;: Tunnel and Forward DNS Resolution Requests Through SOCKS Proxy&lt;/div&gt;&lt;div&gt;3Proxy SOCKS proxy can resolve target DNS names if the application sends domain name resolving requests to the SOCKS proxy. However, each application that requires to go to Internet via SOCKS proxy had to be configured manually, as most program will attempt to resolve a domain name against remote DNS server via HTTP protocol.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Firefox, for one, has such capability to force DNS resolution via SOCKS protocol. To enable such advanced option, type "about:config" into Firefox URL Location Bar. A huge list will appear, search for "socks" and change the value for network.proxy.socks_remote_dns preference to true (double click to change the value).&lt;/div&gt;&lt;div&gt;The DNS resolution limitation through SOCKS proxy also explains why some applications do not successfully browsing or connecting to Internet websites through tethering iPhone. However, once DNS requests have been cached locally, the domain will work system wide.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Now you can use the configured Fire Fox to go to any websites you are interested. You can do everything, even watch youtube videos smoothly.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;(&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;Don't forget to restore the changes that you made just now&lt;/span&gt;)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Step 9&lt;/span&gt;: Terminate socks proxy&lt;/div&gt;&lt;div&gt;After using the Internet connection via iPhone, terminate the SOCKS proxy server running on iPhone by switching back to Terminal, and then press and hold the Home button until Terminal quits, else it may slowly drain the battery life of iPhone.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Step 10&lt;/span&gt;: Change the fire fox configuration back, think what you did just now, and reverse.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Have fun!&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/1228707902785326925-181108521114340255?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/181108521114340255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=181108521114340255' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/181108521114340255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/181108521114340255'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2008/10/how-to-share-iphones-internet.html' title='How to share iphone&apos;s internet connection with you laptop using Wi-Fi connection, or say use iphone as a modem'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-3000643492438315075</id><published>2008-10-05T19:51:00.007-04:00</published><updated>2008-10-05T20:06:03.302-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='file system'/><category scheme='http://www.blogger.com/atom/ns#' term='ipod touch'/><category scheme='http://www.blogger.com/atom/ns#' term='file system browser'/><category scheme='http://www.blogger.com/atom/ns#' term='t-pot'/><category scheme='http://www.blogger.com/atom/ns#' term='total commander'/><category scheme='http://www.blogger.com/atom/ns#' term='jailbreak'/><category scheme='http://www.blogger.com/atom/ns#' term='usb connection'/><category scheme='http://www.blogger.com/atom/ns#' term='usb'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>How to browse iPod Touch/iPhone with USB and without Wi-Fi</title><content type='html'>I think without even jailbreaking iphone or iPod Touch, you can use my tricks to browse into the file system of them.&lt;div&gt;I will only use iPhone as an example.&lt;/div&gt;&lt;div&gt;iPhone is using Darwin file system, which is a distribution based on Free BSD.&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Step 1&lt;/span&gt;: Download and install &lt;a href="http://www.ghisler.com/download.htm"&gt;Total Commander&lt;/a&gt;, choose on of the download links in the list and install it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Step 2&lt;/span&gt;: Download T-Pot from &lt;a href="http://code.google.com/p/t-pot/downloads/list"&gt;here&lt;/a&gt;, choose T-Pot.1.1.zip&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Step 3&lt;/span&gt;: Open total commander, and browse into directory where you put T-Pot.1.1.zip, and double click it. You will be asked whether to install "Ipod Touch/iPhone USB filesystem browser", click "yes"&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Step 4: &lt;/span&gt;Connect you iPhone with the computer using USB, and launch itunes&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Step 5&lt;/span&gt;: Choose from the driver list (the list of [-\-]  [-C-], etc), choose "[-\-]", you will see "[T-PoT]", click it!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Step 6&lt;/span&gt;: Then you are browsing the iphone file system!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Typically, in the iPhone file system root, you will find "lib" "bin" "dev" "sbin" "System" "usr" folders, and some of them are similar to linux file system, you can easily download files and upload files from and to iPhone or iPod Touch.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Also, you can refer to &lt;a href="http://www.everythingicafe.com/forum/iphone-modifications/connect-to-the-iphone-via-usb-no-wifi-required-28773.html"&gt;this page&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Have fun!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-3000643492438315075?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/3000643492438315075/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=3000643492438315075' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/3000643492438315075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/3000643492438315075'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2008/10/how-to-browse-ipod-touchiphone-with-usb.html' title='How to browse iPod Touch/iPhone with USB and without Wi-Fi'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-4392165668144937200</id><published>2008-10-04T16:22:00.007-04:00</published><updated>2008-10-04T16:53:34.159-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='two laptop share internet connection'/><category scheme='http://www.blogger.com/atom/ns#' term='windows xp'/><category scheme='http://www.blogger.com/atom/ns#' term='fire wall'/><category scheme='http://www.blogger.com/atom/ns#' term='wireless'/><category scheme='http://www.blogger.com/atom/ns#' term='ad hoc'/><title type='text'>Set up an Ad-Hoc network in your home for windows XP</title><content type='html'>Today I  set up an Ad-Hoc network of two windows XP computers.&lt;div&gt;And computer A can successfully access the web server at computer B.&lt;/div&gt;&lt;div&gt;With Internet connection sharing, you can ever make two laptops have Internet access at the same time, when there is only one network cable and no wireless network connections.&lt;/div&gt;&lt;div&gt;But of course, when one is downloading a file, the other will suffer and experience low bandwidth.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;How to do this?&lt;/div&gt;&lt;div&gt;1 Go to Wireless Network Connection, click "Set up a wireless network for a home or small office"&lt;/div&gt;&lt;div&gt;2 Choose set up a new wireless network&lt;/div&gt;&lt;div&gt;3 Plugin your USB drive&lt;/div&gt;&lt;div&gt;4 Choose "use a USB flash drive"&lt;/div&gt;&lt;div&gt;5 Follow the instructions, and unplug the USB and plug it to the other computer&lt;/div&gt;&lt;div&gt;6 On the other laptop, authrun the USB and use the "run wireless wizard"&lt;/div&gt;&lt;div&gt;7 When it says that you have successfully added this computer to the ad hoc, unplug USB&lt;/div&gt;&lt;div&gt;8 Plug the USB back and click "Next" where you stopped&lt;/div&gt;&lt;div&gt;Then follows the steps and you can complete&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;How to share internet connections?&lt;/div&gt;&lt;div&gt;This is the options that you choose when you are creating the networks.&lt;/div&gt;&lt;div&gt;For example, they have such choice, "this computer connects directly to the internet, and other computers use its internet connection to have internet access" then, the other computer will have to choose "this computer use the other computer's internet connection to have internet access". And here we are.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Be sure to close the windows fire wall on both computers so that the traffic will not be blocked.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Also, you have to add the ad hoc to the preferred networks.&lt;/div&gt;&lt;div&gt;To do this, go to the "Wireless Network Connection Properties", and click "Wireless Networks", click add, and fill the information of you ad hoc. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Be sure to check the box "Connect even if this network is not broadcasting"&lt;/div&gt;&lt;div&gt;(But I really have no idea why only one of my two laptops have this option, while the other doesn't have. Though one is enough)&lt;/div&gt;&lt;div&gt;So that this laptop will initiate the broadcasting and the other laptop will sense it.&lt;/div&gt;&lt;div&gt;Otherwise, none of them will see any available wireless connections in the list.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;If you have any problem with this, give me an email (hjx@umich.edu)&lt;/div&gt;&lt;div&gt;I hope to be helpful, because this damn thing cost me a lot of trouble.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-4392165668144937200?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/4392165668144937200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=4392165668144937200' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/4392165668144937200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/4392165668144937200'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2008/10/set-up-ad-hoc-network-in-your-home-for.html' title='Set up an Ad-Hoc network in your home for windows XP'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-7992005012717888886</id><published>2008-10-04T02:16:00.006-04:00</published><updated>2008-10-04T02:35:25.885-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='spelling'/><category scheme='http://www.blogger.com/atom/ns#' term='Ganymede'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='online checker'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='notepad++'/><category scheme='http://www.blogger.com/atom/ns#' term='svn'/><category scheme='http://www.blogger.com/atom/ns#' term='word checker'/><category scheme='http://www.blogger.com/atom/ns#' term='beetle'/><category scheme='http://www.blogger.com/atom/ns#' term='phrase checker'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='web spider'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='subversive'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><title type='text'>A small web service "Beetle Word-Phrase Checker"</title><content type='html'>Have a look at &lt;a href="http://www.eecs.umich.edu/~hjx"&gt;here&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I built this for fun, and it is just new born, so it looks very basic and basic.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What I want to do is to provide an online word phrase checker.&lt;/div&gt;&lt;div&gt;That aims to correct your spellings when you are not sure.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For example, when you type "Internattional" &lt;a href="http://www.eecs.umich.edu/~hjx"&gt;Beetle&lt;/a&gt; will return a list of words with the first one "international"&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For phrase checking, when you type "fall on love", &lt;a href="http://www.eecs.umich.edu/~hjx"&gt;Beetle&lt;/a&gt; will return a list of phrases with the first one "fall in love"&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Currently, these functions are not finished yet. But I will work on them when I have time (of course not now, because we have a paper deadline on December)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I also want to add a web spider that crawl the web pages to gradually improve its database.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Give me some suggestions if you have some good ideas.&lt;/div&gt;&lt;div&gt;I think this kind of staff is really interesting and coding it is really fun.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;By the way, I used java to analyze data, and web pages are written in php or basic html.&lt;/div&gt;&lt;div&gt;I used eclipse 3.4 Ganymede for Java. This is a really cool staff and I really like coding with eclipse. I use SVN and eclipse plugin subversive to do version control, so that I can easily program both on my laptop and on my desktop :D. For php and html, I use &lt;a href="http://notepad-plus.sourceforge.net/uk/site.htm"&gt;notepad++&lt;/a&gt; to "program", I don't like IDE for html and php, because I really like building small blocks into a huge structure.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-7992005012717888886?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/7992005012717888886/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=7992005012717888886' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/7992005012717888886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/7992005012717888886'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2008/10/small-web-service-beetle-word-phrase.html' title='A small web service &quot;Beetle Word-Phrase Checker&quot;'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-8782252483082073553</id><published>2008-10-04T01:30:00.011-04:00</published><updated>2008-10-04T02:39:40.446-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sound'/><category scheme='http://www.blogger.com/atom/ns#' term='windows vista'/><category scheme='http://www.blogger.com/atom/ns#' term='remove'/><category scheme='http://www.blogger.com/atom/ns#' term='vista'/><category scheme='http://www.blogger.com/atom/ns#' term='noise'/><category scheme='http://www.blogger.com/atom/ns#' term='annoying'/><category scheme='http://www.blogger.com/atom/ns#' term='annoy'/><category scheme='http://www.blogger.com/atom/ns#' term='beep'/><title type='text'>How remove the annoying system beep for Vista?</title><content type='html'>When you do some operations that are not proper, and when you don't have an ear phone or a sound box, Vista system will make an annoying beep. It will still generate this beep when you have even muted the sound control. How to remove this sound?&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Go to "Computer" 's "Properties"&lt;/div&gt;&lt;div&gt;Click "Device Manager"&lt;/div&gt;&lt;div&gt;In the "View" menu of "Device Manager" window, choose "Show hidden devices"&lt;/div&gt;&lt;div&gt;Then an item "Non-plug and play drivers" will appear&lt;/div&gt;&lt;div style="text-align: left;"&gt;Expand it, and double click "Beep" which is it sub-item.&lt;/div&gt;&lt;img src="http://4.bp.blogspot.com/_nKbM1Pg_HmI/SOcDuR0VNZI/AAAAAAAAAb0/0aBEbvaFY7w/s320/devicem.jpg" style="float:bottom; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" border="0" alt="" id="BLOGGER_PHOTO_ID_5253171583942735250" /&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Click the stop button.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;img src="http://4.bp.blogspot.com/_nKbM1Pg_HmI/SOcChmOgXMI/AAAAAAAAAbs/fgNyM_rocMw/s320/beep.jpg" style="float:bottom; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" border="0" alt="" id="BLOGGER_PHOTO_ID_5253170266571300034" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Then don't forget to click "OK"&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;And the annoying beep is removed&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-8782252483082073553?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/8782252483082073553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=8782252483082073553' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/8782252483082073553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/8782252483082073553'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2008/10/how-remove-annoying-system-beep-for.html' title='How remove the annoying system beep for Vista?'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_nKbM1Pg_HmI/SOcDuR0VNZI/AAAAAAAAAb0/0aBEbvaFY7w/s72-c/devicem.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-871741485011115420</id><published>2008-10-03T22:18:00.008-04:00</published><updated>2008-10-03T22:54:44.198-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mac OS'/><category scheme='http://www.blogger.com/atom/ns#' term='install'/><category scheme='http://www.blogger.com/atom/ns#' term='windows xp'/><category scheme='http://www.blogger.com/atom/ns#' term='Darwin Streaming Server'/><title type='text'>How to install Darwin Streaming Server in Windows XP</title><content type='html'>You have to first install activeperl&lt;div&gt;Refer to &lt;a href="http://junxian-huang.blogspot.com/2008/10/how-to-install-perl-in-windows-xp.html"&gt;my article&lt;/a&gt; to get this done.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Then refer to &lt;a href="http://www.ja.net/documents/services/video/vtas/gd1.pdf"&gt;this&lt;/a&gt; and &lt;a href="http://generally.wordpress.com/2007/08/07/how-to-setup-darwin-streaming-server-on-windows/"&gt;this&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;Choose earlier version of Darwin Streaming Server at &lt;a href="http://dss.macosforge.org/post/41/"&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;When you download this file, extract it to somewhere.&lt;/div&gt;&lt;div&gt;Browse into the folder, and click install.bat.&lt;/div&gt;&lt;div&gt;Then it will beginning a console and begin installation.&lt;/div&gt;&lt;div&gt;It will ask you to type a user name and a password.&lt;br /&gt;Then it will say "adding userName XXX"&lt;/div&gt;&lt;div&gt;In my case, it will hang there.&lt;/div&gt;&lt;div&gt;I just close the window.&lt;/div&gt;&lt;div&gt;Browse into "C:\Program Files\Darwin Streaming Server" or wherever else that you install you darwin streaming server, and click streamingadminserver.pl, a console will appear and hang there, then your server is beginning to listen on the port 1220&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Open a browser with URL "http://localhost:1220"&lt;/div&gt;&lt;div&gt;A quicktime logo will appear and ask you for username and password.&lt;/div&gt;&lt;div&gt;Then it works.&lt;/div&gt;&lt;div&gt;Follow the steps and choose port 80 to go through the firewalls.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-871741485011115420?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/871741485011115420/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=871741485011115420' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/871741485011115420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/871741485011115420'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2008/10/how-to-install-darwin-streaming-server.html' title='How to install Darwin Streaming Server in Windows XP'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-8961206675221614873</id><published>2008-10-03T21:32:00.011-04:00</published><updated>2008-10-05T21:37:06.115-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web server'/><category scheme='http://www.blogger.com/atom/ns#' term='activeperl'/><category scheme='http://www.blogger.com/atom/ns#' term='install'/><category scheme='http://www.blogger.com/atom/ns#' term='windows xp'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='cgi'/><title type='text'>How to install perl in Windows XP</title><content type='html'>Download ActivePerl from &lt;a href="http://www.activestate.com/store/download_file.aspx?binGUID=c8a0cfb5-29dc-484c-9b12-227ed449dacb"&gt;here&lt;/a&gt; or &lt;a href="http://www.activestate.com/store/productdetail.aspx?prdGUID=81fbce82-6bd5-49bc-a915-08d58c2648ca"&gt;here&lt;/a&gt;.&lt;div&gt;You need to input your name and email.&lt;div&gt;But it is free&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Begin installation, follow the steps&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;[Check] Add Perl to the PATH environment variable&lt;/div&gt;&lt;div&gt;[Check] Create Perl file extension association&lt;/div&gt;&lt;/div&gt;&lt;div&gt;And your installation will be smooth.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;refer to &lt;a href="http://www.ricocheting.com/server/cgi.html"&gt;this page&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After installation finished,  you will see the release note&lt;/div&gt;&lt;div&gt;"&lt;/div&gt;&lt;h1&gt;&lt;a name="activeperl_1004____release_notes"&gt;ActivePerl 1004 -- Release Notes&lt;/a&gt;&lt;/h1&gt;  &lt;p&gt;Welcome, and thank you for downloading ActivePerl.  This release corresponds to Perl version 5.10.&lt;/p&gt; &lt;p&gt;The following platforms are supported by this release:&lt;/p&gt; &lt;ul&gt; &lt;li&gt; &lt;p&gt;AIX 5.1 or later (rs6000)&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;Linux: glibc 2.3 or later (x86 and x64)&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;Mac OS X 10.4 or later (x86 and powerpc)&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;Solaris 2.8 or later (sparc, 32 and 64 bit)&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;Solaris 10 or later (x86)&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;Windows 2000 (x86)&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;Windows XP, 2003, Vista (x86 and x64)&lt;/p&gt;&lt;p&gt;blablabla&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt;&lt;div&gt;"&lt;/div&gt;&lt;div&gt;It is very cool to support so many platforms.&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;span class="Apple-style-span" style="font-weight: bold;"&gt;Apache conf&lt;/span&gt;&lt;/div&gt;&lt;div&gt;You have to have your apache web server running.&lt;/div&gt;&lt;div&gt;In "C:\Program Files\Apache Software Foundation\Apache2.2\conf"&lt;/div&gt;&lt;div&gt;Edit the httpd.conf file which is the configuration file of apache server in the following way&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Activating CGI&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Using Notepad (or other text editor) openhttpd.conf (also should be start-menu shortcut called "Edit Apache HTTP httpd.conf File") and search for Options Indexes "FollowSymLinks" (about line 217) when you find it add "ExecCGI" to the end so it looks like "Options Indexes FollowSymLinks ExecCGI"&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You should restart your apache server after these changes&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.ricocheting.com/server/cgi.html"&gt;this page&lt;/a&gt; is very helpful for you to get perl cgi runing properly&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;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-8961206675221614873?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/8961206675221614873/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=8961206675221614873' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/8961206675221614873'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/8961206675221614873'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2008/10/how-to-install-perl-in-windows-xp.html' title='How to install perl in Windows XP'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1228707902785326925.post-205032939826756181</id><published>2008-10-03T19:19:00.002-04:00</published><updated>2008-10-05T16:40:39.275-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu 8.10'/><category scheme='http://www.blogger.com/atom/ns#' term='install'/><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><category scheme='http://www.blogger.com/atom/ns#' term='vista'/><category scheme='http://www.blogger.com/atom/ns#' term='tech notes'/><category scheme='http://www.blogger.com/atom/ns#' term='tech'/><category scheme='http://www.blogger.com/atom/ns#' term='CD'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><category scheme='http://www.blogger.com/atom/ns#' term='infrarecorder'/><title type='text'>Ubuntu 8.10 Beta Release, Install it!</title><content type='html'>Ubuntu 8.10 Betta has been released on Oct. 2, 2008.&lt;div&gt;I just download it from http://mirror.csclub.uwaterloo.ca/ubuntu-releases/8.10/ubuntu-8.10-beta-desktop-i386.iso this is very fast.&lt;/div&gt;&lt;div&gt;I downloaded it in less than 5 minutes in Michigan.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I just wasted a CD, because I used Vista's default burner to burn this image to the CD.&lt;/div&gt;&lt;div&gt;And system cannot boot. Because Microsoft protects its datatype to be recognizable only by Windows. I throw the CD in trash bottle and follow the steps in &lt;a href="https://help.ubuntu.com/community/BurningIsoHowto"&gt;https://help.ubuntu.com/community/BurningIsoHowto&lt;/a&gt;&lt;/div&gt;&lt;div&gt;First download and installed &lt;a href="http://infrarecorder.sourceforge.net/"&gt;InfraRecorder&lt;/a&gt;, then burn the CD (choose .iso file)&lt;/div&gt;&lt;div&gt;Then you are done.&lt;/div&gt;&lt;div&gt;I haven't tested whether I can installed ubuntu yet.&lt;/div&gt;&lt;div&gt;But I think there is not problem with this approach.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;//I've tested it and successfully installed ubuntu 8.10 to my dell desktop.&lt;/div&gt;&lt;div&gt;//But the problem here is that the network interface can not be detected&lt;/div&gt;&lt;div&gt;//ifconfig there is only a loopback interface&lt;/div&gt;&lt;div&gt;//How to make ubuntu 8.10 have Internet access?&lt;/div&gt;&lt;div&gt;//I will fix it later&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1228707902785326925-205032939826756181?l=junxian-huang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://junxian-huang.blogspot.com/feeds/205032939826756181/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1228707902785326925&amp;postID=205032939826756181' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/205032939826756181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1228707902785326925/posts/default/205032939826756181'/><link rel='alternate' type='text/html' href='http://junxian-huang.blogspot.com/2008/10/ubuntu-810-betta-release-install-it.html' title='Ubuntu 8.10 Beta Release, Install it!'/><author><name>Junxian Huang</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://1.bp.blogspot.com/_nKbM1Pg_HmI/S0Qd5CrajgI/AAAAAAAAAxw/gD--ZungVZw/s1600-R/GRASS.jpg'/></author><thr:total>3</thr:total></entry></feed>
