/* Write a program to print the value of EOF. */ #include <stdio.h> main() { printf("EOF is %d\n", EOF); } /* Output: EOF is -1 */…
/* Experiment to find out what happens when printf's argument string contains \c, where c is some character not listed above. */ #include <stdio.h> main() { printf("hello world\y"); printf("hello world\7"); printf("hello wor…
/* Run the "hello, world" program on your system. Experiment with leaving out parts of the program to see what error messages you get. */ #include <stdio.h> main() { printf("hello world\n"); }…
/* Revise the main routine of the longest-line program so it will correctly print the length of arbitrarily long input lines, and as much as possible of the text. */ #include <stdio.h> #define MAXLINE 1000 /* maximum input line size */ int getline(c…
/* Write a program to count blanks, tabs, and newlines. */ #include <stdio.h> /* count blanks, tabs, and newlines */ main() { int c, nb, nt, nl; nb = 0; /* number of blanks */ nt = 0; /* number of tabs */ nl = 0; /* number of newlines */ while((c =…
/* Modify the temperature conversion program to print the table in reverse order, that is, from 300 degrees to 0. */ #include <stdio.h> /* print Fahrenheit-Celsius table in reverse order */ main() { int fahr; for(fahr = 300; fahr >= 0; fahr -= 20…
/* Rewrite the temperature conversion program of Section 1.2 to use a function for conversion. */ #include <stdio.h> float celsius(float fahr); /* print Fahrenheit-Celsius table or fahr = 0, 20, ..., 300; floating-point version */ main() { float fah…
/* Write a program that prints its input one word per line. */ #include <stdio.h> #define IN 1 /* inside a word */ #define OUT 0 /* outside a word */ /* print input one word per line */ main() { int c, state = OUT; while((c = getchar()) != EOF) { if…
/* Write a program to print the corresponding Celsius to Fahrenheit table. */ #include <stdio.h> /* print Celsius-Fahrenheit table for celsius = 0, 20, ..., 300; floating-point version */ main() { float fahr, celsius; int lower, upper, step; lower =…
/* Verify that the expression getchar() != EOF is 0 or 1. */ #include <stdio.h> main() { int c; while(c = getchar() != EOF) { printf("%d\n", c); } printf("%d - at EOF\n", c); }…
因为看了<Entity Framework 6 Recipes 2nd Edition>这本书前面8章的翻译,感谢china_fucan. 从第九章开始,我是边看边译的,没有通读,加之英语造诣,所以纰漏百出,也请勿见笑,就当是鼓励! 有些小节空着是因为我写代码的时候,发现与书里的出入非常大,应该是ef版本问题,所以我暂且搁置(现在打算从此搁置,因为EF很快就出Core版本了)! 第9章 在N层结构的应用程序中使用EF 1.9-1 用Web Api更新单独分离的实体 2.9-2 用WCF更新单独…
<Pro SQL Server Internals, 2nd edition> 作者:Dmitri Korotkevitch 翻译:赖慧芳 译文: 55-58页 第三章 统计 SQL Server查询优化器在为查询选择执行计划时使用基于成本的模型.它估计不同执行计划的成本,并选择成本最低的一个.但是,请记住,SQL Server并不搜索可用于查询的最佳执行计划,因为评估所有可能的替代方案在CPU方面既费时又昂贵.查询优化器的目标是找到一个足够好的执行计划,足够快. 基数估计(在查询执行的每个步…
<Pro SQL Server Internals, 2nd edition> 作者:Dmitri Korotkevitch 翻译:赖慧芳 译文: 设计和优化索引 定义一种应用于所有地方的索引策略是不可能的.每个系统都是独特的,需要基于工作,业务需求和其他一些因素的自己的索引方法.然而,有几个设计的注意事项和指导方针可以被应用到每个系统. 在我们优化现有的系统时非常正解.虽然优化是一个迭代过程在任何时候都是独特的,但是有一组技术可以用来检测每个数据系统的效率低下. 在本章节,请记住我们将呈现一…
<Pro SQL Server Internals, 2nd edition> 作者:Dmitri Korotkevitch 翻译:赖慧芳 译文: 聚集索引 聚集索引指示表中数据的物理顺序,该顺序是根据聚集索引键排序的.表只能定义一个聚集索引. 让我们假设您希望在堆表上使用数据创建集群索引.作为第一步,如图2-5所示,SQL Server创建数据的另一个副本,然后根据集群键的值对其进行排序.数据页在双链表中链接,其中每个页面都包含指向链中的下一个和上一个页面的指针.这个列表称为索引的叶级,它包…
<Pro SQL Server Internals, 2nd edition> 作者:Dmitri Korotkevitch 翻译:赖慧芳 译文: 专业SQL服务器内部 了解在引擎盖下发生了什么,以及它是如何影响你的 第二版 数据页和数据行 数据库中的空间被划分为逻辑8KB页面.这些页面从0开始连续编号,可以通过指定文件ID和页码来引用它们.页面编号总是连续的,这样当SQL Server增长数据库文件时,新页面的编号将从文件中最高的页码加1开始.类似地,当SQL Server压缩文件时,它会从…
前言 这是我阅读<The C++ standard library, 2nd Edition>所做读书笔记的第一篇.这个系列基本上会以一章一篇的节奏来写,少数以C++03为主的章节会和其它章节合并,一些内容较多的章节也会抽出几个独立的章节.这些博文不分析具体的应用情景,仅仅用来记录C++11新增的知识点.关于C++11知识点的详细解析,请参考C++11 FAQ:关于C++03以及STL的较详尽解析,请参考相关著作或者网络资料:推荐<C++ Primer,4th edition>和&…
原文网址:http://www.ros.org/news/2017/02/2nd-edition-of-international-robotics-summer-school-robotcraft-2017.html RobotCraft 2017 第二届国际机器人学暑期学校 2nd Edition of International Robotics Summer School 我们很高兴地宣布,第二届国际夏季课程RobotCraft 2017年:机器人技术国际学院,从7月3日至9月3日,在葡…
很偶然的机会,就需要接触到搜索,入门就是google trend已然超过solr的ES.在入门的时候找书的时候发现没有中文版的.于是自己开始翻译Elasticsearch Server,2nd Edition.应该是全球头一份了.看到微博上已经有出版社把英文书引过来,刚找到了人翻译这本书.我就先放出来自己翻的一部分.如果他真找到这里来了,就义务提供一下自己翻译的资源: 翻译是同步在我的Evernote里.贴出来到blog里样式都乱了.索性分享出来我的Evernote.去看去吧. 如果要引用或者转…
Manning.EJB.3.in.Action.2nd.Edition http://files.cnblogs.com/files/rojas/EJB_3_in_Action_2nd_Edition.zip source code  from url :  git clone https://code.google.com/p/action-bazaar/ 或者  http://files.cnblogs.com/files/rojas/action-bazaar-all.zip…
了2007年的目标,列了下面待读或重读的书单.    "其实中国程序员,现在最需要的是一张安静的书桌.",的确,中国架构师大多缺乏系统的基础知识,与其自欺欺人的宣扬"读书无用,重在实践变通,修身立命哲学书更重要",把大好时间用来追逐互联网上的片言只语,不如直面缺陷,系统的学习一次. 书单越读越薄,好书真的不多哇. 一.Software Architecture篇 这个领域没有什么"畅销书",可能读者中本来就是开发设计人员与项目经理占了多数,真正定…
第九章 在N层结构的应用程序中使用EF 不是所有的应用都能完全地写入到一个单个的过程中(就是驻留在一个单一的物理层中),实际上,在当今不断发展的网络世界,大量的应用程序的结构包含经典的表现层,应用程,和数据层,并且它们可能分布在多台计算机上,被分布到一台单独的计算机上的应用程序的某个领域的逻辑层,并不过多地涉及代理服务器编码,序列化,和网络协议,应用程序可以跨越很多设备,从小到一个移动设备到大到一个包含企业所有账户信息的数据服务器. 幸运的是,EF可应用于WCF,WEB Api等诸如此类的多层框…
9-2. 用WCF更新单独分离的实体 问题 你想通过WCF为一个数据存储发布查询,插入,删除和修改,并且使这些操作尽可能地简单 此外,你想通过Code First方式实现EF6的数据访问管理 解决方案 假设有如Figure 9-2所示模型. Figure 9-2. 博客的posts(博文)和comments(评论)模型 模型表示博客的文章和评论之间的关系. 为了简化,我们去掉了很多属性,像作者,发文时间等.我们想把所有的数据库代码封装到WCF后,让客户端通过通过WCF读取,更新,删除,和插入Po…
9-3. 找出Web API中发生了什么变化 问题 想通过基于REST的Web API服务对数据库进行插入,删除和修改对象图,而不必为每个实体类编写单独的更新方法. 此外, 用EF6的Code Frist实现数据访问管理. 本例,我们模拟一个N层场景,用单独的客户端(控制台应用)来调用单独的基于REST服务的Web网站(WEB API应用) . 注意:每层使用单独的Visual Studio 解决方案, 这样更方便配置.调试和模拟一个N层应用. 假设有一个如Figure 9-3所示的旅行社和预订…
9-4. Web API 的客户端实现修改跟踪 问题 我们想通过客户端更新实体类,调用基于REST的Web API 服务实现把一个对象图的插入.删除和修改等数据库操作.此外, 我们想通过EF6的Code First方式实现对数据的访问. 本例,我们模拟一个N层场景,用单独的控制台应用程序作为客户端,调用Web API服务(web api项目). 注:每个层用一个单独的解决方案,这样有助于调试和模拟N层应用. 解决方案 假设我们一个如Figure 9-4.所示模型 Figure 9-4. A 客户…
9-5. 删除一个断开的实体 问题 我们要把一个把WCF上取回的对象做上删除的标志. 解决方案 假设我们有如Figure 9-5所示实体的支付与票据的模型. Figure 9-5. 一个支付与票据的模型 我们的模型展示了支付记录与票据的关系.在应用程序中,我们用客户端与用WC封装EF数据访问交互 . 在我们的例子中,我们要用WCF服务删除Payment (支付)实体.为尽可能简单,我们创建一个WCF服务库并且定义模型: 1.右击解决方案,选择新项目,选择WCF ➤WCF服务库,并命名为:Reci…
9-6. 管理断开时的并发 问题 想要确保只接受在WCF客户端并发令牌未被修改的实体. 解决方案 我们有一个如Figure 9-6所示的模型. Figure 9-6订单实体模型 我们想通过WCF服务来更新一个order ,而要确保这个order 在我们上次取回后没有发生过其它修改. 稍后我们将演示两个不同的方式.两种都用一个TimeStamp列作并发控制. 1. 新建一个WCF服务库,右击解决方案,选择“新建项目”,选择WCF ➤ WCF 服务库,并命名为Recipe6. 2. 右击这个项目,选…
9-7. 在WCF服务中序列化代理 问题 从一个查询里返回一个动态代理对象,想要把它序列为一个POCO(Plain-Old CLR Objects)对象. 实现基于POCO实体对象, 在运行时,EF会为每个实体自动生成一个派生类型,被称为动态代理对象, 代理对象会为POCO类重载很多虚拟属性来注入执行操作的挂钩,像变更跟踪,和延迟加载关联的实体. 解决方案 假设我们有一个如Figure 9-7.所示的客户模型 Figure 9-7. 客户模型 我们将使用ProxyDataContractReso…
存储过程 存储过程一直存在于任何一种关系型数据库中,如微软的SQL Server.存储过程是包含在数据库中的一些代码,通常为数据执行一些操作,它能为数据密集型计算提高性能,也能执行一些为业务逻辑. 当你使用数据的时候,有时你会通过存储过程来获取它们. 在本章, 我们探讨一些EF在使用存储过程时,需要关注的地方.我们在本书的其它章节也使用了存储过程, 但通常都是context为执行插入.更新和删除动作. 在本章,我们将为你展示多种使用存储过程的方式. 10-1. 非Code Frist方式返回一个…
10-2. 返回输出参数 问题 想获取存储过程里的一个或多个输出参数的值 解决方案 假设我们有一个像Figure 10-1所示的,出租车辆与租金收入的模型 Figure 10-1.出租车辆与租金收入的模型 我们想知道在指定日期里,收入了几笔租金和金额, 以及车辆的租凭情况. 存储过程Listing 10-7 就是获取这些信息的. Listing 10-7. A Stored Procedure for the Vehicles Rented, the Number of Rentals, and…
10-3. 返回结果是一个标量值 问题 想取得存储过程返回的一个标量值. 解决方案 假设我们有如Figure 10-2所示的ATM机和ATM机取款记录的模型 Figure 10-2. 一个ATM机和ATM机取款记录的模型 我们想要用一个存储过程在指定机器和日期内返回所有的取款总额 Listing 10-9 是这个存储过程的代码 Listing 10-9. GetWithdrawals存储过程,获取在指定机器和日期内所有的取款总额 create procedure [Chapter10].[Get…