<?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-660190616143602585</id><updated>2011-12-22T20:28:19.100-08:00</updated><category term='test'/><category term='Funambol'/><category term='SyncML'/><category term='Plaxo'/><category term='address book'/><category term='sync'/><title type='text'>SyncMLDotNet</title><subtitle type='html'>Discussion about the development process of SyncMLDotNet</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://syncmldotnet.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/660190616143602585/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://syncmldotnet.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Zijian A</name><uri>http://www.blogger.com/profile/13275514659971793139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://bp2.blogger.com/_0Ec3HWOLHjk/R9XoY8OcttI/AAAAAAAAAEI/mFE9cOBwjAQ/S220/yoda.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>10</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-660190616143602585.post-3059165151214513776</id><published>2010-02-09T16:28:00.000-08:00</published><updated>2010-02-09T16:35:53.480-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SyncML'/><category scheme='http://www.blogger.com/atom/ns#' term='test'/><title type='text'>The following services were tested, and the servers failed for different reasons</title><content type='html'>&lt;h2&gt;The following services were tested, and the servers failed for  different reasons.&lt;/h2&gt;&lt;br /&gt;&lt;h3&gt;&lt;b&gt;https://m.google.com/syncml&lt;/b&gt; not  entirely working.&lt;/h3&gt;contact: contacts&lt;br /&gt;&lt;p&gt;具体方法是：&lt;/p&gt;&lt;ol&gt;&lt;li&gt;打开手机上的 ActiveSync&lt;/li&gt;&lt;li&gt;选择“Setup your device to sync with it”，或者选择菜单中的添加服务器。&lt;/li&gt;&lt;li&gt;输 入服务器地址：m.google.com&lt;/li&gt;&lt;li&gt;选中“The Server requires an encrypted (SSL)  connection”&lt;/li&gt;&lt;li&gt;点击&lt;b&gt;下一步&lt;/b&gt;&lt;/li&gt;&lt;li&gt;输入用户名和密码：&lt;br /&gt;用户名为Google的帐户名称（完整邮件地址）&lt;br /&gt;密码为登录Google Account的密码&lt;br /&gt;保留域为空&lt;/li&gt;&lt;li&gt;如果希 望使用自动同步功能，请选择保存密码&lt;/li&gt;&lt;li&gt;点击&lt;b&gt;下一步&lt;/b&gt;&lt;/li&gt;&lt;li&gt;在编辑服务器选项中，只选择联系人和日程表&lt;/li&gt;&lt;li&gt;点 击&lt;b&gt;完成&lt;/b&gt;&lt;/li&gt;&lt;li&gt;点击&lt;b&gt;同步&lt;/b&gt;，完成首次同步过程&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;这样，你手机上的联系人和日程表就分别和 Gmail contact和Google  Calendar同步了。优点是，再也不必费力的备份联系人了，因为他永远和你的gmail同步。缺点当然也有，如果你真的使用Exchange  Server，那么很遗憾，Windows Mobile只能配置一个ActiveSync帐户，所以你要从中选择一个了。&lt;/p&gt;&lt;p&gt;当 然，Google也支持SyncML协议的同步。如果你使用Symbian系统的手机（S60和UIQ），请从远程同步中配置以下选项：&lt;/p&gt;&lt;table class="zeroBorder" align="center" border="0" cellpadding="2" cellspacing="0" width="400"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top" width="200"&gt;&lt;b&gt;服 务器地址：&lt;/b&gt;&lt;/td&gt;&lt;td valign="top" width="200"&gt;&lt;a href="https://m.google.com/syncml"&gt;http&lt;span style="color: rgb(255, 0,  0);"&gt;&lt;b&gt;s&lt;/b&gt;&lt;/span&gt;://m.google.com/syncml&lt;br /&gt;&lt;/a&gt;（注意，是https）&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="200"&gt;&lt;b&gt;用户名：&lt;/b&gt;&lt;/td&gt;&lt;td valign="top" width="200"&gt;Google  Account的用户名&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="200"&gt;&lt;b&gt;密码：&lt;/b&gt;&lt;/td&gt;&lt;td valign="top" width="200"&gt;Google Account的密码&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="200"&gt;&lt;b&gt;传输协议：&lt;/b&gt;&lt;/td&gt;&lt;td valign="top" width="200"&gt;保 留默认值&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="200"&gt;&lt;b&gt;互联网帐户：&lt;/b&gt;&lt;/td&gt;&lt;td valign="top" width="200"&gt;&lt;你手机上用于连接互联网的帐户，通常为GPRS数据帐户&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="200"&gt;&lt;b&gt;使用传输登录：&lt;/b&gt;&lt;/td&gt;&lt;td valign="top" width="200"&gt;不选择&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;这样，手机就可以和Google同步了。&lt;/p&gt;http://www.google.com/support/forum/p/Google+Mobile/thread?tid=47b8656a9ea48125&amp;amp;hl=en&lt;br /&gt;&lt;br /&gt;The  server did not return status codes for all commands sent by the client.  This is regarded as critical error against the SyncML specifications.&lt;div&gt;&lt;br /&gt;&lt;h3&gt;Contails&lt;/h3&gt;&lt;br /&gt;http://sync.contails.com/syncml&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The  server did not recognize base64 encoded credential, and challenged for  md5, however, the meta data did not conform to SyncML standard, without  proper namespace of meta. Thus SyncML.NET could not pick up the data of  NextNounce.&lt;br /&gt;&lt;br /&gt;While the Funambol plug-in for Outlook could  tolerate such invalid SyncML meta data and sent back md5 credential, the  server dropped the connection right away.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;&lt;b&gt;http://syncml.mobiledit.com/sync&lt;/b&gt;  not recommended&lt;/h3&gt;Compelson&lt;br /&gt;usr: wangdaixing/at&lt;br /&gt;contact: pb&lt;br /&gt;When requesting 2-way sync after  slown sync, the server always ask for slow sync, and then the server has  duplicated records.&lt;br /&gt;&lt;br /&gt;And when the server  send back the same record, the birthday become 2006-03-24 in vCard,  though in the server, the birthday is still 25. Obviously Compelson  server has bug in converting birthday in database to vCard.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;&lt;b&gt;https://www.synthesis.ch/sync not recommanded&lt;/b&gt;&lt;/h3&gt;&lt;br /&gt;contact: contacts&lt;br /&gt;Manufacturer: Synthesis AG&lt;br /&gt;Model: SySync Server  Linux Apache ODBC PRO&lt;br /&gt;Software Version: 3.1.6.8&lt;br /&gt;I had conversations with this company. Need to send a bug  report to them later.&lt;br /&gt;Sync Alert only allowed in init  package&lt;br /&gt;&lt;br /&gt;bug: the server send the same alert of requesting sync  twice.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;O-Sync&lt;/h3&gt;&lt;br /&gt;http://sync.o-sync.com&lt;br /&gt;&lt;br /&gt;After  accepting basic authentication, the server challenges with MD5. However,  it seems that O-Sync could only work on slow sync, ignoring other sync  types. Probably because of bugs or the service is dedicated to mobile  phones.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Soocial&lt;/h3&gt;1. Server: sync.soocial.com&lt;br /&gt;2.  Username:&lt;br /&gt;3. Password: your Soocial  password&lt;br /&gt;4. Port: 80&lt;br /&gt;5. Set to include contacts synchronization&lt;br /&gt;6. Set The Remote Database ./contacts&lt;br /&gt;&lt;br /&gt;Not support  Refresh from Client or Server. Keep asking from slow sync, probably  because of trial user. Also, after the server reply to the client for  the credential with status 212, the server still challenge for basic  credential after the client send the sync content.&lt;br /&gt;&lt;br /&gt;Against  Funambol plugin for Outlook, Soocial did not challenge, but return 403  for the sync command. still fail.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Picobeat&lt;/h3&gt;&lt;p&gt;Server  address: &lt;a class="external free" href="http://sync.picobeat.com/" rel="nofollow" title="http://sync.picobeat.com"&gt;http://sync.picobeat.com&lt;/a&gt;&lt;br /&gt;Server id: alpha.picobeat.com (not all phones require this information)&lt;br /&gt;Username and password: your regular picoBeat account username and  password (exactly as entered, including upper/lowercase)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;a name="Database_names"&gt;&lt;/a&gt;&lt;p&gt;&lt;span class="mw-headline"&gt; Database names &lt;/span&gt;&lt;/p&gt;&lt;p&gt;Address  book database: contacts&lt;br /&gt;Notes database: notes&lt;br /&gt;To-do/tasks  database: tasks&lt;br /&gt;Calendar (events only, see below) database: cal&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Basic  SyncML exchanges looked OK. However, the vCard data sent from the  server did not conform to vCard 2.1 standard: The Adr has the first and  the second fields missing. In addition, storing data in CDATA is  problematic. If you have something like ]]&gt; in data, there are more  troubles.&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/660190616143602585-3059165151214513776?l=syncmldotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://syncmldotnet.blogspot.com/feeds/3059165151214513776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=660190616143602585&amp;postID=3059165151214513776' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/660190616143602585/posts/default/3059165151214513776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/660190616143602585/posts/default/3059165151214513776'/><link rel='alternate' type='text/html' href='http://syncmldotnet.blogspot.com/2010/02/following-services-were-tested-and.html' title='The following services were tested, and the servers failed for different reasons'/><author><name>Zijian A</name><uri>http://www.blogger.com/profile/13275514659971793139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://bp2.blogger.com/_0Ec3HWOLHjk/R9XoY8OcttI/AAAAAAAAAEI/mFE9cOBwjAQ/S220/yoda.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-660190616143602585.post-5208684070110029590</id><published>2009-11-14T22:06:00.000-08:00</published><updated>2009-11-14T22:08:28.012-08:00</updated><title type='text'>How to Refresh Sync from Client</title><content type='html'>Recently I found that when doing “Refresh from Client” with large volume of data, the Funambol sever will close the connection after the first batch of contacts is sent from the client and the server sends back a status messages. So, only the first batch of contacts is added to the server.&lt;br /&gt;&lt;br /&gt;When doing similar operation with Funambol Client plug-in for Outlook, things seem to be all right. Checking the detailed log of the plug-in, I found the sync package is with Replace commands rather than Add commands. This looks strange and inconsistent:&lt;br /&gt;1.    When doing “Refresh from Server”, the server send Add commands, and the client will delete local data first before adding records from server.&lt;br /&gt;2.    When doing slow sync, the server is working fine with multiple messages of a sync package containing Add commands from client.&lt;br /&gt;&lt;br /&gt;I would suspect that the Funambol server might have a bug in dealing with multiple messages of a sync package during the operation of “Refresh from Client”. And the Funambol add-in for Outlook was just made a workaround of using replace commands instead.&lt;br /&gt;&lt;br /&gt;The workaround in SyncML.NET is as following:&lt;br /&gt;1.    Refresh from Client with an empty dataset, in order to delete all on the server.&lt;br /&gt;2.    Slow sync so all local records will be added to the server.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/660190616143602585-5208684070110029590?l=syncmldotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://syncmldotnet.blogspot.com/feeds/5208684070110029590/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=660190616143602585&amp;postID=5208684070110029590' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/660190616143602585/posts/default/5208684070110029590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/660190616143602585/posts/default/5208684070110029590'/><link rel='alternate' type='text/html' href='http://syncmldotnet.blogspot.com/2009/11/how-to-refresh-sync-from-client.html' title='How to Refresh Sync from Client'/><author><name>Zijian A</name><uri>http://www.blogger.com/profile/13275514659971793139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://bp2.blogger.com/_0Ec3HWOLHjk/R9XoY8OcttI/AAAAAAAAAEI/mFE9cOBwjAQ/S220/yoda.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-660190616143602585.post-2492980123211219120</id><published>2009-09-25T06:01:00.000-07:00</published><updated>2009-09-25T06:13:48.376-07:00</updated><title type='text'>Funambol Mozilla Plugin 0.5 can not sync home address</title><content type='html'>During testing, I found that Funambol Mozilla Plugin 0.5 can not sync home address, while the one for Outlook is OK.&lt;br /&gt;&lt;br /&gt;Bug tracker at https://sourceforge.net/tracker/index.php?func=detail&amp;amp;aid=1803678&amp;amp;group_id=149326&amp;amp;atid=777037&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/660190616143602585-2492980123211219120?l=syncmldotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://syncmldotnet.blogspot.com/feeds/2492980123211219120/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=660190616143602585&amp;postID=2492980123211219120' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/660190616143602585/posts/default/2492980123211219120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/660190616143602585/posts/default/2492980123211219120'/><link rel='alternate' type='text/html' href='http://syncmldotnet.blogspot.com/2009/09/funambol-mozilla-plugin-05-can-not-sync.html' title='Funambol Mozilla Plugin 0.5 can not sync home address'/><author><name>Zijian A</name><uri>http://www.blogger.com/profile/13275514659971793139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://bp2.blogger.com/_0Ec3HWOLHjk/R9XoY8OcttI/AAAAAAAAAEI/mFE9cOBwjAQ/S220/yoda.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-660190616143602585.post-1724259857738212194</id><published>2009-09-22T04:54:00.000-07:00</published><updated>2009-09-22T05:49:52.244-07:00</updated><title type='text'>How SyncML Clients handle line breaks</title><content type='html'>During the development of SyncML .NET, I tested with SyncML.NET for Open Contacts, Funambol Client for MS Outlook, and Funambol Client for Mozilla Thunderbird, occasionally with some Web base address book programs.&lt;br /&gt;&lt;br /&gt;In an address book program, generally there's a notes field which could store multiple lines. The street field may or may not support multiple lines, while Open Contacts and Outlook support.&lt;br /&gt;&lt;br /&gt;Test 1:&lt;br /&gt;1. In OC, a street field has multiple lines. When sending the field to Funambol server, I could see the Base64 encoded SIF-C data preserved the line breaks.&lt;br /&gt;2. Sync the data to MS Outlook with the Funambol client, the line breaks in Outlook became spaces.&lt;br /&gt;3. Replacing OC data with the Server data showed that the line breaks were converted to spaces, thus the street filed in OC had only one line.&lt;br /&gt;&lt;br /&gt;Test 2:&lt;br /&gt;1. In Outlook, the street field has multiple lines. Sync the data to the server. The data encapsulated in vCard did has proper line breaks coded as "=0D=0A"&lt;br /&gt;2. Sync the data from the server to OC, the street field in OC had multiple lines of text, but with an extra heading space on each line.&lt;br /&gt;3. Sync the data from the server to Thunderbird, the street field become single line, and the line breaks were replaced with commas and spaces.&lt;br /&gt;&lt;br /&gt;Test 3:&lt;br /&gt;1. In Outlook, the street field has multiple lines. Sync the data to the server.&lt;br /&gt;2. Replace the data of Outlook with data from the server, the street field in Outlook had  multiple lines of text, but with an extra heading space on each line.&lt;br /&gt;&lt;br /&gt;Test 4:&lt;br /&gt;1. In OC, the street field has multiple lines. Sync the data to the server.&lt;br /&gt;2. Replace the data of OC with data from the server, the street field in OC had single line.&lt;br /&gt;&lt;br /&gt;Apparently, the vCard store and the Sifc store of Funambol server v8.0 have some bugs or features when handling multiple lines of the street field.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/660190616143602585-1724259857738212194?l=syncmldotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://syncmldotnet.blogspot.com/feeds/1724259857738212194/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=660190616143602585&amp;postID=1724259857738212194' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/660190616143602585/posts/default/1724259857738212194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/660190616143602585/posts/default/1724259857738212194'/><link rel='alternate' type='text/html' href='http://syncmldotnet.blogspot.com/2009/09/how-syncml-clients-handle-line-breaks.html' title='How SyncML Clients handle line breaks'/><author><name>Zijian A</name><uri>http://www.blogger.com/profile/13275514659971793139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://bp2.blogger.com/_0Ec3HWOLHjk/R9XoY8OcttI/AAAAAAAAAEI/mFE9cOBwjAQ/S220/yoda.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-660190616143602585.post-6089592293900805114</id><published>2008-05-19T16:47:00.000-07:00</published><updated>2008-05-19T17:48:01.415-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Funambol'/><category scheme='http://www.blogger.com/atom/ns#' term='SyncML'/><category scheme='http://www.blogger.com/atom/ns#' term='address book'/><title type='text'>Testing upon Public SyncML Services</title><content type='html'>During the development of &lt;a href="https://sourceforge.net/projects/syncmldotnet/"&gt;SyncMLDotNet&lt;/a&gt; before &lt;a href="http://www.fonlow.com/opencontacts/SyncMLClient/"&gt;SyncML Client for  Open Contacts&lt;/a&gt; v1.0 Beta, I tested the SyncMLDotNet upon a locally installed  Funambol server v6.x, and later ScheduleWorld.com which was based on Funambol  v5.x.&lt;br /&gt;&lt;br /&gt;After SyncML Client for Open Contacts v1.0.1 was released, I thought it would be  good see whether the SyncML client can talk well with other public SyncML  Services. As expected, my.funambol.com is working quite good. However, testing  upon the following SyncML services, disclosed that many of them were quite  buggy, not conforming basic requirements of SyncML specifications, or at lease,  some of these service were not friendly to workstation based sync clients.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;sync.zyb.com ( ZYB HTTP SyncML Server v3.8.4)&lt;/li&gt;&lt;li&gt;sync.goosync.com (SyncWiseEnterprise v3.0.3 Beta)&lt;/li&gt;&lt;li&gt;sync.o-sync.com (not reviewed in returned message)&lt;br /&gt; &lt;/li&gt;&lt;/ul&gt; As Funambol's Outlook Plug-in based on the Funambol's Client API Native C++ is  considered as being mature, I used the plug-in to do cross-checking which  revealed the same problems.&lt;br /&gt;&lt;br /&gt;For more detail, please read the &lt;a href="https://sourceforge.net/tracker/index.php?func=detail&amp;amp;aid=1966719&amp;amp;group_id=224863&amp;amp;atid=1063289"&gt; bug report&lt;/a&gt;, as Blogger.com could not handle html/xml tags properly.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Summary&lt;/span&gt;&lt;br /&gt;While these 3 web services focused on mobile devices, the implementations were  buggy to workstation based sync clients. I would guess that mobile devices  require less communication overheads and less validations, this was why the  programmers of these SyncML servers could not find the bugs.&lt;br /&gt;&lt;br /&gt;So, I consider that Funambol is the best implementation of SyncML server in the  marketing regarding to conformation to SyncML, reliability and price.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/660190616143602585-6089592293900805114?l=syncmldotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://syncmldotnet.blogspot.com/feeds/6089592293900805114/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=660190616143602585&amp;postID=6089592293900805114' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/660190616143602585/posts/default/6089592293900805114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/660190616143602585/posts/default/6089592293900805114'/><link rel='alternate' type='text/html' href='http://syncmldotnet.blogspot.com/2008/05/testing-upon-public-syncml-services.html' title='Testing upon Public SyncML Services'/><author><name>Zijian A</name><uri>http://www.blogger.com/profile/13275514659971793139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://bp2.blogger.com/_0Ec3HWOLHjk/R9XoY8OcttI/AAAAAAAAAEI/mFE9cOBwjAQ/S220/yoda.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-660190616143602585.post-1659589366241557609</id><published>2008-04-30T13:48:00.000-07:00</published><updated>2008-04-30T14:02:50.424-07:00</updated><title type='text'>Compatibility between SIF-C, MS Outlook and Open Contacts</title><content type='html'>It is good to maximize the number of fields of contact data between devices. While SIF-C is the medium of exchanging info, the following fields defined in SIF-C were not implemented in "SifcToChangeLogXml.xsl" though it is not difficult to add them:&lt;br /&gt;&lt;br /&gt;CallbackTelephoneNumber, CarTelephoneNumber, Categories, Companies, ComputerNetworkName, Importance, Initials, Language, Mileage, OrganizationalIDNumber, Revision, RadioTelephoneNumber, Sensitivity, Subject, TelexNumber, Timezone, Uid, YomiCompanyName, YomiFirstName&lt;br /&gt;&lt;br /&gt;The Funambol Plug-in for MS Outlook needs to sync IM Address, and the plug-in add element "IMAddress" to the SIF-C package. Obviously SIF-C allows custom extension. So, "SifcToChangeLogXml.xsl" includes "IMAddress" to map to "Personal/IM" in Open Contacts.&lt;br /&gt;&lt;br /&gt;The follow screenshot from testing shows that Open Contacts along with the sync client can handle almost every visual fields of MS Outlook Contacts.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_0Ec3HWOLHjk/SBjdg1_IX7I/AAAAAAAAAEs/NnfW9PrE25Y/s1600-h/FullFieldsSicf.gif"&gt;&lt;img style="cursor: pointer; width: 182px; height: 467px;" src="http://bp1.blogger.com/_0Ec3HWOLHjk/SBjdg1_IX7I/AAAAAAAAAEs/NnfW9PrE25Y/s320/FullFieldsSicf.gif" alt="" id="BLOGGER_PHOTO_ID_5195145726489288626" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/660190616143602585-1659589366241557609?l=syncmldotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://syncmldotnet.blogspot.com/feeds/1659589366241557609/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=660190616143602585&amp;postID=1659589366241557609' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/660190616143602585/posts/default/1659589366241557609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/660190616143602585/posts/default/1659589366241557609'/><link rel='alternate' type='text/html' href='http://syncmldotnet.blogspot.com/2008/04/compatibility-between-sif-c-ms-outlook.html' title='Compatibility between SIF-C, MS Outlook and Open Contacts'/><author><name>Zijian A</name><uri>http://www.blogger.com/profile/13275514659971793139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://bp2.blogger.com/_0Ec3HWOLHjk/R9XoY8OcttI/AAAAAAAAAEI/mFE9cOBwjAQ/S220/yoda.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_0Ec3HWOLHjk/SBjdg1_IX7I/AAAAAAAAAEs/NnfW9PrE25Y/s72-c/FullFieldsSicf.gif' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-660190616143602585.post-5716235753964238112</id><published>2008-04-26T18:15:00.000-07:00</published><updated>2008-05-19T16:44:23.581-07:00</updated><title type='text'>Compatibility between address book programs for synchronization</title><content type='html'>Different address book programs have different way of maintaining name fields. For example, MS Outlook, Open Contacts and Plaxo have surname, given name, middle name and full name, while Mozilla Thunderbird maintains only surname, given name and middle name.&lt;br /&gt;&lt;br /&gt;In addition, Open Contacts uses the combination of surname, given name , middle name and full name to uniquely identify a contact without standalone local ID, while MS outlook allow replication of such.&lt;br /&gt;&lt;br /&gt;Most existing address book programs were designed to store people only. MS Outlook may handle organizational contacts through hacking -- those contacts without surname and given name is considered as organizations. Open Contacts clearly distinguish between people contacts and organizational contacts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/660190616143602585-5716235753964238112?l=syncmldotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://syncmldotnet.blogspot.com/feeds/5716235753964238112/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=660190616143602585&amp;postID=5716235753964238112' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/660190616143602585/posts/default/5716235753964238112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/660190616143602585/posts/default/5716235753964238112'/><link rel='alternate' type='text/html' href='http://syncmldotnet.blogspot.com/2008/04/compatibility-between-address-book.html' title='Compatibility between address book programs for synchronization'/><author><name>Zijian A</name><uri>http://www.blogger.com/profile/13275514659971793139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://bp2.blogger.com/_0Ec3HWOLHjk/R9XoY8OcttI/AAAAAAAAAEI/mFE9cOBwjAQ/S220/yoda.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-660190616143602585.post-6099092259510592325</id><published>2008-04-23T23:25:00.000-07:00</published><updated>2008-04-23T23:30:49.752-07:00</updated><title type='text'>What SyncMLDotNet Will Not Do</title><content type='html'>&lt;a href="https://www.mesh.com/Welcome/Welcome.aspx"&gt;Live Mesh&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/FeedSync"&gt;FeedSync&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/660190616143602585-6099092259510592325?l=syncmldotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://syncmldotnet.blogspot.com/feeds/6099092259510592325/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=660190616143602585&amp;postID=6099092259510592325' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/660190616143602585/posts/default/6099092259510592325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/660190616143602585/posts/default/6099092259510592325'/><link rel='alternate' type='text/html' href='http://syncmldotnet.blogspot.com/2008/04/what-syncmldotnet-will-not-do.html' title='What SyncMLDotNet Will Not Do'/><author><name>Zijian A</name><uri>http://www.blogger.com/profile/13275514659971793139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://bp2.blogger.com/_0Ec3HWOLHjk/R9XoY8OcttI/AAAAAAAAAEI/mFE9cOBwjAQ/S220/yoda.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-660190616143602585.post-6820256899623578283</id><published>2008-04-23T21:36:00.000-07:00</published><updated>2008-04-23T21:40:46.371-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sync'/><category scheme='http://www.blogger.com/atom/ns#' term='Plaxo'/><title type='text'>The development process of Plaxo sync client</title><content type='html'>I have been thinking of sync functions for long time, almost since the day 1 of Open Contacts project. I even contacted an European company which is specialized in developing sync programs for mobile devices.&lt;br /&gt;&lt;br /&gt;Though I know it is not realistic for an one-man band to develop a decent quality sync solution, Open Contacts maintained timestamps for contact records since early version. Thus, the foundation of generating change log info was there.&lt;br /&gt;&lt;br /&gt;Around half year, I found Plaxo had upgraded the service quite a lot, less disturbing, more powerful and convenient functions. In particular, the documentation for 3rd party developers is quite good. So I decided to give it a go to develop a sync client for Plaxo.&lt;br /&gt;&lt;br /&gt;First, I upgraded Open Contacts to make it support timestamps for every data fields. This was found not necessary, as current sync solutions like Plaxo and SyncML would expected timestamps at record level, not field elvel. I would like to list some reverted attempts:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Used Delphi develop sync client. However, Delphi is short of Web functions and regular expression. Later I used C#.&lt;/li&gt;&lt;li&gt;The mapping for sync client used static Outlook fields to static Plaxo fields, and Open Contacts mapped static Outlook fields with dynamic fields. Later I used mapping between dynamic fields and static Plaxo fields, and Change Log XML used such format as well.&lt;/li&gt;&lt;/ol&gt;In last November, I released the first beta of OCPlaxoSync. The internal test results looked positive, and I am waiting for public response.&lt;br /&gt;&lt;br /&gt;I am satisfied by the progress. I had thought developing sync solution is difficult, even if for developing the sync client only. I worked one to two hours a day on this project for around 40 days, building components one by one.&lt;br /&gt;&lt;br /&gt;I used the following approach:&lt;br /&gt;1. Build classes to represent Plaxo commands first, and use regular expression to parse command texts.&lt;br /&gt;2. Build functions to convert XML to plaxo command objects.&lt;br /&gt;3. Build web connections and Facade class, and test commands one by one online.&lt;br /&gt;&lt;br /&gt;Such approach gave me self-testing framework, and I could understand and analyze Plaxo protocols gradually, while the progress of development could be made at the same time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/660190616143602585-6820256899623578283?l=syncmldotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://syncmldotnet.blogspot.com/feeds/6820256899623578283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=660190616143602585&amp;postID=6820256899623578283' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/660190616143602585/posts/default/6820256899623578283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/660190616143602585/posts/default/6820256899623578283'/><link rel='alternate' type='text/html' href='http://syncmldotnet.blogspot.com/2008/04/development-process-of-plaxo-sync.html' title='The development process of Plaxo sync client'/><author><name>Zijian A</name><uri>http://www.blogger.com/profile/13275514659971793139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://bp2.blogger.com/_0Ec3HWOLHjk/R9XoY8OcttI/AAAAAAAAAEI/mFE9cOBwjAQ/S220/yoda.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-660190616143602585.post-1337726730907398335</id><published>2008-04-23T21:29:00.000-07:00</published><updated>2008-04-23T21:30:32.894-07:00</updated><title type='text'>References to SyncML Specifications</title><content type='html'>The development was initially base on SyncML 1.1 Specifications. However, the schema of CTCap of Devinf elements is doggy. It is not consistent with all other elements, obviously a heritage of old school indent text tags, not friendly to XPath. Parsing CTCap 1.1 almost drove me crazy since it was not worthy to develop a complicated parser for this elements while all others can be parsed using XPath. Thanks God that SyncML 1.2 had updated the schema, now the schema of CTCap is quite healthy.&lt;br /&gt;&lt;br /&gt;Nevertheless, I refactored the classes to make them conform with SyncML 1.2, now to SyncML 1.2.1.&lt;br /&gt;&lt;br /&gt;The development is for PC base address book, thus, many of the specifications for mobile devices are not relevant. The following specifications were heavily used in the developments.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;OMA-TS-DS_DevInf-V1_2-20060710-A.pdf (Done)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;OMA-TS-SyncML_HTTPBinding-V1_2-20070221-A.pdf (Done)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;OMA-TS-SyncML_MetaInfo-V1_2-20070221-A.pdf (Done)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;OMA-TS-SyncML_RepPro-V1_2-20070221-A.pdf (schema, Done)&lt;/li&gt;&lt;li&gt;OMA-TS-DM_RepPro-V1_2-20070209-A.pdf (with examples, Done)&lt;/li&gt;&lt;li&gt;OMA-TS-DM_Protocol-V1_2-20070209-A.pdf&lt;/li&gt;&lt;li&gt;OMA-TS-DM_Security-V1_2-20070209-A.pdf&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;DS Protocol Version 1.2.1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;OMA-TS-DS_Protocol-V1_2_1-20070810-A&lt;/span&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;This specification defines a synchronization protocol between an OMA Data Synchronization client and server in the form of message sequence charts. It specifies how to use the SyncML Representation protocol so that interoperating client and server solutions are accomplished.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SyncML Representation Protocol, Data Synchronization Usage Version 1.2.1&lt;/span&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;OMA-TS-DS_DataSyncRep-V1_2_1-20070810-A&lt;/span&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;OMA Data Synchronization (OMA DS) is a specification for a common data synchronization framework and XML-based format, or representation protocol, for synchronizing data on networked devices. OMA Data Synchronization is designed for use between mobile devices that are intermittently connected to the network and network services that are continuously available on the network. OMA Data Synchronization can also be used for peer-to-peer data synchronization. OMA Data Synchronization is specifically designed to handle the case where the network services and the device store the data they are synchronizing in different formats or use different software systems.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SyncML Representation Protocol Version 1.2.1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;OMA-SyncML-RepPro-V1_2_1-20070813-A&lt;/span&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;This document specifies the common XML syntax and semantics used by all SyncML protocols.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;OMA Device Management Representation Protocol Version 1.2&lt;/span&gt; (1.2.1 not yet available)&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;OMA-TS-DM_RepPro-V1_2-20070209-A&lt;/span&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;This document covers the Device Management usage of the SyncML Representation Protocol.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;There are some elements not used in the OCSyncML projects:&lt;br /&gt;1. Memory management.&lt;br /&gt;2. Final&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/660190616143602585-1337726730907398335?l=syncmldotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://syncmldotnet.blogspot.com/feeds/1337726730907398335/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=660190616143602585&amp;postID=1337726730907398335' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/660190616143602585/posts/default/1337726730907398335'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/660190616143602585/posts/default/1337726730907398335'/><link rel='alternate' type='text/html' href='http://syncmldotnet.blogspot.com/2008/04/references-to-syncml-specifications.html' title='References to SyncML Specifications'/><author><name>Zijian A</name><uri>http://www.blogger.com/profile/13275514659971793139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://bp2.blogger.com/_0Ec3HWOLHjk/R9XoY8OcttI/AAAAAAAAAEI/mFE9cOBwjAQ/S220/yoda.gif'/></author><thr:total>0</thr:total></entry></feed>
