置顶随笔

摘要: 只要使用水晶报表就离不开分组统计。可是,当我们分组之后发现分组字段的值并没有按照我们想象中的那么好,按照单个字段值且居中显示。如下步骤能够让分组字段在一个列上只出现一次且居中显示。第一步:加一个运行时总计字段,各个属性如下设置:1.汇总字段:需要分组的列2.汇总类型:计数3.求值:对于每个记录4.重置(组更改时):选择分好的组作用:统计这个组共有多少行记录第二步:添加一个后一个字段在该分组中的计数...阅读全文
posted @ 2009-08-29 17:01 lumnm 阅读(606) 评论(0) 编辑

2012年2月8日

对于计算机专业的童鞋来说,大概对计算机存储单位换转换不算陌生,但是往往有力不从心总是感到迷迷糊糊。原因是不同书本、不同领域对他们的定义不尽相同。比如,计算机网络中1Kb=1000b,而操作系统和计算机组成原理中却用1Kb=1024b,1Mb=1024Kb 。。。,一般来说软件厂商如微软用1024,硬件厂商用1000。
文章:http://news.csdn.net/n/20071030/110069.html(转)
词头加在SI单位(非SI单位也可以使用并通常遵循此用法)之前表示10的整数幂次,譬如k表示10^3=1000,M表示10^6=1,000,000,G则表示10^9=1,000,000,000.   举些例子,1kg=1000g,1km=1000m,1GeV=1,000,000,000eV=1,0

硬盘厂商将1GB定义为1,000,000,000B的常规做法又一次成为了争论的焦点。为了帮助对此有疑惑的网友搞清楚一些容易混淆的背景情况,草成此短文。水平有限,如有错误或是火星之处还请口下留情。
  先明确一个关键问题,什么是G,什么是M?
  G和M是国际单位制(SI)中所规定的词头(prefix)。词头加在SI单位(非SI单位也可以使用并通常遵循此用法)之前表示10的整数幂次,譬如k表示10^3=1000,M表示10^6=1,000,000,G则表示10^9=1,000,000,000.
  举些例子,1kg=1000g,1km=1000m,1GeV=1,000,000,000eV=1,000MeV,都是大家所熟悉的用法。24K金那个K和SI可没关系,24K的K也不是词头,因为后面没有单位。

  回到正题上来,虽然B并不是SI单位,但考虑到SI前缀不应用于2的幂次的明确要求,此处1GB应该是10^9B=1000*10^6B=1000MB。从这个意义上来说,硬盘厂商的标注没有错。

  那么经常听到的1GB=1024MB的说法是怎么来的?这就要从计算机的童年时代说起。

  起先计算机的存储容量低到可怜,几千个Byte算是很奢侈的容量,由于计算机的二进制特性,这个容量通常是2的整数次幂,用起来不方便。IT工程师们发现 2^10=1024与k=10^3接近,相差不过2%。于是就有人偷懒以1kB表示2^10B也就是1024B,初看起来一切都好,2%的差距并不大,时间长了大家也就接受了。

  但问题在于,随着计算机的存储容量依摩尔定律(Moore’s Law)以指数增长,这个差值会越来越大。1kB与1KiB(稍后解释)相差不过2%,1MB与1MiB相差近5%,1GB与1GiB相差7%,1TB和 1TiB足足差了10%。可以预见,随着硬盘容量的进一步扩大,希捷为了这几个字母复杂多变的含义所吃的官司会越来越多。

  时至今日,在IT业中已经形成了如下的这种混乱局面:

 

  CPU厂商计算频率时认为1GHz=10^9Hz,内存厂商认为1GB=2^30B,硬盘/闪存则是1GB=10^9B,微软则坚持认为1GB= 2^30B。通信工程师们认为千兆以太网的位速率是1Gbit/s=10^9bit/s,32bit 33.3MHz的 PCI在一个周期内可以传输4Byte,带宽也就成了133.3MB=133.3*10^6B。更有甚者还有混着用的:1.44MB软盘的容量是奇怪的 1474560B。80柱面*2磁头*18扇区一共是2880个512B的扇区,于是就被叫成了1.44MB。如果我买了一台电脑拥有2.4GHz的 CPU/2GB的内存/320GB的硬盘/双GbE,那么这4个G中,唯独第2个的含义与众不同。

  看来当初的偷懒做法和造成千年虫问题的节约搞法一样愚蠢是么?确实如此。

  为了解决这个混乱的局面,还是有人做过努力。早在1998年SI手册中明确要求SI词头不应用于2的幂次。而同年国际电工委员会(IEC)推出了一套适用于2进制的词头,并且得到了IEEE的批准 (IEEE 1541)——不过这还是一个试用的标准。简单来说就是在SI词头后加"i"。比如说k就成了Ki,M成了Mi,G成了Gi。发音把原来SI词头的第二个音节换成[bi]。譬如Ki念 [kibi],Mi念[mebi],Gi则是[Gibi]等等依此类推。这样,kMG之类的的SI词头回复原来的含义,表示2幂次重任就交给了Ki= 2^10=1024,Mi=2^20=1048576,Gi=2^30=1073741824等等。这么一来,当表述一台电脑是3.15GHz CPU/2GiB内存/320GB硬盘时,G/Gi的含义就不存在歧义。

  很简明易懂的解决方案,然而很不幸似乎买IEC帐的着实不多,目前支持IEC词头的软件屈指可数——可喜的是其中包括Linux核心。更糟糕的是1G= 1024M这种约定俗成的错误观念已经根深蒂固。如果说千年虫问题到2000年就基本告一段落,而kMGTP这几个普普通通的字母带来的混乱,还会持续多久呢?

posted @ 2012-02-08 11:04 lumnm 阅读(2) 评论(0) 编辑

2011年12月12日

第一步:建立对象

Dim ds As DataSet = New DataSet("dsName")
Dim dt1 As DataTable = New DataTable
Dim dt2 As DataTable = New DataTable

第二步:获取数据,重命名Datatable,两个表添加在ds中

dt1 = GetDate1().Copy   //注意复制数据和表结构
dt1.TableName = "dt1"
ds.Tables.Add(dt1)

dt2 = GetDate2().Copy   //注意复制数据和表结构
dt2.TableName = "dt2"
ds.Tables.Add(dt2)

 

posted @ 2011-12-12 14:34 lumnm 阅读(21) 评论(0) 编辑

2011年10月11日

在系统分析阶段,我们采用结构化分析方法得到了由数据流图、数据字典和加工说明等组成的系统的逻辑模型。现在,可根据一些规则从数据流图导出系统初始的模块结构图。

管理信息系统的数据流图通常也可分为两种典型的结构,即变换型结构和事务型结构。变换型结构的数据流图呈一种线性状态,见图6-4-4所示,它所描述的工作可表示为输入、主处理及输出。事务型结构的数据流图则呈束状,见图6-4-5所示,即一束数据流平行流人或流出,可能同时有几个事务要求处理。

图6-4-4 变换型结构的数据流图

图6-4-5    事务型结构的数据流图

这两种典型的结构分别可通过“变换分析”和“事务分析”技术,导出“变换型”和“事务型”初始的模块结构图。这两种方法的思想是首先设计顶层模块,然后自顶向下,逐步细化,最后得到一个满足数据流图所表示的用户要求的系统的模块结构图,即系统的物理模型。

下面分别讨论通过“变换分析”和“事务分析”技术,导出“变换型”和“事务型”初始结构图的技术。

1.变换型数据流图导出初始结构图的方法

因为变换型结构由输入、主处理和输出三部分组成,所以从变换型结构的数据流图导出变换型模块结构图,可分三步进行。

(1) 找出系统的主加工

为了处理方便,先不考虑数据流图中的一些支流,如出错处理等。

通常在数据流图中多股数据流的汇合处往往是系统的主加工。若没有明显的汇合处,则可先确定哪些数据流是逻辑输入和逻辑输出,从而获得主加工。

从物理输入端一步步向系统中间移动,直至到达这样一个数据流,它再不能被作为系统的输入,则其前一个数据流就是系统的逻辑输入,即离物理输入端最远的,但仍可视为是系统输入的那个数据流就是逻辑输入。

用类似方法,从物理输出端一步步向系统中间移动,则离物理输出端最远的,但仍可视为系统输出的那个数据流就是逻辑输出。

逻辑输入和逻辑输出之间的加工就是我们要找的主加工。如图6-4-6所示。

图6-4-6 在数据流图中找系统的主加工

(2) 设计顶层模块和第一层模块

首先在与主加工对应的位置上画出主模块(如图6-4-7所示),主模块的功能就是整个系统要做的工作,主模块又称为主控制模块。主模块是模块结构图的“顶”,现在我们就可按“自顶向下,逐步细化”的思想来画模块结构图顶下的各层了。每一层均需按输入、变换、输出等分支来处理。模块结构图第一层的画法如下:

① 为每一个逻辑输入画一个输入模块,其功能是向主模块提供数据。

② 为每一个逻辑输出画一个输出模块,其功能是把主模块提供的数据输出。

③ 为主处理画一个变换模块,其功能是把逻辑输入变换成逻辑输出。

至此,结构图第一层就完成了。

在作图时应注意主模块与第一层模块之间传送的数据,要与数据流图相对应(如图5-21所示)。

(3) 设计中、下层模块

因为输入模块的功能是向调用它的模块提供数据,所以它自已也需要一个数据来源。此外,输入模块必须向调用模块提供所需的数据,因此它应具有变换功能,能够将输入数据按模块的要求进行变换后,再提交该调用模块。从而,我们为每个输入模块设计两个下层模块,其中一个是输入模块,另一个是变换模块。

同理,也为每个输出模块设计两个下层模块。一个是变换模块,将调用模块所提供的数据变换成输出的形式;另一个是输出模块,将变换后的数据输出。

该过程由顶向下递归进行,直到系统的物理输入端或物理输出端为止(如图6-4-7所示)。每设计出一个新模块,应同时给它起一个能反映模块功能的名字。

运用上述方法,就可获得与数据流图相对应的初始结构图。

图6-4-7 由变换型数据流图导出的初始模块结构图

2.从事务型数据流图导出初始结构图的方法

当数据流图呈现“束状”结构时,应采用事务分析的设计方法。就步骤而言,该方法与变换分析方法大部分类似,主要差别在于由数据流图到模块结构的映射方式不同。

进行事务分析时,通常采用以下四步:

(1) 确定以事务为中心的结构,包括找出事务中心和事务来源。以图6-4-8的典型事务型数据流结构为例进行说明。

图6-4-8 事务型中心数据流图实例

(2) 按功能划分事务,将具备相同功能的事务分为同一类,建立事务模块。

(3) 为每个事务处理模块建立全部的操作层模块。其建立方法与变换分析方法类似,但事务处理模决可以共享某些操作模块。

(4) 若有必要,则为操作层模块定义相应的细节模块,并尽可能使细节模块被多个操作模块共享。

例如,图6-4-8是一个以事务为中心的数据流图,显然,加工“确定事务类型”是它的事务中心,由该数据流图经事务分析所得到的模块结构图如图6-4-9所示。

图6-4-9 事务型模块结构图实例

3.混合结构的分析

在规模较大的实际系统中,其数据流图往往是变换型和事务型的混合结构,如图6-4-10所示。此时可把变换分析和事务分析应用在同一数据流图的不同部分。例如,可以以“变换分析”为主,“事务分析”为辅进行设计。先找出主处理,设计出结构图的上层,然后根据数据流图各部分的结构特点,适当选用“变换分析”或“事务分析”就可得出初始结构图的某个方案。

图6-4-10 变换型和事务型混合结构的数据流图

图6-4-11 变换分析与事务分析的混合使用

如图6-4-11所示,其中第一层是用变换分析得到的,而模块“使b变成d”及下层模块和模块“变d为g” 及下层模块则是采用事务分析得到的。

从数据流图导出初始的模块结构图的方法就介绍到这里。必须指出的是,由于开发人员的素质、经验和个人理解程度不同,采用上述方法导出的初始模块结构图也不是唯一的。事实上,满足系统说明书要求的任何模块结构图都可以作为初始结构图。


posted @ 2011-10-11 10:16 lumnm 阅读(166) 评论(0) 编辑

2011年8月10日

这款软件小巧可爱,用起来很方便,是网易公司研发的一款桌面词典。

包括词典,例句,百科,翻译,单词本和其他功能产品。非常适合学英语的人士,在学习英语的过程中如果遇到生词双击该生词就会弹出该生词的相关解释和音标信息。另外,有道词典专门有个每日英语栏目,这个也很人性化,比如:
近日被郎咸平教授称为中国慈善改革最大推手(pushing hands)的是: A.郭登峰 B.郭美美 C.王军 D.赵丽珍。带着娱乐的性质,我们就会学会推手这个词用英语怎么表达,时间久了 我们肯定会有所收获!

不管你用不用,反正我是用了 

posted @ 2011-08-10 11:35 lumnm 阅读(30) 评论(0) 编辑

2011年8月7日

为了将有道词典中积累的单词导出然后导入到另一款叫91的英语学习软件中,可是从有道词典导出的格式和91英语软件要求导入的格式不同,需要调整后才能导入。为此,换了半天的时间来研究word替换功能,尤其是其中的通配符使用问题。闲话不说上例子:

 

有道导出的格式:

1, statement  ['steitmənt]
n. 声明;陈述,叙述;报表,清单

2, guarantee  [,ɡærən'ti:]
n. 保证书;抵押品;保证;担保;保证人
vt. 保证;担保

3, conversely  ['kɔnvə:sli]
adv. 相反地
conversely: 相反地 | 倒地 | 相反的

4, intelligent  [in'telidʒent]
adj. 智能的;聪明的;理解力强的
intelligent: 理解力强的 | 智能的 | 聪明的

5, adults  
n. 成年人(adult的复数形式)

 

91要求的格式:

statement  ['steitmənt]n. 声明;陈述,叙述;报表,清单

guarantee  [,ɡærən'ti:]n. 保证书;抵押品;保证;担保;保证人 vt. 保证;担保

conversely  ['kɔnvə:sli]adv. 相反地 conversely: 相反地 | 倒地 | 相反的

 intelligent  [in'telidʒent]adj. 智能的;聪明的;理解力强的 intelligent: 理解力强的 | 智能的 | 聪明的

adults   n. 成年人(adult的复数形式)

 

可见有两个地方不同,其一导入要求没有数字需要;其二单词、音标和汉字解释应该是一行上。如果就这5个单词当然手动操作最为快捷,可以我们往往面对的是上千,上万个单词,如果手动去操作这个工作量可想而知,下面就是我实现的步骤:

 

第一步:将导入的word文档内容复制到txt文档然后再复制回word文档中,其目的是为了让所有的特殊字符规范统一。

第二步:消除掉word文档中所有的回车键(包括软回车和硬回车),做法是

                 1、将需要重新编排的文章粘贴进word的编辑窗口,勾选“工具/选项/视图”窗口中的“段落标记”并
                        “确定”。这时,文章不该换行的地方便显示出“左下弯钩”符号。
                  2、全选文档,从“编辑”/“替换”窗口中选“替换”标签。在弹出的窗口中,有两个空白输入框,上方
                          为“查找内容”,下方为“替换为”。
                  3、点右下方的“高级”按钮,在弹出的窗口中点“特殊字符”按钮,这时出现一个下拉菜单。在这个下
                         拉菜单中选“段落标记”,这时在“查找内容”框中就自动输入了一个左上方带有向上小箭头的字母
                        “^p”。
                   4、将光标移到“替换为”窗格,在“特殊字符”菜单中选“不间断空格”,这时在“替换为”框中就自动
                           输入了一个左上方带有向上小箭头的“^s”。
                   5、点取“全部替换”按钮,每行末尾的硬回车就自动去掉了,文字按照窗口内自动换行的规律重新排    
                          列。

结果如下:

1, statement  ['steitmənt]n. 声明;陈述,叙述;报表,清单 2, guarantee  [,ɡærən'ti:]n. 保证书;抵押品;保证;担保;保证人 vt. 保证;担保 3, conversely['kɔnvə:sli]adv. 相反地 conversely: 相反地 | 倒地 | 相反的 4, intelligent  [in'telidʒent]adj. 智能的;聪明的;理解力强的 intelligent: 理解力强的 | 智能的 |聪明的 5, adults   n. 成年人(adult的复数形式)

第四步:使用通配符

我要将数字+跟逗号(1,2,3,。。。)一起替换成回车,这样就和导入的格式一样了。

                  1、打开替换窗口,点击更多窗口,在使用通配符前打钩。

                  2、查找内容中输入[0-9](1位数字用[0-9],两位数[0-9][0-9],。。。),替换为输入^l

                  3、全部替换即可

结果如下:

statement  ['steitmənt]n. 声明;陈述,叙述;报表,清单

guarantee  [,ɡærən'ti:]n. 保证书;抵押品;保证;担保;保证人 vt. 保证;担保

conversely  ['kɔnvə:sli]adv. 相反地 conversely: 相反地 | 倒地 | 相反的

 intelligent  [in'telidʒent]adj. 智能的;聪明的;理解力强的 intelligent: 理解力强的 | 智能的 | 聪明的

adults   n. 成年人(adult的复数形式)

 

通配符详细使用参见:http://www.cnblogs.com/lumnm/archive/2011/08/07/2130234.html


 

 

posted @ 2011-08-07 21:07 lumnm 阅读(43) 评论(0) 编辑
什么是WORD通配符?通配符是配合WORD查找、替换文档内容的有利武器。打开WORD,按CTRL+F,点击“高级”,勾选“使用通配符”,再点击“特殊字符”,就看到以下通配符:

1、“>”:使用该通配符的话,可以用来指定要查找对象的结尾字符串,比方说要是大家记不清所要查找对象的完整内容了,但记得要查找对象的结尾字符串是某个特定的字符,此时大家就可以用“>”来将这个特定字符表达出来,这样word程序就自动往查找以这个特定字符结尾的相关内容了。
实例一:输进“en>”的话,word程序就会在当前文档中查找到以“en”结尾的所有目标对象,例如可能找到“ten”、“pen”、“men”等等。
实例二:在查找对话框中输进“up>”的话,Word查找工具就会在当前文档中查找到以“up”结尾的所有目标对象,例如会找到“setup”、“cup”等等对象。
实例三:如果查找的是汉字目标,我们要注意的是,查找的汉字应该是结尾字词(后面应该有标点符号分隔)。

2、“<”: 它与“>”正好是相对的一组通配符,所以,我们可以用它来查找以某字母开头的对象。
实例:输进“<te”的话,可能查到“ten”、“tea”等。

3、“?”:该通配符是用来代表任意单个字符,当大家不清楚查找目标中指定位置的内容是什么的时候,就可以用“?”来代替,几个“?”就代表几个未知字符。
实例一:比方说,要是大家在查找对话框中输入“?家”的话,word程序就可以找到类似“大家”、“国家”、“全家”之类的目标内容。
实例二:输入“???家”的话,就能找到“保卫国家”之类的内容。
实例三:输入“?土”的话,Word查找工具就可以找到类似“黑土”、“黄土”之类的目标内容。
实例四:输入“??土”的话,就能找到“五色土”之类的内容。

4、“ *”: “*”可以用来代替任意多个字符。
实例:比如我们输入“*国”,就可以找到“大国”、“法兰西国”、“中华人民共和国”等字符串内容。

5、“ @”: 该通配符可以用来查找字符中包含一个以上的前一字符。
实例:例如,如果输入“me@n”的话,Word查找工具就可以找到“men”、“meen”之类的字符内容了。

6、“ []”: 表示查找中括号指定的字符中的任意一个。
实例一:输入“th[iu]g”,就可查找到“thigh”和“thug”。
实例二:输入“[高矮]个”的话,Word查找工具就可以找到“高个”、“矮个”等内容。
实例三:输入“[学硕博]士”,查找到的将会是学士、硕士、博士。
实例四:输入“[大中小]学”可以查找到“大学”、“中学”或“小学”,但不查找“求学”、“开学”等。

7、“ [!]”:用来查找指定字符以外的任意字符。
实例一:输入“m[!a]st”,用来查找“mist”和“most”不会查找“mast”。
实例二:输入“[!a]n”,查到的将会是除an以外的所有可能组合如:in、on等。

8、“ [-]”: 该通配符是用来指定范围内的任意单个字符。
实例:输入“[a-c]mend”的话,Word查找工具就可以找到“amend”、“bmend”、“cmend”等字符内容。

9、“[!-]”:这个通配符的作用就是用来排除指定范围内的任意单个字符。
实例:例如要是大家输入“[!a-c]”的话,word程序就可以找到“good”、“see”、“these”等目标字符,而所有包含字符a、b、c之类的内容都不会在查找结果中出现。

10、“{}”:可以用来指定要查找的字符中包含前一字符的个数“{n}”,表示n次重复前一个字符。
实例一:比如输入“lit{1}le”就是说包含1个前一字符“t”,可以找到“litle”。
实例二:输入“lit{2}le”就是说包含2个前一字符“t”,可以找到“little”。
实例三:输入“te{2}n”,表示查找“teen”而不会查找“ten”。
实例四:输入“of{2}ice”,查找到的将会是office。

11、“()”:表达式查找,尤其用于多个关键词的组合查找。
实例一:在“查找内容”中键入“(America)(China)”,在“替换为”中键入“\2\1”,Word找到“America China”并替换为“China America”。
实例二:输入“<(山河)*(多娇)>”,就表示查找的是所有以“山河”开头并且以“多娇”结尾的字符串。

posted @ 2011-08-07 20:28 lumnm 阅读(103) 评论(0) 编辑

2011年8月3日

摘要: 今天看到王利芬老师的一条微博,与人交往的禁忌:第一,让别人按照自己的想法行事和生活;第二,说话不算数找原因或借口;第三,对别人在困难时求助的淡漠;第四,说好的事情没有下文;第五,背后说不恰当的话或坏话;第六,交往中表现出对他人的轻慢;第七,重要的场合不给人面子。这些都是未来你发展的小陷阱,多了你就走不动路了!阅读全文
posted @ 2011-08-03 20:10 lumnm 阅读(29) 评论(0) 编辑

2011年6月9日

摘要: 三、中断冲突爱好者博墅5sc da(noLbj1.中断冲突是怎么回事?你在查看电脑中的中断时一定会发现,某个IRQ会有多个设备在使用,在Windows中允许一个中断由多个设备共享,但如果一个以上的设备使用相同的中断号同时向中断控制器发送信号,造成中断控制器无法判断,那么最常见的后果便是系统完全锁死,甚至CTRL+ALT+DEL都无法挽回。举个形象的实例,就好比家中有两部电话放在一起,但其振铃声调却完全一样(共享一个中断),如果它们同时响起,那么必然造成接电话时不知该接哪一部的混乱状态。中断冲突往往出现于新装了某个硬件设备,或重装系统后。同时,Windows 9x/2000/XP已经阅读全文
posted @ 2011-06-09 15:07 lumnm 阅读(42) 评论(0) 编辑
摘要: 实例:PCI声卡爆音问题还记得当初PCI声卡刚出来时,许多同时安装了PCI声卡和PCI显卡的用户会遇到如果在处理声音信息时,运行其他大型应用程序,诸如下拉菜单滚动条,使图形画面出现变化,声卡会发出间歇的“噼啪”声。其实主要的原因就在于,PCI声卡的中断级别低于PCI显卡的中断级别,显卡在向CPU申请时,声卡的数据就会被暂停,于是爆音也就出现了。而具有专用总线通道的AGP显卡流行后,问题也就解决了。你知道吗?(1)汉字系统如何让电脑显示中文除硬件中断外,还有软件中断,它是由一些指令的执行引起的,也正是软件中断为操作系统带来了许多功能。其中INT指令非常有名,以前电脑只能显示西文,而汉字系统通过I阅读全文
posted @ 2011-06-09 15:02 lumnm 阅读(55) 评论(0) 编辑
摘要: 1.CPU:通过“中断”告诉我你已经准备好了!电脑发展到今天,CPU的速度一直远远超越各种电脑设备的速度,这样它们之间就存在了非常大的速度矛盾,如果CPU在给某个设备下达指令后,还要等待它启动和准备数据,那么会浪费很多时间。因此,科学家设计了“中断”功能,有了它,就可以使CPU和外设同时工作,CPU根据用户需要在启动相应外设工作后,继续执行正在进行数据处理,同时外设也在工作,当外设把数据准备好后,就会向CPU发送信号,请求CPU中断它正在处理的工作,然后执行一段专为这个设备编写的程序,将该设备的数据转换为相应操作,这个请求过程就叫“中断请求”(IRQ:Interrupt ReQuest),而这阅读全文
posted @ 2011-06-09 14:07 lumnm 阅读(21) 评论(0) 编辑

公告

昵称:lumnm
园龄:2年9个月
粉丝:5
关注:0

导航

<2012年2月>
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910

统计

  • 随笔 - 94
  • 文章 - 132
  • 评论 - 28
  • 引用 - 0

搜索

 
 

常用链接

我的标签

随笔分类

随笔档案

文章分类

IT业内链接

  • 爱范儿 (rss)
  • 伯乐在线
  • 中国最好的网络互动平台 李开复老师梦工厂讲座 (rss)

技术链接

阅读链接

最新评论

阅读排行榜

评论排行榜

推荐排行榜