Wednesday 22 December 2010

去中心化的个人安全电子交易标准和普及

随着维基泄密的账户最近被关闭,我对现行世界的商业秩序有了一个更清晰的认识。
我在设想,一个去中心化的个人安全电子交易,是否能够保证维基泄密的账户安全呢?有可能不能。但是这样标准的目标,应该能够让该帐号的所有相关交易记录,包括银行的关闭行为,都将立即作为电子文件送达账户所有人,并且是具有法律效力的证据。
对于这样的标准及其应用的背景,我是这样进行武断分析的。
电子贸易在商业企业和政府的交易中已经是一个事实。合同,交付,付款,都实现了无纸化,并且有基础设施保障安全,有系统对电子记录进行管理,有商业智能软件对数据进行分析,让政界和商界大佬们对世界秩序进行操作和操纵。
与此相比,电子贸易在个人应用中的标准化程度和普及程度,十分微弱。电子合同充满了律师为保护商业实体写作的对法律条款的滥用,一对一的对服务内容有清晰衡量和对收费金额有准确计算的合同,几乎没有。发货单,发票基本采用纸质方式,个人难于对这些信息进行管理和分析。付款可能是电子化程度最高的环节,但个人对付款进行三方匹配,财务计划和分析,等处理,则十分困难。
造成这种现象,是因为电子交易现有的主要基础设施和系统是以商业企业为中心进行设计和实施的。并非没有支撑个人电子贸易的标准和基本软件,但这些标准和软件未能和商业系统成功实现对接,也就不能为个人对这些信息进行有效管理和分析。完全以个人为服务中心的开放式非盈利实体,推动这些标准及其应用在商业,医疗,政务等诸多领域的普及,目前还太少,甚至没有。这可能是一个重要原因。
如何发起和成立这样的电子机构呢,大致的步骤是,
  1. 开发一个网站,让人能够注册和发言。
  2. 联系一些软件开发组织,比如gnu cash, intuite,check free,整合web service和个人客户端软件。
  3. 完善标准接口,并向医疗,政府,税收,商业机构等进行推荐。
  4. 将该机构整合成一个开放式组织。
期望看到有人能去行动,实现这样的想法。

如何把Outlook的Global Address Book保存到本地文件

公司内部网络中,outlook可能并不提供让员工这样做的工具。数据库Access提供的工具有时候也会出错,Visual Basic for Application有时候是比较现实的一个工具。
从Outlook的菜单中选择Tools-->Macro-->Visual Basic Editor,拷贝下面的代码并运行就可以了。警告: 此代码运行的时候会让你指定路径和保存文件名,缺省c:\Temp\Outlook Global Address Book.txt。已经存在的同路径同名文件将被覆盖!没有警告消息!!
 Sub extractglobaladdresstofile()  
   Dim gal As Outlook.AddressList  
   Dim i, icount As Integer  
   Dim exuser As Outlook.ExchangeUser  
   Dim strFileName As String  
   Dim fileHandle As Long  
   Dim line As String  
   strFileName = InputBox("Input file name. Existed file will be overwritten. Be careful!", "Data File of Global Address", "C:\Temp\Outlook Global Address Book.txt")  
   fileHandle = FreeFile()  
   icount = InputBox("Input the number of records you want to export. 0 means all instead of nothing.", "number of records", 100)  
   Open strFileName For Output As fileHandle  
   On Error GoTo 0  
   Set gal = Application.Session.AddressLists.Item("Global Address List")  
   If Not IsNull(gal) Then  
    i = 0  
    For Each ola In gal.AddressEntries  
     If ola.AddressEntryUserType = olExchangeUserAddressEntry Then  
      line = ""  
      Set exuser = ola.GetExchangeUser  
 '     If Not (IsEmpty(exuser.Alias) Or IsNull(exuser.Alias)) Then  
       Print #fileHandle, exuser.FirstName, vbTab, exuser.LastName, vbTab, exuser.JobTitle, vbTab, exuser.CompanyName, vbTab, _  
          exuser.Department, vbTab, exuser.OfficeLocation, vbTab, exuser.StreetAddress, vbTab, _  
          exuser.City, vbTab, exuser.StateOrProvince, vbTab, exuser.PostalCode, vbTab, _  
          exuser.BusinessTelephoneNumber, vbTab, exuser.MobileTelephoneNumber, vbTab, CStr(exuser.AddressEntryUserType), vbTab, _  
          exuser.PrimarySmtpAddress, vbTab, exuser.AssistantName, vbTab, exuser.Alias  
       i = i + 1  
       If i >= icount And icount <> 0 Then  
        Exit For  
       End If  
 '     End If  
     End If  
    Next ola  
   End If  
   Close fileHandle  
   MsgBox (CStr(icount) & " of " & CStr(gal.AddressEntries.count) & " contacts saved in " & strFileName & ".")  
 End Sub  

Monday 13 December 2010

个人需要商业级信息交换标准和应用软件

曾经想过不再写这个博客,但是翠花网站,由于各种原因不得不停下来。我觉得我也并不是在说废话,浪费诸君的时间,所以勇敢地重开吧。

今日企业和各种组织,在信息化浪潮中,实施了各种商业应用,包括ERP,Supply Chain,商业智能,客户关系管理,等等。并且各个部门能够协同工作,利用系统和各种接口整合的各种信息,商业流程,直接完成商业交易。

例如供应商送达的发票,企业能够通过EDI直接导入到系统,并在系统中确认接收,接受信息可以实时送到对方系统,并更新对方系统之状态。

而对于个人来说,我们只能借助电子发票,或者国外的check-free网站,国内的付费通网站,银行电子支付,等来管理我们的电子交易。由于这些系统一般由商业公司或者政府机构领导商业公司设计和实施,缺乏公众参与进行概念设计,运营监管,以公司和政府利益为中心,直至今日的技术进步,也未能帮助个人更好的管理其商业信息。这次Paypal,Visa,Master等公司对阿桑奇关闭账户,也凸显现行个人商业信息流通标准缺乏,造成服务商垄断的后果。

未来的个人商业信息流通基础设施,必须由开放的非盈利组织制定标准,能够集成电子发票,电子支付,报税等应用。整个基础设施及其部件应该具有如下特征,

  1. 标准开放,犹如企业界使用EBPP一样,任何个人和公司都可以使用这些标准开发和使用各种服务。
  2. 商业公司使用这些标准向个人提供电子发票,送货单,购买目录等等。
  3. 任何可靠的信息传送设计商业公司,独立公证机构,和个人的计算机软件代理,这可以是桌面应用程序,网站,移动应用程序,或者系统。这里的公证机构可以是商业公司,非营利团体,或者政府机构,甚至可信任的个人拥有的系统。
  4. 商业公司和个人关系的建立依赖于双方互相交换公钥。公证机构同时保留双方的私钥拷贝,商业公司和个人则保留公证机构对于对方私钥的签名。这样的关系成为互信关系
  5. 每个互信关系所使用的密钥对必须是不同的。
  6. 信息的传送必须基于互信关系。
  7. 每次的传送都必须在独立公证机构保留电子备份。
  8. 独立公证机构负有法定的义务在法律纠纷时提供交易证据。
  9. 个人有权选择并更换独立公证机构。
  10. 商业公司或者独立公证机构只能选择是否支持某个标准,不能选择只支持某个公司。

这些原则的建立和贯彻,在我看来,没有有创新能力的开放非营利组织,是没有办法进行的。如果读者知道世上是否有这样的组织,欢迎告诉我。我乐意加入。我本人也希望能发起这样的组织,筹集一定的款项,建立一些基本的文档,开发原型软件,进而促进这些标准的产生和应用。