¶ GNN北京之行

2006-04-09 15:00

1. GNN北京交流

预谋:
偶像George V. Neville-Neil要来北京了 嗬嗬,作为FreeBSD中国的著名人士, delphij 也是大陆唯一的几个 FreeBSD commiter 之一, 但是活动的组织比不了专业人士,要不是我乃其同事,还无法提前 8小时获知,有GNN 的现场交流之事儿!
教唆:
与George Neville Neil畅谈FreeBSD 嗬嗬,自由软件活动专家 Bill Xu 的联系和鼓动下才有的正式活动

1.1. 现场

流水:
  • 14:30 ~ 15:45 delphij 的有关FreeBSD组织和发布工程的科普介绍
  • 15:45 ~ 15:50 休息
  • 15:50 ~ 16:20 GNN 介绍FreeBSD的最近新闻
  • 17:00 ~~ FB 招待 (俺没有掺合)

1.2. 照片

    • 足够强壮才可能坚持长期的伏案编程哪!

    • 呜乎哀哉果然是Mac 的爱好者,毕竟是FreeBSD的底子,看来从小使用好的OS也是成为伟大程序员的捷径之一哪

    • 嗯嗯,牛人也会装样儿的,GNN面对满屏的汉字也只能装模作样的看一看,从间杂的单词猜主题了,不过Apple 电脑里居然有汉字码表,是黒体的,GNN还找到了“浪”字,确认了一下子意义,不过,搜索的速度太慢,整整一刻钟才发现一字

    • 大家临时抱佛买来的书,GNN写的,一是中译版本(很是令GNN惊喜了一下子),一为原版(delphij 的典藏)

    • 认真的签名……不过字很烂了…… =)

    • 从左到右, delphij、GNN、Bill Xu

    • 这表情很专业哪,看来没有少来中国,知道逃不了 China food 的巡礼

1.3. 感想

FreeBSD:
  1. 现在已经有> 6千万行代码了! core team 也转变为授权团队,来管理N多的开发团队;
  2. SCTP,IBM 刚刚整出来的全新协议,FreeBSD 就进行了良好的支持!呜乎哀哉!能不信心倍增邪?!
  3. Xen,跨平台的虚拟机服务!以后可以在任何系统中安装任何系统了……
E文:
  • “Slient!……” GNN 在提问阶段的感慨……
  • 咳咳咳,面对现在大多数计算机技术掌握在欧美国家手中的现实, E文不熟,实在会浪费很多向大师讨教的机会哪……
    • 什么时候才可以出现面对热情的小老外,我们感慨一下子“好安静……”的情景?!

  • Bill Xu 不愧是自由软件专家,从年龄切入,迅速将话题调动到教授经验上来
  • “Read best code!” 是GNN 的感慨和经验之一,也是我所理解的Pythonic一面! 咔咔咔!真理到哪里都是相通的哪…………

1.4. 分享

delphij:
  1. freebsd-01relEngineer.mp3 42.0M 55' FreeBSD 发布工程概要
  2. PPT 展示
GNN:
  1. freebsd-02GNN.mp3
  2. FreeBSDProjects.pdf PPT展示文件

  • t2t渲染:: 2010-10-09 02:21:40
  • 动力源自::txt2tags

OpenSource ,news ,FreeBSD


§ 写于: Sun, 09 Apr 2006 | 永久链接;源文: rdf ,rss ,raw | 分类: /oss/FreeBSD §
[MailMe] [Print] Creative Commons License

作品Zoom.Quiet创作,采用知识共享署名-相同方式共享 2.5 中国大陆许可协议进行许可。 基于zoomquiet.org上的作品创作。

¶ autoDetectXMLEncoding.py

2006-04-04 23:23

"""http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/52257
#tags utility,py4zh
Title: Auto-detect XML encoding
Submitter: Paul Prescod (other recipes)
Last Updated: 2001/03/14
Version no: 1.0
Category: XML
推荐:: 发件人: 清风 	
回复: python-chinese@lists.python.cn
收件人: python-chinese@lists.python.cn
日期: 2006-1-18 上午1:27
主题: Re: [python-chinese] 如何取得一个文本的编码格式?
"""
import codecs, encodings

"""Caller will hand this library a buffer and ask it to either convert
it or auto-detect the type."""

# None represents a potentially variable byte. "##" in the XML spec... 
autodetect_dict={ # bytepattern     : ("name",              
                (0x00, 0x00, 0xFE, 0xFF) : ("ucs4_be"),        
                (0xFF, 0xFE, 0x00, 0x00) : ("ucs4_le"),
                (0xFE, 0xFF, None, None) : ("utf_16_be"), 
                (0xFF, 0xFE, None, None) : ("utf_16_le"), 
                (0x00, 0x3C, 0x00, 0x3F) : ("utf_16_be"),
                (0x3C, 0x00, 0x3F, 0x00) : ("utf_16_le"),
                (0x3C, 0x3F, 0x78, 0x6D): ("utf_8"),
                (0x4C, 0x6F, 0xA7, 0x94): ("EBCDIC")
                 }

def autoDetectXMLEncoding(buffer):
    """ buffer -> encoding_name
    The buffer should be at least 4 bytes long.
        Returns None if encoding cannot be detected.
        Note that encoding_name might not have an installed
        decoder (e.g. EBCDIC)
    """
    # a more efficient implementation would not decode the whole
    # buffer at once but otherwise we'd have to decode a character at
    # a time looking for the quote character...that's a pain

    encoding = "utf_8" # according to the XML spec, this is the default
                          # this code successively tries to refine the default
                          # whenever it fails to refine, it falls back to 
                          # the last place encoding was set.
    bytes = (byte1, byte2, byte3, byte4) = tuple(map(ord, buffer[0:4]))
    enc_info = autodetect_dict.get(bytes, None)

    if not enc_info: # try autodetection again removing potentially 
                     # variable bytes
        bytes = (byte1, byte2, None, None)
        enc_info = autodetect_dict.get(bytes)

        
    if enc_info:
        encoding = enc_info # we've got a guess... these are
                            #the new defaults

        # try to find a more precise encoding using xml declaration
        secret_decoder_ring = codecs.lookup(encoding)[1]
        (decoded,length) = secret_decoder_ring(buffer) 
        first_line = decoded.split("\n")[0]
        if first_line and first_line.startswith(u"-1:
                    quote_char,rest=(first_line[quote_pos],
                                                first_line[quote_pos+1:])
                    encoding=rest[:rest.find(quote_char)]

    return encoding


§ 写于: Tue, 04 Apr 2006 | 永久链接;源文: rdf ,rss ,raw | 分类: /utility/py4zh §
[MailMe] [Print] Creative Commons License

作品Zoom.Quiet创作,采用知识共享署名-相同方式共享 2.5 中国大陆许可协议进行许可。 基于zoomquiet.org上的作品创作。