<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CEcMQ3g7eip7ImA9WhRUEUQ.&quot;"><id>tag:blogger.com,1999:blog-6808700</id><updated>2012-01-22T08:28:02.602+08:00</updated><category term="calendar" /><category term="iOS" /><category term="*nix" /><category term="safari" /><category term="database" /><category term="macosx" /><title>cat &gt; /dev/null</title><subtitle type="html">no description.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://koyeung.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://koyeung.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>King-On Yeung</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-JyFUw7BC8Rs/AAAAAAAAAAI/AAAAAAAACZc/J6oKPFCXvwU/s512-c/photo.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>50</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/blogspot/wCcxZ" /><feedburner:info uri="blogspot/wccxz" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;DEMFRn46eyp7ImA9WhdXFU4.&quot;"><id>tag:blogger.com,1999:blog-6808700.post-7687629724577025330</id><published>2011-08-28T20:39:00.000+08:00</published><updated>2011-08-28T21:00:17.013+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-28T21:00:17.013+08:00</app:edited><title>Know what your apps are running on</title><content type="html">&lt;br /&gt;
Knowing what the users are running on their devices is very helpful. Developers want to enjoy programming and spend effort on features, instead of workaround on legacy iOS releases. They want to know how many users are impacted if support of previous minor iOS release is given up.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://goo.gl/SCocF"&gt;Callers&lt;/a&gt; provides caller id information from companies. Main users base is from Hong Kong. Users could refresh the database and get updated information.&lt;br /&gt;
&lt;br /&gt;
By checking the HTTP fetch headers, valuable information on iOS versions and locales the app is running on could be obtained. With respect to the app's popularity and the target users set, you could plan &amp;nbsp;target SDK and supported languages appropriately.&lt;br /&gt;
&lt;br /&gt;
PS: &lt;a href="http://goo.gl/SCocF"&gt;Callers&lt;/a&gt; never submits personal information.&lt;br /&gt;
&lt;br /&gt;
asof 28 Aug 2011&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;iOS version&lt;/b&gt;&lt;br /&gt;
iPhone OS 4.3.5: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;34.90%&lt;br /&gt;
iPhone OS 4.3.4: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;3.91%&lt;br /&gt;
iPhone OS 4.3.3: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;31.14%&lt;br /&gt;
iPhone OS 4.3.2: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;6.81%&lt;br /&gt;
iPhone OS 4.3.1: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;4.49%&lt;br /&gt;
iPhone OS 4.3: &amp;nbsp;1.09%&lt;br /&gt;
&lt;br /&gt;
iPhone OS 4.2.1: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;9.45%&amp;nbsp;&amp;lt;--- last one running on iPhone3G&lt;br /&gt;
&lt;br /&gt;
iPhone OS 4.1: &amp;nbsp;7.60% &amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
other: &amp;nbsp;0.62%&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Locales&lt;/b&gt;&lt;br /&gt;
zh_HK: &amp;nbsp;71.43%&lt;br /&gt;
en_HK: &amp;nbsp;22.12%&lt;br /&gt;
zh_TW: &amp;nbsp;2.72%&lt;br /&gt;
zh-Hans_HK: &amp;nbsp; &amp;nbsp; 1.38%&lt;br /&gt;
en_US: &amp;nbsp;0.76%&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;
Should we target next release to 4.3.x? I have no answer to that, however.&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6808700-7687629724577025330?l=koyeung.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/1_TR-KS6EYCncg4ymWgA7uFNZUA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1_TR-KS6EYCncg4ymWgA7uFNZUA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/1_TR-KS6EYCncg4ymWgA7uFNZUA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1_TR-KS6EYCncg4ymWgA7uFNZUA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/wCcxZ/~4/HNlHs6ieLZw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://koyeung.blogspot.com/feeds/7687629724577025330/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6808700&amp;postID=7687629724577025330" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/7687629724577025330?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/7687629724577025330?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/wCcxZ/~3/HNlHs6ieLZw/know-what-your-apps-are-running-on.html" title="Know what your apps are running on" /><author><name>King-On Yeung</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-JyFUw7BC8Rs/AAAAAAAAAAI/AAAAAAAACZc/J6oKPFCXvwU/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://koyeung.blogspot.com/2011/08/know-what-your-apps-are-running-on.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkIMSHs6fCp7ImA9WhZQEUw.&quot;"><id>tag:blogger.com,1999:blog-6808700.post-836816154519715555</id><published>2011-04-18T15:09:00.000+08:00</published><updated>2011-04-18T15:09:49.514+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-18T15:09:49.514+08:00</app:edited><title>LVM LV striping with different PV sizes</title><content type="html">Background: vdb has 24 PEs, vdc has 37 PEs, vg_test consists of vdb,vdc:
&lt;pre class="brush: bash"&gt;vgcreate vg_test /dev/vdb /dev/vdc&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;Option 1&lt;/b&gt;: do this by anywhere allocation policy:
&lt;pre class="brush: bash"&gt;
lvcreate --alloc anywhere -i2 -L220M -n lv_test vg_test
lvdisplay --map /dev/vg_test/lv_test
…
--- Segments ---
  Logical extent 0 to 47:
    Type  striped
    Stripes  2
    Stripe size  64.00 KiB
    Stripe 0:
      Physical volume /dev/vdc
      Physical extents 0 to 23
    Stripe 1:
      Physical volume /dev/vdb
      Physical extents 0 to 23
   
  Logical extent 48 to 55:
    Type  striped
    Stripes  2
    Stripe size  64.00 KiB
    Stripe 0:
      Physical volume /dev/vdc
      Physical extents 24 to 27
    Stripe 1:
      Physical volume /dev/vdc
      Physical extents 28 to 31
&lt;/pre&gt;
Some Stripings are on the same PV, however.
&lt;br /&gt;
&lt;b&gt;Option 2&lt;/b&gt;: allocate the extra PEs linearly
&lt;pre class="brush: bash"&gt;
# min (PE on PV) = 24; 24 x 2 = 48
lvcreate -i2 -l 48 -n lv_test vg_test
# add remain PE to lv_test; no striping
lvextend -i1 -l +13 /dev/vg_test/lv_test
lvdisplay --map /dev/vg_test/lv_test
…
--- Segments ---
  Logical extent 0 to 47:
    Type  striped
    Stripes  2
    Stripe size  64.00 KiB
    Stripe 0:
      Physical volume /dev/vdb
      Physical extents 0 to 23
    Stripe 1:
      Physical volume /dev/vdc
      Physical extents 0 to 23
   
  Logical extent 48 to 60:
    Type  linear
    Physical volume /dev/vdc
    Physical extents 24 to 36
&lt;/pre&gt;
This may be what you want; stripping if it could; linear allocation otherwise.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6808700-836816154519715555?l=koyeung.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/v9bGCXC68Mf2I5WblsZhFka0l70/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/v9bGCXC68Mf2I5WblsZhFka0l70/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/v9bGCXC68Mf2I5WblsZhFka0l70/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/v9bGCXC68Mf2I5WblsZhFka0l70/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/wCcxZ/~4/pNq1LHsACho" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://koyeung.blogspot.com/feeds/836816154519715555/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6808700&amp;postID=836816154519715555" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/836816154519715555?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/836816154519715555?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/wCcxZ/~3/pNq1LHsACho/lvm-lv-striping-with-different-pv-sizes.html" title="LVM LV striping with different PV sizes" /><author><name>King-On Yeung</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-JyFUw7BC8Rs/AAAAAAAAAAI/AAAAAAAACZc/J6oKPFCXvwU/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://koyeung.blogspot.com/2011/04/lvm-lv-striping-with-different-pv-sizes.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUMQ3o4fyp7ImA9WhZSEEk.&quot;"><id>tag:blogger.com,1999:blog-6808700.post-301919742078063482</id><published>2011-03-25T15:54:00.003+08:00</published><updated>2011-03-25T16:04:42.437+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-25T16:04:42.437+08:00</app:edited><title>Chinese domain names: 數碼21 vs 數碼21</title><content type="html">&lt;p&gt;Both look similar (nearly identical, depends on the fonts). However, the two 數 have different unicode values. Fortunately, both could be represented using same &lt;a href="http://en.wikipedia.org/wiki/Punycode"&gt;Punycode&lt;/a&gt; (&lt;a href="http://demo.icu-project.org/icu-bin/idnbrowser?t=%EF%A5%A9%E7%A2%BC21.%E6%94%BF%E5%BA%9C.%E9%A6%99%E6%B8%AF"&gt;數碼21.政府.香港&lt;/a&gt; vs &lt;a href="http://demo.icu-project.org/icu-bin/idnbrowser?t=%E6%95%B8%E7%A2%BC21.%E6%94%BF%E5%BA%9C.%E9%A6%99%E6%B8%AF"&gt;數碼21.政府.香港&lt;/a&gt;) and produce expected results from browsers:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://數碼21.政府.香港"&gt;http://數碼21.政府.香港&lt;/a&gt;&lt;br/ &gt;
&lt;a href="http://數碼21.政府.香港"&gt;http://數碼21.政府.香港&lt;/a&gt;
&lt;p&gt;
How about this one? &lt;a href="http://demo.icu-project.org/icu-bin/idnbrowser?t=%E5%A9%81%E6%94%B5%E7%A2%BC21.%E6%94%BF%E5%BA%9C.%E9%A6%99%E6%B8%AF"&gt;婁攵碼21.政府.香港&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
We couldn't expect all combinations could be considered. It opens for many possibilities (男女男...嬲), and problems, especially these names of financial institutes.&lt;/p&gt;

reference: &lt;a href="https://www.hkirc.hk/idn_conv.jsp"&gt;Punycode Conversion Tool&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/IDN_homograph_attack"&gt;IDN homograph attack&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6808700-301919742078063482?l=koyeung.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/6OBgP0UJdMw4kp-SYGTk6CsvPXo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6OBgP0UJdMw4kp-SYGTk6CsvPXo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/6OBgP0UJdMw4kp-SYGTk6CsvPXo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6OBgP0UJdMw4kp-SYGTk6CsvPXo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/wCcxZ/~4/nPtZWb2UHug" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://koyeung.blogspot.com/feeds/301919742078063482/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6808700&amp;postID=301919742078063482" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/301919742078063482?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/301919742078063482?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/wCcxZ/~3/nPtZWb2UHug/21-vs-21.html" title="Chinese domain names: 數碼21 vs 數碼21" /><author><name>King-On Yeung</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-JyFUw7BC8Rs/AAAAAAAAAAI/AAAAAAAACZc/J6oKPFCXvwU/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://koyeung.blogspot.com/2011/03/21-vs-21.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEEFQH4_eCp7ImA9Wx9aF08.&quot;"><id>tag:blogger.com,1999:blog-6808700.post-6540360261617137124</id><published>2011-03-10T10:03:00.000+08:00</published><updated>2011-03-10T10:03:31.040+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-10T10:03:31.040+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="macosx" /><title>c++ lamdba functions alternative on XCode4?</title><content type="html">Bundled &lt;a href="http://gcc.gnu.org/projects/cxx0x.html"&gt;g++&lt;/a&gt; and &lt;a href="http://clang.llvm.org/cxx_status.html"&gt;clang++&lt;/a&gt; has not yet supported lambda yet. However, block programming could be a good alternative.&lt;br /&gt;
&lt;br /&gt;
The following are examples (reference:&lt;a href="http://en.wikipedia.org/wiki/C%2B%2B0x"&gt; C++0x&lt;/a&gt;):&lt;br /&gt;
&lt;pre class='brush: cpp'&gt;
vector&lt; int&gt; some_list;
__block int total = 0;
for_each(some_list.begin(), some_list.end(), ^(int x){
    total += x;
});
&lt;/pre&gt;

&lt;pre class='brush: cpp'&gt;
vector&lt; int&gt; some_list(numbers,numbers+4);
__block int total = 0;
int value = 5;
for_each(some_list.begin(), some_list.end(), ^(int x){
    total += x * value * this-&amp;gt;some_func();
});
&lt;/pre&gt;

Clang++ has better block support currently. You know the difference if you (try to) run the following code:
&lt;pre class='brush: cpp'&gt;
using namespace std;

class A {
public:
  A(const string&amp; aName): name(aName){}
  int value() const { return 10; }
private:
  string name;
};

int main(){
  __block A a("hi");

  int (^f)() = ^{
    return a.value(); 
  };

}
&lt;/pre&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6808700-6540360261617137124?l=koyeung.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/oiYs1EPKNEqSRyVRLMIH0bHbhug/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oiYs1EPKNEqSRyVRLMIH0bHbhug/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/oiYs1EPKNEqSRyVRLMIH0bHbhug/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oiYs1EPKNEqSRyVRLMIH0bHbhug/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/wCcxZ/~4/vUIRucSxyZM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://koyeung.blogspot.com/feeds/6540360261617137124/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6808700&amp;postID=6540360261617137124" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/6540360261617137124?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/6540360261617137124?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/wCcxZ/~3/vUIRucSxyZM/c-lamdba-functions-alternative-on.html" title="c++ lamdba functions alternative on XCode4?" /><author><name>King-On Yeung</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-JyFUw7BC8Rs/AAAAAAAAAAI/AAAAAAAACZc/J6oKPFCXvwU/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://koyeung.blogspot.com/2011/03/c-lamdba-functions-alternative-on.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUIARXg-eCp7ImA9WhdTFEo.&quot;"><id>tag:blogger.com,1999:blog-6808700.post-6489247868745534245</id><published>2011-02-14T11:36:00.001+08:00</published><updated>2011-07-12T21:32:24.650+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-12T21:32:24.650+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="safari" /><category scheme="http://www.blogger.com/atom/ns#" term="macosx" /><title>Reset Top Sites</title><content type="html">Safari users may find that it is easy to delete item from Top Sites. It is not trivial to undo the delete.&lt;br /&gt;
In order to undo that, you have to "Reset Top Sites". The option is listed in "Reset Safari ..." (the item that you may consider):&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-O4v95oRfWrA/TVii4zhIrUI/AAAAAAAACO0/RCNwZunv_hQ/s1600/Screen+shot+2011-02-14+at+11.30.38+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://1.bp.blogspot.com/-O4v95oRfWrA/TVii4zhIrUI/AAAAAAAACO0/RCNwZunv_hQ/s320/Screen+shot+2011-02-14+at+11.30.38+AM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
You should know the consequence if you pick the wrong options :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6808700-6489247868745534245?l=koyeung.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/uZch0WF-zyPsOU9Nj0unAyd_1gU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/uZch0WF-zyPsOU9Nj0unAyd_1gU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/uZch0WF-zyPsOU9Nj0unAyd_1gU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/uZch0WF-zyPsOU9Nj0unAyd_1gU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/wCcxZ/~4/16LRlCvaAM8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://koyeung.blogspot.com/feeds/6489247868745534245/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6808700&amp;postID=6489247868745534245" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/6489247868745534245?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/6489247868745534245?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/wCcxZ/~3/16LRlCvaAM8/reset-top-sites.html" title="Reset Top Sites" /><author><name>King-On Yeung</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-JyFUw7BC8Rs/AAAAAAAAAAI/AAAAAAAACZc/J6oKPFCXvwU/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-O4v95oRfWrA/TVii4zhIrUI/AAAAAAAACO0/RCNwZunv_hQ/s72-c/Screen+shot+2011-02-14+at+11.30.38+AM.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://koyeung.blogspot.com/2011/02/reset-top-sites.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkEBRXo7eCp7ImA9Wx9WFE4.&quot;"><id>tag:blogger.com,1999:blog-6808700.post-1259243477098052030</id><published>2011-01-19T20:03:00.000+08:00</published><updated>2011-01-19T20:04:14.400+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-19T20:04:14.400+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="*nix" /><category scheme="http://www.blogger.com/atom/ns#" term="macosx" /><title>Generate random numbers for bash shell script</title><content type="html">No &lt;a href="http://linux.die.net/man/1/shuf"&gt;shuf(1)&lt;/a&gt; in OSX. However, Bash has already provided the facility through $RANDOM. The following is useful to generate random permutations bounded by N.&lt;br /&gt;
&lt;pre class="brush: bash"&gt;#!/bin/bash

# to generate 6 random numbers from 0 to 49:
# myshuf 50 6
function myshuf {
    local a=( )
    local b=( )
    local N=$1
    shift
    local n=$1
    local i=0
    while [ ${#a[@]} -lt $n ]; do
        x=$RANDOM
        let x%=$N
        if [ ! ${a[$x]} ]; then
            a[$x]=$x
            b[$i]=$x
            let i++
        fi
    done

    echo ${b[@]}

    # if sorted list is wanted:
    # echo ${a[@]}
}
&lt;/pre&gt;
To generate lottery numbers:
&lt;br /&gt;
&lt;pre class="brush: bash"&gt;a=( )
for i in `myshuf 50 6`; do
    let i++
    a=( ${a[@]-} $i )
done

echo ${a[@]}
&lt;/pre&gt;
It should be more efficient than calling one-liner Perl/Python/Ruby script.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6808700-1259243477098052030?l=koyeung.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/AIwb5Y1o3e850Up0s2ib476ctek/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AIwb5Y1o3e850Up0s2ib476ctek/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/AIwb5Y1o3e850Up0s2ib476ctek/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AIwb5Y1o3e850Up0s2ib476ctek/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/wCcxZ/~4/MRHdhiGTN-M" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://koyeung.blogspot.com/feeds/1259243477098052030/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6808700&amp;postID=1259243477098052030" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/1259243477098052030?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/1259243477098052030?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/wCcxZ/~3/MRHdhiGTN-M/generate-random-numbers-for-bash-shell.html" title="Generate random numbers for bash shell script" /><author><name>King-On Yeung</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-JyFUw7BC8Rs/AAAAAAAAAAI/AAAAAAAACZc/J6oKPFCXvwU/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://koyeung.blogspot.com/2011/01/generate-random-numbers-for-bash-shell.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUcCRnk-cCp7ImA9Wx9QFk8.&quot;"><id>tag:blogger.com,1999:blog-6808700.post-7316675686128815934</id><published>2010-12-28T15:39:00.002+08:00</published><updated>2010-12-29T20:51:07.758+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-29T20:51:07.758+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="*nix" /><category scheme="http://www.blogger.com/atom/ns#" term="macosx" /><title>Bonjour Screen Sharing from Ubuntu to OSX</title><content type="html">It is common to install few Desktop Linux KVM guests on networked server. Occasionally, it may need to access X-window console of the guests. Remote display of virt-manager from Host OS may have key problem ("control-alt" doesn't work properly).&lt;br /&gt;
One solution to run VNC from the guest OS and preferably to have gnome-session available.&lt;br /&gt;
On Ubuntu 10.10, you could first install x11vnc and, from a admin user account, store a VNC password:&lt;br /&gt;
&lt;pre&gt;x11vnc -storepasswd&lt;/pre&gt;
&lt;br /&gt;
To launch one-shot VNC session:&lt;br /&gt;
&lt;pre&gt;sudo x11vnc -env FD_XDM=1 -auth guess -avahi -usepw -forever -reopen&lt;/pre&gt;
&lt;br /&gt;
Now, you should be able to pick the Linux guest from Finder (just like other Mac OSX on the network).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6808700-7316675686128815934?l=koyeung.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/d03_LeAxp_1RxXR2oNGrVGviOpw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/d03_LeAxp_1RxXR2oNGrVGviOpw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/d03_LeAxp_1RxXR2oNGrVGviOpw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/d03_LeAxp_1RxXR2oNGrVGviOpw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/wCcxZ/~4/VmkKQt8jcpE" height="1" width="1"/&gt;</content><link rel="related" href="http://www.karlrunge.com/x11vnc" title="Bonjour Screen Sharing from Ubuntu to OSX" /><link rel="replies" type="application/atom+xml" href="http://koyeung.blogspot.com/feeds/7316675686128815934/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6808700&amp;postID=7316675686128815934" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/7316675686128815934?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/7316675686128815934?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/wCcxZ/~3/VmkKQt8jcpE/screen-sharing-from-ubuntu-to-osx.html" title="Bonjour Screen Sharing from Ubuntu to OSX" /><author><name>King-On Yeung</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-JyFUw7BC8Rs/AAAAAAAAAAI/AAAAAAAACZc/J6oKPFCXvwU/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://koyeung.blogspot.com/2010/12/screen-sharing-from-ubuntu-to-osx.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEMDRX88cCp7ImA9Wx9QEUo.&quot;"><id>tag:blogger.com,1999:blog-6808700.post-7321207088518292958</id><published>2010-12-24T15:40:00.000+08:00</published><updated>2010-12-24T15:41:14.178+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-24T15:41:14.178+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="*nix" /><title>free on Linux</title><content type="html">Common system administrate task is to determine whether there is enough system memory.
&lt;br /&gt;
&lt;pre&gt;$ free 
             total       used       free     shared    buffers     cached
Mem:        762964     467200     295764          0     101508     130224
&lt;b&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;-&lt;/span&gt;&lt;/b&gt;/&lt;b&gt;&lt;span class="Apple-style-span" style="color: #6aa84f;"&gt;+&lt;/span&gt;&lt;/b&gt; buffers/cache:     &lt;span class="Apple-style-span" style="color: red;"&gt;&lt;b&gt;235468&lt;/b&gt;&lt;/span&gt;     &lt;b&gt;&lt;span class="Apple-style-span" style="color: #6aa84f;"&gt;527496&lt;/span&gt;&lt;/b&gt;
Swap:      1340412          0    1340412
&lt;/pre&gt;
&lt;br /&gt;
The first row is not difficult to understand. The second row is confusing at first glance. The 2nd row number under "used" should be read as "Mem used - buffers/cache"; "free" should be read as "Mem free + buffers/cache". Here,
&lt;br /&gt;
&lt;pre&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;235468&lt;/span&gt;&lt;/b&gt; = 467200 - (101508 + 130224)
&lt;b&gt;&lt;span class="Apple-style-span" style="color: #6aa84f;"&gt;527496&lt;/span&gt;&lt;/b&gt; = 295764 + (101508 + 130224)
&lt;/pre&gt;
&lt;br /&gt;
You may sacrifice performance by reducing memory for buffers and caches. However, there should be at least enough for applications processes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6808700-7321207088518292958?l=koyeung.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/deExVYX7jjbq9BRaiB3UyM9clGI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/deExVYX7jjbq9BRaiB3UyM9clGI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/deExVYX7jjbq9BRaiB3UyM9clGI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/deExVYX7jjbq9BRaiB3UyM9clGI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/wCcxZ/~4/AM96OYWWCnk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://koyeung.blogspot.com/feeds/7321207088518292958/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6808700&amp;postID=7321207088518292958" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/7321207088518292958?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/7321207088518292958?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/wCcxZ/~3/AM96OYWWCnk/free-on-linux.html" title="free on Linux" /><author><name>King-On Yeung</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-JyFUw7BC8Rs/AAAAAAAAAAI/AAAAAAAACZc/J6oKPFCXvwU/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://koyeung.blogspot.com/2010/12/free-on-linux.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YMRHk4eCp7ImA9Wx9RE0o.&quot;"><id>tag:blogger.com,1999:blog-6808700.post-7409217206240075377</id><published>2010-12-15T10:13:00.000+08:00</published><updated>2010-12-15T10:13:05.730+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-15T10:13:05.730+08:00</app:edited><title>Test installed Flash Players</title><content type="html">There may be different version available for browsers and platforms. Check them from the official site and make sure latest ones are installed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6808700-7409217206240075377?l=koyeung.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qtCy8EnqgvIGU11bVosL2_Zq1Fw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qtCy8EnqgvIGU11bVosL2_Zq1Fw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/qtCy8EnqgvIGU11bVosL2_Zq1Fw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qtCy8EnqgvIGU11bVosL2_Zq1Fw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/wCcxZ/~4/DVlwJE-JzKg" height="1" width="1"/&gt;</content><link rel="related" href="http://www.adobe.com/software/flash/about/" title="Test installed Flash Players" /><link rel="replies" type="application/atom+xml" href="http://koyeung.blogspot.com/feeds/7409217206240075377/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6808700&amp;postID=7409217206240075377" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/7409217206240075377?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/7409217206240075377?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/wCcxZ/~3/DVlwJE-JzKg/test-installed-flash-players.html" title="Test installed Flash Players" /><author><name>King-On Yeung</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-JyFUw7BC8Rs/AAAAAAAAAAI/AAAAAAAACZc/J6oKPFCXvwU/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://koyeung.blogspot.com/2010/12/test-installed-flash-players.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8AQHk9fCp7ImA9Wx9QEUo.&quot;"><id>tag:blogger.com,1999:blog-6808700.post-7722404529314322031</id><published>2010-11-25T16:01:00.003+08:00</published><updated>2010-12-24T15:14:01.764+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-24T15:14:01.764+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="iOS" /><title>iOS Background VoIP may drain your battery in unexpected way</title><content type="html">Background VoIP App on iOS devices:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;a handler could be called periodically (to allow the app maintain its service connection)&lt;/li&gt;
&lt;li&gt;Relaunch if it is quit with nonzero code, e.g. terminated by system due to memory constraints.&lt;/li&gt;
&lt;li&gt;Relaunch after system boot&lt;/li&gt;
&lt;/ul&gt;
The side effect is the implementation has choice to keep your Wifi active (if it is available) and drain the battery. Since it would be launched automatically, normal users may not be able to isolate and identify the apps causing the problem &lt;i&gt;easily&lt;/i&gt;.&lt;br /&gt;
Some VoIP apps make use of Push Notification too. However, it doesn't imply it doesn't maintain network connection while running in background and the iOS device is in lock screen mode.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6808700-7722404529314322031?l=koyeung.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/YjR_IQtfaVqN85_AqeHkqyY8niI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YjR_IQtfaVqN85_AqeHkqyY8niI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/YjR_IQtfaVqN85_AqeHkqyY8niI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YjR_IQtfaVqN85_AqeHkqyY8niI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/wCcxZ/~4/Zke_WtDAloU" height="1" width="1"/&gt;</content><link rel="related" href="http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/BackgroundExecution/BackgroundExecution.html" title="iOS Background VoIP may drain your battery in unexpected way" /><link rel="replies" type="application/atom+xml" href="http://koyeung.blogspot.com/feeds/7722404529314322031/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6808700&amp;postID=7722404529314322031" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/7722404529314322031?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/7722404529314322031?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/wCcxZ/~3/Zke_WtDAloU/background-voip-may-drain-your-battery.html" title="iOS Background VoIP may drain your battery in unexpected way" /><author><name>King-On Yeung</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-JyFUw7BC8Rs/AAAAAAAAAAI/AAAAAAAACZc/J6oKPFCXvwU/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://koyeung.blogspot.com/2010/11/background-voip-may-drain-your-battery.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYERXg5eSp7ImA9Wx9QF0o.&quot;"><id>tag:blogger.com,1999:blog-6808700.post-5740189173235646342</id><published>2010-10-14T10:03:00.006+08:00</published><updated>2010-12-31T13:08:24.621+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-31T13:08:24.621+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="iOS" /><title>Skype + iOS4 + iPhone4 or 3GS = ...</title><content type="html">Battery Drain. If you don't accept that, don't install and run Skype on your multitasking enabled iPhone.&lt;br /&gt;
&lt;br /&gt;
Update: To test whether an app keeps network connect while iOS device is sleeping, simply launch it, lock the screen and check the wifi connection from AirPort Utility. You may find why battery drains then.&lt;br /&gt;
&lt;br /&gt;
Update: you should check &lt;s&gt;IM and VoIP&lt;/s&gt;those Background VoIP apps&lt;s&gt; first&lt;/s&gt;.&lt;br /&gt;
&lt;br /&gt;
Update: Skype on iOS has "Go Offline" settings now. Good.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6808700-5740189173235646342?l=koyeung.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/p-3il3a_78e6YOwEKMZrIbwFywQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/p-3il3a_78e6YOwEKMZrIbwFywQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/p-3il3a_78e6YOwEKMZrIbwFywQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/p-3il3a_78e6YOwEKMZrIbwFywQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/wCcxZ/~4/jzpQJyUsR_k" height="1" width="1"/&gt;</content><link rel="related" href="http://www.google.com/search?client=safari&amp;rls=en&amp;q=skype+iphone+battery&amp;ie=UTF-8&amp;oe=UTF-8#sclient=psy&amp;hl=en&amp;client=safari&amp;rls=en&amp;source=hp&amp;q=skype+iphone+battery+drain&amp;aq=f&amp;aqi=g1&amp;aql=&amp;oq=&amp;gs_rfai=&amp;pbx=1&amp;fp=6a722152c53a0829" title="Skype + iOS4 + iPhone4 or 3GS = ..." /><link rel="replies" type="application/atom+xml" href="http://koyeung.blogspot.com/feeds/5740189173235646342/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6808700&amp;postID=5740189173235646342" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/5740189173235646342?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/5740189173235646342?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/wCcxZ/~3/jzpQJyUsR_k/skype-ios4-iphone4-or-3gs.html" title="Skype + iOS4 + iPhone4 or 3GS = ..." /><author><name>King-On Yeung</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-JyFUw7BC8Rs/AAAAAAAAAAI/AAAAAAAACZc/J6oKPFCXvwU/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://koyeung.blogspot.com/2010/10/skype-ios4-iphone4-or-3gs.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8BRXg_eip7ImA9Wx9QEUo.&quot;"><id>tag:blogger.com,1999:blog-6808700.post-2511182651073022469</id><published>2010-08-30T14:31:00.000+08:00</published><updated>2010-12-24T15:14:14.642+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-24T15:14:14.642+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="iOS" /><title>iPhone 4 vs iPhone 3GS screen</title><content type="html">Non-scientific comparison of the screens using water drop magnifier:&lt;br /&gt;
&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_Uzf_LRbb4UQ/THtMuTK-d8I/AAAAAAAACLI/AlMx-7VdX28/s1600/iPhone3GS.JPG" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="150" src="http://4.bp.blogspot.com/_Uzf_LRbb4UQ/THtMuTK-d8I/AAAAAAAACLI/AlMx-7VdX28/s200/iPhone3GS.JPG" width="200" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;iPhone 3GS&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_Uzf_LRbb4UQ/THtM9aY1NhI/AAAAAAAACLM/rjqnOmqq8-M/s1600/iPhone4.JPG" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="150" src="http://2.bp.blogspot.com/_Uzf_LRbb4UQ/THtM9aY1NhI/AAAAAAAACLM/rjqnOmqq8-M/s200/iPhone4.JPG" width="200" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;iPhone 4&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
Notice that the water drops sizes are closed but not identical in size.&lt;br /&gt;
&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_Uzf_LRbb4UQ/THtO7AOA8oI/AAAAAAAACLU/zrTvWMSAI7c/s1600/iPhone4_magnified.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="186" src="http://4.bp.blogspot.com/_Uzf_LRbb4UQ/THtO7AOA8oI/AAAAAAAACLU/zrTvWMSAI7c/s200/iPhone4_magnified.png" width="200" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;iPhone 4&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_Uzf_LRbb4UQ/THtOz1VVo9I/AAAAAAAACLQ/6gessSZSHAU/s1600/iPhone3GS_magnified.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="192" src="http://2.bp.blogspot.com/_Uzf_LRbb4UQ/THtOz1VVo9I/AAAAAAAACLQ/6gessSZSHAU/s200/iPhone3GS_magnified.png" width="200" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;iPhone 3GS&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
If we zoom in the picture, you would see the pixels difference. Do the same trick on Nexus One you could get interesting pattern on AMOLED screen.
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6808700-2511182651073022469?l=koyeung.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/b1J2JEslHuSlLQAqfblud8LW1Hk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/b1J2JEslHuSlLQAqfblud8LW1Hk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/b1J2JEslHuSlLQAqfblud8LW1Hk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/b1J2JEslHuSlLQAqfblud8LW1Hk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/wCcxZ/~4/ZUskiSArXRc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://koyeung.blogspot.com/feeds/2511182651073022469/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6808700&amp;postID=2511182651073022469" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/2511182651073022469?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/2511182651073022469?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/wCcxZ/~3/ZUskiSArXRc/iphone-4-vs-iphone-3gs-screen.html" title="iPhone 4 vs iPhone 3GS screen" /><author><name>King-On Yeung</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-JyFUw7BC8Rs/AAAAAAAAAAI/AAAAAAAACZc/J6oKPFCXvwU/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_Uzf_LRbb4UQ/THtMuTK-d8I/AAAAAAAACLI/AlMx-7VdX28/s72-c/iPhone3GS.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://koyeung.blogspot.com/2010/08/iphone-4-vs-iphone-3gs-screen.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMFSXg8fip7ImA9Wx5RFkw.&quot;"><id>tag:blogger.com,1999:blog-6808700.post-7584669872606069287</id><published>2010-08-16T13:52:00.004+08:00</published><updated>2010-08-24T09:46:58.676+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-24T09:46:58.676+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="iOS" /><title>iPhone 4 events in Hong Kong</title><content type="html">&lt;br /&gt;
&lt;br /&gt;
30 July 2010 accept ordering from 3HK, Smartone and one2free;&lt;br /&gt;
30 July 2010&amp;nbsp;&lt;a href="http://unwire.hk/2010/07/30/iphone-4-hong-kong-apple-online-store-start-selling/"&gt;iPhone 4 香港 Apple Online Store 正式開賣！&lt;/a&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://unwire.hk/2010/08/11/ip4-hk-delay/"&gt;iPhone4 訂家苦叫:「遲來先上岸」&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://unwire.hk/2010/08/12/delay-no-more/"&gt;送貨延遲! iPhone4/iPad 買家炮轟速遞公司&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.google.com/search?q=%E8%98%8B%E6%9E%9C%E9%80%81%E8%B2%A8%E6%85%A2+%E8%A9%A6%E9%83%B5%E7%BD%B2%E4%BB%A3%E6%B4%BE&amp;amp;ie=UTF-8&amp;amp;oe=UTF-8"&gt;蘋果送貨慢 試郵署代派&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://hk.news.yahoo.com/article/100816/4/jq5t.html"&gt;iPhone 4送貨大亂 買家向喬布斯投訴&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.google.com/search?hl=en&amp;amp;q=iPhone4+TNT+%E8%A7%80%E5%A1%98+%E5%8F%96%E4%BB%B6%E4%B8%AD%E5%BF%83&amp;amp;aq=f&amp;amp;aqi=&amp;amp;aql=&amp;amp;oq=&amp;amp;gs_rfai="&gt;TNT 取件中心&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://mygag.hk/?p=260"&gt;Apple 確定用DHL送貨&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
14 August 2010 豐澤/百老匯電器 淨機開售 (limited quantities and required to purchase additional products)&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://unwire.hk/2010/08/15/ip4-2k-rubbish-package/"&gt;百記買 iPhone4 逼買 $2,000 垃圾套裝&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://unwire.hk/2010/08/14/overnight-buy-nothing/"&gt;讀者報料 : 豐澤 10 部機百人排! 有顧客不滿報警&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6808700-7584669872606069287?l=koyeung.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/0uYa63ZzgBMTdEQegMkDr4xZit8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0uYa63ZzgBMTdEQegMkDr4xZit8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/0uYa63ZzgBMTdEQegMkDr4xZit8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0uYa63ZzgBMTdEQegMkDr4xZit8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/wCcxZ/~4/T5xXFCfvGPM" height="1" width="1"/&gt;</content><link rel="related" href="http://www.google.com/search?q=iphone+4+%E9%A6%99%E6%B8%AF" title="iPhone 4 events in Hong Kong" /><link rel="replies" type="application/atom+xml" href="http://koyeung.blogspot.com/feeds/7584669872606069287/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6808700&amp;postID=7584669872606069287" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/7584669872606069287?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/7584669872606069287?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/wCcxZ/~3/T5xXFCfvGPM/iphone-4-events-in-hong-kong.html" title="iPhone 4 events in Hong Kong" /><author><name>King-On Yeung</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-JyFUw7BC8Rs/AAAAAAAAAAI/AAAAAAAACZc/J6oKPFCXvwU/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://koyeung.blogspot.com/2010/08/iphone-4-events-in-hong-kong.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8MRns8eyp7ImA9WxFVEkw.&quot;"><id>tag:blogger.com,1999:blog-6808700.post-2771129776117842506</id><published>2010-06-06T14:45:00.004+08:00</published><updated>2010-06-11T08:41:27.573+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-11T08:41:27.573+08:00</app:edited><title>Zero-day exploit for Flash/Adobe Reader...no fix yet</title><content type="html">&lt;p&gt;Don't think that the suggestion to install RC version is a proper mitigation. There should be a way to disable it before solution is found.&lt;/p&gt;
&lt;p&gt;To temporary disable flash (rather than using uninstaller from the same company), you could:&lt;/p&gt;
&lt;pre class="brush: bash"&gt;
cd /Library/Internet\ Plug-Ins
sudo mv flashplayer.xpt Disabled\ Plug-Ins/
sudo mv Flash\ Player.plugin Disabled\ Plug-Ins/
&lt;/pre&gt;
&lt;p&gt;
(reference: &lt;code&gt;/Library/Receipts/Adobe Flash Player.pkg/Contents/Archive.bom&lt;/code&gt;). It is simple to undo the change. If you really have to use flash, run Chrome, which has Flash 10.1 bundled. (hope that is not vulnerable to other holes...)&lt;/p&gt;
&lt;p&gt;On Mac OSX, you could read most (if not all) PDF without Preview. Now, one more reason to not install other PDF reader with proprietary extension.&lt;/p&gt;
&lt;p&gt;Update: &lt;a href="http://www.adobe.com/go/getflashplayer"&gt;Flash 10.1&lt;/a&gt; has been released; you could undo the change before the installation&lt;/p&gt;
&lt;p&gt;Update 2: It could be uninstall easily by &lt;code&gt;/Applications/Utilities/Adobe Flash Player Install Manager&lt;/code&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6808700-2771129776117842506?l=koyeung.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/FJ9gQQE19avlRZSKT9b-ciJMhwM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FJ9gQQE19avlRZSKT9b-ciJMhwM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/FJ9gQQE19avlRZSKT9b-ciJMhwM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FJ9gQQE19avlRZSKT9b-ciJMhwM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/wCcxZ/~4/QZ3ohzxZnsM" height="1" width="1"/&gt;</content><link rel="related" href="http://www.adobe.com/support/security/advisories/apsa10-01.html" title="Zero-day exploit for Flash/Adobe Reader...no fix yet" /><link rel="replies" type="application/atom+xml" href="http://koyeung.blogspot.com/feeds/2771129776117842506/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6808700&amp;postID=2771129776117842506" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/2771129776117842506?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/2771129776117842506?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/wCcxZ/~3/QZ3ohzxZnsM/disable-flash-on-mac-osx.html" title="Zero-day exploit for Flash/Adobe Reader...no fix yet" /><author><name>King-On Yeung</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-JyFUw7BC8Rs/AAAAAAAAAAI/AAAAAAAACZc/J6oKPFCXvwU/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://koyeung.blogspot.com/2010/06/disable-flash-on-mac-osx.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEcMQ3g6fSp7ImA9WhRUEUQ.&quot;"><id>tag:blogger.com,1999:blog-6808700.post-8579358669775999204</id><published>2009-12-22T18:24:00.002+08:00</published><updated>2012-01-22T08:28:02.615+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-22T08:28:02.615+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="macosx" /><title>Check what is included in each Time Machine backup</title><content type="html">If you find that the time machine backup bundle grow in unexpected way, it would be helpful to examine what the 'delta' is for each backup.&lt;br /&gt;
Firstly, mount the backup sparsebundle from Time Capsule. Then call the tmcheck.sh script with reference dated backup folder and target dated folder as arguments and show the newer files under target folder: (you could drag the folder to Terminal.app instead of typing the long path names)&lt;br /&gt;
&lt;pre class="brush: bash"&gt;#!/bin/bash
# tmcheck.sh ref_folder_path target_folder_path

LASTTM=$1
THISTM=$2

echo "reference: ${LASTTM}"
echo "target: ${THISTM}"

cd "${THISTM}"
find . -d -newerBB "${LASTTM}" -ls
&lt;/pre&gt;
For example,&lt;br /&gt;
&lt;pre class="brush: plain"&gt;$ ./tmcheck.sh /Volumes/Backup\ of\ iMac/Backups.backupdb/iMac/2009-12-22-111624 /Volumes/Backup\ of\ iMac/Backups.backupdb/iMac/2009-12-22-170534/Macintosh\ HD/Users/koyeung 
reference: /Volumes/Backup of iMac/Backups.backupdb/iMac/2009-12-22-111624
target: /Volumes/Backup of iMac/Backups.backupdb/iMac/2009-12-22-170534/Macintosh HD/Users/koyeung
11808563       32 -rw-------    2 koyeung  staff       13800 Dec 22 15:33 ./.viminfo
11812636        0 -rw-r--r--    1 koyeung  staff           0 Dec 22 17:04 ./Library/Google/GoogleSoftwareUpdate/Actives/com.google.Chrome
11811489        8 -rw-------    1 koyeung  staff         181 Dec 22 16:56 ./Library/Google/GoogleSoftwareUpdate/Stats/Keystone.stats
11809346      784 -rwxrwxrwx    1 koyeung  staff      397904 Dec 22 15:11 ./Library/Keychains/login.keychain
&lt;/pre&gt;
It would help you to customize the exclusion list and bypass irrelevant items from each backup.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Update&lt;/b&gt;: on Lion, you may use &lt;br /&gt;
&lt;pre class="brush: bash"&gt;tmutil compare path1 path2&lt;/pre&gt;
to get relevant information. &lt;code&gt;calculateddrift&lt;/code&gt; and &lt;code&gt;uniquesize&lt;/code&gt; would be very helpful to locate where the space are spent.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6808700-8579358669775999204?l=koyeung.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/wJVHlE7bfUm2J9pl7i_me5iJcSA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wJVHlE7bfUm2J9pl7i_me5iJcSA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/wJVHlE7bfUm2J9pl7i_me5iJcSA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wJVHlE7bfUm2J9pl7i_me5iJcSA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/wCcxZ/~4/4dFb2OMMUfs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://koyeung.blogspot.com/feeds/8579358669775999204/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6808700&amp;postID=8579358669775999204" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/8579358669775999204?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/8579358669775999204?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/wCcxZ/~3/4dFb2OMMUfs/check-what-is-included-in-each-time.html" title="Check what is included in each Time Machine backup" /><author><name>King-On Yeung</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-JyFUw7BC8Rs/AAAAAAAAAAI/AAAAAAAACZc/J6oKPFCXvwU/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://koyeung.blogspot.com/2009/12/check-what-is-included-in-each-time.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUcBRXk_fSp7ImA9WxBTGUk.&quot;"><id>tag:blogger.com,1999:blog-6808700.post-6144945638724450654</id><published>2009-12-08T11:40:00.006+08:00</published><updated>2009-12-16T15:04:14.745+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-16T15:04:14.745+08:00</app:edited><title>another DNS benchmarking</title><content type="html">&lt;p&gt;Different results (vs &lt;a href="http://bramp.net/blog/google-dns-benchmarked"&gt;bramp.net&lt;/a&gt;) are obtained. Which DNS server work best to you would highly depend on where you are (and how likely your query results are cached).&lt;p /&gt;
&lt;p&gt;
Test script (run.sh):
&lt;pre class="brush: bash"&gt;
#!/bin/bash

doCheckDefaultServer(){
    echo -n query using /etc/resolv.conf for ${1} "-&gt; "
    time dig ${1} +short
}

doCheckServers(){
    local SERVER=${1}
    shift
    echo -n query DNS server ${SERVER}\(`dig -x ${SERVER} +short`\) for ${1} "-&gt; "
    time dig @${SERVER} ${1} +short
    ping -c 5 -q ${SERVER}
}

doTest(){
    local TESTNAME=${1}
    shift

    doCheckDefaultServer $TESTNAME
    for S; do
        echo "--"
        doCheckServers ${S} $TESTNAME
    done
}

doTest ${1} 8.8.8.8 8.8.4.4 208.67.222.222 208.67.220.220 218.102.23.228 203.198.7.66
&lt;/pre&gt;
&lt;/p&gt;
&lt;p&gt;
Result: (one attempt...non-scientific)
&lt;pre class="brush: plain"&gt;
$ ./run.sh www.yahoo.com
query using /etc/resolv.conf for www.yahoo.com -&gt; www.wa1.b.yahoo.com.
www-real.wa1.b.yahoo.com.
209.131.36.158

real 0m0.222s
user 0m0.001s
sys 0m0.024s
--
query DNS server 8.8.8.8(google-public-dns-a.google.com.) for www.yahoo.com -&gt; www.wa1.b.yahoo.com.
www-real.wa1.b.yahoo.com.
209.131.36.158

real 0m0.041s
user 0m0.001s
sys 0m0.002s
PING 8.8.8.8 (8.8.8.8): 56 data bytes

--- 8.8.8.8 ping statistics ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 36.045/37.265/38.157/0.700 ms
--
query DNS server 8.8.4.4(google-public-dns-b.google.com.) for www.yahoo.com -&gt; www.wa1.b.yahoo.com.
www-real.wa1.b.yahoo.com.
209.131.36.158

real 0m0.041s
user 0m0.001s
sys 0m0.002s
PING 8.8.4.4 (8.8.4.4): 56 data bytes

--- 8.8.4.4 ping statistics ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 33.932/35.473/37.859/1.610 ms
--
query DNS server 208.67.222.222(resolver1.opendns.com.) for www.yahoo.com -&gt; www.wa1.b.yahoo.com.
www-real.wa1.b.yahoo.com.
209.131.36.158

real 0m0.166s
user 0m0.001s
sys 0m0.003s
PING 208.67.222.222 (208.67.222.222): 56 data bytes

--- 208.67.222.222 ping statistics ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 161.417/161.936/162.406/0.394 ms
--
query DNS server 208.67.220.220(resolver2.opendns.com.) for www.yahoo.com -&gt; www.wa1.b.yahoo.com.
www-real.wa1.b.yahoo.com.
209.131.36.158

real 0m0.170s
user 0m0.001s
sys 0m0.002s
PING 208.67.220.220 (208.67.220.220): 56 data bytes

--- 208.67.220.220 ping statistics ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 165.769/166.503/167.414/0.567 ms
--
query DNS server 218.102.23.228(ns3.netvigator.com.) for www.yahoo.com -&gt; www.wa1.b.yahoo.com.
www-real.wa1.b.yahoo.com.
209.131.36.158

real 0m0.020s
user 0m0.001s
sys 0m0.002s
PING 218.102.23.228 (218.102.23.228): 56 data bytes

--- 218.102.23.228 ping statistics ---
5 packets transmitted, 0 packets received, 100.0% packet loss
--
query DNS server 203.198.7.66(ns4.netvigator.com.) for www.yahoo.com -&gt; www.wa1.b.yahoo.com.
www-real.wa1.b.yahoo.com.
209.131.36.158

real 0m0.029s
user 0m0.001s
sys 0m0.002s
PING 203.198.7.66 (203.198.7.66): 56 data bytes

--- 203.198.7.66 ping statistics ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 22.716/24.312/26.457/1.400 ms
&lt;/pre&gt;
&lt;/p&gt;
&lt;p&gt;
My default dns server (as specified in /etc/resolv.conf) is on my time-capsule, which is configured with Google public DNS. From my place, difference of using Google and OpenDNS are significant. While using ISP's servers, results are mixed.
&lt;p /&gt;
&lt;p&gt;
update: &lt;a href="http://code.google.com/p/namebench/"&gt;namebench&lt;/a&gt; does a better job of benchmarking from your location. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6808700-6144945638724450654?l=koyeung.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Y_1IsgG8FgW3XY3tmwAKovXKqrA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Y_1IsgG8FgW3XY3tmwAKovXKqrA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Y_1IsgG8FgW3XY3tmwAKovXKqrA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Y_1IsgG8FgW3XY3tmwAKovXKqrA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/wCcxZ/~4/hzEEHZzWeOI" height="1" width="1"/&gt;</content><link rel="related" href="http://bramp.net/blog/google-dns-benchmarked" title="another DNS benchmarking" /><link rel="replies" type="application/atom+xml" href="http://koyeung.blogspot.com/feeds/6144945638724450654/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6808700&amp;postID=6144945638724450654" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/6144945638724450654?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/6144945638724450654?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/wCcxZ/~3/hzEEHZzWeOI/another-dns-benchmarked.html" title="another DNS benchmarking" /><author><name>King-On Yeung</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-JyFUw7BC8Rs/AAAAAAAAAAI/AAAAAAAACZc/J6oKPFCXvwU/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://koyeung.blogspot.com/2009/12/another-dns-benchmarked.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MFQHkyeyp7ImA9WxNaFk4.&quot;"><id>tag:blogger.com,1999:blog-6808700.post-3998378527352187184</id><published>2009-11-30T15:44:00.010+08:00</published><updated>2009-12-01T10:43:31.793+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-01T10:43:31.793+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="*nix" /><category scheme="http://www.blogger.com/atom/ns#" term="macosx" /><title>.bashrc vs .bash_profile on Mac OS X and Ubuntu (linux)</title><content type="html">Many discussions on .bashrc/.bash_profile conclude with:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;.bash_profile runs for interactive login shell&lt;/li&gt;
&lt;li&gt;.bashrc runs for interactive non-login shell&lt;/li&gt;
&lt;/ul&gt;
How do we associate them with "Terminal" behaviors on MacOSX and Linux (take Ubuntu as an example)?&lt;br /&gt;
&lt;span style="font-size: x-large;"&gt;Terminal (MacOSX)&lt;/span&gt;&lt;br /&gt;
By default, Terminal.app has preference:&amp;nbsp;Shells open with: Default login shell (/usr/bin/login)&lt;br /&gt;
&lt;br /&gt;
pstree (install &lt;a href="http://freshmeat.net/projects/pstree/"&gt;separately&lt;/a&gt;) output:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: plain"&gt;
| \-+= 03672 koyeung /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal -psn_0_1085705
| |-+= 04010 root login -pf koyeung
| | \--= 04011 koyeung -bash
| \-+= 04014 root login -pf koyeung
| \-+= 04015 koyeung -bash
| \-+= 04018 koyeung pstree
| \--- 04020 root ps -axwwo user,pid,ppid,pgid,command
&lt;/pre&gt;
it is "-bash", i.e. login shell (see man page for details) and .bash_profile is sourced when Terminal window is opened.&lt;br /&gt;
&lt;br /&gt;
If it is changed to: Shells open with: /bin/bash -c /bin/bash&lt;br /&gt;
&lt;br /&gt;
pstree output:&lt;br /&gt;
&lt;pre class="brush: plain"&gt;
 | \-+= 03672 koyeung /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal -psn_0_1085705
 |   |-+= 04021 root login -pfq koyeung /bin/bash -c /bin/bash
 |   | \--= 04022 koyeung /bin/bash
 |   \-+= 04029 root login -pfq koyeung /bin/bash -c /bin/bash
 |     \-+= 04030 koyeung /bin/bash
 |       \-+= 04037 koyeung pstree
 |         \--- 04039 root ps -axwwo user,pid,ppid,pgid,command
&lt;/pre&gt;
&lt;br /&gt;
it is interactive (non-login) shell and hence, only .bashrc is sourced.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: x-large;"&gt;Ubuntu "Terminal"&lt;/span&gt;&lt;br /&gt;
By default, non-login shell is opened for Terminal window:&lt;br /&gt;
(see"Edit"-&amp;gt;"Profile preferences"-&amp;gt;"Title and Command": uncheck "Run command as a login shell" )&lt;br /&gt;
&lt;br /&gt;
ps output:&lt;br /&gt;
&lt;pre class="brush: plain"&gt;
F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
0 S koyeung   2409     1  1  80   0 - 53830 poll_s 15:13 ?        00:00:00   gnome-terminal
0 S koyeung   2410  2409  0  80   0 -  3599 unix_s 15:13 ?        00:00:00     gnome-pty-helper
0 S koyeung   2411  2409  0  80   0 -  5533 n_tty_ 15:13 pts/0    00:00:00     bash
0 S koyeung   2441  2409  1  80   0 -  5533 wait   15:14 pts/1    00:00:00     bash
&lt;/pre&gt;
&lt;br /&gt;
It is interactive, nonlogin shell and hence, .bashrc is sourced&lt;br /&gt;
&lt;br /&gt;
If it is changed to login shell, i.e.&lt;br /&gt;
"Edit"-&amp;gt;"Profile preferences"-&amp;gt;"Title and Command": check "Run command as a login shell"&lt;br /&gt;
&lt;pre class="brush: plain"&gt;
F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
0 S koyeung   2354     1  0  80   0 - 53907 poll_s 15:11 ?        00:00:00   gnome-terminal
0 S koyeung   2355  2354  0  80   0 -  3599 unix_s 15:11 ?        00:00:00     gnome-pty-helper
0 S koyeung   2356  2354  0  80   0 -  4907 n_tty_ 15:11 pts/0    00:00:00     -bash
0 S koyeung   2363  2354  0  80   0 -  4907 wait   15:11 pts/1    00:00:00     -bash
&lt;/pre&gt;
&lt;br /&gt;
it is login shell now and .bash_profile is sourced.&lt;br /&gt;
&lt;br /&gt;
Now, rather source .bashrc from your .bash_profile (some may dislike that), you can get same behavior from Terminal on both MacOSX and Ubuntu.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6808700-3998378527352187184?l=koyeung.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/bozHI2ewxadztFE3LU1tBG8dDek/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/bozHI2ewxadztFE3LU1tBG8dDek/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/bozHI2ewxadztFE3LU1tBG8dDek/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/bozHI2ewxadztFE3LU1tBG8dDek/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/wCcxZ/~4/FOhnfu0g5EE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://koyeung.blogspot.com/feeds/3998378527352187184/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6808700&amp;postID=3998378527352187184" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/3998378527352187184?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/3998378527352187184?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/wCcxZ/~3/FOhnfu0g5EE/bashrc-vs-bashprofile-on-mac-os-x-and.html" title=".bashrc vs .bash_profile on Mac OS X and Ubuntu (linux)" /><author><name>King-On Yeung</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-JyFUw7BC8Rs/AAAAAAAAAAI/AAAAAAAACZc/J6oKPFCXvwU/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://koyeung.blogspot.com/2009/11/bashrc-vs-bashprofile-on-mac-os-x-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MDQXg_fyp7ImA9WxNaFk4.&quot;"><id>tag:blogger.com,1999:blog-6808700.post-2064197675994678660</id><published>2009-11-19T10:35:00.003+08:00</published><updated>2009-12-01T10:44:30.647+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-01T10:44:30.647+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="*nix" /><title>Verify Fedora 12 iso download on MacOSX</title><content type="html">Fedora project has &lt;a href="https://fedoraproject.org/wiki/Fedora_11_FAQ#Where_Can_I_download_it.3F"&gt;switched&lt;/a&gt;&amp;nbsp;to SHA256 since F11. On OSX, we need to use &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;shasum&lt;/span&gt; for the verification:&lt;br /&gt;
&lt;pre class="brush: plain"&gt;
$
$ egrep "DVD" Fedora-12-x86_64-CHECKSUM c899659b8a7ceb8f005fc1a300b4e21c984a48fd7b8d8a332ed24bf8c3c479e8 *Fedora-12-x86_64-DVD.iso
$ 
$ shasum -a 256 Fedora-12-x86_64-DVD.iso c899659b8a7ceb8f005fc1a300b4e21c984a48fd7b8d8a332ed24bf8c3c479e8 Fedora-12-x86_64-DVD.iso
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6808700-2064197675994678660?l=koyeung.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/LayS_hFWOw-Ds3q0rIurL5_4jwk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LayS_hFWOw-Ds3q0rIurL5_4jwk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/LayS_hFWOw-Ds3q0rIurL5_4jwk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LayS_hFWOw-Ds3q0rIurL5_4jwk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/wCcxZ/~4/KwH4DJsdYu4" height="1" width="1"/&gt;</content><link rel="related" href="https://fedoraproject.org/en/verify" title="Verify Fedora 12 iso download on MacOSX" /><link rel="replies" type="application/atom+xml" href="http://koyeung.blogspot.com/feeds/2064197675994678660/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6808700&amp;postID=2064197675994678660" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/2064197675994678660?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/2064197675994678660?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/wCcxZ/~3/KwH4DJsdYu4/verify-fedora-12-iso-download-on-macosx.html" title="Verify Fedora 12 iso download on MacOSX" /><author><name>King-On Yeung</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-JyFUw7BC8Rs/AAAAAAAAAAI/AAAAAAAACZc/J6oKPFCXvwU/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://koyeung.blogspot.com/2009/11/verify-fedora-12-iso-download-on-macosx.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMGRnY9cSp7ImA9WxBTFE4.&quot;"><id>tag:blogger.com,1999:blog-6808700.post-5627589201726371464</id><published>2009-11-11T17:23:00.003+08:00</published><updated>2009-12-10T15:33:47.869+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-10T15:33:47.869+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="macosx" /><title>refresh tool after Snow Leopard upgrade</title><content type="html">Default compilation target is x86_64 on Snow Leopard. It is time to refresh custom port after the OS upgrade. The following could be installed using trivial configuration:&lt;br /&gt;
&lt;br /&gt;
basic libraries&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;readline 6.0&lt;/li&gt;
&lt;li&gt;gdbm 1.8.3&lt;/li&gt;
&lt;li&gt;db 4.8.24&lt;/li&gt;
&lt;li&gt;icu4c 4.2.1&lt;/li&gt;
&lt;/ul&gt;
for git installation: (do in the same order)&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;gettext 0.17&lt;/li&gt;
&lt;li&gt;getopt 1.1.4&lt;/li&gt;
&lt;li&gt;docbook&amp;nbsp;&lt;/li&gt;
&lt;li&gt;xmlto 0.0.23&lt;/li&gt;
&lt;li&gt;asciidoc 8.5.1&lt;/li&gt;
&lt;li&gt;git 1.6.2.3&lt;/li&gt;
&lt;/ul&gt;
others:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;python 2.6.4&lt;/li&gt;
&lt;li&gt;ruby 1.9.1-p243&lt;/li&gt;
&lt;li&gt;wget 1.12&lt;/li&gt;
&lt;li&gt;emacs (23.1.90 from cvs)&lt;/li&gt;
&lt;/ul&gt;
failed x86_64 built:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;s&gt;emacs (23.1 or from cvs)&lt;/s&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6808700-5627589201726371464?l=koyeung.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/yRXYzm1AMRHKelQjBt_27LagQmQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yRXYzm1AMRHKelQjBt_27LagQmQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/yRXYzm1AMRHKelQjBt_27LagQmQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yRXYzm1AMRHKelQjBt_27LagQmQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/wCcxZ/~4/FpZZq648wc0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://koyeung.blogspot.com/feeds/5627589201726371464/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6808700&amp;postID=5627589201726371464" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/5627589201726371464?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/5627589201726371464?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/wCcxZ/~3/FpZZq648wc0/refresh-tool-after-snow-leopard-upgrade.html" title="refresh tool after Snow Leopard upgrade" /><author><name>King-On Yeung</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-JyFUw7BC8Rs/AAAAAAAAAAI/AAAAAAAACZc/J6oKPFCXvwU/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://koyeung.blogspot.com/2009/11/refresh-tool-after-snow-leopard-upgrade.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A04HQnk-fCp7ImA9Wx9bEUU.&quot;"><id>tag:blogger.com,1999:blog-6808700.post-9061877730052813610</id><published>2009-06-27T11:41:00.004+08:00</published><updated>2011-02-20T16:18:53.754+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-20T16:18:53.754+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="*nix" /><category scheme="http://www.blogger.com/atom/ns#" term="macosx" /><title>date</title><content type="html">System maintenance job usually depends on the weekday; to get today's weekday:
(&lt;i&gt;%u is replaced by the weekday (Monday as the first day of the week) as a decimal number (1-7).&lt;/i&gt;)
&lt;br /&gt;
on Linux/Cygwin/OpenSolaris
&lt;br /&gt;
&lt;script class="brush: plain" type="syntaxhighlighter"&gt;
&lt;![CDATA[
$ date -d 20090627 +%u
6
]]&gt;
&lt;/script&gt;
on MacOSX
&lt;br /&gt;
&lt;script class="brush: plain" type="syntaxhighlighter"&gt;
&lt;![CDATA[
$ date -j 062701012009 +%u
6
]]&gt;
&lt;/script&gt;
How about yesterday's weekday? It runs the day end job on next morning. No need to call expr or perl:
&lt;br /&gt;
on Linux/Cygwin/OpenSolaris
&lt;br /&gt;
&lt;script class="brush: plain" type="syntaxhighlighter"&gt;
&lt;![CDATA[
$ date -d '-1 day' +%u
5
]]&gt;
&lt;/script&gt;
on MacOSX
&lt;br /&gt;
&lt;script class="brush: plain" type="syntaxhighlighter"&gt;
&lt;![CDATA[
$ date -j -v-1d +%u
5
]]&gt;
&lt;/script&gt;
&lt;code&gt;date&lt;/code&gt; could do adjustment and it is trivial to determine if today is month-end (MacOSX) by:
&lt;br /&gt;
&lt;script class="brush: plain" type="syntaxhighlighter"&gt;
&lt;![CDATA[
$ if [ `date -j +%m` != `date -j -v+1d +%m` ]; then  echo "please do month end report"; fi
$
]]&gt;
&lt;/script&gt;

Update: &lt;a href="http://isc.sans.edu/diary.html?storyid=9925&amp;rss"&gt;Scripting with Unix Date&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6808700-9061877730052813610?l=koyeung.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ek2P02_1JLGyWH53rMmvJV4N5S0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ek2P02_1JLGyWH53rMmvJV4N5S0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ek2P02_1JLGyWH53rMmvJV4N5S0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ek2P02_1JLGyWH53rMmvJV4N5S0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/wCcxZ/~4/BaKXYMbSsNQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://koyeung.blogspot.com/feeds/9061877730052813610/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6808700&amp;postID=9061877730052813610" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/9061877730052813610?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/9061877730052813610?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/wCcxZ/~3/BaKXYMbSsNQ/date.html" title="date" /><author><name>King-On Yeung</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-JyFUw7BC8Rs/AAAAAAAAAAI/AAAAAAAACZc/J6oKPFCXvwU/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://koyeung.blogspot.com/2009/06/date.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkcHQnk7fyp7ImA9WxJVEEs.&quot;"><id>tag:blogger.com,1999:blog-6808700.post-4275005890619184634</id><published>2009-06-26T21:11:00.003+08:00</published><updated>2009-06-27T10:00:33.707+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-27T10:00:33.707+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="database" /><category scheme="http://www.blogger.com/atom/ns#" term="macosx" /><title>Change JDK for Oracle SQL Developer</title><content type="html">You could update file &lt;pre&gt;SQLDeveloper.app/Contents/Resources/sqldeveloper/sqldeveloper/bin/sqldeveloper-Darwin.conf&lt;/pre&gt; and switch to JDK 1.6 for SQL Developer on Mac OS X. 
Change the line to:
&lt;pre&gt;SetJavaHome /System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6808700-4275005890619184634?l=koyeung.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/HflcVgDxC66ta4hH7lzERfF6oGE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HflcVgDxC66ta4hH7lzERfF6oGE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/HflcVgDxC66ta4hH7lzERfF6oGE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HflcVgDxC66ta4hH7lzERfF6oGE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/wCcxZ/~4/q6L2-OI08fw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://koyeung.blogspot.com/feeds/4275005890619184634/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6808700&amp;postID=4275005890619184634" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/4275005890619184634?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/4275005890619184634?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/wCcxZ/~3/q6L2-OI08fw/change-jdk-for-oracle-sql-developer.html" title="Change JDK for Oracle SQL Developer" /><author><name>King-On Yeung</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-JyFUw7BC8Rs/AAAAAAAAAAI/AAAAAAAACZc/J6oKPFCXvwU/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://koyeung.blogspot.com/2009/06/change-jdk-for-oracle-sql-developer.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE4NQnY4fCp7ImA9WxNaFUU.&quot;"><id>tag:blogger.com,1999:blog-6808700.post-7048202881984310676</id><published>2009-06-26T18:40:00.006+08:00</published><updated>2009-11-30T20:09:53.834+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-30T20:09:53.834+08:00</app:edited><title>use Firefox's cookies in wget</title><content type="html">&lt;div&gt;
Firefox stores its cookies in sqlite database. It has to convert it to &lt;a href="http://www.cookiecentral.com/faq/#3.5"&gt;Netscape's cookies.txt format&lt;/a&gt; before wget can use it. You may try the following script (&lt;code&gt;f2n_cookies.sh&lt;/code&gt;):
&lt;br /&gt;
&lt;script class="brush: bash" type="syntaxhighlighter"&gt;
&lt;![CDATA[
#!/bin/bash
sqlite3 "$1" &amp;lt;  
.mode tabs  
.header off  
select host as domain,  
  case substr(host,1,1)='.' when 0 then 'FALSE' else 'TRUE' end as flag,
  path,  
  case isSecure when 0 then 'FALSE' else 'TRUE' end as secure, 
  expiry as expiration, name, value
from moz_cookies;   
EOF
]]&gt;
&lt;/script&gt;
To extract cookies.txt (on MacOSX):
&lt;br /&gt;
&lt;script type="syntaxhighlighter" class="brush: bash"&gt;&lt;![CDATA[
./f2n_cookies.sh ~/Library/Application\ Support/Firefox/Profiles/*.default/cookies.sqlite &amp;gt; cookies.txt
]]&gt;&lt;/script&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6808700-7048202881984310676?l=koyeung.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/YBmvggXdWXhq5lNNPwve8A6tTVU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YBmvggXdWXhq5lNNPwve8A6tTVU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/YBmvggXdWXhq5lNNPwve8A6tTVU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YBmvggXdWXhq5lNNPwve8A6tTVU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/wCcxZ/~4/pAR0bPDXn0A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://koyeung.blogspot.com/feeds/7048202881984310676/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6808700&amp;postID=7048202881984310676" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/7048202881984310676?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/7048202881984310676?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/wCcxZ/~3/pAR0bPDXn0A/use-firefoxs-cookies-in-wget.html" title="use Firefox's cookies in wget" /><author><name>King-On Yeung</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-JyFUw7BC8Rs/AAAAAAAAAAI/AAAAAAAACZc/J6oKPFCXvwU/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://koyeung.blogspot.com/2009/06/use-firefoxs-cookies-in-wget.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEMNRnkyeyp7ImA9WxJVEUs.&quot;"><id>tag:blogger.com,1999:blog-6808700.post-662346425754168071</id><published>2009-06-04T22:01:00.001+08:00</published><updated>2009-06-28T12:14:57.793+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-28T12:14:57.793+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="calendar" /><title>New addresses for Hong Kong General Holidays</title><content type="html">Since Google Page Creator is to be &lt;a href="http://googlesystem.blogspot.com/2008/08/google-page-creator-to-be-closed.html"&gt;closed&lt;/a&gt;, the .ics links are changed as: &lt;a href="http://www.google.com/calendar/ical/vc1fdoj5i5k08a7950kc7evnbo%40group.calendar.google.com/public/basic.ics"&gt;Chinese&lt;/a&gt; and &lt;a href="http://www.google.com/calendar/ical/c6auksphso0oja2f5rcsisb144%40group.calendar.google.com/public/basic.ics"&gt;English&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6808700-662346425754168071?l=koyeung.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/O1MODfZPWgFp9dl3OUoyiHwTZTU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/O1MODfZPWgFp9dl3OUoyiHwTZTU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/O1MODfZPWgFp9dl3OUoyiHwTZTU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/O1MODfZPWgFp9dl3OUoyiHwTZTU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/wCcxZ/~4/1NfBgkbHhDA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://koyeung.blogspot.com/feeds/662346425754168071/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6808700&amp;postID=662346425754168071" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/662346425754168071?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/662346425754168071?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/wCcxZ/~3/1NfBgkbHhDA/new-addresses-for-hong-kong-general.html" title="New addresses for Hong Kong General Holidays" /><author><name>King-On Yeung</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-JyFUw7BC8Rs/AAAAAAAAAAI/AAAAAAAACZc/J6oKPFCXvwU/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://koyeung.blogspot.com/2009/06/new-addresses-for-hong-kong-general.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkIEQX8yfip7ImA9WxJVEE8.&quot;"><id>tag:blogger.com,1999:blog-6808700.post-850658488065184556</id><published>2008-08-06T13:38:00.000+08:00</published><updated>2009-06-26T20:48:20.196+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-26T20:48:20.196+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="macosx" /><title>Backup of Time Machine sparse bundle!!!</title><content type="html">When it contains weeks or months of data, lossing/damaging the single sparse bundle would be worse than burning your Mac harddisk. It is nice to backup the sparse bundle and test the backup!
As minimal steps and &lt;span style="font-weight: bold;"&gt;without additional hardware&lt;/span&gt;, you could:
&lt;ol&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;stop time machine&lt;/span&gt;, otherwise the copied sparse bundle would be corrupted
&lt;/li&gt;&lt;li&gt;copy the sparse bundle back to your Mac (and excluding it from Time Machine backup)&lt;/li&gt;&lt;li&gt;do "Repair Disk" using Disk Utility (should be fast when doing locally)
&lt;/li&gt;&lt;li&gt;If all is ok, store it properly.&lt;/li&gt;&lt;li&gt;start time machine
&lt;/li&gt;&lt;/ol&gt;It needs only to keep most recent "good" sparse bundle. If that is done monthly, the loss would be limited to changes in the most recent month.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6808700-850658488065184556?l=koyeung.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/I-XcIQVOaTwBcno937hmdz5_bT0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/I-XcIQVOaTwBcno937hmdz5_bT0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/I-XcIQVOaTwBcno937hmdz5_bT0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/I-XcIQVOaTwBcno937hmdz5_bT0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/wCcxZ/~4/sRXyc8CwTtk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://koyeung.blogspot.com/feeds/850658488065184556/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6808700&amp;postID=850658488065184556" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/850658488065184556?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/850658488065184556?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/wCcxZ/~3/sRXyc8CwTtk/backup-of-time-machine-sparse-bundle.html" title="Backup of Time Machine sparse bundle!!!" /><author><name>King-On Yeung</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-JyFUw7BC8Rs/AAAAAAAAAAI/AAAAAAAACZc/J6oKPFCXvwU/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://koyeung.blogspot.com/2008/08/backup-of-time-machine-sparse-bundle.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck8FQXo9fyp7ImA9WxJVEE8.&quot;"><id>tag:blogger.com,1999:blog-6808700.post-742504427434826464</id><published>2007-07-14T09:49:00.000+08:00</published><updated>2009-06-26T20:53:30.467+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-26T20:53:30.467+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="*nix" /><title>run Cygwin openssh server on Vista</title><content type="html">Few documentation is available about Cygwin/Vista. Here are some notes on sshd/Vista and MacOSX:
After Cygwin installation,
&lt;ol&gt;&lt;li&gt;right-click Cygwin shortcut and "Run as administrator"&lt;/li&gt;&lt;li&gt;follow the instruction in /usr/share/doc/Cygwin/openssh.README&lt;/li&gt;&lt;li&gt;allow &lt;span style="font-family:courier new;"&gt;c:\cygwin\usr\sbin\sshd.exe&lt;/span&gt; to pass thru. Windows Firewall &lt;/li&gt;&lt;/ol&gt;Finally, install latest &lt;a href="http://developer.apple.com/networking/bonjour"&gt;Bonjour for Windows&lt;/a&gt; supporting Vista. You can now &lt;span style="font-family:courier new;"&gt;ssh PChostname.local&lt;/span&gt; from MacOSX Terminal.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6808700-742504427434826464?l=koyeung.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/XKahciQmv3ZIhE7lXarzsSbkDB8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/XKahciQmv3ZIhE7lXarzsSbkDB8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/XKahciQmv3ZIhE7lXarzsSbkDB8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/XKahciQmv3ZIhE7lXarzsSbkDB8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/wCcxZ/~4/Oumnt9rEOA0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://koyeung.blogspot.com/feeds/742504427434826464/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6808700&amp;postID=742504427434826464" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/742504427434826464?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6808700/posts/default/742504427434826464?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/wCcxZ/~3/Oumnt9rEOA0/run-cygwin-openssh-server-on-vista.html" title="run Cygwin openssh server on Vista" /><author><name>King-On Yeung</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-JyFUw7BC8Rs/AAAAAAAAAAI/AAAAAAAACZc/J6oKPFCXvwU/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://koyeung.blogspot.com/2007/07/run-cygwin-openssh-server-on-vista.html</feedburner:origLink></entry></feed>

