<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4059970508696112322</id><updated>2011-12-16T11:03:12.880-08:00</updated><category term='SSH'/><category term='Agile'/><category term='DB'/><category term='Office'/><category term='VirtualBox'/><category term='CentOS'/><category term='Amazon'/><category term='MSF'/><category term='SFTP'/><category term='SSL'/><category term='Oversea'/><category term='F#'/><category term='Wiki'/><category term='OO'/><category term='FTPS'/><category term='LDAP'/><category term='Pattern'/><title type='text'>Caff's Blog</title><subtitle type='html'>be cool.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://cafflive.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4059970508696112322/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://cafflive.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>caff huang</name><uri>https://profiles.google.com/102827692331721347502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-APgwIH0arhE/AAAAAAAAAAI/AAAAAAAAHbM/dQH6wkrsIhk/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>15</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4059970508696112322.post-2107480499659344616</id><published>2011-12-05T10:42:00.001-08:00</published><updated>2011-12-05T10:45:40.485-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Office'/><title type='text'>How to sync outlook 2010 (64x) to Google Calendar</title><content type='html'>1. Install Google Calendar Sync, and setup.&lt;br /&gt;&lt;a href="http://www.google.com/support/calendar/bin/answer.py?answer=89955&amp;amp;topic=13948"&gt;http://www.google.com/support/calendar/bin/answer.py?answer=89955&amp;amp;topic=13948&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2. Follow this instruction, change outlook.exe's version from "14.0.0" to "12.0.0"&lt;br /&gt;&lt;a href="http://www.addictivetips.com/microsoft-office/sync-google-calendar-outlook-2010-quick-fix/"&gt;http://www.addictivetips.com/microsoft-office/sync-google-calendar-outlook-2010-quick-fix/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;3. You're all set!&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4059970508696112322-2107480499659344616?l=cafflive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cafflive.blogspot.com/feeds/2107480499659344616/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4059970508696112322&amp;postID=2107480499659344616' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4059970508696112322/posts/default/2107480499659344616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4059970508696112322/posts/default/2107480499659344616'/><link rel='alternate' type='text/html' href='http://cafflive.blogspot.com/2011/12/how-to-sync-outlook-2010-64x-to-google.html' title='How to sync outlook 2010 (64x) to Google Calendar'/><author><name>caff huang</name><uri>https://profiles.google.com/102827692331721347502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-APgwIH0arhE/AAAAAAAAAAI/AAAAAAAAHbM/dQH6wkrsIhk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4059970508696112322.post-5589187189226601709</id><published>2011-07-15T14:46:00.000-07:00</published><updated>2011-07-15T14:48:23.650-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CentOS'/><category scheme='http://www.blogger.com/atom/ns#' term='VirtualBox'/><title type='text'>How to use shared folder and install guest additions on CentOS within VirtualBox</title><content type='html'>&lt;div&gt;&lt;h2&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-weight: normal; "&gt;HOWTO: Use Shared Folders&lt;/span&gt;&lt;/h2&gt;&lt;h2&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-weight: normal; "&gt;http://forums.virtualbox.org/viewtopic.php?t=15868&lt;/span&gt;&lt;/h2&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;How to install Guest Additions in CentOS 5.1&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;http://forums.virtualbox.org/viewtopic.php?t=4960&amp;amp;highlight=install+guest+addition&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4059970508696112322-5589187189226601709?l=cafflive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cafflive.blogspot.com/feeds/5589187189226601709/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4059970508696112322&amp;postID=5589187189226601709' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4059970508696112322/posts/default/5589187189226601709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4059970508696112322/posts/default/5589187189226601709'/><link rel='alternate' type='text/html' href='http://cafflive.blogspot.com/2011/07/how-to-use-shared-folder-and-install.html' title='How to use shared folder and install guest additions on CentOS within VirtualBox'/><author><name>caff huang</name><uri>https://profiles.google.com/102827692331721347502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-APgwIH0arhE/AAAAAAAAAAI/AAAAAAAAHbM/dQH6wkrsIhk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4059970508696112322.post-7070981092282884160</id><published>2011-07-15T14:44:00.000-07:00</published><updated>2011-07-15T14:45:42.965-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CentOS'/><title type='text'>How to enter CentOS Text Mode</title><content type='html'>&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: 宋体; font-size: 14px; line-height: 28px; "&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: 宋体; font-size: 14px; line-height: 28px; "&gt;To Text Mode: Ctl + Alt + F1/F6&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: 宋体; font-size: 14px; line-height: 28px; "&gt;To Windows Mode: Ctl + Alt + F7&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: 宋体; font-size: 14px; line-height: 28px; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;当在系统启动时直接进入字符工作方式后，系统提供了多个（默认为6个）虚拟控制台。每个虚拟控制台可以独立使用，互不影响。可以使用Alt+F1～Alt+F6进行多个虚拟控制台之间的切换。如果用户使用startx命令在字符CentOS界面下启动了图形环境，那么可以使用C trl+Alt+F1～C trl+Alt+F6切换字符虚拟终端，使用C trl+Alt+F7切换到图形界面。&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: 宋体; font-size: 14px; line-height: 28px; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: 宋体; font-size: 14px; line-height: 28px; "&gt;full: &lt;a href="http://os.51cto.com/art/201003/190947.htm"&gt;http://os.51cto.com/art/201003/190947.htm&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4059970508696112322-7070981092282884160?l=cafflive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cafflive.blogspot.com/feeds/7070981092282884160/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4059970508696112322&amp;postID=7070981092282884160' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4059970508696112322/posts/default/7070981092282884160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4059970508696112322/posts/default/7070981092282884160'/><link rel='alternate' type='text/html' href='http://cafflive.blogspot.com/2011/07/how-to-enter-centos-text-mode.html' title='How to enter CentOS Text Mode'/><author><name>caff huang</name><uri>https://profiles.google.com/102827692331721347502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-APgwIH0arhE/AAAAAAAAAAI/AAAAAAAAHbM/dQH6wkrsIhk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4059970508696112322.post-39605530066158070</id><published>2010-01-12T19:29:00.001-08:00</published><updated>2010-01-12T19:29:16.550-08:00</updated><title type='text'>Don't be evil!</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;that's why anyone else but Google can't be Google. Well done!&lt;/p&gt;參考來源： &lt;a href='http://googleblog.blogspot.com/2010/01/new-approach-to-china.html'&gt;Official Google Blog: A new approach to China&lt;/a&gt; (&lt;a href='http://www.google.com/sidewiki/entry/102827692331721347502/id/KsJpI5xUImgjYf3ZuvO9x9WglVI'&gt;在「Google 網頁註解」中檢視&lt;/a&gt;)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4059970508696112322-39605530066158070?l=cafflive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cafflive.blogspot.com/feeds/39605530066158070/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4059970508696112322&amp;postID=39605530066158070' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4059970508696112322/posts/default/39605530066158070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4059970508696112322/posts/default/39605530066158070'/><link rel='alternate' type='text/html' href='http://cafflive.blogspot.com/2010/01/don-be-evil.html' title='Don&amp;#39;t be evil!'/><author><name>caff huang</name><uri>https://profiles.google.com/102827692331721347502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-APgwIH0arhE/AAAAAAAAAAI/AAAAAAAAHbM/dQH6wkrsIhk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4059970508696112322.post-7496362845925058491</id><published>2009-04-13T23:11:00.000-07:00</published><updated>2009-04-13T23:13:15.896-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB'/><title type='text'>开源数据库 Sharding 技术 (Share Nothing)</title><content type='html'>转载自 &lt;a href="http://www.dbanotes.net/database/database_sharding.html"&gt;http://www.dbanotes.net/database/database_sharding.html&lt;/a&gt;&lt;br /&gt;&lt;h4&gt;从 Shard 到 Sharding &lt;/h4&gt;  &lt;p&gt;"Shard" 这个词英文的意思是"碎片"，而作为数据库相关的技术用语，似乎最早见于大型多人在线角色扮演游戏(MMORPG)中。"Sharding" 姑且称之为"分片"。&lt;/p&gt;  &lt;p&gt;Sharding 不是一门新技术，而是一个相对简朴的软件理念。如您所知，MySQL 5 之后才有了数据表分区功能，那么在此之前，很多 MySQL 的潜在用户都对 MySQL 的扩展性有所顾虑，而是否具备分区功能就成了衡量一个数据库可扩展性与否的一个关键指标(当然不是唯一指标)。数据库扩展性是一个永恒的话题，MySQL 的推广者经常会被问到：如在单一数据库上处理应用数据捉襟见肘而需要进行分区化之类的处理，是如何办到的呢? 答案是：Sharding。&lt;/p&gt;  &lt;p&gt;Sharding 不是一个某个特定数据库软件附属的功能，而是在具体技术细节之上的抽象处理，是水平扩展(Scale Out，亦或横向扩展、向外扩展)的解决方案，其主要目的是为突破单节点数据库服务器的 I/O 能力限制，解决数据库扩展性问题。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4059970508696112322-7496362845925058491?l=cafflive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cafflive.blogspot.com/feeds/7496362845925058491/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4059970508696112322&amp;postID=7496362845925058491' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4059970508696112322/posts/default/7496362845925058491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4059970508696112322/posts/default/7496362845925058491'/><link rel='alternate' type='text/html' href='http://cafflive.blogspot.com/2009/04/sharding-share-nothing.html' title='开源数据库 Sharding 技术 (Share Nothing)'/><author><name>caff huang</name><uri>https://profiles.google.com/102827692331721347502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-APgwIH0arhE/AAAAAAAAAAI/AAAAAAAAHbM/dQH6wkrsIhk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4059970508696112322.post-5339870214354791135</id><published>2009-04-02T18:42:00.000-07:00</published><updated>2009-04-02T18:43:34.291-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OO'/><title type='text'>SOLID</title><content type='html'>S - Single Responsibility Principle&lt;br /&gt;O - Open/Closed Principle&lt;br /&gt;L - Liskov Substitution Principle&lt;br /&gt;I - Interface Segregation Principle&lt;br /&gt;D - Dependency Inversion Principle&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4059970508696112322-5339870214354791135?l=cafflive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cafflive.blogspot.com/feeds/5339870214354791135/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4059970508696112322&amp;postID=5339870214354791135' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4059970508696112322/posts/default/5339870214354791135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4059970508696112322/posts/default/5339870214354791135'/><link rel='alternate' type='text/html' href='http://cafflive.blogspot.com/2009/04/solid.html' title='SOLID'/><author><name>caff huang</name><uri>https://profiles.google.com/102827692331721347502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-APgwIH0arhE/AAAAAAAAAAI/AAAAAAAAHbM/dQH6wkrsIhk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4059970508696112322.post-6111777412874473076</id><published>2008-11-07T02:43:00.001-08:00</published><updated>2008-11-07T02:43:27.123-08:00</updated><title type='text'>say something</title><content type='html'>say, say&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4059970508696112322-6111777412874473076?l=cafflive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cafflive.blogspot.com/feeds/6111777412874473076/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4059970508696112322&amp;postID=6111777412874473076' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4059970508696112322/posts/default/6111777412874473076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4059970508696112322/posts/default/6111777412874473076'/><link rel='alternate' type='text/html' href='http://cafflive.blogspot.com/2008/11/say-something.html' title='say something'/><author><name>caff huang</name><uri>https://profiles.google.com/102827692331721347502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-APgwIH0arhE/AAAAAAAAAAI/AAAAAAAAHbM/dQH6wkrsIhk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4059970508696112322.post-8487070579113305827</id><published>2007-12-15T00:04:00.000-08:00</published><updated>2007-12-15T00:16:24.463-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oversea'/><category scheme='http://www.blogger.com/atom/ns#' term='Amazon'/><title type='text'>Amazon Architecture</title><content type='html'>This is a wonderfully informative Amazon update based on Joachim Rohde's discovery of an interview with Amazon's CTO. You'll learn about how Amazon organizes their teams around services, the CAP theorem of building scalable systems, how they deploy software, and a lot more. Many new additions from the ACM Queue article have also been included.&lt;br /&gt;&lt;br /&gt;Amazon grew from a tiny online bookstore to one of the largest stores on earth. They did it while pioneering new and interesting ways to rate, review, and recommend products. Greg Linden shared is version of Amazon's birth pangs in a series of blog articles&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.highscalability.com/amazon-architecture"&gt;http://www.highscalability.com/amazon-architecture&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;others:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.acmqueue.com/modules.php?name=Content&amp;amp;pa=showpage&amp;amp;pid=388"&gt;the interview in ACM Queue&lt;/a&gt;(&lt;a href="http://www.acmqueue.com/modules.php?name=Content&amp;amp;pa=showpage&amp;amp;pid=388"&gt;Learning from the Amazon technology platform) http://www.acmqueue.com/modules.php?name=Content&amp;amp;pa=showpage&amp;amp;pid=388&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a title="http://www.masonhq.com/?MasonPoweredSites" href="http://www.masonhq.com/?MasonPoweredSites"&gt;Amazon uses &lt;/a&gt;&lt;a class="glossary-term" href="http://www.highscalability.com/tags/perl"&gt;Perl&lt;/a&gt;&lt;a title="http://www.masonhq.com/?MasonPoweredSites" href="http://www.masonhq.com/?MasonPoweredSites"&gt; and Mason: http://www.masonhq.com/?MasonPoweredSites&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Werner Vogels, the CTO of amazon, spoke a tiny bit about technical details on SE-Radio. You can find the podcast under &lt;a title="http://www.se-radio.net/index.php?post_id=" href="http://www.se-radio.net/index.php?post_id=157593"&gt;http://www.se-radio.net/index.php?post_id=157593&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/4059970508696112322-8487070579113305827?l=cafflive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cafflive.blogspot.com/feeds/8487070579113305827/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4059970508696112322&amp;postID=8487070579113305827' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4059970508696112322/posts/default/8487070579113305827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4059970508696112322/posts/default/8487070579113305827'/><link rel='alternate' type='text/html' href='http://cafflive.blogspot.com/2007/12/amazon-architecture.html' title='Amazon Architecture'/><author><name>caff huang</name><uri>https://profiles.google.com/102827692331721347502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-APgwIH0arhE/AAAAAAAAAAI/AAAAAAAAHbM/dQH6wkrsIhk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4059970508696112322.post-2457630614253907529</id><published>2007-11-21T06:51:00.000-08:00</published><updated>2007-11-21T07:11:46.153-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MSF'/><title type='text'>Microsoft Sync Framework Runtime</title><content type='html'>&lt;a href="http://msdn2.microsoft.com/en-us/sync/default.aspx"&gt;http://msdn2.microsoft.com/en-us/sync/default.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Microsoft Sync Framework (MSF) is a comprehensive synchronization platform enabling collaboration and offline for applications, services and devices. Developers can build sync ecosystems that integrate any application, any data from any store using any protocol over any network. MSF features technologies and tools that enable roaming, sharing, and taking data offline.&lt;br /&gt;&lt;br /&gt;A key aspect of MSF is the ability to create custom providers using the MSF Runtime. Providers enable any data sources to participate in the MSF synchronization process allowing peer to peer synchronization to occur.&lt;br /&gt;&lt;br /&gt;A number of providers have been included out-of-the-box that support many common data sources. Although they are not required, to minimize development, it is recommended that developers use these providers wherever possible. The following are the providers included:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Sync Service for ADO.NET: Synchronization for ADO.NET enabled data sources  &lt;/li&gt;&lt;li&gt;Sync Service for File Systems: Synchronization for files and folders  &lt;/li&gt;&lt;li&gt;Sync Service for SSE: Synchronization for Simple Sharing Extensions such as RSS and ATOM feeds&lt;/li&gt;&lt;/ul&gt;Developers can ultimately use any of the out-of-the-box providers or can create custom providers to exchange information between devices and applications.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Participants&lt;/strong&gt;&lt;br /&gt;A participant is the location where information from the data source is retrieved.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Participants Type&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Full Participants : (Laptop, Smartphone) allow developers to create applications and new data stores directly on the device.&lt;/li&gt;&lt;li&gt;Partial Participants : (SD Card) Partial participants describe devices that have the ability to store data either in the existing data store or another data store on the device. These devices, however, do not have the ability to launch executables directly from the device.&lt;/li&gt;&lt;li&gt;Simple Participants : (RSS Feeds, Web Services) Simple participants describe devices that are only capable of providing information when requested.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Keywords&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Sync Service Provider&lt;/li&gt;&lt;li&gt;MSF Runtime&lt;/li&gt;&lt;li&gt;Sync Session&lt;/li&gt;&lt;li&gt;Data Source&lt;/li&gt;&lt;li&gt;Metadata : Versions, Knowledge, Tick Count, Replica ID, Tombstones&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/4059970508696112322-2457630614253907529?l=cafflive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cafflive.blogspot.com/feeds/2457630614253907529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4059970508696112322&amp;postID=2457630614253907529' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4059970508696112322/posts/default/2457630614253907529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4059970508696112322/posts/default/2457630614253907529'/><link rel='alternate' type='text/html' href='http://cafflive.blogspot.com/2007/11/microsoft-sync-framework-runtime.html' title='Microsoft Sync Framework Runtime'/><author><name>caff huang</name><uri>https://profiles.google.com/102827692331721347502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-APgwIH0arhE/AAAAAAAAAAI/AAAAAAAAHbM/dQH6wkrsIhk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4059970508696112322.post-7698154131817473924</id><published>2007-11-20T19:19:00.000-08:00</published><updated>2009-04-02T18:48:31.838-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LDAP'/><title type='text'>An Introduction to LDAP</title><content type='html'>&lt;a href="http://www.ldapman.org/articles/intro_to_ldap.html"&gt;http://www.ldapman.org/articles/intro_to_ldap.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.gracion.com/server/whatldap.html"&gt;http://www.gracion.com/server/whatldap.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;LDAP, Lightweight Directory Access Protocol, is an Internet protocol that email and other programs use to look up information from a server.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4059970508696112322-7698154131817473924?l=cafflive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cafflive.blogspot.com/feeds/7698154131817473924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4059970508696112322&amp;postID=7698154131817473924' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4059970508696112322/posts/default/7698154131817473924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4059970508696112322/posts/default/7698154131817473924'/><link rel='alternate' type='text/html' href='http://cafflive.blogspot.com/2007/11/introduction-to-ldap.html' title='An Introduction to LDAP'/><author><name>caff huang</name><uri>https://profiles.google.com/102827692331721347502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-APgwIH0arhE/AAAAAAAAAAI/AAAAAAAAHbM/dQH6wkrsIhk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4059970508696112322.post-9033462585766152357</id><published>2007-11-11T21:34:00.000-08:00</published><updated>2007-11-11T21:57:28.228-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='F#'/><title type='text'>What's F#?</title><content type='html'>&lt;em&gt;F# is a statically typed functional programming language that targets the .NET framework. It shares a common core language with OCaml, another popular functional programming language, and draws ideas from many other programming languages, including Haskell, Erlang, and C#. In a nutshell this means that F# is a programming language that has a nice succinct syntax that feels a bit like scripting as we are able to execute the code interactively but has all the type safety and performance of a compiled language. This article is not indented to be an introduction to F#, but there are many resources on the web intended to make learning F# easy. See "F# Resources" later on in the article for a list of these.&lt;br /&gt;&lt;br /&gt;http://www.infoq.com/articles/Beyond-Foundations-FSharp&lt;br /&gt;&lt;br /&gt;&lt;/em&gt;&lt;h2&gt;F# Resources  &lt;/h2&gt; &lt;p&gt;There are a growing number of F# resources available on the web, here's a summary of some of the best ones:&lt;/p&gt; &lt;ol&gt;&lt;li&gt; &lt;a href="http://research.microsoft.com/fsharp"&gt;The Official F#&lt;/a&gt; Site, find the latest version of the compiler and the F# manual&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/dsyme"&gt;Don Syme&lt;/a&gt;, F#'s lead developer's, Blog, a great place to keep an eye on for F# announcements and short articles about making the most of F#.&lt;/li&gt;&lt;li&gt;&lt;a href="http://cs.hubfs.net/"&gt;The Hub-FS&lt;/a&gt;, an F# community site with blogs and forums.&lt;/li&gt;&lt;li&gt;Robert Pickering's &lt;a href="http://strangelights.com/fsharp"&gt;F# tutorials and resources.&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.ffconsultancy.com/dotnet/fsharp"&gt;Flying Frog Consultancy's&lt;/a&gt; F# tutorials and resources.&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4059970508696112322-9033462585766152357?l=cafflive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cafflive.blogspot.com/feeds/9033462585766152357/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4059970508696112322&amp;postID=9033462585766152357' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4059970508696112322/posts/default/9033462585766152357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4059970508696112322/posts/default/9033462585766152357'/><link rel='alternate' type='text/html' href='http://cafflive.blogspot.com/2007/11/whats-f.html' title='What&apos;s F#?'/><author><name>caff huang</name><uri>https://profiles.google.com/102827692331721347502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-APgwIH0arhE/AAAAAAAAAAI/AAAAAAAAHbM/dQH6wkrsIhk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4059970508696112322.post-8693032844168047510</id><published>2007-09-12T18:34:00.000-07:00</published><updated>2007-09-12T18:39:30.690-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Wiki'/><category scheme='http://www.blogger.com/atom/ns#' term='Agile'/><title type='text'>Agile Bibliography Wiki</title><content type='html'>&lt;a href="http://biblio.gdinwiddie.com/"&gt;http://biblio.gdinwiddie.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;from &lt;a href="http://www.infoq.com/news/2007/09/agile-bibliography-wiki"&gt;http://www.infoq.com/news/2007/09/agile-bibliography-wiki&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4059970508696112322-8693032844168047510?l=cafflive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cafflive.blogspot.com/feeds/8693032844168047510/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4059970508696112322&amp;postID=8693032844168047510' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4059970508696112322/posts/default/8693032844168047510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4059970508696112322/posts/default/8693032844168047510'/><link rel='alternate' type='text/html' href='http://cafflive.blogspot.com/2007/09/agile-bibliography-wiki.html' title='Agile Bibliography Wiki'/><author><name>caff huang</name><uri>https://profiles.google.com/102827692331721347502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-APgwIH0arhE/AAAAAAAAAAI/AAAAAAAAHbM/dQH6wkrsIhk/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4059970508696112322.post-6083859598201105591</id><published>2007-09-03T20:31:00.000-07:00</published><updated>2009-04-02T18:48:52.627-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Pattern'/><category scheme='http://www.blogger.com/atom/ns#' term='OO'/><title type='text'>Christopher Alexander Talking About Patterms in CS and other fields</title><content type='html'>&lt;a name="1"&gt;&lt;/a&gt;link: &lt;a href="http://www.patternlanguage.com/archive/ieee/ieeetext.htm"&gt;http://www.patternlanguage.com/archive/ieee/ieeetext.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The Origins of Pattern Theory&lt;br /&gt;the Future of the Theory,&lt;br /&gt;And The Generation of a Living World&lt;br /&gt;by Christopher Alexander&lt;br /&gt;&lt;br /&gt;The following presentation was recorded live in San Jose, California, October of 1996, at The 1996 ACM Conference on Object-Oriented Programs, Systems, Languages and Applications (OOPSLA).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4059970508696112322-6083859598201105591?l=cafflive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cafflive.blogspot.com/feeds/6083859598201105591/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4059970508696112322&amp;postID=6083859598201105591' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4059970508696112322/posts/default/6083859598201105591'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4059970508696112322/posts/default/6083859598201105591'/><link rel='alternate' type='text/html' href='http://cafflive.blogspot.com/2007/09/christopher-alexander-talking-about.html' title='Christopher Alexander Talking About Patterms in CS and other fields'/><author><name>caff huang</name><uri>https://profiles.google.com/102827692331721347502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-APgwIH0arhE/AAAAAAAAAAI/AAAAAAAAHbM/dQH6wkrsIhk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4059970508696112322.post-8498461147517880050</id><published>2007-08-13T12:41:00.002-07:00</published><updated>2007-08-13T12:51:03.325-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSL'/><category scheme='http://www.blogger.com/atom/ns#' term='SSH'/><category scheme='http://www.blogger.com/atom/ns#' term='FTPS'/><category scheme='http://www.blogger.com/atom/ns#' term='SFTP'/><title type='text'>Sftp Vs. Ftps</title><content type='html'>Totally different things.&lt;br /&gt;&lt;br /&gt;SFTP and FTPS (FTP over SSL) are indeed very different and are often confused. The SFTP protocol is actually a subsystem of the SSH protocol whereas the FTPS protocol runs on top of the FTP protocol using an SSL encrypted channel. Unlike the FTPS protocol the SSH/SFTP protocol is a packet based protocol whereas the FTPS protocol is command based. For this reason you will find that FTPS is generally faster than SFTP/SSH. There are also two different types of FTPS, explicit-SSL and implicit-SSL to add to the confusion.&lt;br /&gt;&lt;br /&gt;Explicit-SSL - Connection starts on standard FTP port (usually 21) in non-encrypted state. Client then sends AUTH SSL or AUTH TLS command to server requesting that it switches to encrypted channel before sending user credentials. The advantage of explicit-SSL is that the server can handle both encrypted and non-encrypted sessions on the same port (21).&lt;br /&gt;&lt;br /&gt;Implicit-SSL - Unlike explicit-SSL, this connection starts off encrypted and there is no going to an unencrypted session. This usually runs on port 990. Advantage is that you can force users to connect using encrypted session, though some servers also allow you to do this at account level in Explicit-SSL.&lt;br /&gt;&lt;br /&gt;Some API for SFTP and FTPS are:&lt;br /&gt;&lt;br /&gt;FTP/FTPS&lt;br /&gt;&lt;a href="http://www.jscape.com/articles/ftp_using_csharp.html"&gt;http://www.jscape.com/articles/ftp_using_csharp.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;SFTP/SSH&lt;br /&gt;&lt;a href="http://www.jscape.com/articles/sftp_using_csharp.html"&gt;http://www.jscape.com/articles/sftp_using_csharp.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4059970508696112322-8498461147517880050?l=cafflive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cafflive.blogspot.com/feeds/8498461147517880050/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4059970508696112322&amp;postID=8498461147517880050' title='52 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4059970508696112322/posts/default/8498461147517880050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4059970508696112322/posts/default/8498461147517880050'/><link rel='alternate' type='text/html' href='http://cafflive.blogspot.com/2007/08/sftp-vs-ftps.html' title='Sftp Vs. Ftps'/><author><name>caff huang</name><uri>https://profiles.google.com/102827692331721347502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-APgwIH0arhE/AAAAAAAAAAI/AAAAAAAAHbM/dQH6wkrsIhk/s512-c/photo.jpg'/></author><thr:total>52</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4059970508696112322.post-5340757388933800989</id><published>2007-08-13T12:41:00.001-07:00</published><updated>2007-08-13T12:41:33.426-07:00</updated><title type='text'>1st one</title><content type='html'>First Blog&lt;br /&gt;Cong~~~ !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4059970508696112322-5340757388933800989?l=cafflive.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cafflive.blogspot.com/feeds/5340757388933800989/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4059970508696112322&amp;postID=5340757388933800989' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4059970508696112322/posts/default/5340757388933800989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4059970508696112322/posts/default/5340757388933800989'/><link rel='alternate' type='text/html' href='http://cafflive.blogspot.com/2007/08/1st-one.html' title='1st one'/><author><name>caff huang</name><uri>https://profiles.google.com/102827692331721347502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-APgwIH0arhE/AAAAAAAAAAI/AAAAAAAAHbM/dQH6wkrsIhk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry></feed>
