<?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'><id>tag:blogger.com,1999:blog-26941438</id><updated>2009-11-16T03:34:08.139-05:00</updated><title type='text'>sKh updating ...</title><subtitle type='html'>Kyle Sun's Life in US</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://interskh.info/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default'/><link rel='alternate' type='text/html' href='http://interskh.info/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default?start-index=26&amp;max-results=25'/><author><name>sKh</name><uri>http://www.blogger.com/profile/18231781971514560372</uri><email>interskh@gmail.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>300</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-26941438.post-6410686621598493768</id><published>2009-11-16T01:29:00.001-05:00</published><updated>2009-11-16T01:29:24.072-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Feeling'/><category scheme='http://www.blogger.com/atom/ns#' term='life'/><title type='text'>周末好生活 - 不要等到80岁</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;似乎很少描述生活 不过有几件事可以小提一下&lt;br/&gt;&lt;br/&gt;一来去看了电影2012 算是近几年来比较想看的电影之一吧 场面还是很帅 看到镜头里的中国人中文英文讲得都挺标准很感动 还提到了痞子堡 另外看到vegas倒掉了感觉超爽哈 我好像有点幸灾乐祸的超希望灾难来得更厉害一点 =)&lt;br/&gt;&lt;br/&gt;二来稍微看了一会儿Google GO，这个语言果然很有意思，并且因为毕竟是Google的手笔，光看irc上平均500的常驻人群和日均300条的邮件列表就可见一斑了。在reddit上看到最牛的&lt;a href='http://www.reddit.com/r/programming/comments/a4j4a/whats_the_best_most_interesting_piece_of_code/c0ftftg'&gt;代码&lt;/a&gt;，可以从ruby -&amp;gt; python -&amp;gt; perl -&amp;gt; lua -&amp;gt; ocaml -&amp;gt; haskell -&amp;gt; c -&amp;gt; java -&amp;gt; brainfuck -&amp;gt; whitespace -&amp;gt; unlambda -&amp;gt; ruby 绕了一圈还能转回来实在太牛了!&lt;br/&gt;&lt;br/&gt;三来我一直想着80岁的时候，今天突然意识到这可能就成了借口了。一直想能在八十岁的时候，牵起老伴的手，对她说声谢谢。现在看来，八十岁还是太遥远了，理解当时某人的批评。何况，能不能活到八十还是回事呢。把自己的生命定格在三十五，平均来看，还应该是比较明智的。&lt;br/&gt;&lt;br/&gt;晃一晃 学期又只剩不到一个月了 说来日子好快 还有几个project要解决一下 然后去hawaii看美女去!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26941438-6410686621598493768?l=interskh.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://interskh.info/feeds/6410686621598493768/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=26941438&amp;postID=6410686621598493768' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/6410686621598493768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/6410686621598493768'/><link rel='alternate' type='text/html' href='http://interskh.info/2009/11/80.html' title='周末好生活 - 不要等到80岁'/><author><name>sKh</name><uri>http://www.blogger.com/profile/18231781971514560372</uri><email>interskh@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12173953768914385515'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26941438.post-7517588234745546322</id><published>2009-11-15T13:19:00.001-05:00</published><updated>2009-11-15T13:19:33.058-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Quotes'/><category scheme='http://www.blogger.com/atom/ns#' term='Joke'/><category scheme='http://www.blogger.com/atom/ns#' term='Funny'/><title type='text'>纯手工尸体 和 锁的故事</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;淘宝上有卖蚊子尸体的，链接在&lt;a href='http://item.taobao.com/auction/item_detail-0db1-9c42824f1b405b82e2acd4a0da59ad26.htm'&gt;这里&lt;/a&gt;：来自安徽亳州的正宗蚊子尸体苍蝇尸体，纯手工打死，死状优美，1口价，11元。orz&lt;br/&gt;&lt;br/&gt;另外在Rich的Tweet上看到这个，很喷哈，链接在&lt;a href='http://bash.org/?908184'&gt;这里&lt;/a&gt;&lt;blockquote&gt;I just had an argument with a girl I know. She was saying how it's unfair that if a guy fucks a different girl every week, he's a legend, but if a girl fucks just two guys in a year, she's a slut. So in response I told her that if a key opens lots of locks, then it's a master key. But if a lock is opened by lots of keys, then it's a shitty lock. That shut her up.&lt;/blockquote&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26941438-7517588234745546322?l=interskh.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://interskh.info/feeds/7517588234745546322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=26941438&amp;postID=7517588234745546322' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/7517588234745546322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/7517588234745546322'/><link rel='alternate' type='text/html' href='http://interskh.info/2009/11/blog-post.html' title='纯手工尸体 和 锁的故事'/><author><name>sKh</name><uri>http://www.blogger.com/profile/18231781971514560372</uri><email>interskh@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12173953768914385515'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26941438.post-9001149655888376753</id><published>2009-11-15T13:13:00.001-05:00</published><updated>2009-11-15T13:13:15.615-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='en'/><category scheme='http://www.blogger.com/atom/ns#' term='GO'/><category scheme='http://www.blogger.com/atom/ns#' term='Notes'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google GO (4) - Tutorial Notes</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a href='http://golang.org/doc/go_tutorial.html'&gt;Tutorial&lt;/a&gt; Notes&lt;br/&gt;&lt;br/&gt;Three ways of declaration:&lt;br/&gt;&lt;blockquote&gt;var s string = "";&lt;br/&gt;var s = "";&lt;br/&gt;s := "";&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;For Loop(parentheses no needed, braces mandatory):&lt;br/&gt;&lt;blockquote&gt;for i := 0; i &amp;lt; flag.NArg(); i++ {&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;To signal an erroneous return, call&lt;br/&gt;&lt;blockquote&gt;os.Exit(1)&lt;/blockquote&gt;&lt;br/&gt;Falling off main.main means "success"&lt;br/&gt;&lt;br/&gt;Types are different even they are using the same bits. int and int32 are distinct, int and uint are distinct.&lt;br/&gt;&lt;br/&gt;Strings are kinda const strings in C++, couldnt be changed.&lt;br/&gt;&lt;br/&gt;Arrays&lt;blockquote&gt;var arrayOfInt [10]int;&lt;/blockquote&gt;&lt;br/&gt;Slice variable reference a segment of an array&lt;blockquote&gt;a[low : high]&lt;/blockquote&gt; &lt;br/&gt;function func sum(a []int) int {} could be called in multiple ways&lt;blockquote&gt;s := sum(&amp;amp;[3]int{1,2,3});  // a slice of the array is passed to sum&lt;br/&gt;s := sum(&amp;amp;[...]int{1,2,3}); // want compiler to count the elements&lt;br/&gt;s := sum([]int{1,2,3});&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;Maps&lt;blockquote&gt;m := map[string]int{"one":1 , "two":2}&lt;/blockquote&gt;Allocation&lt;blockquote&gt;type T struct { a, b int }&lt;br/&gt;var t *T = new(T);&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt; or &lt;blockquote&gt;t := new(T);&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;For maps, slices and channels which have reference semantics, using make() instead&lt;blockquote&gt;m := make(map[string]int);&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;If a name (of a top-level type, function, method, constant or variable, or of a structure field or method) is &lt;b&gt;capitalized&lt;/b&gt;, it is &lt;b&gt;visible&lt;/b&gt; to the public, users of the package may see it. Otherwise, the name and hence the thing being named is visible only inside the package in which it is declared.&lt;br/&gt;&lt;br/&gt;Open files&lt;br/&gt;&lt;blockquote&gt;func Open(name string, mode int, perm int) (file *File, err os.Error)&lt;/blockquote&gt;&lt;br/&gt;Note there is a multi-value return here. err is nil if no error. Similarly, there are other methods for I/O &lt;blockquote&gt;func (file *File) Close() os.Error&lt;br/&gt;func (file *File) Read(b []byte) (ret int, err os.Error)&lt;br/&gt;func (file *File) Write(b []byte) (ret int, err os.Error)&lt;br/&gt;func (file *File) String() string&lt;/blockquote&gt; &lt;br/&gt;os.Error has a method called os.Error.String() could convert to a printing description.&lt;br/&gt;&lt;br/&gt;Switch&lt;blockquote&gt;switch nr, er := f.Read(&amp;amp;buf); true {&lt;br/&gt;case nr &amp;lt; 0:&lt;br/&gt;...&lt;br/&gt;case nr == 0:&lt;br/&gt;...&lt;br/&gt;case nr &amp;gt; 0:&lt;br/&gt;...&lt;br/&gt;}&lt;/blockquote&gt;&lt;br/&gt;&lt;br/&gt;Interface is declared like &lt;blockquote&gt;26    type reader interface {&lt;br/&gt;27        Read(b []byte) (ret int, err os.Error);&lt;br/&gt;28        String() string;&lt;br/&gt;29    }&lt;br/&gt;&lt;/blockquote&gt; &lt;br/&gt;It is implemented by a type if the type implement *all* the methods declared in the interface. This means following empty interface is by default implemented by any type.&lt;blockquote&gt;type Empty interface {}&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;Printf(), %v will print in a simple appropirate style by default. Print() and Println() would do the print fromatting automatically.&lt;br/&gt;&lt;br/&gt;Type assertion, e.g. v.(Stringer) while Stringer is an interface, to see if v satisfies the Stringer interface.&lt;blockquote&gt;s, ok := v.(Stringer);  // Test whether v implements "String()"&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;Channel, a communications channel that connect two concurrent computations, using make() to create new channel.&lt;br/&gt;&lt;blockquote&gt;09    // Send the sequence 2, 3, 4, ... to channel 'ch'.&lt;br/&gt;10    func generate(ch chan int) {&lt;br/&gt;11        for i := 2; ; i++ {&lt;br/&gt;12            ch &amp;lt;- i  // Send 'i' to channel 'ch'.&lt;br/&gt;13        }&lt;br/&gt;14    }&lt;br/&gt;15&lt;br/&gt;16    // Copy the values from channel 'in' to channel 'out',&lt;br/&gt;17    // removing those divisible by 'prime'.&lt;br/&gt;18    func filter(in, out chan int, prime int) {&lt;br/&gt;19        for {&lt;br/&gt;20            i := &amp;lt;-in;  // Receive value of new variable 'i' from 'in'.&lt;br/&gt;21            if i % prime != 0 {&lt;br/&gt;22                out &amp;lt;- i  // Send 'i' to channel 'out'.&lt;br/&gt;23            }&lt;br/&gt;24        }&lt;br/&gt;25    }&lt;/blockquote&gt;&lt;br/&gt;&lt;br/&gt;Go routines, starting the function running in parallel in the same address space&lt;blockquote&gt;go sum(hugeArray); // calculate sum in the background&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;Then check the result by passing channel&lt;blockquote&gt;    ch := make(chan int);&lt;br/&gt;    go sum(hugeArray, ch);&lt;br/&gt;    // ... do something else for a while&lt;br/&gt;    result := &amp;lt;-ch;  // wait for, and retrieve, result&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;select statement choose which of the multiple communications listed can proceed&lt;blockquote&gt;21    func server(op binOp, service chan *request, quit chan bool) {&lt;br/&gt;22        for {&lt;br/&gt;23            select {&lt;br/&gt;24            case req := &amp;lt;-service:&lt;br/&gt;25                go run(op, req);  // don't wait for it&lt;br/&gt;26            case &amp;lt;-quit:&lt;br/&gt;27                return;&lt;br/&gt;28            }&lt;br/&gt;29        }&lt;br/&gt;30    }&lt;br/&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26941438-9001149655888376753?l=interskh.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://interskh.info/feeds/9001149655888376753/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=26941438&amp;postID=9001149655888376753' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/9001149655888376753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/9001149655888376753'/><link rel='alternate' type='text/html' href='http://interskh.info/2009/11/google-go-4-tutorial-notes.html' title='Google GO (4) - Tutorial Notes'/><author><name>sKh</name><uri>http://www.blogger.com/profile/18231781971514560372</uri><email>interskh@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12173953768914385515'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26941438.post-3463307964554819492</id><published>2009-11-12T10:03:00.000-05:00</published><updated>2009-11-12T10:03:55.963-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pic'/><category scheme='http://www.blogger.com/atom/ns#' term='xkcd'/><category scheme='http://www.blogger.com/atom/ns#' term='Win7'/><category scheme='http://www.blogger.com/atom/ns#' term='Joke'/><category scheme='http://www.blogger.com/atom/ns#' term='Funny'/><title type='text'>hahahaha - Win 7 @xkcd</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;img src='http://imgs.xkcd.com/comics/windows_7.png' style='max-width: 800px;'/&gt;&lt;br/&gt;&lt;a href='http://xkcd.com/528/'&gt;http://xkcd.com/528/&lt;/a&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/26941438-3463307964554819492?l=interskh.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://interskh.info/feeds/3463307964554819492/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=26941438&amp;postID=3463307964554819492' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/3463307964554819492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/3463307964554819492'/><link rel='alternate' type='text/html' href='http://interskh.info/2009/11/hahahaha-win-7-xkcd.html' title='hahahaha - Win 7 @xkcd'/><author><name>sKh</name><uri>http://www.blogger.com/profile/18231781971514560372</uri><email>interskh@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12173953768914385515'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26941438.post-5387257770727520339</id><published>2009-11-12T02:51:00.001-05:00</published><updated>2009-11-12T02:51:28.890-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='GO'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google GO (3)</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;原来还有个Tech Talk (&lt;a href='http://golang.org/doc/go_talk-20091030.pdf'&gt;pdf&lt;/a&gt;)。果然困了，半点都没看下去 o_O&lt;br/&gt;&lt;br/&gt;不过如果GO如传说中编译的那么快的话，yy一下一分钟编译完firefox/OOo(当然要他们改用GO了)的场景，这样我一定没有借口不用Gentoo了。哈哈&lt;br/&gt;&lt;br/&gt;letssseeee&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/26941438-5387257770727520339?l=interskh.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://interskh.info/feeds/5387257770727520339/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=26941438&amp;postID=5387257770727520339' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/5387257770727520339'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/5387257770727520339'/><link rel='alternate' type='text/html' href='http://interskh.info/2009/11/google-go-3.html' title='Google GO (3)'/><author><name>sKh</name><uri>http://www.blogger.com/profile/18231781971514560372</uri><email>interskh@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12173953768914385515'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26941438.post-4769327661692692984</id><published>2009-11-12T02:42:00.001-05:00</published><updated>2009-11-12T02:42:05.811-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Geek'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='GO'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google GO (2)</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;果然是犯困了，刚才更新了env却跑到另一个term里执行...&lt;br/&gt;&lt;blockquote&gt;skh-laptop/home/skh/temp&lt;br/&gt;skh &amp;gt;&amp;gt;&amp;gt; 8g ./helloworld.go                                                                  09-11-12 2:41&lt;br/&gt;skh-laptop/home/skh/temp&lt;br/&gt;skh &amp;gt;&amp;gt;&amp;gt; 8l ./helloworld.8                                                                   09-11-12 2:41&lt;br/&gt;skh-laptop/home/skh/temp&lt;br/&gt;skh &amp;gt;&amp;gt;&amp;gt; ./8.out                                                                             09-11-12 2:41&lt;br/&gt;Hello, 世界&lt;br/&gt;skh-laptop/home/skh/temp&lt;br/&gt;skh &amp;gt;&amp;gt;&amp;gt; ls -l 8.out                                                                         09-11-12 2:41&lt;br/&gt;-rwxr-xr-x 1 skh skh &lt;font color='#ff0000'&gt;&lt;b&gt;582423&lt;/b&gt;&lt;/font&gt; 2009-11-12 02:41 8.out*&lt;br/&gt;&lt;/blockquote&gt;这个hello world果然很大&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26941438-4769327661692692984?l=interskh.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://interskh.info/feeds/4769327661692692984/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=26941438&amp;postID=4769327661692692984' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/4769327661692692984'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/4769327661692692984'/><link rel='alternate' type='text/html' href='http://interskh.info/2009/11/google-go-2.html' title='Google GO (2)'/><author><name>sKh</name><uri>http://www.blogger.com/profile/18231781971514560372</uri><email>interskh@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12173953768914385515'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26941438.post-6808323879276233807</id><published>2009-11-12T02:36:00.001-05:00</published><updated>2009-11-12T02:36:21.037-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Geek'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='GO'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google GO</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Google果然什么都开始搞了，昨儿推出了名为GO的新语言。今天睡觉前小看了一下GO的&lt;a href='http://golang.org/'&gt;主页&lt;/a&gt;，还是很牛的。&lt;a href='http://golang.org/doc/go_lang_faq.html'&gt;Design FAQ&lt;/a&gt;对GO的特性介绍的很清楚，GO的很多特性归结出来就是simple，code要simple，interpreter要simple，compiler要simple，debugger也要simple。&lt;br/&gt;&lt;br/&gt;AUR上发现有人已经创建了go-lang的包了，于是安装了一下，编译过程果然如广告里介绍的一般，少于10s。不过尝试helloworld居然失败了，fmt package没找到。据说暂时还不支持dymanic linking，一个helloworld会超大，暂时没机会验证一下 =( &lt;br/&gt;&lt;blockquote&gt;skh &amp;gt;&amp;gt;&amp;gt; 8g ./helloworld.go                                                                  09-11-12 2:28&lt;br/&gt;./helloworld.go:3: fatal error: can't find import: fmt&lt;br/&gt;&lt;/blockquote&gt;困死了，改天再看看吧。&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26941438-6808323879276233807?l=interskh.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://interskh.info/feeds/6808323879276233807/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=26941438&amp;postID=6808323879276233807' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/6808323879276233807'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/6808323879276233807'/><link rel='alternate' type='text/html' href='http://interskh.info/2009/11/google-go.html' title='Google GO'/><author><name>sKh</name><uri>http://www.blogger.com/profile/18231781971514560372</uri><email>interskh@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12173953768914385515'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26941438.post-7899393955627027622</id><published>2009-11-09T12:20:00.001-05:00</published><updated>2009-11-09T12:20:07.358-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='life'/><title type='text'>Guys are supposed to love naked women</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;ehhh.. 今天在revise monologue的时候才发现自己之前选的片断还是很有攻击性的.. lol&lt;br/&gt;&lt;br/&gt;但还是挺有意思，想想自己也要充满感情的念这段东西.. orz&lt;br/&gt;&lt;br/&gt;How could I possibly enjoy a film like -- (He pauses, enjoying the title:) “Lesbian Spank Inferno”? &lt;br/&gt;&lt;br/&gt;Because it has got naked women in it! &lt;br/&gt;&lt;br/&gt;Look, I like naked women! I'm a guy! I'm supposed to like them! We're born like that. &lt;br/&gt;&lt;br/&gt;We like naked women as soon as we're pulled out of one. Halfway down the birth canal, we're already enjoying the view. &lt;br/&gt;&lt;br/&gt;Look, it's the four pillars of the male heterosexual psyche. We like: naked women, stockings, lesbians, and Sean Connery best as James Bond. Because that is what being a bloke guy is. &lt;br/&gt;&lt;br/&gt;And if you don't like it, join the film collective.&lt;br/&gt;&lt;br/&gt;Look: I want to spend the rest of my life with the woman at the end of the table here. But that does not stop me wanting to see several thousand more naked bottoms before I die. Because that's what being a guy is.&lt;br/&gt;&lt;br/&gt;When Man invented fire, he didn't say "Hey, let's cook!"&lt;br/&gt;&lt;br/&gt;He said: "Great! Now we can see naked bottoms in the dark!"&lt;br/&gt;&lt;br/&gt;As soon as Gutenberg invented the printing press we were using it to make pictures of&lt;br/&gt;&lt;br/&gt;- hey! - naked bottoms.&lt;br/&gt;&lt;br/&gt;We've turned the Internet into an enormous international database of...&lt;br/&gt;&lt;br/&gt;naked bottoms.&lt;br/&gt;&lt;br/&gt;So, you see, the story of male achievement through the ages, feeble though it may have been, has been the story of our struggle to get a better look at your bottoms. &lt;br/&gt;&lt;br/&gt;Frankly, girls, I'm not so sure how insulted you really ought to be.&lt;br/&gt;&lt;br/&gt;选自Coupling, 下面片断里 from 4:26&lt;br/&gt;&lt;div class='youtube-video'&gt;&lt;object width='425' height='344'&gt;&lt;param value='http://www.youtube.com/v/vKGK2fplV_w&amp;amp;hl=en&amp;amp;fs=1&amp;amp;' name='movie'&gt; &lt;/param&gt;&lt;param value='true' name='allowFullScreen'&gt; &lt;/param&gt;&lt;param value='always' name='allowscriptaccess'&gt; &lt;/param&gt;&lt;embed width='425' height='344' allowfullscreen='true' allowscriptaccess='always' type='application/x-shockwave-flash' src='http://www.youtube.com/v/vKGK2fplV_w&amp;amp;hl=en&amp;amp;fs=1&amp;amp;'&gt; &lt;/embed&gt;  &lt;/object&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/26941438-7899393955627027622?l=interskh.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://interskh.info/feeds/7899393955627027622/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=26941438&amp;postID=7899393955627027622' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/7899393955627027622'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/7899393955627027622'/><link rel='alternate' type='text/html' href='http://interskh.info/2009/11/guys-are-supposed-to-love-naked-women.html' title='Guys are supposed to love naked women'/><author><name>sKh</name><uri>http://www.blogger.com/profile/18231781971514560372</uri><email>interskh@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12173953768914385515'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26941438.post-566872885554409828</id><published>2009-11-08T18:56:00.000-05:00</published><updated>2009-11-08T18:58:24.338-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scheduler'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Kernel'/><title type='text'>BFS, CFS和O(1) Scheduler</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;今天抽空小研究了下传说中的CFS，顺便也看了一下BFS和以前的O(1)调度，再加上一点LKML上的八卦事，在这里扔点notes。&lt;br/&gt;&lt;br/&gt;kernel 2.4之前一直用的某种O(N)调度算法，大概就是所有的cpu用1个全局的link list，也用一个超大的lock来做保护，这种坏处就不说了。&lt;br/&gt;&lt;br/&gt;后来一个叫Ingo的人进入了kernel的dev，提出了O(1)算法，每个cpu都有一个run queue，O(1)算法就是我们在早年各种kernel书里必介绍的算法了，每个进程都有一个time slice，然后用完了就要被deschedule了。&lt;br/&gt;&lt;br/&gt;再后来，CK大人(Con Kolivas)07年的时候提出了Rotating Staircase Deadline算法，基于Packet Switching中常用的fair queueing。这也就是大名鼎鼎的ck补丁(部分)，但没能成功被kernel接纳。关于fair queueing可以参看&lt;a href='http://en.wikipedia.org/wiki/Fair_queuing'&gt;wikipedia&lt;/a&gt;。&lt;br/&gt;&lt;br/&gt;之后Ingo在这个基础上写了CFS, Completely Fairness Scheduler。Ingo也是个牛人，他花了62个小时就写出了100k的CFS patch并且release了出去。当然CK大人就很不高兴了，于是在mailing list上有过一番争吵，然后CK似乎酒销声匿迹了。&lt;br/&gt;&lt;br/&gt;CFS主要是用了virtual runtime的概念(对应fair queueing里的virtual time)，每个进程都有维护一个vruntime，scheduler总是挑最小的那个switch过去。在每个时间中断时更新当前进程的vruntime值，vruntime+=ticks / weight，weight值根据nice值来确定的，是一个指数关系。一旦当前运行的进程不再是最小的vruntime，就会进行scheduling。数据结构CFS采用的是Red-black Tree，O(logn)复杂度，但又维护了一个变量保存left-most节点也就是queue里最小的vruntime。另外Ingo在写的时候对scheduler做了模块化，有个sched_class的structure，里面就是各种函数指针 orz。慢慢的，CFS就是我们现在的默认scheduler了。&lt;br/&gt;&lt;br/&gt;关于CFS有些挺有用的资料：&lt;br/&gt;1. 一个介绍的ppt: &lt;a href='http://www.linux-foundation.jp/jp_uploads/seminar20080709/lfjp2008.pdf'&gt;http://www.linux-foundation.jp/jp_uploads/seminar20080709/lfjp2008.pdf&lt;/a&gt;&lt;br/&gt;2. &lt;a href='http://www.ibm.com/developerworks/linux/library/l-cfs/index.html'&gt;http://www.ibm.com/developerworks/linux/library/l-cfs/index.html&lt;/a&gt;&lt;br/&gt;3. Mailing list的一些讨论: &lt;a href='http://kerneltrap.org/node/8208'&gt;http://kerneltrap.org/node/8208&lt;/a&gt;&lt;br/&gt;4. Kernel代码里 Document/scheduler/sched-design-CFS.txt 和 kernel/sched_fair.c&lt;br/&gt;&lt;br/&gt;两年之后，CK大人再次出山，带来了BFS，&lt;a href='http://ck.kolivas.org/patches/bfs/'&gt;Brain Fuck Scheduler&lt;/a&gt;。CK认为现在的Scheduler包括CFS用在个人电脑上浪费了太多的cpu在处理scheduling和cpu load balance（kernel要支持4096个cpu）。BFS用了超简单的算法，来获得在并没有那么多核时的性能突破。BFS就是一个全局的List，一个lock(不算realtime的100个list和另外两个和算法关系不大的list)，复杂度O(n)。BFS也是借鉴fair queueing，使用virtual deadline = jiffies + (prio_ratio * rr_interval)作为time slice，一个进程用完之后就不得不被schedule了。rr_interval是可配置的参数，CK在document里还给出了一些指导。&lt;br/&gt;&lt;br/&gt;在CK发布没多久，Ingo同学就在Mailing list里发布了他对bfs的一些评测，但他错误的采用了公司非常nb的测试机，跑出来的结果不那么优秀。但用户们普遍反应在双核和四核机器上性能提升显著。&lt;br/&gt;&lt;br/&gt;CK在&lt;a href='http://ck.kolivas.org/patches/bfs/bfs-faq.txt'&gt;FAQ&lt;/a&gt;里的几句话很有意思，用来作为收尾吧。改天有空我得去试试这个补丁 :D&lt;br/&gt;&lt;blockquote&gt;Why "Brain Fuck"?&lt;br/&gt;&lt;br/&gt;..&lt;br/&gt;Because it's designed in such a way that mainline would never be interested&lt;br/&gt;in adopting it, which is how I like it.&lt;br/&gt;..&lt;br/&gt;Because it throws out the philosophy that one scheduler fits all and shows&lt;br/&gt;that you can do a -lot- better with a scheduler designed for a particular&lt;br/&gt;purpose. I don't want to use a steamroller to crack nuts.&lt;br/&gt;..&lt;br/&gt;Because I must be fucked in the head to be working on this again.&lt;br/&gt;I'll think of some more becauses later.&lt;br/&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26941438-566872885554409828?l=interskh.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://interskh.info/feeds/566872885554409828/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=26941438&amp;postID=566872885554409828' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/566872885554409828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/566872885554409828'/><link rel='alternate' type='text/html' href='http://interskh.info/2009/11/bfs-cfso1-scheduler.html' title='BFS, CFS和O(1) Scheduler'/><author><name>sKh</name><uri>http://www.blogger.com/profile/18231781971514560372</uri><email>interskh@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12173953768914385515'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26941438.post-5707877774564944061</id><published>2009-11-02T07:39:00.002-05:00</published><updated>2009-11-02T07:40:34.843-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Photo'/><category scheme='http://www.blogger.com/atom/ns#' term='life'/><title type='text'>Morning, November!</title><content type='html'>&lt;img style="max-width: 800px;" src="http://lh6.ggpht.com/_2vQo-2pSND4/Su7Sqqw9U1I/AAAAAAAAMao/vGGweNLtnKc/s800/DSC_0004.JPG" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26941438-5707877774564944061?l=interskh.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://interskh.info/feeds/5707877774564944061/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=26941438&amp;postID=5707877774564944061' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/5707877774564944061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/5707877774564944061'/><link rel='alternate' type='text/html' href='http://interskh.info/2009/11/morning-november.html' title='Morning, November!'/><author><name>sKh</name><uri>http://www.blogger.com/profile/18231781971514560372</uri><email>interskh@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12173953768914385515'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_2vQo-2pSND4/Su7Sqqw9U1I/AAAAAAAAMao/vGGweNLtnKc/s72-c/DSC_0004.JPG' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26941438.post-7943069100972371751</id><published>2009-10-31T00:50:00.001-04:00</published><updated>2009-10-31T00:55:33.108-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pic'/><category scheme='http://www.blogger.com/atom/ns#' term='Feeling'/><category scheme='http://www.blogger.com/atom/ns#' term='life'/><title type='text'>蛋套</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;记得小时候，每天早上外婆都会给我塞上一个鸡蛋，挂在胸前&lt;br/&gt;&lt;img src='http://lh4.ggpht.com/_2vQo-2pSND4/SuvBnur2dUI/AAAAAAAAMaM/6Ml_EOCCjU0/s800/eggbag.jpeg' style='max-width: 800px;'/&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/26941438-7943069100972371751?l=interskh.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://interskh.info/feeds/7943069100972371751/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=26941438&amp;postID=7943069100972371751' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/7943069100972371751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/7943069100972371751'/><link rel='alternate' type='text/html' href='http://interskh.info/2009/10/blog-post_31.html' title='蛋套'/><author><name>sKh</name><uri>http://www.blogger.com/profile/18231781971514560372</uri><email>interskh@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12173953768914385515'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_2vQo-2pSND4/SuvBnur2dUI/AAAAAAAAMaM/6Ml_EOCCjU0/s72-c/eggbag.jpeg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26941438.post-5555187761690043300</id><published>2009-10-27T21:03:00.001-04:00</published><updated>2009-10-27T21:03:06.975-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='life'/><title type='text'>今天碰到个意大利帅哥</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;是博洛尼亚的&lt;br/&gt;meeting前暖声 随便聊会儿天&lt;br/&gt;然后聊起足球 我说我是国米球迷&lt;br/&gt;看他颜色不对 憋了半天他说他是尤文球迷&lt;br/&gt;然后又一阵冷场 感到一股杀气&lt;br/&gt;&lt;br/&gt;orz.&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/26941438-5555187761690043300?l=interskh.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://interskh.info/feeds/5555187761690043300/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=26941438&amp;postID=5555187761690043300' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/5555187761690043300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/5555187761690043300'/><link rel='alternate' type='text/html' href='http://interskh.info/2009/10/blog-post_27.html' title='今天碰到个意大利帅哥'/><author><name>sKh</name><uri>http://www.blogger.com/profile/18231781971514560372</uri><email>interskh@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12173953768914385515'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26941438.post-3337801086944444542</id><published>2009-10-27T20:52:00.001-04:00</published><updated>2009-10-27T20:52:08.027-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='travel'/><category scheme='http://www.blogger.com/atom/ns#' term='Me'/><category scheme='http://www.blogger.com/atom/ns#' term='life'/><title type='text'>中国5A级风景区名单</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;截止至2009.10.27 去过23/66个&lt;br/&gt;有些地方看上去不会去的。 另，居然没有西藏 orz&lt;br/&gt;&lt;br/&gt;66家国家5A级旅游景区名单&lt;br/&gt;&lt;br/&gt;(按行政区划排列)&lt;br/&gt;&lt;br/&gt;北京：&lt;font color='#3366ff'&gt;故宫博物院&lt;/font&gt;、&lt;font color='#3366ff'&gt;天坛公园&lt;/font&gt;、&lt;font color='#3366ff'&gt;颐和园&lt;/font&gt;、&lt;font color='#3366ff'&gt;八达岭长城&lt;/font&gt;。&lt;br/&gt;&lt;br/&gt;天津：天津古文化街旅游区(津门故里)、天津盘山风景名胜区。&lt;br/&gt;&lt;br/&gt;河北：&lt;font color='#3366ff'&gt;秦皇岛市山海关景区&lt;/font&gt;、保定市安新白洋淀景区、承德避暑山庄及周围寺庙景区。&lt;br/&gt;&lt;br/&gt;山西：大同市云冈石窟、忻州市五台山风景名胜区。&lt;br/&gt;&lt;br/&gt;辽宁：沈阳市植物园、&lt;font color='#3366ff'&gt;大连老虎滩海洋公园&lt;/font&gt;、&lt;font color='#3366ff'&gt;老虎滩极地馆&lt;/font&gt;。&lt;br/&gt;&lt;br/&gt;吉林：长春市伪满皇宫博物院、长白山景区。&lt;br/&gt;&lt;br/&gt;黑龙江：&lt;font color='#3366ff'&gt;哈尔滨市太阳岛公园&lt;/font&gt;。&lt;br/&gt;&lt;br/&gt;上海：&lt;font color='#3366ff'&gt;上海东方明珠广播电视塔&lt;/font&gt;、&lt;font color='#3366ff'&gt;上海野生动物园&lt;/font&gt;。&lt;br/&gt;&lt;br/&gt;江苏：&lt;font color='#3366ff'&gt;南京市钟山风景名胜区-中山陵园风景区&lt;/font&gt;、中央电视台无锡影视基地三国水浒景区、&lt;br/&gt;&lt;font color='#3366ff'&gt;苏州市拙政园&lt;/font&gt;、&lt;font color='#3366ff'&gt;苏州市周庄古镇景区&lt;/font&gt;。&lt;br/&gt;&lt;br/&gt;浙江：&lt;font color='#3366ff'&gt;杭州市西湖风景名胜区&lt;/font&gt;、温州市雁荡山风景名胜区、舟山市普陀山风景名胜区。&lt;br/&gt;&lt;br/&gt;安徽：黄山市黄山风景区、池州市九华山风景区。&lt;br/&gt;&lt;br/&gt;福建：&lt;font color='#3366ff'&gt;厦门市鼓浪屿风景名胜区&lt;/font&gt;、&lt;font color='#3366ff'&gt;南平市武夷山风景名胜区&lt;/font&gt;。&lt;br/&gt;&lt;br/&gt;江西：江西省庐山风景名胜区、吉安市井冈山风景旅游区。&lt;br/&gt;&lt;br/&gt;山东：烟台市蓬莱阁旅游区、济宁市曲阜明故城(三孔)旅游区、&lt;font color='#3366ff'&gt;泰安市泰山景区&lt;/font&gt;。&lt;br/&gt;&lt;br/&gt;河南：登封市嵩山少林景区、洛阳市龙门石窟景区、焦作市云台山风景名胜区。&lt;br/&gt;&lt;br/&gt;湖南：衡阳市南岳衡山旅游区、&lt;font color='#3366ff'&gt;张家界武陵源旅游区&lt;/font&gt;。&lt;br/&gt;&lt;br/&gt;湖北：武汉市黄鹤楼公园、宜昌市三峡大坝旅游区。&lt;br/&gt;&lt;br/&gt;广东：广州市长隆旅游度假区、深圳华侨城旅游度假区。&lt;br/&gt;&lt;br/&gt;广西：&lt;font color='#3366ff'&gt;桂林市漓江景区&lt;/font&gt;、桂林市乐满地度假世界。&lt;br/&gt;&lt;br/&gt;海南：&lt;font color='#3366ff'&gt;三亚市南山文化旅游区&lt;/font&gt;、三亚市南山大小洞天旅游区。&lt;br/&gt;&lt;br/&gt;重庆：重庆大足石刻景区、重庆巫山小三峡-小小三峡。&lt;br/&gt;&lt;br/&gt;四川: 成都市青城山--都江堰旅游景区、乐山市峨眉山景区、&lt;font color='#3366ff'&gt;阿坝藏族羌族自治州九寨沟旅&lt;br/&gt;游景区&lt;/font&gt;。&lt;br/&gt;&lt;br/&gt;贵州：&lt;font color='#3366ff'&gt;安顺市黄果树大瀑布景区&lt;/font&gt;、&lt;font color='#3366ff'&gt;安顺市龙宫景区&lt;/font&gt;。&lt;br/&gt;&lt;br/&gt;云南：昆明市石林风景区、丽江市玉龙雪山景区。&lt;br/&gt;&lt;br/&gt;陕西：西安市秦始皇兵马俑博物馆、西安市华清池景区、延安市黄帝陵景区。&lt;br/&gt;&lt;br/&gt;甘肃：嘉峪关市嘉峪关文物景区、平凉市崆峒山风景名胜区。&lt;br/&gt;&lt;br/&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/26941438-3337801086944444542?l=interskh.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://interskh.info/feeds/3337801086944444542/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=26941438&amp;postID=3337801086944444542' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/3337801086944444542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/3337801086944444542'/><link rel='alternate' type='text/html' href='http://interskh.info/2009/10/5a.html' title='中国5A级风景区名单'/><author><name>sKh</name><uri>http://www.blogger.com/profile/18231781971514560372</uri><email>interskh@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12173953768914385515'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26941438.post-4461709593384702646</id><published>2009-10-23T04:25:00.001-04:00</published><updated>2009-10-23T04:25:27.763-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pic'/><category scheme='http://www.blogger.com/atom/ns#' term='Calligraphy'/><category scheme='http://www.blogger.com/atom/ns#' term='Song'/><category scheme='http://www.blogger.com/atom/ns#' term='Poem'/><category scheme='http://www.blogger.com/atom/ns#' term='Chinese'/><title type='text'>摸魚兒 - 辛弃疾</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;img src='http://lh5.ggpht.com/_2vQo-2pSND4/SuFnsU9iTBI/AAAAAAAAMZw/WgiDwO-F6wU/s800/01300000192618121939107593171.jpg' style='max-width: 800px;'/&gt;&lt;br/&gt;&lt;br/&gt;更能消 幾番風雨 匆匆春又歸去&lt;br/&gt;惜春長怕花開早 何況落紅無數&lt;br/&gt;春且住&lt;br/&gt;見說道 天涯芳草無歸路&lt;br/&gt;怨春不語&lt;br/&gt;算只有殷勤 畫檐蛛網 盡日惹飛絮&lt;br/&gt;&lt;br/&gt;長門事 準擬佳期又誤&lt;br/&gt;蛾眉曾有人妒&lt;br/&gt;千金縱買相如賦 脈脈此情誰訴&lt;br/&gt;&lt;b&gt;君莫舞&lt;br/&gt;君不見 玉環飛燕皆塵土&lt;br/&gt;閒愁最苦&lt;/b&gt;&lt;br/&gt;休去倚危欄 斜陽正在 煙柳斷腸處&lt;br/&gt;&lt;br/&gt;赏析 (&lt;a href='http://www.teachercn.com/zxyw/teacher/scjs/189711121329323.Html'&gt;原文&lt;/a&gt;)&lt;br/&gt;      这首词委婉曲折，一变辛词常见的豪放，反映出辛弃疾艺术风格的多样化。对于中国古典文学来讲，含蓄的追求是一大特点。作者忌将自己的思想感情正面道出，而读者也当力弃作品的表象，而去深入体味。这种艺术的形成大概与传统思想中的儒道影响不无关系。儒家倡礼，主张以礼节制人的情志，否则，过激的言行便会扰乱社会秩序。因此在表达的方式上，反对露己直言，反映到文学创作中，就提出了温柔敦厚的标准。道家倡无为，主张摆脱一切束缚、包括语言文字。只要体道自然，则天下大治。因此在表达方式上，有无言之教一条，否定言语的交流功能。而它反映在文学上，就产生了不着一字，尽得风流的审美。我们看到，尽管儒道两家思想各异，但有趣的是，它们却殊途同归，促进了古典诗词含蓄美的艺术追求。意在言外、玩味不已。辛弃疾此篇《摸鱼儿》是很有代表性的一首，值得一读。它表面看来，是作者在伤春吊古，但实际上是作者将自己的忧国之情隐藏在春残花落，蛾眉遭妒的描写&lt;br/&gt;之中。笔法前片全用比兴，后片化用典故。比兴之法可以暗喻象征，化用典故可以借古讽今。委曲读来，意思层层深入，摧人泪下。&lt;br/&gt;&lt;br/&gt;　　在前片中，作者心绪不宁，是哀惋，是叹惜，更是一种迷惘与无可奈何。万紫千红的春，离我匆匆而去，一时万树枝头，落花飞红。这凋零衰败的景色本就够惨淡的了，它怎么能再经得起风风雨雨的几次摧残呢？花是春天的象征，我生怕花落春去，而希望花儿迟开晚放，但这只不过是我的一厢情愿，一种幻想而已。然而尽管如此，我仍心有不甘，向春反问：“你且留步！听说海角天涯并无你的归处，你能去哪里呢！”春默默无语、依旧悄然离去。如果说，在人间还有什么春的痕迹，那只有画檐蛛网上沾着些的柳絮，给我们一丝慰藉。&lt;br/&gt;&lt;br/&gt;　　后一片中，作者愤懑不平，是控诉，更是一种诅咒。据史书载，长公主在汉武帝继位上起了很大作用，因此汉武帝立其女阿娇为皇后，是为陈皇后。但陈皇后却骄贵宫中，终于因妒武帝宠妃卫子夫，“挟妇人媚道”，事发被废，贬居长门宫。司马相如《长门赋序》里说，长门宫内的陈皇后整日愁闷悲思，听说司马相如文章天下最工，便送去百斤黄金，求一篇解愁辞&lt;br/&gt;赋，即这首《长门赋》。后来汉武帝看到此赋，遂有所感悟，又宠幸了陈皇后。这个《序》多少有点夸张其事，目的不外乎吹嘘相如才笔。因为在历史上，陈皇后自废后，没有再度被汉武帝亲幸的事。正象《长门赋序》的作者敢于不拘泥故事真伪一样，辛弃疾此处也来了个大胆生发，将前二事按自己的想象融合，加以改造。他说，被冷落的陈皇后，本已有了与汉武帝重聚的希望，但是由于遭到武帝身边争宠人的妒恨，致使佳期无望。这个时候，纵使陈皇后千金买得相如的生花妙笔，也难将自己的脉脉真情传递过去。不过，在此也要对那些离间妒者一个严正警告：不要太得意忘形了，你们的下场不会比杨玉环、赵飞燕好到哪里！要知道，虽然她们在历史上都是宠极一时的人物，但结局却是一样的。一个缢死马嵬坡下，一个废为庶人后自杀。&lt;br/&gt;&lt;br/&gt;　　《摸鱼儿》作于一一七九年，距辛弃疾北方起义，南归宋朝已过去了十六个年头。而南宋国势日衰，政权腐朽，收复中原的希望渺茫，使得辛弃疾的报国之心渐渐灰冷下来。他热爱自己的祖国，却又对它失望。他在这首词中，以春喻国，期望春天长驻久留，不忍它风雨飘摇，残零败落。但是国如残春，匆匆离去。他不愿面对这个可怕的现实，然而他又怎么能回避得了呢？他的济世之志，救国理想都寄托在南宋王朝的复兴上面：可是事与愿违，眼见都落了空，心中是异常的苦痛和矛盾。他爱而不成则生恨心，他恨权奸当道、蒙蔽君主、不思恢复失地，反而排挤抗金志士。自投奔南宋以来，辛弃疾从未获得信任重用，初则浮沉于下级僚吏，后又展转于江西、湖北、湖南地方官。他也曾写《美芹十论》《九议》两文上奏朝廷，论议抗金方略、反对议和偏安，但是有投无应。故此，在词的下片中他以长门陈皇后自比，痛陈蛾眉遭妒之愤，并诅咒妥协偷安的权臣，其命运将一如玉环飞燕。他们既害了国家，最终也就害了自己。&lt;br/&gt;&lt;br/&gt;　　词的结句最沉痛无比，作者仿佛陷入绝望的哀思。他有抗金的决心，有杀敌的本领，却没有报国的机会。空耗着自己的生命，虚度着自己的年华，百无聊赖、闲愁最苦。他无法解脱交织在心中的这种压抑、也最怕在烟柳夕阳中登楼远眺。因为那落日残阳的光景，太象南宋目前江河日下的危弱形势，叫人看了心肠断裂。&lt;br/&gt;&lt;br/&gt;　　《摸鱼儿》的艺术手法是极为含蓄的，但作者的伤时忧国情怀却是可以触摸得到的。尽管它婉而不露，没有直指国政，却让当年的宋孝宗读了心中不快，因为说到底，这首词还是碰了南宋时弊的痛处。（刘伯渊）&lt;br/&gt;&lt;br/&gt;赏析2 (&lt;a href='http://www.ht88.com/article/article_8790_1.html'&gt;原文&lt;/a&gt;)&lt;br/&gt;　　辛弃疾于公元1142年出生在金人占领下的山东历城（今山东济南）。由于从小受到民族意识和爱国主义思想教育，他自幼就立下了杀敌报国、收复失地的宏&lt;br /&gt;愿。他一生力主抗金，多次上书南宋朝廷，力陈复国方略，但却不被采纳，最后只落得“却将万字平戎策，换得东家种树书”的无奈境地。宋孝宗淳熙六年&lt;br /&gt;（1179年），他由湖北转运副使调往湖南，想到自己因坚持抗金，却屡遭投降派的疑忌和迫害，不由感慨万千，于是挥笔写下了后人广为传诵的《摸鱼儿》。&lt;br /&gt;&lt;br/&gt;　　摸鱼儿 &lt;br/&gt;　　淳熙已亥，自湖北漕移湖南，同官王正之置酒小山亭，为赋。 &lt;br/&gt;　　更能消几番风雨，匆匆春又归去。惜春长怕花开早，何况落红无数。春且住，见说道，天涯芳草无归路。怨春不语，算只有殷勤，画檐蛛网，尽日惹飞絮。 &lt;br/&gt;　　长门事，准拟佳期又误，蛾眉曾有人妒。千金纵买相如赋，脉脉此情谁诉？君莫舞！君不见，玉环飞燕皆尘土。闲愁最苦，休去倚危栏，斜阳正在，烟柳断肠处。 &lt;br/&gt;　&lt;br /&gt;　这首词上片先从惜春写起：如今已是暮春天气，哪里还能经得起几次风雨的吹打淋湿啊！眼看着春天就这样匆匆忙忙地离去。本是表达对春天逝去的无限惋惜之&lt;br /&gt;情，这里却用“更能消”三字，正话反说，很有笔力。“惜春长怕花开早”，由于怕春去花落，作者甚至于害怕春天的花开得太早，因为开得早也就谢得早，春天也&lt;br /&gt;就去得急了，曲折而淋漓地把惜春而又伤春的矛盾心情表现出来，这是对惜春心理的深入一层的描写。由于怕春天离去，所以作者随后写到：春天啊，你且止步吧，&lt;br /&gt;听说那萋萋芳草一直连到天涯，早已遮断了你的归去之路呀！这里，作者移情于物，不说自己留春，而说芳草留春，有意长到天涯，要堵住春天归去的道路，这就把&lt;br /&gt;惜春之情表现得又深了一层。留春不住，只好怨春：春天啊，你什么也不说，就这样悄悄地溜走了，实在是惹人怨恼，倒还是那屋檐下的蜘蛛，勤勤恳恳，一天到晚&lt;br /&gt;不停地抽丝结网，粘惹住了不少纷飞的柳絮。结合作者的身世，我们不难理解，这里作者显然并不是单纯地惋惜春天的流逝，而应该另有所指，惜春之情的背后隐含&lt;br /&gt;着壮志难酬的忧国之思。 &lt;br/&gt;　　下片借古喻今，一开始就用汉武帝陈皇后失宠的典故，来比拟自己的失意。陈皇后因美貌而遭人嫉妒，以致被打入冷宫，&lt;br /&gt;她拿出黄金请司马相如写了一篇《长门赋》，希望能够打动汉武帝，但她期待的“佳期”仍属渺茫。这实际上正是作者对自己长期遭受排挤和冷遇的不满和感叹，自&lt;br /&gt;己的一腔爱国热情又该向谁倾诉呢？杨玉环、赵飞燕飞扬跋扈、祸国殃民，终究没有得到好下场，这里作者借杨赵二人的故事，向打击排挤自己的投降派提出了怒斥&lt;br /&gt;和警告：你们不要太得意忘形了，你们没见杨玉环和赵飞燕后来都死于非命吗？你们也不会有好下场的。“闲愁最苦”，其实，为国家的前途和命运而愁，哪里是什&lt;br /&gt;么“闲愁”？这是反话。但从另一个角度看，这又何尝不是实话呢？自己虽为南宋忧虑，却又无缘参与议论朝政大事，成了地地道道的闲官，从这两个意义上来说，&lt;br /&gt;闲愁实在可以说是最深、最苦的愁了。作者清醒地认识到：不能用凭高望远的方式来排除郁闷，因为那快要落山的斜阳，正照着那被暮霭笼罩着的杨柳，远远望去，&lt;br /&gt;一片迷蒙，这样的暮景，会使人见景伤情，以致于销魂断肠的。 &lt;br/&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/26941438-4461709593384702646?l=interskh.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://interskh.info/feeds/4461709593384702646/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=26941438&amp;postID=4461709593384702646' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/4461709593384702646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/4461709593384702646'/><link rel='alternate' type='text/html' href='http://interskh.info/2009/10/blog-post_23.html' title='摸魚兒 - 辛弃疾'/><author><name>sKh</name><uri>http://www.blogger.com/profile/18231781971514560372</uri><email>interskh@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12173953768914385515'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_2vQo-2pSND4/SuFnsU9iTBI/AAAAAAAAMZw/WgiDwO-F6wU/s72-c/01300000192618121939107593171.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26941438.post-384508988944747913</id><published>2009-10-20T20:05:00.000-04:00</published><updated>2009-10-20T20:05:00.388-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Science'/><category scheme='http://www.blogger.com/atom/ns#' term='Swim'/><title type='text'>游泳会出汗吗</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Do we sweat while swimming?&lt;br/&gt;&lt;br/&gt;今天和震岳游泳的时候聊天，聊起说游泳时究竟会不会出汗。一方面，运动会产生热量，有热量就要散热，于是就会流汗。另一方面，游泳池里是天然的水冷系统，体温不会升高于是就不会流汗。当时没有讨论出答案，于是回来google了一下。&lt;br/&gt;&lt;br/&gt;澳大利亚的一个研究告诉我们，事实上，游泳是会出汗的，只不过比起其他的运动要少很多(123ml/km, 跑步的三分之一 [1])，而且因为在水里自身是不会感觉到流汗的。另外一个研究也得到了相似的结果(swimmers lost about 600ml of sweat during their typical training&lt;br /&gt;session (mean distance = 4km, mean time = approximately 1 hour of&lt;br /&gt;training)[2])。实验方法都是通过计算运动员的体重来得到的。&lt;br/&gt;&lt;br/&gt;ref:&lt;br/&gt;1. http://www.brown.edu/Students/Catalyst/Swimming-Mitchell.html&lt;br/&gt;2. http://www.swim-city.com/library.php3?id=34&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/26941438-384508988944747913?l=interskh.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://interskh.info/feeds/384508988944747913/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=26941438&amp;postID=384508988944747913' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/384508988944747913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/384508988944747913'/><link rel='alternate' type='text/html' href='http://interskh.info/2009/10/blog-post_20.html' title='游泳会出汗吗'/><author><name>sKh</name><uri>http://www.blogger.com/profile/18231781971514560372</uri><email>interskh@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12173953768914385515'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26941438.post-8450912145779219156</id><published>2009-10-19T03:17:00.001-04:00</published><updated>2009-10-19T03:17:15.412-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pic'/><category scheme='http://www.blogger.com/atom/ns#' term='Fall'/><category scheme='http://www.blogger.com/atom/ns#' term='Photo'/><category scheme='http://www.blogger.com/atom/ns#' term='life'/><category scheme='http://www.blogger.com/atom/ns#' term='Pittsburgh'/><title type='text'>Kentuck Knob</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;秋高气爽，在RJ的邀请下一起同游大名鼎鼎的Falling Water的设计师Mr. Wright的另一个大作Kentuck Knob，没去成Falling Water是因为票实在太紧俏了，本来也还想能在边上看一看不过他们另外还要收8刀一人，超级黑心。这个Kentuck Knob非常超乎我的意料，我以为会很俗的，尤其看照片是这样。但进去之后发现这个建筑相当有特色，Wright先生几乎设计了一切。石头的外墙，木质的内墙，不同高度的房间，超窄的走廊让人进入房间时的豁然开朗，站在中心离每边都只有两步的厨房，三角形和六边形的房间，超棒的view可以看到整片山头（现在种植了很多的树），不过给我住我还是不愿意的，因为整个房间还没有网络 :P&lt;br/&gt;&lt;br/&gt;总之，我有很大的欲望想以后可以设计自己的房子。另外，秋天真的各种美! &lt;br/&gt;&lt;br/&gt;ps David居然是我暑假结识的James的好友，超巧的。要不是偶尔拿出来了一张business card根本不可能发现.. orz&lt;br/&gt;&lt;br/&gt;上图吧&lt;br/&gt;&lt;embed width='400' height='267' pluginspage='http://www.macromedia.com/go/getflashplayer' flashvars='host=picasaweb.google.com&amp;amp;hl=en_US&amp;amp;feat=flashalbum&amp;amp;RGB=0x000000&amp;amp;feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Finterskh%2Falbumid%2F5394176294432463649%3Falt%3Drss%26kind%3Dphoto%26hl%3Den_US' src='http://picasaweb.google.com/s/c/bin/slideshow.swf' type='application/x-shockwave-flash'&gt; &lt;/embed&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26941438-8450912145779219156?l=interskh.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://interskh.info/feeds/8450912145779219156/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=26941438&amp;postID=8450912145779219156' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/8450912145779219156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/8450912145779219156'/><link rel='alternate' type='text/html' href='http://interskh.info/2009/10/kentuck-knob.html' title='Kentuck Knob'/><author><name>sKh</name><uri>http://www.blogger.com/profile/18231781971514560372</uri><email>interskh@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12173953768914385515'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26941438.post-5125687778835876115</id><published>2009-10-16T16:16:00.000-04:00</published><updated>2009-10-16T16:29:47.227-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vi'/><category scheme='http://www.blogger.com/atom/ns#' term='VIM'/><title type='text'>vim plugin: AutoClose</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;http://www.vim.org/scripts/script.php?script_id=2009&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/26941438-5125687778835876115?l=interskh.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://interskh.info/feeds/5125687778835876115/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=26941438&amp;postID=5125687778835876115' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/5125687778835876115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/5125687778835876115'/><link rel='alternate' type='text/html' href='http://interskh.info/2009/10/vim-plugin-autoclose.html' title='vim plugin: AutoClose'/><author><name>sKh</name><uri>http://www.blogger.com/profile/18231781971514560372</uri><email>interskh@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12173953768914385515'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26941438.post-4077382409729871113</id><published>2009-10-15T13:07:00.000-04:00</published><updated>2009-10-15T13:08:28.755-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Cplusplus'/><category scheme='http://www.blogger.com/atom/ns#' term='Funny'/><title type='text'>原来还有这么有趣的故事</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;发信人: Curvelet (小曲线), 信区: CPlusPlus&lt;br/&gt;标  题: [IAQ] C/C++ 中的 Trigraph&lt;br/&gt;发信站: 水木社区 (Tue Apr 17 20:10:15 2007), 站内&lt;br/&gt;&lt;br/&gt;[Note: IAQ 的意思是 Infrequently Answered Questions. -- end note]&lt;br/&gt;&lt;br/&gt;C/C++ 为了照顾老一辈无产阶级革命家，&lt;br/&gt;他们的条件极其艰苦，&lt;br/&gt;键盘上缺了很多键，&lt;br/&gt;无法输入下面九个字符:&lt;br/&gt;&lt;br/&gt;    # \ ^ [ ] { } | ~&lt;br/&gt;&lt;br/&gt;因此推出了 trigraph，&lt;br/&gt;简单的讲就是把上面的每个字符用其他三个字符来代替，&lt;br/&gt;替换的规则如下：&lt;br/&gt;&lt;br/&gt;#: ??=&lt;br/&gt;\: ??/&lt;br/&gt;^: ??'&lt;br/&gt;[: ??(&lt;br/&gt;]: ??)&lt;br/&gt;{: ??&amp;lt;&lt;br/&gt;}: ??&amp;gt;&lt;br/&gt;|: ??!&lt;br/&gt;~: ??-&lt;br/&gt;&lt;br/&gt;比如说，下面这个 C++ 程序：&lt;br/&gt;&lt;br/&gt;#include &amp;lt;iostream&amp;gt;&lt;br/&gt;&lt;br/&gt;int main() {&lt;br/&gt;  std::cout &amp;lt;&amp;lt; "[]" &amp;lt;&amp;lt; std::endl;&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;可以改写成这样：&lt;br/&gt;&lt;br/&gt;??=include &amp;lt;iostream&amp;gt;&lt;br/&gt;&lt;br/&gt;int main() ??&amp;lt;&lt;br/&gt;  std::cout &amp;lt;&amp;lt; "??(??)" &amp;lt;&amp;lt; std::endl;&lt;br/&gt;??&amp;gt;&lt;br/&gt;&lt;br/&gt;将 trigraph 替换成对应的字符发生在预处理之前，&lt;br/&gt;因此 trigraph 可以在源码中的任何位置都可以用，&lt;br/&gt;包括字符串内，函数体开头，预处理指令等。&lt;br/&gt;&lt;br/&gt;有人说，如果那我就是用一个字符串常量，其中包含了 "??=" 怎么办？&lt;br/&gt;比如说就是要打印两个问号接一个等号，怎么办？&lt;br/&gt;很简单，把它拆开写， 为了打印出 "??="，我们把它拆成 "??" "=" 即可，&lt;br/&gt;因为 C/C++ 在处理字符串字面值的时候，会把相邻的多个字符串字面值合并成一个，&lt;br/&gt;而这个合并操作发生在 trigraph 替换之后，&lt;br/&gt;下面的程序就可以正确的打印出两个问号和一个等号：&lt;br/&gt;&lt;br/&gt;#include &amp;lt;iostream&amp;gt;&lt;br/&gt;&lt;br/&gt;int main() {&lt;br/&gt;  std::cout &amp;lt;&amp;lt; "??" "=" &amp;lt;&amp;lt; std::endl;&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;实测中，&lt;br/&gt;VC 8 不给任何提示将 trigraph 替换成对应字符，&lt;br/&gt;GCC 4.0.3 则要求加上编译参数 -trigraphs 才会做相应转换。&lt;br/&gt;&lt;br/&gt;虽然 GCC 的做法是不符合标准的，但是更加安全。&lt;br/&gt;更详细的情况可以参考标准 2.3。&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/26941438-4077382409729871113?l=interskh.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://interskh.info/feeds/4077382409729871113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=26941438&amp;postID=4077382409729871113' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/4077382409729871113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/4077382409729871113'/><link rel='alternate' type='text/html' href='http://interskh.info/2009/10/blog-post_15.html' title='原来还有这么有趣的故事'/><author><name>sKh</name><uri>http://www.blogger.com/profile/18231781971514560372</uri><email>interskh@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12173953768914385515'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26941438.post-8963934723606852719</id><published>2009-10-13T22:08:00.000-04:00</published><updated>2009-10-13T22:08:00.441-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Quiz'/><category scheme='http://www.blogger.com/atom/ns#' term='Test'/><category scheme='http://www.blogger.com/atom/ns#' term='Self'/><category scheme='http://www.blogger.com/atom/ns#' term='Me'/><title type='text'>My Love Language</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;center&gt;&lt;div align='left'&gt;上次keying说的时候就觉得我好像都需要... 现在看来我的确是一个很难伺候的人... 不过好歹weight不全是一样的..&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;b&gt;Test Results:&lt;/b&gt; 		&lt;br/&gt; 	&lt;/center&gt; 	 	    &lt;table cellpadding='0' border='1' align='center' width='75%'&gt;&lt;tbody&gt;&lt;tr&gt;        &lt;td bgcolor='white' align='center' width='60%'&gt; 					&lt;font color='#2f2b82'&gt;&lt;b&gt; Percent &lt;/b&gt;&lt;/font&gt;				        &lt;/td&gt;        &lt;td bgcolor='white' align='center' center=''&gt; 					&lt;font color='#2f2b82'&gt;&lt;b&gt; Language &lt;/b&gt;&lt;/font&gt;        &lt;/td&gt;        &lt;td bgcolor='white' align='center'&gt; 					&lt;font color='#2f2b82'&gt;&lt;b&gt; Score &lt;/b&gt;&lt;/font&gt;        &lt;/td&gt;    &lt;/tr&gt;     &lt;tr&gt;        &lt;td width='60%'&gt; 			&lt;table cellpadding='0' border='0' bgcolor='blue' width='17%' height='20px'&gt; 	  			&lt;tbody&gt;&lt;tr&gt; 					&lt;td align='center'&gt;&lt;font color='#000000'&gt;17%&lt;/font&gt;&lt;/td&gt; 	  			&lt;/tr&gt; 			&lt;/tbody&gt;&lt;/table&gt;        &lt;/td&gt;        &lt;td align='center'&gt;&lt;font color='#000000'&gt;Words of Affirmation  &lt;/font&gt;&lt;/td&gt;        &lt;td align='center'&gt; 					&lt;font color='#000000'&gt;5          &lt;/font&gt;&lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;        &lt;td width='60%'&gt; 			&lt;table cellpadding='0' border='0' bgcolor='red' width='27%' height='20px'&gt; 	  			&lt;tbody&gt;&lt;tr&gt; 					&lt;td align='center'&gt;&lt;font color='#000000'&gt;27%&lt;/font&gt;&lt;/td&gt; 	  			&lt;/tr&gt; 			&lt;/tbody&gt;&lt;/table&gt;        &lt;/td&gt;        &lt;td align='center'&gt;&lt;font color='#000000'&gt;Quality Time  &lt;/font&gt;&lt;/td&gt;&lt;td align='center'&gt; 					&lt;font color='#000000'&gt;8          &lt;/font&gt;&lt;/td&gt;    &lt;/tr&gt;&lt;tr&gt;        &lt;td width='60%'&gt; 			&lt;table cellpadding='0' border='0' bgcolor='orange' width='13%' height='20px'&gt; 	 		 &lt;tbody&gt;&lt;tr&gt; 				&lt;td align='center'&gt;&lt;font color='#000000'&gt;13%&lt;/font&gt;&lt;/td&gt; 	  		&lt;/tr&gt; 			&lt;/tbody&gt;&lt;/table&gt;        &lt;/td&gt;        &lt;td align='center'&gt;&lt;font color='#000000'&gt;Receiving Gifts          &lt;/font&gt;&lt;/td&gt;&lt;td align='center'&gt; 					&lt;font color='#000000'&gt;4          &lt;/font&gt;&lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;        &lt;td width='60%'&gt; 			&lt;table cellpadding='0' border='0' bgcolor='green' width='20%' height='20px'&gt; 	 		 &lt;tbody&gt;&lt;tr&gt; 				&lt;td align='center'&gt;&lt;font color='#000000'&gt;20%&lt;/font&gt;&lt;/td&gt; 	  		&lt;/tr&gt; 			&lt;/tbody&gt;&lt;/table&gt;        &lt;/td&gt;        &lt;td align='center'&gt;&lt;font color='#000000'&gt;Acts of Service          &lt;/font&gt;&lt;/td&gt;&lt;td align='center'&gt; 					&lt;font color='#000000'&gt;6          &lt;/font&gt;&lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;        &lt;td width='60%'&gt; 			&lt;table cellpadding='0' border='0' bgcolor='purple' width='23%' height='20px'&gt; 	 		 &lt;tbody&gt;&lt;tr&gt; 				&lt;td align='center'&gt;&lt;font color='#000000'&gt;23%&lt;/font&gt;&lt;/td&gt; 	  		&lt;/tr&gt; 			&lt;/tbody&gt;&lt;/table&gt;        &lt;/td&gt;        &lt;td align='center'&gt;&lt;font color='#000000'&gt;Physical Touch          &lt;/font&gt;&lt;/td&gt;&lt;td align='center'&gt; 					&lt;font color='#000000'&gt;7          &lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;&lt;br/&gt;测试在&lt;a href='http://www.afo.net/hftw-lovetest.asp'&gt;这里&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26941438-8963934723606852719?l=interskh.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://interskh.info/feeds/8963934723606852719/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=26941438&amp;postID=8963934723606852719' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/8963934723606852719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/8963934723606852719'/><link rel='alternate' type='text/html' href='http://interskh.info/2009/10/my-love-language.html' title='My Love Language'/><author><name>sKh</name><uri>http://www.blogger.com/profile/18231781971514560372</uri><email>interskh@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12173953768914385515'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26941438.post-8389881160180497899</id><published>2009-10-12T18:45:00.002-04:00</published><updated>2009-10-12T18:47:48.493-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='Feeling'/><category scheme='http://www.blogger.com/atom/ns#' term='Thoughts'/><category scheme='http://www.blogger.com/atom/ns#' term='life'/><category scheme='http://www.blogger.com/atom/ns#' term='zz'/><title type='text'>你的决定灭不了谁</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;马后炮总是要不得的，历史永远没有假设，我们也始终不是神仙。0.01%的中奖机会，我们就不应该去买彩票。贝多芬的出生却不是你想的我想的理由，只是贝多芬的妈妈是个妈妈。同样的，罗斯福、邱吉尔和希特勒永远不会不会站在一起竞选，而他们一起竞选的结果一定也不是因为你想的我想的理由。&lt;br /&gt;&lt;br /&gt;不过，生活总是不可思议的。如同这个广告里一句话: "Never underestimate the power of a great story"&lt;br /&gt;&lt;object width="480" height="295"&gt;&lt;param name="movie" value="http://www.youtube.com/v/PWcc2hCwsWM&amp;hl=en&amp;fs=1&amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/PWcc2hCwsWM&amp;hl=en&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="295"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;转载 &lt;a href="http://www.tugus.com/bbs_content:137371127112602370527864::"&gt;你的决定灭了谁&lt;/a&gt;&lt;br /&gt;朋友手拿一份报纸让我做一个小小测验，我欣然同意了。&lt;br /&gt;问题一：如果你知道有一个女人怀孕了，她已经生了八个小孩，其中有三个耳朵聋，两个眼睛瞎，一个智能不足，而这个女人自己又有梅毒，请问，你会建议她堕胎吗？&lt;br /&gt;我刚要回答，朋友制止了我，又问我第二个问题。&lt;br /&gt;问题二：现在要选举一名领袖，而你这一票很关键。下面是关于这三个候选人的一些事实。&lt;br /&gt;候选人A：跟一位不诚实的政客有往来，而且会咨询占星学家。他有婚外情，是一个老烟枪，每天喝8-10杯的马丁尼。&lt;br /&gt;候选人B：他过去有两次被解雇的记录，睡觉睡到中午才起来，大学时吸过鸦片，而且每天傍晚会喝一夸特的威士忌。&lt;br /&gt;候选人C：他是一位受勋的战争英雄，素食主义者，不抽烟，只偶尔喝一点啤酒。从没有发生过婚外情。&lt;br /&gt;请问你会在这些候选人中选哪一个？&lt;br /&gt;朋友让我把答案写在纸上，然后告诉我说：&lt;br /&gt;候选人A是富兰克林.罗斯福。候选人B是温斯顿.丘吉尔。候选人C是亚道夫.希特勒。&lt;br /&gt;我听了答案，惊讶地张大了嘴巴。&lt;br /&gt;朋友表情凝重的问我：你是不是为世界人民选择了希特勒？那你会建议这位妇女堕胎吗？&lt;br /&gt;我说这个问题不用思考，我们受计划生育优生优育多年了。都生那么多歪瓜劣枣了就别再添乱了，堕胎。&lt;br /&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/26941438-8389881160180497899?l=interskh.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://interskh.info/feeds/8389881160180497899/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=26941438&amp;postID=8389881160180497899' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/8389881160180497899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/8389881160180497899'/><link rel='alternate' type='text/html' href='http://interskh.info/2009/10/blog-post_12.html' title='你的决定灭不了谁'/><author><name>sKh</name><uri>http://www.blogger.com/profile/18231781971514560372</uri><email>interskh@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12173953768914385515'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26941438.post-5719124999943345822</id><published>2009-10-09T21:21:00.001-04:00</published><updated>2009-10-09T21:21:08.968-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pic'/><category scheme='http://www.blogger.com/atom/ns#' term='Fall'/><category scheme='http://www.blogger.com/atom/ns#' term='Photo'/><category scheme='http://www.blogger.com/atom/ns#' term='life'/><category scheme='http://www.blogger.com/atom/ns#' term='Autumn'/><category scheme='http://www.blogger.com/atom/ns#' term='Pittsburgh'/><title type='text'>美丽的秋天</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;似乎也就是来了美国之后才开始喜欢上秋天的吧，这两天趁着天还没冷到处转悠，秋天真的太漂亮了，痞子堡又各种山路，穿越在五颜六色之中，心情大好。&lt;br/&gt;&lt;img src='http://lh6.ggpht.com/_2vQo-2pSND4/Ss_P3BsW1sI/AAAAAAAAMOE/bc-Q4RLjYIU/s800/autumn.jpg' style='max-width: 800px;'/&gt;&lt;br/&gt;&lt;br/&gt;下午经过了我觉得看到过风景最漂亮的一篇house，出门正对着一片山谷，于是坐在那边的椅子上看了会儿书，然后就下雨了.. sigh&lt;br/&gt;&lt;img src='http://lh6.ggpht.com/_2vQo-2pSND4/Ss_P3bMJ1oI/AAAAAAAAMOI/g6IkgtaEsrc/s288/IMGP1810.JPG' style='max-width: 800px;'/&gt;  &lt;img src='http://lh4.ggpht.com/_2vQo-2pSND4/Ss_P3m4KEnI/AAAAAAAAMOM/sFtjZ5S1m9o/s288/IMGP1811.JPG' style='max-width: 800px;'/&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/26941438-5719124999943345822?l=interskh.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://interskh.info/feeds/5719124999943345822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=26941438&amp;postID=5719124999943345822' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/5719124999943345822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/5719124999943345822'/><link rel='alternate' type='text/html' href='http://interskh.info/2009/10/blog-post.html' title='美丽的秋天'/><author><name>sKh</name><uri>http://www.blogger.com/profile/18231781971514560372</uri><email>interskh@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12173953768914385515'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_2vQo-2pSND4/Ss_P3BsW1sI/AAAAAAAAMOE/bc-Q4RLjYIU/s72-c/autumn.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26941438.post-7958865815551081141</id><published>2009-10-07T23:58:00.003-04:00</published><updated>2009-10-08T00:03:52.580-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DIY'/><category scheme='http://www.blogger.com/atom/ns#' term='life'/><category scheme='http://www.blogger.com/atom/ns#' term='Funny'/><title type='text'>破解Master Padlock</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;众所周知Master Lock的密码不是自己设的，于是一不小心一个暑假过完之后回来死活想不起原先这把锁的密码，cola说可以找锁匠打开但一直懒得去。今天lifehacker上的一篇文章看上去可以解决我的问题，所以就动手了一翻。lifehacker原文在&lt;a href="http://lifehacker.com/5376442/"&gt;这里&lt;/a&gt;。&lt;br /&gt;&lt;br /&gt;其实打开锁最简单暴力的方法就是拿电锯锯开或者是用锤子锤开，Master PadLock还有一个办法就是brute force，反正也就是40^3=64000的组合数大概24/7干上一周的量。&lt;br /&gt;&lt;br /&gt;lifehacker上介绍了两种方法，一个是直接打开大法，用啤酒罐做成一个工具，然后一捅就开了，就像高手开钥匙锁一样，非常的简便快速有效，很适合紧急情况下急需解锁时使用，譬如游完泳出来发现储物箱被人恶意上锁了，或者一些恶人们做某些三只手的事情的时候，这种方法的坏处是尽管锁开了但还是不知道锁的密码，于是这个锁还是不能复用了。&lt;a href="http://www.youtube.com/watch?v=1eGxRQlWTrM"&gt;点击&lt;/a&gt;看视频(墙内的朋友不好意思，这是youtube的链接)。我手头没有啤酒罐，找了个雪碧的易拉罐试了一下没成功，易拉罐的皮还是太软，不知道是因为Master Padlock改进了还是雪碧的罐头和啤酒的是不同的关系。&lt;br /&gt;&lt;br /&gt;第二种方法就很牛了，可以把BF的64000种缩减到100种，然后拿手试一试就出来了。这个图例很好的解释了具体的步骤(原图在&lt;a href="http://markedwardcampos.com/files/mcamposfinal.png"&gt;这里&lt;/a&gt;，似乎原图的服务资源被lifehacker的url attck了)&lt;br /&gt;&lt;img src="http://lh5.ggpht.com/_2vQo-2pSND4/Ss1hDVP6shI/AAAAAAAAMNM/wrBcUhnfMJE/s800/f_000301.png" /&gt;&lt;br /&gt;1. 拉着锁，转动表盘，会发现一共有12个地方会卡住，其中7个是在两个数之间，5个是在数上，这5个其中4个有同样的个位数(即类似于4-14-24-34)，剩下的那个就是密码中的第三位了。&lt;br /&gt;&lt;br /&gt;2. 根据这个第三位数除4的余数，就可以把前两个数的候选分别缩减到10个，见图中step 3，把第三个数在对应的第三排中找到，那么前面两排对应的就是第一二位的候选。或者可以根据这个&lt;a href="http://www.skattertech.com/media/2005/old/Masterlock.xls"&gt;excel表&lt;/a&gt;直接得到这100种候选。&lt;br /&gt;&lt;br /&gt;3. 然后就brute force吧，一百个很快的..&lt;br /&gt;&lt;br /&gt;这个方法也有个&lt;a href="http://www.wonderhowto.com/how-to/video/how-to-crack-a-combination-lock-with-100-possible-combos-267338/"&gt;视频指导&lt;/a&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/26941438-7958865815551081141?l=interskh.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://interskh.info/feeds/7958865815551081141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=26941438&amp;postID=7958865815551081141' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/7958865815551081141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/7958865815551081141'/><link rel='alternate' type='text/html' href='http://interskh.info/2009/10/master-padlock.html' title='破解Master Padlock'/><author><name>sKh</name><uri>http://www.blogger.com/profile/18231781971514560372</uri><email>interskh@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12173953768914385515'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_2vQo-2pSND4/Ss1hDVP6shI/AAAAAAAAMNM/wrBcUhnfMJE/s72-c/f_000301.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26941438.post-8077236628767889211</id><published>2009-10-06T14:19:00.000-04:00</published><updated>2009-10-06T14:25:40.382-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Geek'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Funny'/><title type='text'>大家不要bs菜鸟啊</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;原帖来自于“&lt;a href='http://initiative.yo2.cn/archives/642902'&gt;围观一个不会在Java里设置User-agent头的“菜鸟”&lt;/a&gt;”&lt;br /&gt;&lt;br /&gt;故事是这样的，1996年的1月，在茫茫的USENET中，有一个不起眼的人物发了一个不起眼的帖子：“Q: Setting User-Agent Field?” 这个人想在Java里设User Agent，如果放到现在，可能最多的回答就是STFG了，可那个时候还没有Google。这个帖子在这里：&lt;a href='https://groups.google.com/group/comp.lang.java/t/6923c024ed392c85/'&gt;https://groups.google.com/group/comp.lang.java/t/6923c024ed392c85/&lt;/a&gt; 大家注意一下发贴人，诶，很熟悉吧？于是两年后我们就有了Google.&lt;br /&gt;&lt;br /&gt;另外，注意到当时Java还是1.0beta，sun发布java才不到一年。所以说牛人还是有特别的地方的。&lt;br /&gt;&lt;br /&gt;题外话，昨天看linuxtoy的文章看到说ck复出了，于是就留意了一下这个ck, 传说中的澳洲猛士Con Kolivas。他归隐了两年后推出了BFS, Brain F*** Scheduler，致力于给低端硬件上的kernel提速。他之前的贡献就是为linux内核提供了Completely Fair Scheduler，代替了之前的O(1) Schedular。其实总结一下就是他很牛x，然后呢他是一个麻醉师，kernel hack只是他的业余爱好。只能说他的业余爱好很好很强大。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26941438-8077236628767889211?l=interskh.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://interskh.info/feeds/8077236628767889211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=26941438&amp;postID=8077236628767889211' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/8077236628767889211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/8077236628767889211'/><link rel='alternate' type='text/html' href='http://interskh.info/2009/10/bs.html' title='大家不要bs菜鸟啊'/><author><name>sKh</name><uri>http://www.blogger.com/profile/18231781971514560372</uri><email>interskh@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12173953768914385515'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26941438.post-7574760571936279403</id><published>2009-10-03T12:50:00.000-04:00</published><updated>2009-10-03T13:08:44.802-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Music'/><category scheme='http://www.blogger.com/atom/ns#' term='Feeling'/><category scheme='http://www.blogger.com/atom/ns#' term='lyric'/><title type='text'>再见 Good Bye</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;再见 Good Bye&lt;br /&gt;张震岳&lt;br /&gt;&lt;br /&gt;我怕我 没有机会 跟你说 一声再见&lt;br /&gt;因为 也许 就再也见不到你&lt;br /&gt;明夜我 要离开 熟悉的地方和你&lt;br /&gt;要分离 我眼泪就掉下去&lt;br /&gt;我会牢牢记住你的脸，我会珍惜你给的思念&lt;br /&gt;这些日子在我心中永远都不会抹去&lt;br /&gt;我不能 答应你 我是否 会再回来&lt;br /&gt;不回头 不回头的走下去。 &lt;br /&gt;&lt;br /&gt;我怕我 没有机会 跟你说 一声再见, &lt;br /&gt;因为也许 就再也见不到你 &lt;br /&gt;明夜我 要离开 熟悉的地方和你 &lt;br /&gt;要分离 我眼泪就掉下去&lt;br /&gt;我会牢牢记住你的脸 我会珍惜你给的思念&lt;br /&gt;这些日子在我心中永远都不会抹去&lt;br /&gt;我不能答应你 我是否 会再回来， &lt;br /&gt;不回头 不回头的走下去&lt;br /&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/26941438-7574760571936279403?l=interskh.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://interskh.info/feeds/7574760571936279403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=26941438&amp;postID=7574760571936279403' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/7574760571936279403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/7574760571936279403'/><link rel='alternate' type='text/html' href='http://interskh.info/2009/10/good-bye.html' title='再见 Good Bye'/><author><name>sKh</name><uri>http://www.blogger.com/profile/18231781971514560372</uri><email>interskh@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12173953768914385515'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26941438.post-7279703079792509985</id><published>2009-09-28T13:22:00.002-04:00</published><updated>2009-09-28T13:22:44.219-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Geek'/><category scheme='http://www.blogger.com/atom/ns#' term='en'/><category scheme='http://www.blogger.com/atom/ns#' term='zz'/><category scheme='http://www.blogger.com/atom/ns#' term='Funny'/><title type='text'>i know i am a nerd because of..</title><content type='html'>the &lt;a href='http://bbs.archlinux.org/viewtopic.php?id=80903&amp;amp;p=1'&gt;post&lt;/a&gt; on archlinux forum is funny&lt;br /&gt;&lt;br /&gt;i like this one:&lt;br /&gt;&lt;blockquote&gt;I'm a nerd because I know the secret of counting to 1024 with my fingers.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Then:&lt;br /&gt;&lt;blockquote&gt;That's about to be the greatest finger exercises I've ever known. lol&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;But.. someone states out:&lt;br /&gt;&lt;blockquote&gt;you know, it is really only 1023 :p&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Then&lt;br /&gt;&lt;blockquote&gt;I'm a nerd because when I read that I thought 'or my fingers would overflow'.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;..&lt;br /&gt;&lt;blockquote&gt;Sounds painful.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;But they forget we could turn our hands around&lt;br /&gt;&lt;blockquote&gt;Besides, a true geek knows you've got two more bits by turning your hands around(so, say from palms towards you to away), or even putting your hands at an angle for two more bits...&lt;br /&gt;&lt;br /&gt;2^14 = 16,384&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;So, we can give others the "4"..&lt;br /&gt;&lt;blockquote&gt;When you give someone the "4", he will understand only if he is a turbo nerd.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;And i decide to change my hand sign to show 13.. HAHA&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26941438-7279703079792509985?l=interskh.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://interskh.info/feeds/7279703079792509985/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=26941438&amp;postID=7279703079792509985' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/7279703079792509985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26941438/posts/default/7279703079792509985'/><link rel='alternate' type='text/html' href='http://interskh.info/2009/09/i-know-i-am-nerd-because-of.html' title='i know i am a nerd because of..'/><author><name>sKh</name><uri>http://www.blogger.com/profile/18231781971514560372</uri><email>interskh@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12173953768914385515'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry></feed>