Introduction
你已经写出了第一个内核模块Hello World!有没有发现内核模块和应用程序写法的不同?
下面我将从概念和原理上进行介绍,内核模块和应用程序为什么不同。
对于习惯了平时在Linux上进行C应用程序开发的你,是否想窥探一下底层的世界?
对于对Linux Kernel源码无从下手的你,是否希望有一个简易的方法?
是的,这里有一个地方,可以让你轻松的编写和调试Linux Kernel Code。
这个就是我将要介绍的Linux Kernel Module,即Linux内核模块。
当vi入门后,在你日常使用中,会遇到下面几个问题:
下面我将要介绍的内容不仅会解决上述问题,还会介绍几个高级小技巧。
Vim和Emacs作为两大神级文本编辑器各有利弊,本实战指南不加讨论的介绍Vim.
本实战指南不是教你按照Vim的键位图来编辑文本,而是从实战的角度,教你如何快速的用Vim来开发你的程序,节省你的开发时间。
为什么不用IDE?IDE固然强大,但并不是每一个环境都有现成的IDE可用,尤其是SSH远程计算机,就一个bash解析器可以使用,完全没有图形化界面。IDE的另一个弊端就是需要反复的安装升级更新。
当然IDE也有省事的时候,例如开发Java和C#,IDE自带的debug调试工具,可以非常便利的调试程序。
但是在类Unix系统上开发,我还是推荐学习熟练地使用Vim。何为熟练?完全舍弃你的鼠标,只使用键盘快速的进行开发即为熟练。
Database design最简单的设计模型就是E-R模型,E-R建模工具有很多,最简单方便的当属Microsoft Office Visio。
E-R模型图由实体Entities以及关系Relationship组成,其中实体Entities可能包含属性Properties/Attributes。E-R图反映了现实世界中的一些现象,如客户和书店、供销商和书店之间是供求关系,而客户、书店和供销商之间,各自又存在属性,如名称、电话等。
关系不一定是一对一,也可能是一对多、多对一、多对多关系,如一本书可以对应多个作者,而一名作者也可以对应多本书。这类情形也可以由E-R图反映。
In this assignment, you are designing an online bookstore database. The storekeeper wants to record the publishers, books and buyer. For each publisher, the storekeeper records the email address, phone number and book genres. For each book the storekeeper records the ISBN, book title, authors and price. For each buyer the storekeeper records the name, phone number, and purchase amount in total.
Note that the storekeeper doesn’t want to record which book is bought by which buyer. You should to drow an E-R diagrams to demonstrate your database design.
AJAX全称叫Asynchronous JavaScript and XML,也就是异步的JavaScript和XML技术。所谓异步,就是和传统的同步Web相比,在客户端和服务器交互之间,采取异步而不是同步通信,进而减少了服务器的响应时间,同时增加了用户体验。
AJAX并不单纯的指采用JavaScript和XML的通信模型,其泛指一系列的异步通信技术。XML也可由JSON替代,进一步减少传输的数据量。
AJAX最大的优势就是,客户端向服务端发起请求后,不需要更新整个页面,仅仅需要更新一部分信息。数据内容由XML/JSON传输存储,而逻辑展示部分由JavaScript处理。
当然,AJAX也不是万能的,对于流媒体型的数据,AJAX的体验并不如Java Applet和FLASH等。
此外,由于AJAX采用JavaScript编程,因此客户端浏览器对于JavaScript的支持程度,也会影响到用户体验。
In this assignment, you need to
Hotel booking application,在软件工程中叫做Hotel reservation system,也就是酒店管理系统。这类系统的开发工作量,主要是根据需求,来实现其业务逻辑部分。
一个成熟的酒店管理系统,还可以接入或被接入其他系统。只要做好接口设计,给出稳定、可拓展的接口,这类系统便可以反复利用。
当然,对于酒店管理系统的重构,也是十分头疼的一件事。由于要逐个梳理需求,在重构中要避免需求的落下。
Below are the features of this project that you should implement in this course.
This application will use a txt file to load the user’s information. The file should contains the following properties:
LastName, FirstName, Gender, Age, Email, CreditCardNumber, BillingAddress, ExpriyDate.
高大上的Elections,特别是在大选中,投票往往会采用电子选箱,也就是智能选举系统。
相比纸质选票,电子计票有着快速计票、实时计票、节省人工成本、计票可回收利用等优点。尤其是差额票,对于候选人较多的情况,电子计票的优势就更大了。
电子计票系统中,最重要的部件就是识别有效选票、鉴别无效选票、统计选票,对识别器质量已经算法有较高的要求。
There are so many different kinds of voting systems, especial electronic voting system in the world. In this assignment you will be comparing four of them: Approval Voting; Plurality, also known as First Past the Post; Copeland’s Method and the Borda Count. You will be simulating Canadian elections, where voters are choosing between the four major federal parties (New Democratic Party, Green Party, Liberal Party, Conservative Party).
第一代Galaxian游戏在1979年登场,之后在1981年推出了升级版Galara,以及1984年的加强版Gaplus。作为早期电子游戏,Galaxian在街机市场是十分火爆的。
相比同时代的Space Invaders,由于Galaxian采用了当时的最新技术,游戏体验有了质的飞跃,是当时最受欢迎的街机游戏之一。
In this assignment you develop an arcade style name Galaxian. The game needs to be implemented in OpenGL engine. You should define your own game objectives, such as final goals and the level of player interaction. Lives and scoring should also be planned.
The difficulty lies in how to manage the objects on the screen, the enemy flight path, in particular, and how they can track the ship. The algorithm can avoid the enemy collisions between each other, and how to aim at the player’s position.
Your program provide the following functions: