GCE_Rules_and_Guidelines_Round15
google的html、css规范指南
google的html\css规范指南google之前出了javascript规范指南,现在有了html/css规范指南。
常规样式规则协议引入的assets资源文件(js、css、图片文件)忽略协议(http:, https:),比如:不推荐的写法:推荐的写法:不推荐的写法:推荐的写法:常规格式规则缩进使用二个空格缩进(PS:明河一般使用四个空格缩进-_-!)1.<ul>2. <li>Fantastic</li>3. <li>Great</li>大写只使用小写。
所有的代码只使用小写字母(PS:淘宝的做法是如果跟js的DOM操作相关,作为钩子使用J_Trigger类似的方式):包括元素名称、样式名、属性名(除了text/CDATA)。
不推荐的写法:1.<A HREF="/">Home</A>尾部空白删掉冗余的行尾空格。
不推荐的写法:推荐的写法:常规Meta规则编码使用utf-8编码。
指定页面的文档编码为utf-8注释如果可能,注释还是必不可少的。
使用注释说明下代码:它包括了什么,它的目的是什么,为什么优先使用它。
行动项目(ps:推荐使用)google建议养成写TODO的习惯,特别是在项目中,记录下一些要改,但来不及修改的地方,或指派其他同事做修改。
高亮TODO,不同的编辑器有不一样的方式,比如idea是TODO:。
常规html设计规则文档类型使用html5文档声明:1.<!DOCTYPE html>不再使用XHTML(application/xhtml+xml)。
HTML 的正确性可以使用一些工具,检验你html的正确性,比如W3C HTML validator。
不推荐的写法:推荐的写法:1.<!DOCTYPE html>2.<meta charset="utf-8">3.<title>Test</title>4.<article>This is only a test.</article>HTML 的语义性使用富含语义性的标签(ps:建议掌握html5新增的部分语义标签)。
GOOGLE PYTHON STYLE GUIDE GOOGLE内部的PYTHON编程规范中文版
Google Python Style GuidePython编程规范1、运行前使用pychecker检查语法、2、Imports只能用力导入packages和modules3、导入模块的时候,要使用全名4、异常处理要慎用5、不允许使用全局变量6、嵌套类(函数)、本地类(函数)、内部类(函数)可以使用7、行包只能在简单的case情况下使用8、使用默认的迭代器和操作符对于lists、dictionaries和files9、在必要的时候使用生产器10、只在一行的情况下使用匿名函数11、可以使用默认参数值12、使用属性来进行简单和轻量级的操作13、尽量使用默认的”false”来表示false(python中,None不表示0)14、不建议的语法:经历使用string的方法,而不是直接使用string模块。
使用函数调用,尽量避免使用apply。
使用list comprehensions或for或来替代filter,map和reduce15、可以使用词法界定16、慎用修饰符,除非能够看到明显的优势17、线程:不要使用内建的原子操作18、不要使用Power FeaturesPython Style Rules1、不要使用分号来隔行2、每行不要超过80个字符3、园括号使用越节省越好4、使用4个空格来缩进5、使用两个空行来间隔top-level定义,使用1个空行来间隔方法定义6、在符号前使用空格来排版7、使用#!/usr/bin/python<version>来做首行8、使用正确的注释格式9、类都从object继承10、尽量都使用%来格式化字符串11、TODO的注释只能作为临时的使用12、每行只import一个模块13、每行只写一条语句14、减少存取函数的操作。
假如函数只做存取的功能,就不如把变量定义为公共的15、命名方法module_name,package_name,ClassName,method_name,ExceptionName, function_name,GLOBAL_VAR_NAME,instance_var_name,function_parameter_name,local_var_name.16、使用main函数来运行python。
c++ core guidelines解析
c++ core guidelines解析C++ Core Guidelines 是由C++ 语言的创始人之一、Bjarne Stroustrup 教授等人共同制定的一套C++ 编码准则。
这一套准则旨在帮助C++ 程序员编写更加安全、高效、可维护的代码。
以下是C++ Core Guidelines 的一些主要原则和解析:1. 主要原则:1.1. 简单性:-解析:代码应该保持简单,不要引入不必要的复杂性。
简单的代码更容易理解、测试和维护。
1.2. 安全性:-解析:代码应该是安全的,不容易受到缓冲区溢出、空指针引用等常见安全问题的影响。
使用现代C++ 特性来提高代码的安全性。
1.3. 可读性:-解析:代码应该易于阅读,注释和标识符应该具有描述性,函数和类的作用应该清晰明了。
2. 类型和表达式:2.1. 类型安全性:-解析:尽量避免使用C 风格的类型转换,使用C++ 的`static_cast`、`dynamic_cast` 等类型安全的转换方式。
2.2. 自动类型推导:-解析:尽量使用`auto` 进行类型推导,以减少代码冗余和提高可读性。
3. 函数和操作:3.1. 函数设计:-解析:函数应该短小、单一职责,并尽量避免过多的参数。
遵循良好的函数命名规范。
3.2. 异常:-解析:不要滥用异常,只在异常情况下使用异常处理。
对于可以避免的错误,应该使用返回值或者其他手段进行处理。
4. 内存管理:4.1. 智能指针:-解析:尽量使用智能指针来管理内存,避免手动管理内存带来的问题。
4.2. 资源管理:-解析:使用RAII(资源获取即初始化)原则,确保资源在对象生命周期内得到正确的管理。
5. 并发和并行:5.1. 同步原则:-解析:尽量使用标准库提供的同步原语,如`std::mutex`,避免直接使用底层的线程同步机制。
5.2. 并发控制:-解析:使用现代C++ 提供的并发控制手段,如`std::async`,`std::thread`,而不是使用底层线程库。
google and baidu searcn regular
谷歌搜索规则Google规则总结(一)规则1、Google不支持通配符,如“*”、“?”等,只能做精确查询,关键字后面的“*”或者“?”会被忽略掉。
2、Google对英文字符大小写不敏感,“GOD”和“god”搜索的结果是一样的。
3、Google的关键字可以是词组(中间没有空格),也可以是句子(中间有空格),但是,用句子做关键字,必须加英文引号。
4、Google对一些网络上出现频率极高的词(主要是英文单词),如“i”、“com”,以及一些符号如“*”、“.”等,作忽略处理,如果用户必须要求关键字中包含这些常用词,就要用强制语法“+”。
5、Google在搜索中的所有符号(+ - "" :等)都必须是英文字符6、Google会忽略掉检索词之间的大多数标点符号,但有两种情况例外!单引号和连字符,它们不能被省略,当输入了带有连字符的检索词后!即可检索带有连字符的检索词!也可检索不带连字符的检索词!因此如果不能肯定使用的词是否带有连字符!则应该总是使用连字符"7、Google 首先匹配按检索式相同词序含有这些检索词的网页!所以应该按照检索词在句子中出现的词序输入检索词,Google还优先匹配检索词相互邻接的网页(二)语法:+、-、OR、filetype1、Google无需用明文的“+”来表示逻辑“与”操作,只要空格就可以了。
2、Google用减号“-”表示逻辑“非”操作。
示例:搜索所有包含“专题讲座”而不含“计算机”的中文网页搜索式:专题讲座-计算机3、Google用大写的“OR”表示逻辑“或”操作注意:小写的“or”,在查询的时候将被忽略;这样上述的操作实际上变成了一次“与”查询)。
但是,关键字为中文的或查询似乎还有BUG,无法得到正确的查询结果4、搜索某一类型文件,可用“filetype”来搜索。
示例:搜索文献综述的PDF文件搜索式:文献综述filetype:pdf(三)高级搜索语法:site,link,inurl,allinurl,intitle,allintitle1、site:表示搜索结果局限于某个具体网站或者网站频道(如site:),或者是某个域名(如site:com)。
google代码规范
google代码规范Google代码规范是一系列关于编码风格、代码格式和最佳实践的准则,旨在帮助开发者写出高质量、可读性强、易于维护的代码。
下面是Google代码规范的一些主要方针和原则:命名规则:1. 变量、函数和参数命名使用小写字母和下划线的组合,如:my_variable。
2. 类名使用驼峰命名法,首字母大写,如:MyClass。
3. 常量使用全大写字母和下划线的组合,如:CONSTANT_NAME。
代码格式:1. 使用四个空格缩进,不要使用制表符。
2. 每行代码长度不超过80个字符。
3. 在运算符前后、逗号后、分号后添加空格,但是括号内的不需要。
4. 所有大括号使用换行符,且跟随一个缩进。
注释:1. 使用块注释 /* */ 来注释模块、类或方法的功能和用法。
2. 使用行注释 // 来注释代码解释或关键步骤。
3. 注释应该清晰、简明扼要,不要存在无意义的注释。
函数和方法:1. 函数和方法应该小而简洁,不要超过40行。
2. 函数和方法应该只完成一个明确的任务。
3. 函数和方法应该有描述性的名称,突出其功能和用途。
错误处理:1. 不要使用无意义的错误处理,对于可预见的异常情况使用适当的错误处理方式。
2. 在代码中记录异常和错误日志,帮助调试和追踪问题。
代码重用:1. 避免重复代码,相同或类似的代码应该提取出来作为函数或方法。
2. 使用类继承和接口来实现代码的重用和模块化。
测试和调试:1. 写测试代码来验证功能的正确性,确保代码的可靠性。
2. 在关键代码段添加调试语句,帮助定位问题。
版本控制:1. 使用版本控制工具来管理代码的变更和版本。
2. 每次变更都应该有明确的提交注释,描述变更的目的和内容。
以上仅是Google代码规范的一部分内容,总体来说,Google代码规范强调代码质量、可读性和易于维护,帮助开发者编写出高效、健壮的代码。
通过遵循这些规范,可以提高代码的可理解性、可维护性和可扩展性,从而提高整体开发效率。
美国细胞治疗产品统一标识共同标准
United States Consensus Standard for the Uniform Labeling of Cellular Therapy Products using ISBT 128Version 1.1.0June 2009United StatesConsensus Standard for theUniform Labeling ofCellular Therapy ProductsUsing ISBT 128Version 1.0.0May 2009Published byICCBBA in collaboration with:AABB, American Society for Blood and Marrow Transplantation (ASBMT), American Society for Apheresis (ASFA), Foundation for the Accreditation of Cellular Therapy (FACT), International Society for Cellular Therapy (ISCT), and the National Marrow DonorProgram (NMDP)ICCBBA, PO Box 11309, San Bernardino, California, USATelephone: 1.909.793.6516Fax: 1.909.793.6214 E-mail: iccbba@Website: WarrantyICCBBA, Inc provides no warranty that the use of ISBT 128 is suitable for any particular purpose and the selection, use, efficiency, and suitability of ISBT 128 is the sole responsibility of the Licensed User.There are no guarantees or warranties attached to this Standard other than that ICCBBA, Inc agrees to furnish registered and licensed end-users with the most up-to-date information available. Successful implementation of this Standard, and use of any accompanying database table(s), depend(s) upon the correct incorporation of the rules and table contents into the software used by or provided to the registered and licensed facility. I CCBBA, Inc makes no other warranties of any kind, whether expressed or implied, including any implied warranty of merchantability or fitness for any particular purpose. Further information can be found at .LiabilityICCBBA, Inc's liability is limited to that specified in the ICCBBA, Inc. License Agreement which is available on the ICCBBA Website. Under no circumstances shall ICCBBA, Inc's liability exceed the current annual license fee, and ICCBBA, Inc will in no circumstances be liable for any damages whatsoever, including without limitation damages for loss of data, business or goodwill, or any other consequential losses of any nature arising from the use of ISBT 128.COPYRIGHT NOTICE AND LICENSING INFORMATIONISBT 128 is not in the public domain and is protected by law. Implementation of ISBT 128 requires the end-user to register with ICCBBA, Inc and to pay an annual license fee. License fees are established by the ICCBBA, Inc Board of Directors to cover the expenses of maintaining and extending ISBT 128, and making available current versions of the documents and database tables that are needed to implement this Standard.This Standard is intended for the use of those implementing ISBT 128, regulatory agencies, and software developers and other manufacturers that support end-users.Although it is made available to anyone wishing to obtain a copy, national “Guidelines” describing its use in a particular country may be an additional source of information for the end-user. If such “Guidelines” exist, they must be consulted because there are options in ISBT 128, and country-specific information pertaining to the particular use of such options will only be found in such “Guidelines.”Any use of this Standard, or the accompanying database tables, by other than registered and licensed facilities, or facilities that have obtained their computer software from a registered and licensed developer, is strictly forbidden. Copying any portion of the Standard, or of any accompanying database table, either in electronic or other format, without express written permission from ICCBBA, Inc is strictly forbidden. Posting of any portion of the Standard, or of any accompanying database table, to any online service by anyone other than ICCBBA, Inc is strictly forbidden.AcknowledgementWe wish to thank the members of the US Consensus Standard – Cellular Therapy Advisory Group for their contributions in the development of this standard. The members were:Sallie Allman (NMDP)Harjunkder Chana (ISCT)Pat Distler (ICCBBA)Mary Beth Fisk (AABB)Adrian Gee (FACT)Asiya Imam (ISCT)William Janssen (ASBMT)Diane Kadidlo (AABB)Mary Grable McLeod (AABB)Fran Rabe (NMDP)Joseph Schwartz (ASFA)Leigh Sims-Poston (ISCT)Phyllis Warkentin (FACT)AABB Staff LiaisonKathy LoperFDA LiaisonEllen LazarusEditorial BoardPaul Ashford, CEng, MBCS, SRCSExecutive Director, ICCBBA Suzanne Butch, MA, MT(ASCP)SBBAnn Arbor, Michigan, USASuzy Grabowski, BA, BB(ASCP)SBBHouston, Texas, USAJørgen Georgsen, MDOdense, DenmarkMario Muon, MDCoimbra, PortugalEditorPat Distler, MS, MT(ASCP)SBBTechnical Director, ICCBBATable of Contents1 INTRODUCTION (10)1.1U NRESOLVED I SSUE (10)1.2R EQUESTING AN E XEMPTION OR A LTERNATIVE TO AN FDA R EQUIREMENT (10)2 BACKGROUND (12)3 ISBT 128 DATA STRUCTURES (13)3.1ISBT128D ATA I DENTIFIERS (13)3.2D ATA C ONTENT (13)4 CONCATENATION (15)5 DELIVERY SYSTEMS (17)5.1L INEAR BAR CODES (C ODE 128 REQUIRED) (17)5.2T WO-DIMENSIONAL BAR CODES (D ATA M ATRIX R ECOMMENDED) (17)5.3RFID (18)5.4EDI M ESSAGES (18)6 ISBT 128 DATA STRUCTURES (19)6.1D ONATION I DENTIFICATION N UMBER (D ATA S TRUCTURE 001) (19)6.1.1 US Specification (20)6.2ABO/R H (D ATA S TRUCTURE 002) (23)6.2.1 US Specification (23)6.3P RODUCT CODE (D ATA S TRUCTURE 003) (27)6.3.1 A-D National or Local Codes (28)6.3.2 US Specification (28)6.4E XPIRATION D ATE AND T IME(D ATA S TRUCTURE 005) (29)6.4.1 US Specification (29)6.5C OLLECTION D ATE (AND T IME)(D ATA S TRUCTURES 006 AND 007) (31)6.5.1 US Specification (32)6.6D ONOR I DENTIFICATION N UMBER (D ATA S TRUCTURE 019) (33)6.6.1 US Specification (33)6.7M ANUFACTURER’S I NFORMATION D ATA S TRUCTURES (34)6.7.1 Container Manufacturer and Catalog Number (Data Structure 017) (34)6.7.2 Container Lot Number (Data Structure 018) (35)6.8C OMPOUND M ESSAGE D ATA S TRUCTURE (023) (36)6.8.1 US Specification (37)6.9P ATIENT D ATE OF B IRTH D ATA S TRUCTURE (024) (38)6.9.1 US Specification (38)6.10P ATIENT I DENTIFICATION N UMBER (025) (39)6.10.1 US Specification (39)6.11I NFECTIOUS M ARKERS (D ATA S TRUCTURE 027) (40)6.11.1 US Specification (41)6.12D ATA S TRUCTURES D EFINED FOR N ATIONAL OR R EGIONAL U SE (42)7 EXAMPLES OF DATA STRUCTURE INFORMATION USE (43)7.1U SE O F F LAG C HARACTERS (D ATA S TRUCTURE 001) (43)7.2U SE OF D IVISION C ODES (D ATA S TRUCTURE 003) (44)7.3U SE OF C OMPOUND M ESSAGE D ATA S TRUCTURE (D ATA S TRUCTURE 023) (45)8 UNIFORM LABELING USING ISBT 128 (46)8.1C ONCEPTS (46)8.2B ASE L ABEL (47)8.2.1 100 mm x 106 mm Base Label (47)8.2.2 Small Base Label (48)8.3F INAL P RODUCT -F ULL L ABEL (49)8.3.1 Upper Left Quadrant (49)8.3.2 Lower Left Quadrant (52)8.3.3 Upper Right Quadrant (55)8.3.4 Lower Right Quadrant (60)8.4F INAL P RODUCT –P ARTIAL L ABELS (63)8.4.1 Minimum information (63)8.4.2 Optional information (63)8.4.3 Use of 2-D labels (64)8.5A TTACHED AND A CCOMPANYING L ABELING (64)9 US TEXT REQUIREMENTS (65)9.1C LASS T EXT (65)9.2M ODIFIER T EXT (65)9.3A TTRIBUTE T EXT (65)9.3.1 Intended Use Group (65)9.3.2 Manipulation Group (66)9.3.3 Cryoprotectant Group (67)9.3.4 Blood Component from Third Party Donor Group (67)9.3.5 Preparation: Other Additives Group (68)9.3.6 Genetically Modified Group (68)9.4D ONATION TYPES (69)10 LABEL EXAMPLES (70)10.1S TANDARD (100 MM BY 100 MM LABELS) (70)10.1.1 Base label (70)10.1.2 Final labels (70)10.2P OOLED P RODUCTS (75)10.3P RODUCTS C OLLECTED U NDER I NVESTIGATIONAL P ROTOCOLS (76)10.3.1 Blinded Studies (76)10.3.2 Non-Blinded Studies (77)10.4P RODUCTS N OT FOR A DMINISTRATION (78)10.5P ARTIAL L ABELS (79)11 DATABASES AND REFERENCE TABLES (83)11.1F ACILITY C ODE D ATABASE (83)11.2P RODUCT C ODE D ATABASE (83)11.3S PECIAL T ESTING (84)11.4M ANUFACTURERS ID (84)11.5S TRUCTURED C OMPOUND M ESSAGES (84)12 GLOSSARY (85)13 ABBREVIATIONS (89)INDEX (91)TABLESTable 1Data Structure 002: Blood Groups [ABO and RhD], Including Optional Type of Donation or Collection Information (25)Table 2 Data Structure 002: Special Messages (26)Table 3 Data Structures 024 and 025: Patient Date of Birth and Patient Identification Number location codes (39)Table 4 Minimum Information on Partial Labels (63)Table 5 Intended Use Group Text (65)Table 6 Manipulation Group Text (66)Table 7 Cryoprotectant Group Text (67)Table 8 Blood Component from Third Party Donor Group Text (67)Table 9 Preparation: Other Additives Group Text (68)Table 10 Genetically Modified Group Text (68)Table 11 Donation Types for Use with Product Code Data Structure (69)Table 12 Abbreviations Used in This Document (89)Table 13 Acceptable Abbreviations for Labeling Products (90)FIGURESFigure 1 Data Structure (13)Figure 2 Example of Data Content on a Label (14)Figure 3 Label Showing Placement of Bar Codes for Concatenation (15)Figure 4 Comparison of 2-D and Linear Bar Codes (17)Figure 5 Text When Expiration is Default Time of 23:59 (30)Figure 6 Product Division Coding (44)Figure 7 Compound Message Example within a Data Matrix (2-D) Symbol (45)Figure 8 Using ISBT 128 to Overcome Language Barriers (46)Figure 9 100 mm x 106 mm Base Label (47)Figure 10 Small Container Base Label (48)Figure 11 Upper Left Quadrant – Confidential Facility (50)Figure 12 Upper Left Quadrant – 351 Products (licensed product, with “Rx Only”) (50)Figure 13 Upper Left Quadrant – 361 Products (51)Figure 14 Upper Left Quadrant - Collection Time Not Needed (51)Figure 15 Upper Left Quadrant with Bar Coded Collection Date/Time (51)Figure 16 Text Size Relationships on Product Label (52)Figure 17 Multiple "Non-Specific" Attributes (53)Figure 18 Divided Product Label (53)Figure 19 Lower Left Quadrant (54)Figure 20 Upper Right Quadrant, No Intended Recipient, Rh Positive (55)Figure 21 ABO/Rh, No Intended Recipient, Rh Negative (55)Figure 22 ABO/Rh Label with Intended Recipient (56)Figure 23 Special Message in Place of ABO/Rh (56)Figure 24 Upper Right Quadrant – Biohazard (57)Figure 25 Upper Right Quadrant - Unrelated Donor (58)Figure 26 Upper Right Quadrant - Related Donor, First or Second Degree (58)Figure 27 Upper Right Quadrant - Related Donor, Other than First or Second Degree (59)Figure 28 Upper Right Quadrant - Autologous Donor, Biohazard (59)Figure 29 Lower Right Quadrant - Unknown Recipient (60)Figure 30 Lower Right Quadrant - Expiration Date Not Bar Coded (61)Figure 31 Lower Right Quadrant - Expiration Date/Time Bar Code and Text (61)Figure 32 Lower Right Quadrant – Default Expiration Time of Midnight (61)Figure 33 Lower Right Quadrant – Autologous Donation (62)Figure 34 Full Collection Label – Unrelated Donor (351 Product) (71)Figure 35 Full Collection Label – Related Donor 1st or 2nd Degree (361 Product) (71)Figure 36 Full Collection Label – Related Donor Other (351 Product) (72)Figure 37 Full Distribution Label (351 Label) (72)Figure 38 Full Distribution Label (361 Product) (73)Figure 39 Sample Product Code Labels (74)Figure 40 Pooled Product Label (75)Figure 41 Investigational Product - Blinded Study (76)Figure 42 Investigational Product – Non-Blinded Study (77)Figure 43 Product Not for Administration (78)Figure 44 48 mm x 76 mm Folded Label (Linear Bar Codes) (79)Figure 45 48 mm x 76 mm Folded Label (2-D bar code) (79)Figure 46 96 mm x 38 mm Folded Label (Linear Bar Codes) (80)Figure 47 96 mm x 38 mm Folded Label (2-D Bar Code) (80)Figure 48 Cryo Vial Label (Linear Bar Codes) (80)Figure 49 Cryo Vial Labels (2-D Bar Codes) (80)Figure 50 Cryopreservation Labels (81)Figure 51 Investigation Products - Partial Labels (82)Figure 52 Illustration of the Terms Eye-Readable Text, Bar Code Text, and Additional Label Text (88)1 IntroductionISBT 128 is an international information standard for blood, tissue, and cellular therapy products. A balance exists between what information on a product label must be strictly standardized in order to achieve the goals of an international standard and what may be left to the discretion of national authorities. These elements are defined in the ISBT 128 Standard Technical Specification.Essentially, the definition of data structures and the placement of bar codes, and their corresponding eye readable text (the text version of the data content of the bar code) that appears immediately beneath a bar code, are strictly standardized. These label elements must appear exactly as specified in the ISBT 128 Standard Technical Specification. Bar code text (the interpretation of the information in the bar code) and other text are generally left to national authorities to define in order to accommodate different languages and regulatory requirements. Additionally, the use of some data structures (e.g., collection date) are nationally defined.The United States Consensus Standard for the Uniform Labeling of Cellular Therapy Products Using ISBT 128 defines for the United States the areas that are the prerogative of national authorities. It must be used in conjunction with the ISBT 128 Standard Technical Specification to design labels for cellular therapy products. Every effort has been made to ensure label designs suggested in this document are in compliance with AABB, FACT, NMDP, and FDA requirements. However, cellular therapy is very much an evolving field and requirements are still being developed. This document will be updated regularly to ensure compliance with new requirements. It is important to note that applicable FDA regulations take precedence over any requirements in this document. For newer products, it would be advisable to confirm labeling requirements with the FDA during the product development process.1.1 Unresolved IssueAt the time of releasing this document, the mechanism(s) for maintaining the confidentiality of the collection facility for products shipped through a Registry has not been determined. At a minimum, the name of the collection facility will not appear in text on the label. Various options to further increase confidentiality are still being explored by the Cellular Therapy Coding and Labeling Advisory Group. When a decision is reached about the labeling of these products, the information will be shared immediately.1.2 Requesting an Exemption or Alternative to an FDARequirementIn some instances, a facility may request an exemption from, or alternative to, an FDA requirement discussed in subpart C or D of 21 CFR 1271 and as illustrated in this document. This might be relevant, for example, in the case where the inclusion of the donor name, when the donor is not a first- or second-degree blood relative, is felt to add a measure of safety for the recipient to prevent mix-ups or improper release. Such a request to the FDA would have to be accompanied by supporting information including a description of the proposed alternativemethod of meeting the regulatory requirements. The regulations for requesting such an exemption are found in Sec. 1271.155.US Consensus Standard for Uniform Labeling of Cellular Therapy Products using ISBT 128 Version ControlChapter,Section orTable inVersion 1.0.0 Chapter,Section orTable inVersion 1.1.0Change Rationale1 8.4.1, Table 4 8.4.1, Table 4 Added intended recipientinformation to requirements forpartial label FACT requirement2 BackgroundISBT 128 coding for cellular therapy products was initially developed during the 1990s. Since that time, the field of cellular therapy has grown dramatically. Recognizing the need to expand and revise the existing coding system, an international advisory group, the Cellular Therapy Coding and Labeling Advisory Group (CTCLAG), was created to review and expand the standard. CTCLAG included representatives from the following organizations: AABB, American Society for Blood and Marrow Transplantation (ASBMT), American Society for Apheresis (ASFA), European Group for Blood and Marrow Transplantation (EBMT), Foundation for the Accreditation of Cellular Therapy (FACT), ICCBBA, International Society of Blood Transfusion (ISBT), International Society for Cellular Therapy (ISCT), ISCT Europe, Joint Accreditation Committee of ISCT and EBMT (JACIE), National Marrow Donor Program (NMDP), and the World Marrow Donor Association (WMDA). The US Food and Drug Administration (FDA) also provided a liaison to work with the group. These representatives developed the terminology and label design for cellular therapy products using ISBT 128 and published it in July 2007 (Ashford P, Distler P, et. al. Standards for the terminology and labeling of cellular therapy products. Transfusion 2007;47:1319-1327).Shortly after the publication of the international standard, a group of individuals representing US organizations met to define those elements left to national discretion. Organizations involved in this effort included AABB, ASBMT, ASFA, FACT, ICCBBA, and NMDP. Again, FDA provided a liaison. A variety of interested vendors also participated in these discussions. The output of that work is this document.3 ISBT 128 Data StructuresIn order for information about cellular therapy products to be transferred electronically (via bar codes, two-dimensional symbols, radio frequency tags, etc.), the information must first be coded into a format that makes electronic transfer easy. Data structures are this format.Data structures define the way in which information is presented in ISBT 128. There are many data structures, only some of which are used on product labels. Examples of data structures which encode information that does not appear on the label include Staff Member Identification Number and Patient Identification Number. Consult the ISBT 128 Standard TechnicalSpecification for a complete list of data structures.Each data structure consists of data identifiers and data content (see Figure 1, Page 13) and is very precisely defined in terms of its length and permissible characters.Figure 1 Data Structure3.1 ISBT 128 Data IdentifiersEach data structure begins with two characters, the data identifier. Data identifiersdefine the type of information the bar code contains.The first character will always be “=” or “&.” By international agreement these characters are reserved for ISBT 128 data structures.The second character distinguishes the type of ISBT 128 information to be conveyed. For example, the two characters “=%” at the beginning of a data structure indicate that the bar code carries information about the ABO/Rh Blood Groups whereas “=<” means the bar code carries information about the product code. Consult the ISBT 128 Standard Technical Specification for more information.3.2 Data ContentData content is the information to be conveyed. For example, the information to becommunicated is that the product is A Rh Positive. This information is encoded to allow it to be efficiently transferred electronically. For example, A Rh Positive is encoded as 6200. Internationally agreed upon reference tables are used to encode and decodeinformation. Some of these reference tables are found in the ISBT 128 StandardTechnical Specification ; others are databases and are found on the ICCBBA Website. Data Identifier Data ContentThe data content appears in an eye-readable form beneath a linear bar code on an ISBT 128 label.Figure 2 Example of Data Content on a LabelData characters are the individual ASCII characters that make up the data content.© 1997–2009 ICCBBA All rights reserved 4 ConcatenationConcatenation is the scanning of two bar codes as a single message (see ISBT 128 Standard Technical Specification for specific details). It requires that the bar codes be placed side by side with the right edge of the bar code on the left within a specific distance (9 mm +/- 4mm) of the left edge of the bar code on the right. The design of a 100 mm by 100 mm ISBT 128 label allows concatenation of two pairs of bar codes: The Donation Identification Number and the ABO/Rh; and the Product Code and the Expiration Date (see Figure 3).Figure 3 Label Showing Placement of Bar Codes for Concatenation1 Donation Identification Number2 ABO/Rh3 Product Code4 ExpirationDateConcatenation can provide better process control. By concatenating pairs of bar codes, it can be assured that information is being read from the same label. In some situations one type of data is a function of another. For example, the expiration date is a function of the product code. In this situation, concatenation may be used to ensure the expiration date/time is changed if the product code is changed.The following is a list of bar code pairs that are commonly concatenated. The list is not exhaustive and it must be emphasized that the Standard allows any pair of ISBT 128 codes to be concatenated. Reference to the corresponding data structure is given in parentheses.•Donation Identification Number (001) and Blood Groups [ABO and RhD] (002);•Product Code (003) and Expiration Date and Time (005);•Donation Identification Number (001) and Product Code (003);•Donation Identification Number (001) and Donor Identification Number (019);•Container Manufacturer and Catalog Number (017) and Container Lot Number (018);•Manufacturer and Catalog Number: Items Other Than Containers (021) and Lot Number: Items Other Than Containers (022):•Patient Birth Date (024) and Patient Hospital Identification Number (025)It is possible to concatenate other pairs of ISBT 128 bar codes and these can be specified within some scanner systems (see Technical Bulletin 5 found on the ICCBBA Website at ).© 1997–2009 ICCBBA All rights reserved 5 Delivery SystemsISBT 128 data structures can be delivered using a number of different technologies including Code 128 bar codes, Electronic Data Interchange (EDI) messages, two-dimensional (2-D) and Reduced Space Symbology (RSS) bar codes, and wireless radio frequency identification transponders (RFID tags). This makes ISBT 128 highly flexible for the unique requirements of cellular therapy products.Rules for uses of ISBT 128 data structures will depend on the delivery mechanism.5.1 Linear bar codes (Code 128 required)Code 128 is the only linear bar code format approved for ISBT 128. The code mustcomply with the industry standard ISO/IEC 15417: 2007(E): Information technology—Automatic identification and data capture techniques—Code 128 bar code symbologyspecification. Additional rules regarding Code 128 bar codes used to deliver ISBT 128 data structures are given in the ISBT 128 Standard Technical Specification.5.2 Two-dimensional bar codes (Data MatrixRecommended)Two-dimensional (2-D) barcodes are very useful when space is limited. In Figure 4, the amount of data in the Data Matrix symbol on the left is equal to that found in the fivelinear bar codes on the right.Figure 4 Comparison of 2-D and Linear Bar Codes© 1997–2009 ICCBBA All rights reserved While many 2-D symbologies are available, ICCBBA recommends Data Matrix (ECC 200) as the 2-D symbology for ISBT 128. The ISO/IEC 16022 Information technology—International symbology specification—Data Matrix should be followed.This does not preclude the use of other symbologies. Use must comply with theappropriate industry standard. Implementers wishing to use other symbologies or novel technologies should contact ICCBBA for advice before proceeding.5.3 RFIDICCBBA has not as yet specified additional requirements for using RFID technologies,but these will be required in order to provide an adequate level of standardization. The ISBT Working Party on Information Technology is currently evaluating issues related to the application of RFID to transfusion medicine. When available, ICCBBA will consider these recommendations for inclusion in the ISBT 128 Standard. In the interim,implementers wishing to use these or any other novel technologies should contactICCBBA for advice before proceeding. Use must comply with the appropriate industrystandard.5.4 EDI MessagesRules for incorporating ISBT 128 data structures into EDI messages will normally bespecified by the body responsible for the message standard. The only restriction placed by ICCBBA is that data identifier characters are a required part of the data field unless the message standard provides an alternative means of unambiguously identifying adata field as containing a specific ISBT 128 data structure. In this case, data identifiers may be omitted.© 1997–2009 ICCBBA All rights reserved 6 ISBT 128 Data StructuresThis document reviews those data structures for which there are US-specific instructions and those data structures which have unique applications for cellular therapy products.6.1 Donation Identification Number (Data Structure001)This data structure provides for the unique identification of any donation or collectionworldwide for a one hundred year period. It has 13 data characters:αppppyynnnnnnwhere:αpppp designates the collection facility or registry. In the case of cord bloodcollections where the processing laboratory is administratively responsiblefor the collection, this number may reflect the processing laboratory;yy designates the year in which the donation or collection was made;nnnnnn is a serial number associated with the donation or collection.Other characters incorporated into this bar code are “flag” characters. These may beused to assist in process control (such as identifying materials used in the collectionprocess — container 1, container 2, tube 1, tube 2, etc. — permitting verification that the correct bar code has been scanned, i.e., the bar code actually attached to container 1,etc.) or to support additional checks for accurate data transmission. Flag characters are printed in a way that identifies their special role, either rotated 90 degrees clockwise (i.e., vertically rather than horizontally) or in “pictorial” or “iconized” format. Flag charactersare the last two characters of the Donation Identification Number data structure. Theyare not part of the Donation Identification Number itself. Flag characters are to be usedin process control; it is not intended that they be recorded as part of the DonationIdentification Number.An additional check character (not the same character that is integral to every Code 128 bar code) calculated on the entire 13 data characters (αppppyynnnnnn) will be printed,enclosed in a box, to the right of the Donation Identification Number (DIN) (see Figure12, page 50). The ISO modulo 37,2 method will be used to compute this checkcharacter. This check character can be used to ensure the accuracy of keyboard dataentry when supported by the appropriate computer software.© 1997–2009 ICCBBA All rights reserved 6.1.1 US SpecificationUsage: The Donation Identification Number is required to be both machine andeye readable.6.1.1.1 Applying the DINUsually, the Donation Identification Number should be the first labelapplied to product containers. It is applied before a product is collectedand should not afterwards be removed or defaced. To prevent potentialerrors, it is recommended that the Donation Identification Number not beover-labeled during processing of the product. However, with extremelysmall labels this may be unavoidable. Should it become necessary toover-label the DIN, mechanisms must be in place to ensure that the DINon the new label matches the DIN on the original label.6.1.1.2 Facility IdentificationCord Blood Facilities: In the situation of cord blood facilities, a processinglab may be administratively responsible for collections and assignment ofDINs. If the DIN is not affixed until the donation reaches the processinglaboratory, it is essential that suitable mechanisms be in place to ensurethe accurate identification and traceability of the product prior to theapplication of the DIN.Registry Collections: In some countries, the DIN may be assigned by theRegistry for collections being shipped through the Registry. In this case,the FIN and the text beneath it will correspond to the Registry. The finaldecision on who (facility or the Registry) will assign the DIN in the US hasnot been made. When the decision is made, a new version of thisdocument will be published6.1.1.3 Data CharactersIn the US the data characters should appear as follows:W0000 08 123456The Donation Identification Number is divided into three parts in its eye-readable form for ease in reading. This should facilitate reading,checking, and recording identification numbers.No special emphasis (e.g., font, size, or color) should be given to anycharacter(s) within the 13-character DIN.© 1997–2009 ICCBBA All rights reserved 。
GoogleJavaScript样式指南
GoogleJavaScript样式指南Google JavaScript样式指南⽬录1简介本⽂档⽤作JavaScript编程语⾔中Google源代码编码标准的完整定义。
JavaScript源⽂件被描述为Google风格,当且仅当它符合此处的规则时。
与其他编程风格指南⼀样,所涉及的问题不仅包括格式化的美学问题,还包括其他类型的约定或编码标准。
但是,本⽂档主要关注我们普遍遵循的严格规则,并避免提供不明确可执⾏的建议(⽆论是通过⼈⼯还是⼯具)。
1.1术语说明在本⽂件中,除⾮另有说明:1. 术语注释总是指实现注释。
我们不使⽤"⽂档注释"这⼀短语,⽽是使⽤常⽤术语“JSDoc”来表⽰⼈类可读的⽂本和机器可读的注释/** …*/。
2. 使⽤短语时,本样式指南使⽤术语必须,不得,应该,不应该,也可以。
术语偏好和避免分别对应应该和不应该对应。
命令性和陈述性陈述是规定性的,并且必须符合。
其他"术语说明"将在整个⽂件中偶尔出现。
1.2指南说明本⽂档中的⽰例代码是⾮规范性的。
也就是说,虽然⽰例是Google风格,但它们可能并没有说明代表代码的唯⼀时尚⽅式。
在⽰例中进⾏的可选格式选择不得作为规则强制执⾏。
2源⽂件基础知识2.1⽂件名⽂件名必须全部⼩写,并且可以包含下划线(_)或短划线(-),但不包含其他标点符号。
遵循项⽬使⽤的约定。
⽂件名的扩展名必须是.js。
2.2⽂件编码:UTF-8源⽂件以UTF-8编码。
2.3特殊字符2.3.1空⽩字符除了⾏终⽌符序列之外,ASCII⽔平空格字符(0x20)是唯⼀出现在源⽂件中任何位置的空⽩字符。
这意味着1. 字符串⽂字中的所有其他空⽩字符都被转义,并且2. 制表符不⽤于缩进。
2.3.2特殊转义序列对于具有特殊的转义序列(任何字符\',\",\\,\b,\f,\n,\r,\t,\v),该序列使⽤,⽽不是对应的数字逃逸(例如\x0a,\u000a或\u{a})。
Edexcel GCE
Paper Reference (complete below)CentreNo.CandidateNo.Examiner’s use only Team Leader’s use only Question Number Leave Blank 12345Paper Reference(s)6663Edexcel GCEPure Mathematics C1Advanced SubsidiarySpecimen PaperTime: 1 hour 30 minutes 6Materials required for examinationItems included with question papers 78Answer Book (AB16)Mathematical Formulae (Lilac)Graph Paper (ASG2)Nil 9Calculators may NOT be used in this examination.10Total Instructions to Candidates Tour candidate details are printed next to the bar code above. Check that these are correct and sign your name in the signature box above.If your candidate details are incorrect, or missing, then complete ALL the boxes above.When a calculator is used, the answer should be given to an appropriate degree of accuracy.You must write your answer for each question in the space following the question.If you need more space to complete your answer to any question, use additional answer sheets.Information for CandidatesA booklet ‘mathematical Formulae and Statistical Tables’ is provided.Full marks may be obtained for answers to ALL questions.This paper has 10 questions.Advice to Candidates You must ensure that your answers to parts of questions are clearly labelled.You must show sufficient working to make your methods clear to the examiner. Answers without working may gain no credit.Turn overSurname Initial(s)SignatureLeave blank1.Calculate å=+201)25(r r .(3)............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................Leave ó(5x + 3Öx) d x.blank 2.Find ôõ(4) .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... ....................................................................................................................................................Leave 3.(a)Express Ö80 in the form aÖ5, where a is an integer.blank(1)(b)Express (4 -Ö5)2 in the form b + cÖ5, where b and c are integers.(3) .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... ....................................................................................................................................................Leaveblank 4.The points A and B have coordinates (3, 4) and (7, -6) respectively. The straight line lpasses through A and is perpendicular to AB.Find an equation for l, giving your answer in the form ax + by + c = 0, where a, b andc are integers.(5) .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... ....................................................................................................................................................6.(a)Solve the simultaneous equationsy + 2x = 5,2x2- 3x-y = 16.(6)(b)Hence, or otherwise, find the set of values of x for which2x2- 3x- 16 > 5 - 2x.(3).................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... ....................................................................................................................................................………………………………………………………………………………………………….…………………………………………………………………………………………………..................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... ....................................................................................................................................................Leaveblank 7.Ahmed plans to save £250 in the year 2001, £300 in 2002, £350 in 2003, and so on untilthe year 2020. His planned savings form an arithmetic sequence with commondifference £50.(a)Find the amount he plans to save in the year 2011.(2)(b)Calculate his total planned savings over the 20 year period from 2001 to 2020.(3)Ben also plans to save money over the same 20 year period. He saves £A in the year2001 and his planned yearly savings form an arithmetic sequence with commondifference £60.Given that Ben’s total planned savings over the 20 year period are equal to Ahmed’stotal planned savings over the same period,(c)calculate the value of A.(4) .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... ....................................................................................................................................................Leaveblank .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... ....................................................................................................................................................。
Google Python 编码规范指南
我是PythonGao。
一名微软工程师。
今天给大家分享一下Google Python 编程规范。
适合入门者学习。
分号不要在行尾加分号, 也不要用分号将两条命令放在同一行.行长度每行不超过80个字符例外:长的导入模块语句注释里的URL不要使用反斜杠连接行.Python会将圆括号, 中括号和花括号中的行隐式的连接起来 , 你可以利用这个特点. 如果需要, 你可以在表达式外围增加一对额外的圆括号如果一个文本字符串在一行放不下, 可以使用圆括号来实现隐式行连接:在注释中,如果必要,将长的URL放在一行上。
注意上面例子中的元素缩进; 你可以在本文的缩进部分找到解释.括号宁缺毋滥的使用括号除非是用于实现行连接, 否则不要在返回语句或条件语句中使用括号. 不过在元组两边使用括号是可以的缩进用4个空格来缩进代码绝对不要用tab, 也不要tab和空格混用. 对于行连接的情况, 你应该要么垂直对齐换行的元素(见行长度部分的示例), 或者使用4空格的悬挂式缩进(这时第一行不应该有参数):空行顶级定义之间空两行, 方法定义之间空一行顶级定义之间空两行, 比如函数或者类定义. 方法定义, 类定义与第一个方法之间, 都应该空一行. 函数或方法中,某些地方要是你觉得合适, 就空一行.空格按照标准的排版规范来使用标点两边的空格括号内不要有空格.不要在逗号, 分号, 冒号前面加空格, 但应该在它们后面加(除了在行尾).参数列表, 索引或切片的左括号前不应加空格.在二元操作符两边都加上一个空格, 比如赋值(=), 比较(==, <, >, !=, <>, <=, >=, in, not in, is, is not), 布尔(and, or, not). 至于算术操作符两边的空格该如何使用, 需要你自己好好判断. 不过两侧务必要保持一致.当’=’用于指示关键字参数或默认参数值时, 不要在其两侧使用空格.不要用空格来垂直对齐多行间的标记, 因为这会成为维护的负担(适用于:, #, =等):Shebang大部分.py文件不必以#!作为文件的开始. 根据 PEP-394 , 程序的main文件应该以 #!/usr/bin/python2或者#!/usr/bin/python3开始.(译者注: 在计算机科学中, Shebang (也称为Hashbang)是一个由井号和叹号构成的字符串行(#!), 其出现在文本文件的第一行的前两个字符. 在文件中存在Shebang的情况下, 类Unix操作系统的程序载入器会分析Shebang后的内容, 将这些内容作为解释器指令, 并调用该指令, 并将载有Shebang的文件路径作为该解释器的参数. 例如, 以指令#!/bin/sh开头的文件在执行时会实际调用/bin/sh程序.)先用于帮助内核找到Python解释器, 但是在导入模块时, 将会被忽略. 因此只有被直接执行的文件中才有必要加入注释确保对模块, 函数, 方法和行内注释使用正确的风格文档字符串Python有一种独一无二的的注释方式: 使用文档字符串. 文档字符串是包, 模块, 类或函数里的第一个语句. 这些字符串可以通过对象的__doc__成员被自动提取, 并且被pydoc所用. (你可以在你的模块上运行pydoc试一把, 看看它长什么样). 我们对文档字符串的惯例是使用三重双引号”“”( PEP-257 ). 一个文档字符串应该这样组织: 首先是一行以句号, 问号或惊叹号结尾的概述(或者该文档字符串单纯只有一行). 接着是一个空行. 接着是文档字符串剩下的部分, 它应该与文档字符串的第一行的第一个引号对齐. 下面有更多文档字符串的格式化规范.模块每个文件应该包含一个许可样板. 根据项目使用的许可(例如, Apache 2.0, BSD, LGPL, GPL), 选择合适的样板.函数和方法下文所指的函数,包括函数, 方法, 以及生成器.一个函数必须要有文档字符串, 除非它满足以下条件:外部不可见非常短小简单明了文档字符串应该包含函数做什么, 以及输入和输出的详细描述. 通常, 不应该描述”怎么做”, 除非是一些复杂的算法. 文档字符串应该提供足够的信息, 当别人编写代码调用该函数时, 他不需要看一行代码, 只要看文档字符串就可以了. 对于复杂的代码, 在代码旁边加注释会比使用文档字符串更有意义.关于函数的几个方面应该在特定的小节中进行描述记录,这几个方面如下文所述. 每节应该以一个标题行开始.标题行以冒号结尾. 除标题行外, 节的其他内容应被缩进2个空格.Args:列出每个参数的名字, 并在名字后使用一个冒号和一个空格, 分隔对该参数的描述.如果描述太长超过了单行80字符,使用2或者4个空格的悬挂缩进(与文件其他部分保持一致). 描述应该包括所需的类型和含义. 如果一个函数接受*foo(可变长度参数列表)或者**bar (任意关键字参数), 应该详细列出*foo和**bar.Returns: (或者 Yields: 用于生成器)描述返回值的类型和语义. 如果函数返回None, 这一部分可以省略.Raises:列出与接口有关的所有异常.类类应该在其定义下有一个用于描述该类的文档字符串. 如果你的类有公共属性(Attributes), 那么文档中应该有一个属性(Attributes)段. 并且应该遵守和函数参数相同的格式块注释和行注释最需要写注释的是代码中那些技巧性的部分. 如果你在下次代码审查的时候必须解释一下, 那么你应该现在就给它写注释. 对于复杂的操作, 应该在其操作开始前写上若干行注释. 对于不是一目了然的代码, 应在其行尾添加注释.# We use a weighted dictionary search to find out where i is in# the array. We extrapolate position based on the largest num# in the array and the array size and then do binary search to# get the exact number.ifi&(i-1)==0:# True if i is 0 or a power of 2.为了提高可读性, 注释应该至少离开代码2个空格.另一方面, 绝不要描述代码. 假设阅读代码的人比你更懂Python, 他只是不知道你的代码要做什么.# BAD COMMENT: Now go through the b array and make sure whenever i occurs# the next element is i+1类如果一个类不继承自其它类, 就显式的从object继承. 嵌套类也一样.继承自object是为了使属性(properties)正常工作, 并且这样可以保护你的代码, 使其不受 PEP-3000 的一个特殊的潜在不兼容性影响. 这样做也定义了一些特殊的方法, 这些方法实现了对象的默认语义, 包括__new__,__init__,__delattr__,__getattribute__,__setattr__,__hash__,__repr__,and__str__.字符串即使参数都是字符串, 使用%操作符或者格式化方法格式化字符串. 不过也不能一概而论, 你需要在+和%之间好好判定.避免在循环中用+和+=操作符来累加字符串. 由于字符串是不可变的, 这样做会创建不必要的临时对象, 并且导致二次方而不是线性的运行时间. 作为替代方案, 你可以将每个子串加入列表, 然后在循环结束后用 .join 连接列表. (也可以将每个子串写入一个 cStringIO.StringIO 缓存中.)在同一个文件中, 保持使用字符串引号的一致性. 使用单引号’或者双引号”之一用以引用字符串, 并在同一文件中沿用. 在字符串内可以使用另外一种引号, 以避免在字符串中使用. GPyLint已经加入了这一检查.(译者注:GPyLint疑为笔误, 应为PyLint.)为多行字符串使用三重双引号”“”而非三重单引号’‘’. 当且仅当项目中使用单引号’来引用字符串时, 才可能会使用三重’‘’为非文档字符串的多行字符串来标识引用. 文档字符串必须使用三重双引号”“”. 不过要注意, 通常用隐式行连接更清晰, 因为多行字符串与程序其他部分的缩进方式不一致.文件和sockets在文件和sockets结束时, 显式的关闭它.除文件外, sockets或其他类似文件的对象在没有必要的情况下打开, 会有许多副作用, 例如:它们可能会消耗有限的系统资源, 如文件描述符. 如果这些资源在使用后没有及时归还系统, 那么用于处理这些对象的代码会将资源消耗殆尽.持有文件将会阻止对于文件的其他诸如移动、删除之类的操作.仅仅是从逻辑上关闭文件和sockets, 那么它们仍然可能会被其共享的程序在无意中进行读或者写操作. 只有当它们真正被关闭后, 对于它们尝试进行读或者写操作将会抛出异常, 并使得问题快速显现出来.而且, 幻想当文件对象析构时, 文件和sockets会自动关闭, 试图将文件对象的生命周期和文件的状态绑定在一起的想法, 都是不现实的. 因为有如下原因:没有任何方法可以确保运行环境会真正的执行文件的析构. 不同的Python实现采用不同的内存管理技术, 比如延时垃圾处理机制. 延时垃圾处理机制可能会导致对象生命周期被任意无限制的延长.对于文件意外的引用,会导致对于文件的持有时间超出预期(比如对于异常的跟踪, 包含有全局变量等).推荐使用 “with”语句以管理文件:对于不支持使用”with”语句的类似文件的对象,使用 contextlib.closing():Legacy AppEngine 中Python 2.5的代码如使用”with”语句, 需要添加 “from __future__ import with_statement”. TODO注释为临时代码使用TODO注释, 它是一种短期解决方案. 不算完美, 但够好了.TODO注释应该在所有开头处包含”TODO”字符串, 紧跟着是用括号括起来的你的名字, email地址或其它标识符.然后是一个可选的冒号. 接着必须有一行注释, 解释要做什么. 主要目的是为了有一个统一的TODO格式, 这样添加注释的人就可以搜索到(并可以按需提供更多细节). 写了TODO注释并不保证写的人会亲自解决问题. 当你写了一个TODO, 请注上你的名字.如果你的TODO是”将来做某事”的形式, 那么请确保你包含了一个指定的日期(“2009年11月解决”)或者一个特定的事件(“等到所有的客户都可以处理XML请求就移除这些代码”).导入格式每个导入应该独占一行导入总应该放在文件顶部, 位于模块注释和文档字符串之后, 模块全局变量和常量之前. 导入应该按照从最通用到最不通用的顺序分组:标准库导入第三方库导入应用程序指定导入每种分组中, 应该根据每个模块的完整包路径按字典序排序, 忽略大小写.语句通常每个语句应该独占一行不过, 如果测试结果与测试语句在一行放得下, 你也可以将它们放在同一行. 如果是if语句, 只有在没有else时才能这样做. 特别地, 绝不要对try/except这样做, 因为try和except不能放在同一行.访问控制在Python中, 对于琐碎又不太重要的访问函数, 你应该直接使用公有变量来取代它们, 这样可以避免额外的函数调用开销. 当添加更多功能时, 你可以用属性(property)来保持语法的一致性.(译者注: 重视封装的面向对象程序员看到这个可能会很反感, 因为他们一直被教育: 所有成员变量都必须是私有的! 其实, 那真的是有点麻烦啊. 试着去接受Pythonic哲学吧)另一方面, 如果访问更复杂, 或者变量的访问开销很显著, 那么你应该使用像get_foo()和set_foo()这样的函数调用.如果之前的代码行为允许通过属性(property)访问 , 那么就不要将新的访问函数与属性绑定. 这样, 任何试图通过老方法访问变量的代码就没法运行, 使用者也就会意识到复杂性发生了变化.命名module_name, package_name, ClassName, method_name, ExceptionName, function_name,GLOBAL_VAR_NAME, instance_var_name, function_parameter_name, local_var_name.应该避免的名称单字符名称, 除了计数器和迭代器.包/模块名中的连字符(-)双下划线开头并结尾的名称(Python保留, 例如__init__)命名约定所谓”内部(Internal)”表示仅模块内可用, 或者, 在类内是保护或私有的.用单下划线(_)开头表示模块变量或函数是protected的(使用from module import *时不会包含).用双下划线(__)开头的实例变量或方法表示类内私有.将相关的类和顶级函数放在同一个模块里. 不像Java, 没必要限制一个类一个模块.对类名使用大写字母开头的单词(如CapWords, 即Pascal风格), 但是模块名应该用小写加下划线的方式(如lower_with_under.py). 尽管已经有很多现存的模块使用类似于CapWords.py这样的命名, 但现在已经不鼓励这样做, 因为如果模块名碰巧和类名一致, 这会让人困扰.Python之父Guido推荐的规范Main即使是一个打算被用作脚本的文件, 也应该是可导入的. 并且简单的导入不应该导致这个脚本的主功能(main functionality)被执行, 这是一种副作用. 主功能应该放在一个main()函数中.在Python中, pydoc以及单元测试要求模块必须是可导入的. 你的代码应该在执行主程序前总是检查if__name__=='__main__', 这样当模块被导入时主程序就不会被执行.所有的顶级代码在模块导入时都会被执行. 要小心不要去调用函数, 创建对象, 或者执行那些不应该在使用pydoc 时执行的操作.以上是google建议大家的Python 编码规范。
Google JavaScript 编码规范指南
// userOnline = true; if (xmlhttp.status == 200) {
eval(xmlhttp.responseText); } // userOnline is now true. with() {}:不要使用 使用 with 让你的代码在语义上变得不清晰. 因为 with 的对象, 可能会与局部变量产生冲 突, 从而改变你程序原本的用义. 下面的代码是干嘛的? with (foo) {
/* ... */ }; 闭包:可以, 但小心使用.
闭包也许是 JS 中最有用的特性了. 有一份比较好的介绍闭包原理的文档. 有一点需要牢记, 闭包保留了一个指向它封闭作用域的指针, 所以, 在给 DOM 元素附加闭 包时, 很可能会产生循环引用, 进一步导致内存泄漏. 比如下面的代码: function foo(element, a, b) {
element.onclick = bar(a, b); }
function bar(a, b) { return function() { /* uses a and b */ }
} eval():只用于解析序列化串 (如: 解析 RPC 响应) eval() 会让程序执行的比较混乱, 当 eval() 里面包含用户输入的话就更加危险. 可以用其他 更佳的, 更清晰, 更安全的方式写你的代码, 所以一般情况下请不要使用 eval(). 当碰到一 些需要解析序列化串的情况下(如, 计算 RPC 响应), 使用 eval 很容易实现. 解析序列化串是指将字节流转换成内存中的数据结构. 比如, 你可能会将一个对象输出成文 件形式: users = [
* The number of seconds in a minute. * @type {number} */ goog.example.SECONDS_IN_A_MINUTE = 60; 对于非基本类型, 使用 @const 标记. /** * The number of seconds in each of the given units. * @type {Object.<number>} * @const */ goog.example.SECONDS_TABLE = { minute: 60, hour: 60 * 60, day: 60 * 60 * 24 } 这标记告诉编译器它是常量. 至于关键词 const, 因为 IE 不能识别, 所以不要使用. 分号:总是使用分号.
html标签对应的英文读法及意思
<list>
list
[lɪst]
列
<li>
listitem
[ɑlis tem]
列表项
<list-style:none>
list-style:none
[lɪst][staɪl][nʌn]
去掉列表符号
<list-article.html>
list-article.html
[lɪst][ˈɑ:tɪkl]
[ˈteɪbl][ˈdeɪtə]
表格数据单元格
<text-align>
textalign
[tekst[əˈlaɪn]
字体对齐方式
<target=”_self”>
targetself
[ˈtɑ:gɪt]
[self]
在原来页面打开
<target=_”blank”>
targetblank
[ˈtɑ:gɪt]
[blæŋk]
[dɪˈspleɪ]
[blɒk]
行内元素转换块元素
<dl>
definitionlist
[ˌdefɪˈnɪʃn][lɪst]
定义列表
<dt>
definitionterm
[ˌdefɪˈnɪʃn][tɜ:m]
定义条目
<face>
face
[feɪs]
字体
<float>
float
[fləʊt]
浮动
<float-left>
单元格间间隙
<cellpadding>
cellpadding
英语作文带行线的怎么对齐
英语作文带行线的怎么对齐When writing an English essay with lined paper, proper alignment is crucial for readability and presentation. Hereare some guidelines to help you align your text correctly:1. Margins: Ensure that your text is aligned with the left margin. The right margin should be more or less even, butit's acceptable if it's not perfectly aligned due to the varying lengths of words.2. Indentation: For a new paragraph, indent the first line about half an inch (or five spaces) from the left margin.This helps to visually separate paragraphs.3. Spacing: Double-space your lines to make your essay easier to read. If your lined paper has wider spaces between lines, adjust your spacing accordingly.4. Alignment: If you're using a typewriter or a word processor, set the alignment to "left" or "flush left." This means that all lines will align at the left margin, and the right margin will not be aligned.5. Consistency: Keep your alignment consistent throughout the essay. If you indent the first paragraph, indent all first paragraphs. If you don't, then maintain that style throughout.6. Use of Rulers: If you're hand-writing your essay, use aruler to draw a light pencil line from the top left corner to the bottom left corner of your paper to ensure a straightleft margin.7. Line Up: Make sure the first word of each line is directly below the first word of the line above it. This can be a bit tricky on lined paper, but it helps with the overall neatness of your essay.8. Avoid Hyphenation: Try not to split words at the end of a line (hyphenation). Instead, leave a small space at the end of the line and start the next word on the new line.9. Final Check: Before submitting your essay, do a final check to ensure that all lines are aligned properly and that there are no stray marks or smudges.Remember, the key to a well-aligned essay is practice. The more you write, the better you'll become at maintaining a consistent and neat alignment.。
c,,编码规范,google
竭诚为您提供优质文档/双击可除c,,编码规范,google篇一:google_c++编码规范中文版googlec++编程风格指南edisonpeng整理20xx/3/25目录背景........................ ................................................... ................................................... (3)头文件................................................. ................................................... . (4)作用域................................................. ................................................... (8)类................................................. ................................................... . (13)来自google的奇技................................................. ................................................... .. (20)其他c++特性................................................. ................................................... (32)命名约定................................................. ................................................... (32)注释................................................. ................................................... .. (38)格式................................................. ................................................... (44)规则特例................................................. ................................................... (57)背景c++是google大部分开源项目的主要编程语言.正如每个c++程序员都知道的,c++有很多强大的特性,但这种强大不可避免的导致它走向复杂,使代码更容易产生bug,难以阅读和维护.本指南的目的是通过详细阐述c++注意事项来驾驭其复杂性.这些规则在保证代码易于管理的同时,高效使用c++的语言特性.风格,亦被称作可读性,也就是指导c++编程的约定.使用术语―风格‖有些用词不当,因为这些习惯远不止源代码文件格式化这么简单.使代码易于管理的方法之一是加强代码一致性.让任何程序员都可以快速读懂你的代码这点非常重要.保持统一编程风格并遵守约定意味着可以很容易根据―模式匹配‖规则来推断各种标识符的含义.创建通用,必需的习惯用语和模式可以使代码更容易理解.在一些情况下可能有充分的理由改变某些编程风格,但我们还是应该遵循一致性原则,尽量不这么做.本指南的另一个观点是c++特性的臃肿.c++是一门包含大量高级特性的庞大语言.某些情况下,我们会限制甚至禁止使用某些特性.这么做是为了保持代码清爽,避免这些特性可能导致的各种问题.指南中列举了这类特性,并解释为什么这些特性被限制使用.google主导的开源项目均符合本指南的规定.注意:本指南并非c++教程,我们假定读者已经对c++非常熟悉.1、头文件通常每一个.cc文件都有一个对应的.h文件.也有一些常见例外,如单元测试代码和只包含main()函数的.cc文件.正确使用头文件可令代码在可读性、文件大小和性能上大为改观.下面的规则将引导你规避使用头文件时的各种陷阱.1.1.#define保护tip所有头文件都应该使用#define防止头文件被多重包含,命名格式当是: _ __h_为保证唯一性,头文件的命名应该依据所在项目源代码树的全路径.例如,项目foo中的头文件foo/src/bar/baz.h可按如下方式保护:#ifndefFoo_baR_baz_h_#defineFoo_baR_baz_h_…#endif//Foo_baR_baz_h_1.2.头文件依赖tip能用前置声明的地方尽量不使用#include.当一个头文件被包含的同时也引入了新的依赖,一旦该头文件被修改,代码就会被重新编译.如果这个头文件又包含了其他头文件,这些头文件的任何改变都将导致所有包含了该头文件的代码被重新编译.因此,我们倾向于减少包含头文件,尤其是在头文件中包含头文件.使用前置声明可以显著减少需要包含的头文件数量.举例说明:如果头文件中用到类File,但不需要访问File类的声明,头文件中只需前置声明classFile;而无须#include"file/base/file.h".不允许访问类的定义的前提下,我们在一个头文件中能对类Foo做哪些操作我们可以将数据成员类型声明为Foo*或Foo比如虚函数和递归函数就不会被正常内联.通常,递归函数不应该声明成内联函数.(yuleFox注:递归调用堆栈的展开并不像循环那么简单,比如递归层数在编译时可能是未知的,大多数编译器都不支持内联递归函数).虚函数内联的主要原因则是想把它的函数体放在类定义内,为了图个方便,抑或是当作文档描述其行为,比如精短的存取函数.1.4.-inl.h文件tip复杂的内联函数的定义,应放在后缀名为-inl.h的头文件中.内联函数的定义必须放在头文件中,编译器才能在调用点内联展开定义.然而,实现代码理论上应该放在.cc文件中,我们不希望.h文件中有太多实现代码,除非在可读性和性能上有明显优势.如果内联函数的定义比较短小,逻辑比较简单,实现代码放在.h文件里没有任何问题.比如,存取函数的实现理所当然都应该放在类定义内.出于编写者和调用者的方便,较复杂的内联函数也可以放到.h文件中,如果你觉得这样会使头文件显得笨重,也可以把它萃取到单独的-inl.h中.这样把实现和类定义分离开来,当需要时包含对应的-inl.h即可。
guidelines - grading and checklist
CHECKLIST FOR RESUME AND COVER LETTERPackage0.5 pt. Put your papers in the right order✓Cover letter✓Resume✓Any supporting documents such as Award Certificate, etcStaple papers with ONE staple in the upper left cornerRotate LANDSCAPE paper counter-clockwise before staplingResume0.5 pt. Job listing: Full credit for job listing included with assignment1 pt. 100%:Objective statement written for a specific job, first item on the résumé50%:Half credit for objective statement that is well written0%:No credit if no objective statement or poorly written1 pt.100%:C learly designated sections that are all formatted the same, including font type,size, color, same setup in each section, consistency in information and wordselections50%:Half credit for clearly designated sectionsCover Letter1 pt. 100%:Neatly formatted, well written, same font as résumé, includes signature, evenly spaced, centered on page (top and bottom as well as side margins)50%:Not well formatted, sentences need work, different font from résumé, nosignature, spacing not centered0%:If no cover letter or,I f cover letter is generic that wasn’t even personalized to include the writer’sspecific skillsGrammar1 pt. 100%If no more than 5 errors per document including misplaced or missing comma or other minor punctuation, misspelled or misused words50%If 6 to 15 errors per document, but sentences must make sense0%If many spelling, grammar, and punctuation errors。
exact rules for formatting 格式
exact rules for formatting 格式"Exact rules for formatting" is a broad term that can refer to formatting rules in various contexts, such as document formatting, code formatting, or data formatting. The rules can vary depending on the specific style guide, programming language, or application you are working with. Here are some general guidelines for different contexts: Document Formatting (e.g., APA, MLA for academic papers):1. Font and Size:• Typically, Times New Roman or Arial font is used.• Standard font size is 12-point.2. Margins:• Set 1-inch margins on all sides.3. Spacing:• Double-space the entire document.• Use a consistent and proper spacing style for indents and block quotes.4. Title Page:• Include a title page with the title, author's name, institutional affiliation, and date.5. Page Numbers:•P age numbers are usually placed in the header or footer.Code Formatting:1. Indentation:• Use consistent indentation (e.g., 2 or 4 spaces) to improve code readability.2. Brackets:• Place opening curly braces { on the same line as the control statement (e.g., if, for) and closing braces } on a new line.3. Line Length:• Keep lines of code within a reasonable length (e.g., 80-120 characters) for readability.4. Naming Conventions:• Follow a consistent naming convention for variables, functions, and classes (e.g., camelCase, snake_case).5. Comments:• Use comments to explain complex parts of the code or to provide context.Data Formatting:1. Consistent Style:• Maintain a consistent style for presenting data throughout the document or dataset.2. Headers:• Use clear and descriptive headers for columns in tables or datasets.3. Alignment:• Align data in columns for better readability.4. Units and Symbols:• Clearly specify units of measurement and use appropriate symbols.5. Decimal Places:• Standardize the number of decimal places for numerical data.Web Page Formatting (HTML/CSS):1. HTML Structure:• Follow a clear HTML structure with proper use of tags(e.g., head, body).2. CSS Styling:• Use consistent CSS styling for fonts, colors, and layout.3. Responsive Design:• Ensure the web page is designed to be responsive on various devices.General Tips:• Always refer to specific style guides or documentation relevant to the context you are working in.• Be consistent throughout the document or codebase.• Pay attention to details such as punctuation, capitalization, and spacing.Specific rules can vary based on the requirements of your organization, project, or the standards you are following. Always refer to the appropriate documentation or style guide for precise rules in your specific context.。
c++core guidelines解析
C++ Core Guidelines 是由C++ 之父Bjarne Stroustrup 等人共同制定的一套C++ 编程规范。
这一套规范旨在帮助开发人员写出更安全、更可维护、更高效的C++ 代码。
C++ Core Guidelines 分为多个指导原则(Guidelines),涵盖了从基本语法到高级设计的多个方面。
以下是C++ Core Guidelines 的一些主要原则:
1. 基础准则:
-包括命名、缩进、空格等基础的代码书写规范。
2. 类型和表达式:
-强调使用类型安全、高效的表达式,避免不必要的类型转换。
3. 函数:
-包括函数设计、参数传递、返回值等方面的规范。
4. 类和对象:
-强调类的设计、构造函数、析构函数、成员函数等方面的规范。
5. 资源管理:
-涉及内存管理、资源获取与释放、智能指针等方面的最佳实践。
6. 错误处理:
-提倡使用异常处理,规定如何在程序中处理错误。
7. 并发:
-包括多线程编程、互斥锁、条件变量等并发编程方面的指导。
8. 模块化:
-强调模块化设计、接口设计、头文件管理等。
9. 编程技术:
-涵盖了各种编程技术,包括面向对象设计、泛型编程、元编程等。
10. 性能:
-提供了关于性能优化、避免不必要的开销等的建议。
11. 编译器和工具:
-提供了关于编译器选项、代码分析工具等的建议。
这些原则的目标是提高代码的质量、可读性、可维护性,并减少潜在的错误和漏洞。
在实际项目中,开发者可以根据项目的特点选择性地采用这些规范,以提高代码质量和团队协作效率。
Google的C++编码规范
Google C++ Style GuideRevision 3.180Benjy WeinbergerCraig SilversteinGregory EitzmannMark MentovaiTashana Landray Each style point has a summary for which additional information is available by toggling the accompanying arrow button that looks this way:▶. You may toggle all summaries with the big arrow button:▶ Toggle all summariesTable of ContentsImportant NoteDisplaying Hidden Details in this Guide▶This style guide contains many details that are initially hidden from view. They are marked by the triangle icon, which you see here on your left. Click it now. You should see "Hooray" appear below.BackgroundC++ is the main development language used by many of Google's open-source projects. As every C++ programmer knows, the language has many powerful features, but this power brings with it complexity, which in turn can make code more bug-prone and harder to read and maintain.The goal of this guide is to manage this complexity by describing in detail the dos and don'ts of writing C++ code. These rules exist to keep the code base manageable while still allowing coders to use C++ language features productively.Style, also known as readability, is what we call the conventions that govern our C++ code. The term Style is a bit of a misnomer, since these conventions cover far more than just source file formatting.One way in which we keep the code base manageable is by enforcing consistency. It is very important that any programmer be able to look at another's code and quickly understand it. Maintaining a uniform style and following conventions means that we can more easily use "pattern-matching" to infer what various symbols are and what invariants are true about them. Creating common, required idioms and patterns makes code much easier to understand. In some cases there might be good arguments for changing certain style rules, but we nonetheless keep things as they are in order to preserve consistency.Another issue this guide addresses is that of C++ feature bloat. C++ is a huge language with many advanced features. In some cases we constrain, or even ban, use of certain features. We do this to keep code simple and to avoid the various common errors and problems that these features can cause. This guide lists these features and explains why their use is restricted.Open-source projects developed by Google conform to the requirements in this guide.Note that this guide is not a C++ tutorial: we assume that the reader is familiar with the language.Header FilesIn general, every .cc file should have an associated .h file. There are some common exceptions, such as unittests and files containing just a main() function.Correct use of header files can make a huge difference to the readability, size and performanceof your code.The following rules will guide you through the various pitfalls of using header files.The #define Guard▶All header files should have #define guards to prevent multiple inclusion. The format of the symbol name should be<PROJECT>_<PATH>_<FILE>_H_.Header File Dependencies▶Don't use an #include when a forward declaration would suffice.Inline Functions▶Define functions inline only when they are small, say, 10 lines or less.The -inl.h Files▶You may use file names with a -inl.h suffix to define complex inline functions when needed.Function Parameter Ordering▶When defining a function, parameter order is: inputs, then outputs.Names and Order of Includes▶Use standard order for readability and to avoid hidden dependencies: C library, C++ library, other libraries' .h, your project's .h.ScopingNamespaces▶Unnamed namespaces in .cc files are encouraged. With named namespaces, choose the name based on the project, and possibly its path. Do not use a using-directive.Nested Classes▶Although you may use public nested classes when they are part of an interface, considera namespace to keep declarations out of the global scope.Nonmember, Static Member, and Global Functions▶Prefer nonmember functions within a namespace or static member functions to global functions; use completely global functions rarely.Local Variables▶Place a function's variables in the narrowest scope possible, and initialize variables in the declaration.Static and Global Variables▶Static or global variables of class type are forbidden: they cause hard-to-find bugs due to indeterminate order of construction and destruction.ClassesClasses are the fundamental unit of code in C++. Naturally, we use them extensively. This section lists the main dos and don'ts you should follow when writing a class.Doing Work in Constructors▶In general, constructors should merely set member variables to their initial values. Any complex initialization should go in an explicit Init() method.Default Constructors▶You must define a default constructor if your class defines member variables and has no other constructors. Otherwise the compiler will do it for you, badly.Explicit Constructors▶Use the C++ keyword explicit for constructors with one argument.Copy Constructors▶Provide a copy constructor and assignment operator only when necessary. Otherwise, disable them with DISALLOW_COPY_AND_ASSIGN.Structs vs. Classes▶Use a struct only for passive objects that carry data; everything else is a class.Inheritance▶Composition is often more appropriate than inheritance. When using inheritance, make it public.Multiple Inheritance▶Only very rarely is multiple implementation inheritance actually useful. We allow multiple inheritance only when at most one of the base classes has an implementation; all other base classes must be pure interface classes tagged with the Interface suffix.Interfaces▶Classes that satisfy certain conditions are allowed, but not required, to end withan Interface suffix.Operator Overloading▶Do not overload operators except in rare, special circumstances.Access Control▶Make data members private, and provide access to them through accessor functions as needed (for technical reasons, we allow data members of a test fixture class tobe protected when using Google Test). Typically a variable would be called foo_ and the accessor function foo(). You may also want a mutator function set_foo(). Exception: static const data members (typically called kFoo) need not be private.Declaration Order▶Use the specified order of declarations within a class: public: before private:, methods before data members (variables), etc.Write Short Functions▶Prefer small and focused functions.Google-Specific MagicThere are various tricks and utilities that we use to make C++ code more robust, and various ways we use C++ that may differ from what you see elsewhere.Smart Pointers▶If you actually need pointer semantics, scoped_ptr is great. You should onlyuse std::tr1::shared_ptr under very specific conditions, such as when objects need to be held by STL containers. You should never use auto_ptr.cpplint▶Use cpplint.py to detect style errors.Other C++ FeaturesReference Arguments▶All parameters passed by reference must be labeled const.Function Overloading▶Use overloaded functions (including constructors) only if a reader looking at a call site can get a good idea of what is happening without having to first figure out exactly which overload is being called.Default Arguments▶We do not allow default function parameters, except in a few uncommon situations explained below.Variable-Length Arrays and alloca()▶We do not allow variable-length arrays or alloca().Friends▶We allow use of friend classes and functions, within reason.Exceptions▶We do not use C++ exceptions.Run-Time Type Information (RTTI)▶We do not use Run Time Type Information (RTTI).Casting▶Use C++ casts like static_cast<>(). Do not use other cast formats like int y =(int)x; or int y = int(x);.Streams▶Use streams only for logging.Preincrement and Predecrement▶Use prefix form (++i) of the increment and decrement operators with iterators and other template objects.Use of const▶We strongly recommend that you use const whenever it makes sense to do so.Integer Types▶Of the built-in C++ integer types, the only one used is int. If a program needs a variable of a different size, use a precise-width integer type from <stdint.h>, such as int16_t.64-bit Portability▶Code should be 64-bit and 32-bit friendly. Bear in mind problems of printing, comparisons, and structure alignment.Preprocessor Macros▶Be very cautious with macros. Prefer inline functions, enums, and const variables to macros.0 and NULL▶Use 0 for integers, 0.0 for reals, NULL for pointers, and '\0' for chars.sizeof▶Use sizeof(varname) instead of sizeof(type) whenever possible.Boost▶Use only approved libraries from the Boost library collection.C++0x▶Use only approved libraries and language extensions from C++0x. Currently, none are approved.NamingThe most important consistency rules are those that govern naming. The style of a name immediately informs us what sort of thing the named entity is: a type, a variable, a function, a constant, a macro, etc., without requiring us to search for the declaration of that entity. The pattern-matching engine in our brains relies a great deal on these naming rules.Naming rules are pretty arbitrary, but we feel that consistency is more important than individual preferences in this area, so regardless of whether you find them sensible or not, the rules are the rules.General Naming Rules▶Function names, variable names, and filenames should be descriptive; eschew abbreviation. Types and variables should be nouns, while functions should be "command" verbs.File Names▶Filenames should be all lowercase and can include underscores (_) or dashes (-). Follow the convention that your project uses. If there is no consistent local pattern to follow, prefer "_".Type Names▶Type names start with a capital letter and have a capital letter for each new word, with no underscores: MyExcitingClass,MyExcitingEnum.Variable Names▶Variable names are all lowercase, with underscores between words. Class member variables have trailing underscores. Forinstance: my_exciting_local_variable, my_exciting_member_variable_.Constant Names▶Use a k followed by mixed case: kDaysInAWeek.Function Names▶Regular functions have mixed case; accessors and mutators match the name of thevariable: MyExcitingFunction(),MyExcitingMethod(), my_exciting_member_variab le(), set_my_exciting_member_variable().Namespace Names▶Namespace names are all lower-case, and based on project names and possibly their directory structure:google_awesome_project.Enumerator NamesMacro Names▶You're not really going to define a macro, are you? If you do, they're likethis: MY_MACRO_THAT_SCARES_SMALL_CHILDREN.Exceptions to Naming Rules▶If you are naming something that is analogous to an existing C or C++ entity then you can follow the existing naming convention scheme.CommentsThough a pain to write, comments are absolutely vital to keeping our code readable. The following rules describe what you should comment and where. But remember: while comments are very important, the best code is self-documenting. Giving sensible names to types and variables is much better than using obscure names that you must then explain through comments. When writing your comments, write for your audience: the next contributor who will need to understand your code. Be generous — the next one may be you!Comment Style▶Use either the // or /* */ syntax, as long as you are consistent.File Comments▶Start each file with a copyright notice, followed by a description of the contents of the file.Class Comments▶Every class definition should have an accompanying comment that describes what it is for and how it should be used.Function Comments▶Declaration comments describe use of the function; comments at the definition of a function describe operation.Variable Comments▶In general the actual name of the variable should be descriptive enough to give a good idea of what the variable is used for. In certain cases, more comments are required.Implementation Comments▶In your implementation you should have comments in tricky, non-obvious, interesting, or important parts of your code.Punctuation, Spelling and Grammar▶Pay attention to punctuation, spelling, and grammar; it is easier to read well-written comments than badly written ones.TODO Comments▶Use TODO comments for code that is temporary, a short-term solution, or good-enough but not perfect.Deprecation Comments▶Mark deprecated interface points with DEPRECATED comments.FormattingCoding style and formatting are pretty arbitrary, but a project is much easier to follow if everyone uses the same style. Individuals may not agree with every aspect of the formatting rules, and some of the rules may take some getting used to, but it is important that all project contributors follow the style rules so that they can all read and understand everyone's code easily.To help you format code correctly, we've created a settings file for emacs.Line Length▶Each line of text in your code should be at most 80 characters long.Non-ASCII Characters▶Non-ASCII characters should be rare, and must use UTF-8 formatting.Spaces vs. Tabs▶Use only spaces, and indent 2 spaces at a time.Function Declarations and Definitions▶Return type on the same line as function name, parameters on the same line if they fit.Function Calls▶On one line if it fits; otherwise, wrap arguments at the parenthesis.Conditionals▶Prefer no spaces inside parentheses. The else keyword belongs on a new line.Loops and Switch Statements▶Switch statements may use braces for blocks. Empty loop bodies should use {} or continue.Pointer and Reference Expressions▶No spaces around period or arrow. Pointer operators do not have trailing spaces.Boolean Expressions▶When you have a boolean expression that is longer than the standard line length, be consistent in how you break up the lines.Return Values▶Do not needlessly surround the return expression with parentheses.Variable and Array Initialization▶Your choice of = or ().Preprocessor Directives▶Preprocessor directives should not be indented but should instead start at the beginning of the line.Class Format▶Sections in public, protected and private order, each indented one space.Constructor Initializer Lists▶Constructor initializer lists can be all on one line or with subsequent lines indented four spaces.Namespace Formatting▶The contents of namespaces are not indented.Horizontal Whitespace▶Use of horizontal whitespace depends on location. Never put trailing whitespace at the end of a line.Vertical Whitespace▶Minimize use of vertical whitespace.Exceptions to the RulesThe coding conventions described above are mandatory. However, like all good rules, these sometimes have exceptions, which we discuss here.Existing Non-conformant Code▶You may diverge from the rules when dealing with code that does not conform to this style guide.Windows Code▶Windows programmers have developed their own set of coding conventions, mainly derived from the conventions in Windows headers and other Microsoft code. We want to make it easy foranyone to understand your code, so we have a single set of guidelines for everyone writing C++ on any platform.Parting WordsUse common sense and BE CONSISTENT.If you are editing code, take a few minutes to look at the code around you and determine its style. If they use spaces around their if clauses, you should, too. If their comments have little boxes of stars around them, make your comments have little boxes of stars around them too.The point of having style guidelines is to have a common vocabulary of coding so people can concentrate on what you are saying, rather than on how you are saying it. We present global style rules here so people know the vocabulary. But local style is also important. If code you add to a file looks drastically different from the existing code around it, the discontinuity throws readers out of their rhythm when they go to read it. Try to avoid this.OK, enough writing about writing code; the code itself is much more interesting. Have fun!Revision 3.180Benjy WeinbergerCraig SilversteinGregory EitzmannMark MentovaiTashana Landray。
英文排版规范
英文排版规范English Typography GuidelinesTypography is an essential aspect of design that can significantly impact the readability and visual appeal of any text. Therefore, it is important to follow certain guidelines when it comes to English typography. Here are some key rules to consider:1. Font Type and Size:- Use a legible font type, such as Arial, Times New Roman, or Calibri.- Consider the target audience and the purpose of your text when choosing a font.- Use a font size of at least 12 points for body text and larger sizes for headings and titles.2. Spacing and Alignment:- Use consistent spacing between lines of text. A standard spacing is 1.5 or double lines.- Align text to the left or justify align if necessary, but avoid center alignment for lengthy text.- Use proper indentation for paragraphs, typically half an inch or one tab key press.3. Capitalization and Punctuation:- Use sentence case for headings and titles, capitalizing the first letter of each significant word.- Use proper sentence structure and verify the usage of commas, periods, and other punctuation marks.4. Italics and Bold:- Use italics sparingly and only for specific purposes, such as emphasizing a word or for book titles.- Use bold for headings and subheadings, but avoid excessive use as it can make the text difficult to read.5. Bulleted and Numbered Lists:- Use bullet points or numbered lists when presenting information in a concise and organized manner.- Start each bullet point or number with a capital letter and end with proper punctuation if necessary.- Maintain consistent indentation and spacing for all items in the list.6. Line Length and Hyphenation:- Avoid long line lengths that can strain the reader's eyes. A general guideline is 50 to 75 characters per line.- Avoid excessive hyphenation by adjusting the spacing or justification of the text.- Break words at syllable boundaries whenever possible to improve readability.7. Use of White Space:- Incorporate ample white space within and around text to enhance readability and allow the text to breathe.- Use margins and padding effectively to create balanced layouts and separate sections of text.8. Consistency:- Maintain consistency in font choices, sizes, spacing, andalignment throughout the document.- Ensure consistent formatting for headings, subheadings, and body text across different sections or pages.9. Proofreading and Editing:- Always proofread and edit your text before finalizing it for publication.- Check for spelling, grammar, and punctuation errors, as well as consistency in formatting.By following these typography guidelines, you can create visually appealing and easily readable English text. Remember to adjust these rules based on the context and medium in which the text will be presented.。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Grand Challenges Explorations Round 15Rules & GuidelinesProposals due by Wednesday May 13, 2015 11:30 a.m. U.S. Pacific Daylight TimeI. OverviewGrand Challenges Explorations (GCE) supports hundreds of early-stage research projects – including many ideas that have never before been tested – and scientists and innovators from a wide range of disciplines and regions. The GCE initiative funds innovative ideas that could lead to new vaccines, diagnostics, drugs, and other technologies targeting diseases that claim millions of lives every year, as well as improvements and innovations in agriculture development and others of the Bill & Melinda Gates Foundation priority areas.GCE is an extension of the foundation’s commitment to the Grand Challenges in Global Health, which was launched in 2003 to accelerate the discovery of new technologies to improve global health. GCE has since expanded to include global development and communications challenges, and the Grand Challenges family of programs launched additional funding opportunities in 2014. To date, the foundation has committed over half a billion dollars to support hundreds of projects on topics such as making childhood vaccines easier to use in poor countries, and creating new ways to control insects that spread disease.Key features of the GCE initiative are:• A short application.•Rapid turnaround time. We select projects within approximately five months of the proposal submission.•The review process is blinded and champion-based, where reviewers with a track record in identifying innovative ideas select the proposals they find most pioneering.•Awards of $100,000 USD are made in Phase I. Phase I awardees have one opportunity to apply for a follow-on Phase II award of up to $1,000,000 USD.Tips for ApplicantsYour proposal must demonstrate an innovative approach that complies with all restrictions and guidelines for the topic to which you are applying. The foundation only funds projects responsive to the topics included in each round as it has a number of other avenues of funding for the equally important research that is otherwise within currently accepted program paradigms.Proposals are sent to reviewers without personal or organizational information. Do not include thisinformation in the body of your proposal. Proposals that include personal or organizational information in the body of the proposal are at risk of being automatically removed from consideration.In addition to subject matter experts, your proposal will be reviewed by a panel with broad expertise and a track record in identifying innovations – these reviewers may not be deep domain experts in your field. You must describe your idea in clear language without the use of jargon unique to your field.The work proposed in your application must include a clear set of key experiments or activities that test your idea in a way that could provide sufficient evidence to warrant funding. Proposals with vague descriptions or vague testing methodologies will not be funded.II. Application InstructionsScheduleKey dates and deadlines for Round 15Key Dates Event February 2015 Application period opensWednesday, May 13, 2015, 11:30 a.m.US Pacific Daylight TimeApplication deadline August 2015 Proposal review completedNovember 2015 Selections completed and notifications sentHow to ApplyChanges to the Rules and Guidelines will be posted on the Frequently Asked Questions page of the Grand Challenges in Global Health website (), including any changes to the dates listed above. Please read the current FAQ before submitting any questions or concerns.Subject to the foundation’s Website Terms of Use and Privacy and Information Policy, the foundation may share information you provide to us (either orally or in writing) with third parties, including external reviewers, key partners and co-funders.The GCE initiative publishes topics and invites proposals two rounds a year. An applicant must submit under only one topic each round and may submit only one proposal. Submit your best idea. You may submit multiple ideas in partnership with collaborators, but an individual Principal Investigator may lead the submission of only one proposal each round. View the detailed topic descriptions and determine which topic best suits your idea. You must select a topic prior to submitting a proposal. You may change your topic and edit your proposal any time before the application deadline.If you are an existing user, you can log in to your existing account. New users must create an account and submit proposals through our online portal.Application FormatWe encourage you to use the provided application form, which can be downloaded at: Explorations Application Form. You are required to submit either a Microsoft Word® or PDF document; no more than two pages in length. Please do not include a cover sheet with your proposal. A cover sheet will be automatically generated from your registration data.The review and evaluation of your application are not based on your past history or institutional capabilities. Describe your project without identifying personal or organizational information and do not refer to potential project partners by names or other identifying information. Proposals that do not adhere to these restrictions may be removed from consideration.Proposals for Round 15 must be submitted prior to the submission deadline of 11:30 a.m. Pacific Daylight Time on Wednesday May 13, 2015.During the application process you will be required to confirm that you have read and understand the Website Terms of Use and Privacy and Information Policy and these Rules and Guidelines, and acknowledge that any information that you provide to us (either orally or in writing) will be subject to and handled in accordance with such provisions.Eligibility CriteriaGCE is open to both foreign and domestic organizations, including non-profit organizations, for-profit companies, international organizations, government agencies and academic institutions. Individuals and organizations classified as individuals for U.S. tax purposes (including sole proprietorships and some single member limited liability companies) are not eligible to receive an award as part of the GCE initiative from the foundation. Upon registration, applicants must provide information about the tax status of their organization as different terms and conditions may apply. You should confirm your organization’s tax status with the appropriate person or group within your organization such as your grants or contracts department, finance, or office of sponsored research. Please select the tax status that most closely reflects your current organization’s status. The foundation may request additional information regarding your tax status and other organizational information. For information about tax statuses, you may check with your own advisors and refer to information provided on the Internal Revenue Service web site at: .Applicants planning to conduct project activities in India may be required to register with the Ministry of Home Affairs under the Foreign Contribution Regulation Act (FCRA), 2010. As part of the foundation’s diligence we may ask for a copy of your organization’s registration under FCRA or a written certification that your organization is exempt from such registration requirements. Failure to comply with the requirements of FCRA may subject your organization to financial and/or criminal penalties. You should consult with your own advisors to determine whether FCRA applies to your organization or project.III. Review ProcessThe review of proposals is a critical element of the GCE initiative - its goal is to filter and harness creative ideas. For each round, we advertise a set of challenges carefully defined to elicit innovative responses to critical barriers in global health and development.Handling of ProposalsThe foundation has put in place policies and procedures, exclusive to the GCE initiative, intended to restrict public dissemination of application materials. These policies and procedures include, when possible, having external reviewers sign confidentiality agreements and requiring that reviewers destroy or return to the foundation all copies of information acquired or created during the course of performing a review. In some instances, however, we are unable to put in place confidentiality agreements or to police the use of application materials.Additionally, the foundation is required by the IRS to publish a list of its grants. The foundation also provides general descriptions of its grants on its web sites, in press releases, and in other marketing materials. Subject to the foundation’s Website Terms of Use and Privacy and Information Policy, the foundation may also share information you provide to us (either orally or in writing) with third parties, including external reviewers, key partners and co-funders.Review of ProposalsDue to the large number of proposals anticipated, applicants with proposals that are not selected for award will receive a notification of decline without specific feedback. Nonetheless, applicants are encouraged to submit ideas in future rounds.The review process for Phase I is executed in four steps:1.The first step consists of screening submissions to evaluate whether proposals address the key needsdescribed in the topic. We screen for responses that are completely unrelated or specifically excluded in the topic description. Excluded responses also include ideas related to the topic but, for strategic reasons, we are not funding them in the GCE initiative. In addition, we exclude proposals considered incremental advances, responses similar to work in which the foundation is already investing, or avenues of inquiry wedeem ill-suited to the GCE initiative. Applicants with proposals removed from consideration during the screening process will be notified that their proposals were declined but will not typically receive specific feedback.2.In the second step, reviews are chaired by a foundation program lead and are conducted by reviewers bothoutside and within the foundation. Reviewers are selected from the world’s leading innovative minds and comprise both experts in the topic area and experts in complementary areas with a track record of innovation. (Not all reviewers have deep expertise in the topic; please consider this information when drafting your proposal.) Unlike most grants initiatives, individual reviewers are empowered to make funding decisions about a portion of the portfolio, without consensus on selections. Proposals are sent to reviewers without an applicant’s personal or organizational information.In order of importance, the criteria considered in these reviews are:•Topic Responsiveness – How well does the proposal address a key need illustrated in the topic description?•Innovative Approach – Does the idea offer an unconventional, creative approach to the problem outlined in the topic?•Execution Plan – Is the work described feasible within the budget and time allocated for a Phase I project and, if successful would it have a clear need for further support?3.The third step is the validation and final selection by an Executive Committee at the foundation of theproposals selected by reviewers in the second step of the evaluation. The Executive Committee is chaired by a foundation program director.4.The fourth and final step is a due diligence review to ensure that applicants are appropriate recipients offoundation funds. While the first few steps of the review are largely blind to the institution and investigator, this due diligence review ensures that the investigator and institution have the basic capacity to receive the award (taking into consideration legal requirements to which the Foundation is subject) and perform the work described. Investigators will be contacted as part of the due diligence review.Management of Conflict of InterestTo identify and avert conflicts of interest among reviewers, reviewers will not be permitted to review proposals from organizations with which the reviewer has self-identified conflicts of interest.IV. Key Elements of GCE Phase I AgreementsDetailed sample provisions for each of the two GCE Agreements, one for non-profit organizations and one for for-profit organizations, are included in the Appendix to these Rules and Guidelines. The provisions have been developed specifically for the GCE initiative and are not negotiable. You are advised to ensure that your institution can accept the provisions of the relevant Agreement at the time of proposal submission. If your proposal is selected, you will have only a few weeks after notification of the award in which to have the appropriate institutional officer sign the Agreement and return it to the foundation.1.Phase I projects have a term of 18 months beginning on the project start date. The amount awarded is up to$100,000 USD.2.Grant funds may not be used to reimburse expenses incurred prior to the project start date.3.The applicant must return a fully executed agreement to the foundation no later than the date and timeindicated by the Grants and Contracts Management team to receive a GCE Phase I award. For non-profit grantees, funds will be disbursed upon the foundation’s receipt of a fully executed agreement. The foundation will not pay funds to a for-profit entity until the foundation has received and approvedthe entity’s invoiced expenditures. Specific invoicing instructions for for-profit entities will be provided at the time of the award.4.No awardee is permitted to make sub-grants, but all awardees will be permitted to contract for services, upto a maximum of $49,999 USD. Please be aware that this limit applies to funds paid by an awardee to any other organization (or an individual employed at another organization) as a subcontractor, including payments to co-PIs working at another organization..5.All awardees are entitled to purchase equipment, provided that the cost of each item is less than $5,000USD.6.Phase I project funds may be used to cover the full direct costs of the project, but no awardee will beentitled to use funds to cover indirect costs. See the Sample Agreements for the definition of indirect costs.7.For-profit non-US awardees are subject to restrictions on the amount of funds they may use forexpenditures in the US8.Project funds may not be used to enroll human subjects in any research project subject to InstitutionReview Board (IRB) or independent ethics committee (IEC) approval until such approval has been obtained for each site.9.Awardees must agree toin a manner that ensures “Global Access.” See the Global Access Section of the Sample Agreements for more information about these obligations.We strongly encourage you to share the Sample Agreements withorganization such as your grants and contracts department, legal department, finance or office of sponsored research at the time you submit your proposal to ensure that your organization can agree to the relevant provisions.V. Phase I ReportingAll GCE awardees must prepare and submit a Final Financial and Scientific Report. Awardees must submit the report electronically by the date described in the Reporting section of the Sample Agreements. The report should be a cumulative, stand-alone document that describes the work performed with the project funds during the project term. The scientific section of the report must include any technical data gathered, models developed, and summary conclusions. The financial section of the report should include an account of the manner in which you spent the project funds.VI. Phase II GCE AwardsPhase II is an opportunity to provide additional support for projects that demonstrate innovative solutions towards the GCE goals and are critical to foundation strategies. Phase I awardees have one chance to apply for Phase II funding of up to $1,000,000 USD with a grant term of up to two (2) years.Phase II projects are not subject to the same limitations as Phase I grants. Phase II grant terms follow standard grant-making practices at the foundation.VII. Terms of Use, Privacy Notice and Information SecurityThis document and your application are subject to the Terms of Use and Privacy & Information Security Policy which are located at /about/Pages/TermsofUse.aspxVIII. Frequently Asked QuestionsAnswers to many application questions can be found on the Frequently Asked Questions section of our website at .IX. InquiriesPlease direct all questions about this initiative, selection criteria, or application instructions by e-mail to the following address: GCEhelp@.AppendixI.Term of OffersGCE awards are conditioned upon the foundation’s receipt of an executed agreement by the date indicated by the Grants and Contracts Management team in the email to which the Agreement is attached. Agreements received after the deadline may not be considered for funding. More information will be sent to those being considered for an award. The scheduled start date for all Round 15 GCE Phase I projects is November 1, 2015.II.Sample Agreement for Non-Profit Organizations (See below for Sample Agreement for For-Profit Organizations)THIS AGREEMENT is between <<>> (“<<>>” or “You”) and the Bill & Melinda Gates Foundation (“Foundation”), and is effective as of the date of last signature. Each party to the Agreement may be referred to individually as a “Party” and together as the “Parties.” As a condition of this grant, the Parties enter into this Agreement by having their authorized representatives sign the Agreement.GRANT AGREEMENTGRANT AMOUNT AND REPORTING & PAYMENT SCHEDULEGRANT AMOUNTThe Foundation will pay You a one-time amount of $100,000.PAYMENTSThe Foundation will disburse the grant funds to you via check or wire transfer within ten business days of receipt of the countersigned Agreement.REPORTINGYou will submit a final Financial and Scientific Report using the Foundation’s template or form, which the Foundation will make available to You and which may be modified from time to time. You will submit Your final Financial and Scientific Report via email to the Program Coordinator no later than45 days after the grant end date.All questions regarding Your reporting obligations should be submitted electronically to the Grand Challenges Explorations Program Coordinator at the email address listed above.TERMS & CONDITIONSThis Agreement is subject to the following terms and conditions.PROJECT SUPPORTPROJECT DESCRIPTION AND CHARITABLE PURPOSEThe Foundation is awarding You this grant to carry out the project described in the Proposal Narrative (the, “Project”) in order to further the Charitable Purpose.EVALUATIONYou agree to notify the Foundation and provide copies of any reports or findings if You conduct or commission any research or evaluation regarding the Project. If You are selected to participate in Foundation-funded research or evaluation related to the Project, You agree to: (a) designate a primary point of contact; (b) cooperate with the Foundation’s evaluation partner as reasonably required to implement an evaluation plan; (c) provide or facilitate the collection of data as reasonably required; and (d) permit dissemination of resulting reports or findings.MANAGEMENT OF FUNDSUSE OF FUNDSYou may not use funds provided under this Agreement (“Grant Funds”) for any purpose other than the Project. You may not use Grant Funds to reimburse any expenses You incurred prior to the Start Date. Together with the final report required under this Agreement, You must report investment activities and the amount of any currency conversion gains (or losses) and the amount of any interest or other income generated by the Grant Funds (collectively, “Income”). Any Income must be used for the Project.For ER Grantees: SEGREGATION OF FUNDSYou must maintain Grant Funds in a physically separate bank account or a separate bookkeeping account maintained as part of Your financial records and dedicated to the Project.LIMITATIONS ON CAPITAL ASSETSYou may use the Grant Funds to purchase capital assets such as equipment so long as the assets are used exclusively for the Project during the term of the grant and the cost of any single capital item does not exceed $5,000.INDIRECT COSTSGrant funds may not be used to pay any indirect costs. Indirect costs are defined as (1) overhead expenses incurred as a result of the Project, but that are not easily identifiable with the Project and (2) administrative expenses that are related to overall general operations and are shared among projects and/or functions. Examples of indirect costs include, but are not limited to, executive oversight, accounting, grants management, legal expenses, utilities, facility maintenance.GLOBAL ACCESSGLOBAL ACCESS COMMITMENTYou will conduct and manage the Project and the Funded Developments in a manner that ensures Global Access. Your Global Access commitments will survive the term of this Agreement. “Funded Developments” means the products, services, processes, technologies, materials, software, data, other innovations, and intellectual property resulting from the Project (including modifications, improvements, and further developments to Background Technology). “Background Technology”means any and all products, services, processes, technologies, materials, software, data, other innovations, and intellectual property created by You or a third party prior to or outside of the Project used as part of the Project. “Global Access” means: (a) the knowledge and information gained from the Project will be promptly and broadly disseminated; and (b) the Funded Developments will be made available and accessible at an affordable price (i) to people most in need within developing countries, or (ii) in support of the U.S. educational system and public libraries, as applicable to the Project.PUBLICATIONFor the purpose of achieving Global Access, You will seek prompt publication of any Funded Developments consisting of data and results in a peer-reviewed journal, treatise, or trade publication, as applicable. Such publication may be delayed for a reasonable period for the sole purpose of seeking patent protection, provided the patent application is drafted, filed, and managed in a manner that best furthers the charitable purpose of this Agreement. You will also use good faith efforts to ensure that Your subgrantees, subcontractors, agents, and affiliates, as applicable, likewise seek prompt publication of any Funded Developments consisting of data and results.PUBLICATION IN PEER-REVIEWED JOURNALSIf You seek publication of Funded Developments in a peer-reviewed journal, such publication shall be under “open access” terms and conditions consistent with the Foundation’s Open Access Policy available at: /How-We-Work/General-Information/Open-Access-Policy, which may be modified from time to time.SUBGRANTS AND SUBCONTRACTSSUBGRANTS AND SUBCONTRACTSYou have the exclusive right to select subcontractors to assist with the Project. The aggregate amount of Grant Funds paid to subcontractors may not exceed $49,999. You acknowledge that the Foundation has not and will not earmark the use of any Grant Funds for a specific subcontractor. You may not make subgrants under this Agreement.RESPONSIBILITY FOR OTHERSYou are responsible for (a) all acts and omissions of any of Your trustees, directors, officers,employees, subcontractors, contingent workers, agents, and affiliates assisting with the Project, and(b) ensuring their compliance with the terms of this Agreement.PROHIBITED ACTIVITIESANTI-TERRORISMYou will not use funds provided under this Agreement, directly or indirectly, in support of activities(a) prohibited by U.S. laws related to combatting terrorism; (b) with or related to parties on the List ofSpecially Designated Nationals (/sdn); or (c) with or related to countries against which the U.S. maintains a comprehensive embargo (currently, Cuba, Iran, (North) Sudan, Syria, and North Korea), unless such activities are fully authorized by the U.S. government under applicable law and specifically approved by the Foundation in its sole discretion.ANTI-CORRUPTION AND ANTI-BRIBERYYou will not offer or provide money, gifts, or any other things of value directly or indirectly to anyone in order to improperly influence any act or decision relating to the Foundation or the Project, including by assisting any party to secure an improper advantage. Training and information on compliance with these requirements are available at .For Indian Grantees: FCRA COMPLIANCEFor an organization that has not yet registered under FCRA: If You are conducting Project activities in India, the Foundation will not make payments, and You may not incur expenses under, this Agreement until the Foundation has received a copy of Your registration with the Ministry of Home Affairs under the Foreign Contribution (Regulation) Act (FCRA), 2010, or written evidence that You are exempt from such registration requirements. You must advise the Foundation immediately if there is any change in Your FCRA registration during the term of this Agreement.For an organization that has registered under FCRA: The Foundation has verified with the Ministry of Home Affairs Your registration under the Foreign Contribution (Regulation) Act (FCRA), 2010, and/or received a copy of such registration from You. You must advise the Foundation immediately if there is any change in Your FCRA registration during the term of this Agreement.For an organization that is an Indian governmental entity exempt under FCRA:By signing this Agreement, You certify that You: (a) are not, as a result of this Agreement or otherwise, subject to the Foreign Contribution (Regulation) Act (FCRA), 2010; (b) understand that the Foundation is entering into this Agreement in reliance on this representation; and (c) understand that You would be subject to any financial and/or criminal penalties imposed for non-compliance with FCRA. You must advise the Foundation immediately if there is any change in FCRA’s applicability to You in connection with Your activities under this Agreement or otherwise.POLITICAL ACTIVITY AND ADVOCACYYou may not use Grant Funds to influence the outcome of any election for public office or to carry on any voter registration drive. You may not use Grant Funds to support lobbying activity or to otherwise support attempts to influence local, state, federal, or foreign legislation. Your strategies and activities, and any materials produced with Grant Funds, must comply with applicable local, state, federal, or foreign lobbying law. You agree to comply with lobbying, gift, and ethics rules applicable to the Project.REGULATED ACTIVITIESRESEARCH INVOLVING HUMAN SUBJECTSYou agree that no funds will be expended to enroll human subjects in any research project subject to Institution Review Board (IRB) or independent ethics committee (IEC) approval until such approval has been obtained for each site.COVERAGE FOR ALL SITESYou agree that for each venue in which any part of the Project is conducted (either by Your organization or a subgrantee or subcontractor) all legal and regulatory approvals for the activities being conducted will be obtained in advance of commencing the regulated activity. You further specifically agree that no funds will be expended to enroll human subjects until the necessary regulatory and ethical bodies’ approvals are obtained.REGULATED RESEARCHThe coverage requirements set forth in the preceding paragraph include but are not limited to regulations relating to: research involving human subjects; clinical trials, including management of data confidentiality; research involving animals; research using substances or organisms classified as Select Agents by the U.S. Government; use or release of genetically modified organisms; research use of recombinant DNA; and/or use of any organism, substance or material considered to be a biohazard, including adherence to all applicable standards for transport of specimens, both locally and internationally, as appropriate. As applicable, regulated activities and their documentation are to be conducted under the applicable international, national, and local standards. Documentation of research results should be consistent with regulations and the need to establish corroborated dates of invention and reduction to practice with respect to inventions where this is relevant.PUBLICITYPUBLICITY BY THE FOUNDATIONThe Foundation may include information about the award of this grant, including Your name, in its periodic public reports and may make such information available on its website and as part of press releases, public reports, speeches, newsletters, tax returns, and other public disclosures. The Foundation expects that grantees pursuing similar grand challenges and overarching goals will communicate and collaborate on a periodic basis in achieving progress towards these solutions. The Foundation may identify to You the other entities with which you should consider collaboration.PUBLICITY BY YOUYou must obtain the Foundation’s prior written approval before: (a) issuing a press release or other public announcement regarding the award of this grant; and (b) any other public use of the Foundation’s name or mark. For any subsequent press releases or other public announcements directly related to the award of this grant, please email Your request to Grantee Communications two weeks in advance to provide the Foundation an opportunity to review and comment.PUBLICITY BY OTHERSYou and Your subcontractors, contingent workers, agents, or affiliates may not state or imply to third parties that the Foundation directly funds or otherwise endorses their activities.OTHERCOMPLIANCE WITH LAWSIn carrying out the Project, You will comply with all applicable laws, regulations, and rules and will not infringe, misappropriate, or violate the intellectual property rights of any third party.RELIANCEYou acknowledge that the Foundation is relying on the information You provide in reports and during the course of any due diligence conducted prior to the Start Date and during the term of this Agreement. You represent that the Foundation may continue to rely on this information and on any additional information You provide regarding activities, progress, and Funded Developments.。