2008年8月25日星期一

一些标准

我们学习计算机的当然要看看一些标准了,不然会反很多的错误的,有了标准,那么很多事情就比较好办了。但是很多的标准是国外的人规定的,当然哪些网站也是英文的了。
一些主要的标准的网站http://www.open-std.org/这是 The site www.open-std.org is holding a number of web pages for groups producing open standards:里面有很多的标准,我应该关注看的是WG14 - C这个标准。
http://www.iso.org/iso/home.htm
他们的一些介绍

ISO (International Organization for Standardization) is the world's largest developer and publisher of International Standards.

ISO is a network of the national standards institutes of 157 countries, one member per country, with a Central Secretariat in Geneva, Switzerland, that coordinates the system.

ISO is a non-governmental organization that forms a bridge between the public and private sectors. On the one hand, many of its member institutes are part of the governmental structure of their countries, or are mandated by their government. On the other hand, other members have their roots uniquely in the private sector, having been set up by national partnerships of industry associations.

Therefore, ISO enables a consensus to be reached on solutions that meet both the requirements of business and the broader needs of society.

对于Linux,在这个领域的权威性的文档是LSB,他们的网址是http://www.linuxfoundation.org/en/LSB

应用程序环境(Common Application Environment,CEA),单一UNIX规范(single UNIX Specification)
网址http://www.opengroup.org/而single UNIX Specification要到http://www.unix.org/online.html注册
The Open Group is a vendor- and technology-neutral consortium, whose vision of Boundaryless Information Flow™ will enable access to integrated information within and between enterprises based on open standards and global interoperability.
What We Do
The Open Group developed a range of services that provides to its membership and also offers to third parties. These services include strategy, management, innovation, standards, certification and test development.

Our approach is “Making Standards Work®. We have extensive experience and a long track record in facilitating consensus to develop standards, including defining new standards, evolving existing ones, building consensus and providing support services, and developing best practices. We recognize the importance of assured conformance through certification and operate a number of programs, including certification for Common Operating Environment (COE) Platform, CORBA®, Identity Management and Directory Interoperability, IT Architects, IT Specialists, LSB®, POSIX®, Schools Interoperability Framework (SIF), TOGAF, UNIX®, and Wireless Application Protocol (WAP). To learn more, go to www.opengroup.org/certification/

The key catalyst that organizations can use to make progress towards the vision of Boundaryless Information Flow™ is enterprise architecture. Until recently, the concept of an enterprise IT architecture was a vision shared by very few organizations. Today, many organizations have achieved a degree of boundarylessness between their people, only to find that the stovepipes are even stronger in the IT systems. This is not surprising, given that these systems were built with the purpose that they would only support the needs of a single department, and did not foresee situations where they would need to integrate information and share with the systems of other departments or with strategic partners in the extended enterprise.

As enterprises look to develop a flexible overall enterprise architecture where IT principles are fully aligned with business principles and support a company’s vision, and where IT evolves in response to constantly changing business needs, they need to take an urban planner approach, which enables creation of IT ‘cities’ of the future. This approach is based on an architectural framework and a set of standards and regulations that all new implementations need to comply with and which provide guidance for integration with the legacy. In order to do that, we need experienced IT Architects.

Recognizing the industry demand, The Open Group, which also certifies professionals in the use of the TOGAF Architecture Development Method (ADM) for producing open architectures, launched the first independent, comprehensive IT Architect Certification program. The program defines global standards for measuring the skills and experience of IT architects and for the operation of IT architecture practices within enterprises. To learn more about the program, go to our IT Architect Certification site.

IEEE的网站http://www.ieee.org/portal/site发表了一系列的UNIX标准中的第一个标准POSIX

A non-profit organization, IEEE is the world's leading professional association for the advancement of technology.

The IEEE name was originally an acronym for the Institute of Electrical and Electronics Engineers, Inc. Today, the organization's scope of interest has expanded into so many related fields, that it is simply referred to by the letters I-E-E-E (pronounced Eye-triple-E).

Linux分配名字和数字机构(Linux Assigned Names And Numbers Authority,简称为LANANA)它的网址是http://www.lanana.org/

Welcome to LANANA, your authority for Linux name space assignments. LANANA's charter is to prevent namespace collisions by providing a responsive, easy-to-use registration service. Fewer collisions means better interoperability and more broadly available drivers and applications for Linux!
Filesystem Hierarchy Standard (FHS).文件系统层次的标准,http://pathname.com/fhs/
在学习这个知识的时候,看到了过去没有明白的一个问题/lost+found原来是用于fsck命令进行文件系统的恢复而/proc是一个伪文件系统。 This page is the home of the Filesystem Hierarchy Standard (FHS).The current version is 2.3. It was announced on January 29, 2004.The filesystem standard has been designed to be used by Unix distribution developers, package developers, and system implementors. However, it is primarily intended to be a reference and is not a tutorial on how to manage a Unix filesystem or directory hierarchy.


还有一些标准,请看http://www.openi18n.org/界面不错的网站

我们要学很多知识,看很多书才可以了解的更好。其实,很多问题,没有我们想象的那么简单,也没有我们想象的那么的难,好了,以后在编写程序的时候要注意这 些标准,不然的话,会出很多的问题,我们的电脑不是客户的电脑,我们的用的程序设计的语言也是人家的,当然要了解人家的标准了。

2008年8月20日星期三

暑假感触

我的生活感触
一个暑假就要过去了,说忙碌吗?开始的时候还是比较忙碌的,最后也就不是很忙了,很多时间就是被浪费了。自己还是太平凡了,没有好的毅力去实现自己的理想,其实有时自己还是不明确自己的理想。短期的目标还没有去实现,还是 比较有难度的。自己真的应该像奥运的运动员一样,顽强的拼搏,他们也是经过自己的努力才获得了成功,没有人可以随随便便的成功的。
这次奥运会,让我感触最深的是我也要成为那样优秀的人才,他们年轻,他们有活力,他们有意志,他们喜欢赢。而我还在这里碌碌无为地生活着,我不能这样下去,这样将不会成为他们的。
努力吧!
下学期的任务是,学好课内的,首要的是学好英语,过四级。在是学好网络结构体系,把师兄的文档进一步的完善和改进。写出自己的理会和心的,有优美的文字表达出来。还有就是那个项目一定要完成,而且是最好的,不像过去那样的,很丑陋的程序,很羞涩的软件,尽管很慢,但是我把自己的兴趣投入到其中。
常去Linux相关的网站,有空一定要为别人解答自己可以回答的问题。帮助别人,请求别人的帮助。每天浏览Linux的最新的变化,还有就是Unix方面的,多用一些系统,练习一门好的语言,很熟悉C语言。多参与外面的项目,有空去小组,该放弃的要放弃,哪怕它暂时很有利,眼光一定要远。
不要到没有意义地方浪费自己宝贵的时间了。其实,我每天浪费的时间有很多,这些时间完全可以用来学习的。而且可以学的很好的,耐的住寂寞的人才最有可能成功。
我们要跟上世界的脚步,我们就要和世界上不同的人联系和学习。
我们要跟上勤奋的人,我们也要更加的勤奋才可以。
扩展自己的知识范围和眼见,思想要超越,思维要灵活,毅力要强,干一件有意义的事情就不应该放弃,把它干的最漂亮。

2008年8月11日星期一

git使用

最近,有人参与我那个项目了,尽管过去对git有一些学习,可是如果不用的话,很快就忘记了。
一边实践,一边再把一些简单的记录下
有人改动了,http://repo.or.cz/w/gocoso.git所以我把我的电脑上的也更新一下
用这个命令git-pull git://repo.or.cz/gocoso.git
在你的项目的目录下,你改变了一些,而后想把这些改动上传到http://repo.or.cz/w/gocoso.git
你直接用 git push git+ssh://Gaowei@repo.or.cz/srv/git/gocoso.git master
会显示这Everything up-to-date其实你还没有真正的上传,
你要用git-commit -a -m "你添加的注释"而后再用刚才的命令才成功了。
你要添加一个新的文件的时候,要要用git-add命令而后用git-commit -a -m然后你在git push git+ssh://Gaowei@repo.or.cz/srv/git/gocoso.git master好了基本的操作就是这些了,还有很多复杂的,以后应该可以用的到,以后在添加吧!

2008年8月8日星期五

关于进程

/opt/Kingsoft/WPS Office 2005 Professional
大概是我忘记写了,还是被上面这句话给代替了呢?
我先把自己的一些想法的写出来
进程是程序的执行的过程,是在内存中占据的资源和消耗的资源。创建进程就是为了让很多程序同时执行,这样就并发执行了,感觉上是同时运行多个软件的程序。
我应该从这几个方面写,
1.从操作系统的角度
由程序段,数据段及进程控制块三个部分构成一个进程的实体。
进程是程序的一次执行;可以和别的计算并发执行的计算;可定义为一个数据结构及能在其上进行操作的一个程序;是一个程序及其数据在处理机上顺序执行时所发生的活动;是程序在一个数据集合上的运行过程,是系统进行资源分配和调度的一个独立单位。
进程有五个基本特征:1.动态性;2.并发性;3.独立性;4.异步性;5.结构特征。
进程的三个基本状态:1.就绪状态;2.执行状态;3.堵塞状态。而好多的系统又添加了新状态,终止状态,挂起状态。
而很多关于进程的信息存储在PCB,当OS是要根据PCB来对并发执行的进程,进行控制和管理的。
在OS/2中每一个进程属于且仅属于一个会晤,而以进程作为资源分配的基本单位,系统为每一个进程规定了一个唯一的16位进程标识符(PID),并配置了一个任务数据区PTDA(Pertask Data Area)。


2.从Linux内核代码的角度

3.从Freebsd的内核代码的角度

4.从进程的应用

2008年8月6日星期三

软件开发(2)

永远不要以为你知道用户想做的一切事情。
在软件开发(1)里面写了很多关于软件的编写,但是软件的开发不仅仅是在于设计,而且编写的过程也是很重要的,还有就是团队的重要性,没有一个好的团队是不能编写大型的软件的,或者是很难的。还有就是要进行调试,修改bug也很重要。
在这几方面注意,才可以开发出不错的软件。
好好学懂一门编程语言,尽可能的去精通它,现在就要确定自己的目标,那样就更容易前进了,还有就是多交流,那样学习的更快。
还有就是不能急于开发而忽略很多细节,尤其是我们现在学习开发的初级阶段。
原来软件的一些小bug也许就会导致很多人丧失生命,其实很多时候是把我们人类变得更加的不可思议了,所以自己编写自己的软件的时候一定要好好的编写,不要马虎,好好的调试,把文档写好,写详细。我们的生活中有很多我们看不到的软件在运行着,所以软件开发这是一条不错的道路。
程序一般是编写,编译和运行。但是细节问题有很多,今天就简单的介绍一些,而不涉及过多的细节问题。
a.out的意思是assembler output,即汇编输出。
系统为正常使用提供的程序,包括用于程序开发的工具,都可以在目录/usr/bin中找到,系统管理员可以为某个特定的主机或本地网络添加的程序通常可在目录/usr/local/bin或/opt中找到。
*头文件*
用C语言及其他的程序设计语言进行程序设计时,我们要用头文件来提供对常量的定义和对系统及库函数的调用的声明。对C语言来说,这些头文件几乎总是在/usr/include目录及其子目录下。那些依赖于特定的Linux版本的头文件通常可在目录/usr/include/sys或/usr/include/linux中找到。调用C语言编译器时,我们可以使用-I标志来包含保存在子目录或者非标准位置中的include文件。用grep命令搜索包含某些特定定义和函数原型的头文件是很方便的。
*库文件*
库是一组预先编译好的函数的集合,这些函数都是按照可重用的原则编写的。他们通常由一组相互关联的函数组成并执行某项常见的任务。标准系统库文件一般存储在/lib和/usr/lib目录中。.a代表的是静态函数库。.so代表的是共享库。静态库,也称作归档文件(archive),按照惯例它们的文件名都以.a结尾。用ar程序和gcc -c命令对函数分别进行编译。静态库的一个缺点是当我们同时运行许多个应用程序并且它们都使用来自同一个函数库的函数时,就会在内存中有同一函数的多份拷贝,在程序文件自身中也有多份同样的拷贝。这将消耗大量宝贵的内存和磁盘空间。程序使用共享库时,它本身不再包含函数代码,而是引用运行时间访问的共享代码。当编译好的程序被装载到内存中执行时,函数引用被解析并产生对共享库的调用,如果有闭源共享才被加载到内存中。

2008年8月3日星期日

软件开发(1)

关于软件开发,尽管这俩年来,一直在作关于软件开发有关的事情,但是没有一个让我很满意的。有一个是很不错的,但是我参与的太少,其实相当于没有参与。而后的一直,不是很好。有很多原因,但是我感觉最重要的原因是我们没有坚持下去,还有就是没有团队很好的合作,因为没有一个好的项目主管,大家想怎么干,就怎么干的。而且我感觉我的编程水平很差,其实我不喜欢编程,一点都不喜欢,但是现在不知道为什么对他还是比较感兴趣,或许是因为我有职责了,还有就是义务——我想我该回报小组了。关于以后自身的发展,我在大学里来主要是为了我学到知识,和结交好友,而不是为了以后找个好的工作,学习世界为什么会是这样,学理论,让我明白自然里面的一些现象,让我学会更好的方式来思考。但是以后还是要为生活的呀!工作是必然的选择一个比较好的工作,为了以后自己生活的更好,所以还是要考虑一下将如何更好的发展呢?我应该学一些实用的知识,当然比别人要强,想进好的公司,那就必须比别人更加的勤奋了。
踏踏实实的学,今天这朋友对我说。
我一定要带领大家把这个项目作好,我知道自己的水平,所以要多请教别人,和多和别人沟通,多编写自己的代码,学会更好的编程。
关于软件的开发,这才是这篇文章的主题:
就怎么干的。而且我感觉我的编程水平很差,其实我不喜欢编程,一点都不喜欢,但是现在不知道为什么对他还是比较感兴趣,或许是因为我有职责了,还有就是义务——我想我该回报小组了。关于以后自身的发展,我在大学里来主要是为了我学到知识,和结交好友,而不是为了以后找个好的工作,学习世界为什么会是这样,学理论,让我明白自然里面的一些现象,让我学会更好的方式来思考。但是以后还是要为生活的呀!工作是必然的选择一个比较好的工作,为了以后自己生活的更好,所以还是要考虑一下将如何更好的发展呢?我应该学一些实用的知识,当然比别人要强,想进好的公司,那就必须比别人更加的勤奋了。
踏踏实实的学,今天这朋友对我说。
我一定要带领大家把这个项目作好,我知道自己的水平,所以要多请教别人,和多和别人沟通,多编写自己的代码,学会更好的编程。
关于软件的开发,这才是这篇文章的主题:
就怎么干的。而且我感觉我的编程水平很差,其实我不喜欢编程,一点都不喜欢,但是现在不知道为什么对他还是比较感兴趣,或许是因为我有职责了,还有就是义务——我想我该回报小组了。关于以后自身的发展,我在大学里来主要是为了我学到知识,和结交好友,而不是为了以后找个好的工作,学习世界为什么会是这样,学理论,让我明白自然里面的一些现象,让我学会更好的方式来思考。但是以后还是要为生活的呀!工作是必然的选择一个比较好的工作,为了以后自己生活的更好,所以还是要考虑一下将如何更好的发展呢?我应该学一些实用的知识,当然比别人要强,想进好的公司,那就必须比别人更加的勤奋了。
踏踏实实的学,今天这朋友对我说。
我一定要带领大家把这个项目作好,我知道自己的水平,所以要多请教别人,和多和别人沟通,多编写自己的代码,学会更好的编程。
关于软件的开发,这才是这篇文章的主题:
最近看了,一本书《软件创新之路》原名是《THE INMATES ARERUNNING THE ASYLUM》作者的网站是www.cooper.com总结如下
一,计算机正在“入侵”我们的生活,而且将会有越来越多的人使用他,其实是使用他里面的软件来帮助我们来用硬件的智慧,因为一般人是不够聪明的,所以聪明人就会帮助他们就开发了软件,但是聪明人开发的软件并一定适合我们每一个人,而且他们聪明,还有比他们更聪明的人,所以我们在不断的使用着软件不论你是聪明还是一般人。我们要和电脑要进行交互,也就是说是人和机器进行交互。所以我们离不开软件了,但是如何使得软件更适合人类用呢??这就是软件设计的事情了。
二,我们这些年轻的小伙子,正在精力充沛的学习软件设计和开发,如果学习的方向就不对,以后开发的软件就更加的晦涩了,让人更加的难用了,所以要学好它!至于我们如何学好呢?现在只是学习最基本的知识,并且熟练地把握它们的用法,还是认识考虑软件的正真的用途呢?我想我应该采用的是后者。所以现在,我带领一些人编写自己的软件,并且让我们这些开发软件本身的人用,体验自己的软件用处,和以后设计要更加的人性话更符合客户的要求。
社会的现实总是有英雄豪杰,就有残兵败将;有亿万富翁,就有失业贫民;公司也是如此,成功者少,失败者多;软件则是得心应手的少,晦涩难用的多。
三,谈一谈专业的:
软件设计应分为俩部分:编码设计与交互设计。
社会在不断地发展,让我们的思想与行动都跟上时代的步伐吧!
人们是作信息技术的奴隶,还是成为信息技术的主人。“很多人不能很好的利用身边的资源”
你可以把所有的商人分为俩大类:一类将会控制高技术,一类将会很快关门歇业。
满意的软件是围绕用户而创建的,并能提供自然的,非常好的,强有力的经验。而大多数软件却是围绕程序员而建造的,他们猜测用户的需求,轻率地偏爱某些功能,并且在格式上沿用陈旧的风格。所以我们编写软件的时候要时刻地注意。
信息时代之谜,其实一也没有什么秘密,但是我们很多人没有去思考,也懒得思考,否则我们将会一直处于思考状态了,因为太多的高科技的产品在我们的身边了。很多高科技里面用到了软件,就是说软件和现在大多数的电子产品结合了,之所以是电子产品,因为他们里面有软件。也就是说很多东西里面其实是有软件的,只是有时我们没有感觉到而已。如,电子表,数码相机,汽车里面的很多仪器,银行里的取款机等等,还有很多的东西,我们的很多东西,都要让那些机器聪明一些,那就要程序员把自己的一部分的智慧变成代码而后让机器执行,由用户操作。当然程序员不是最聪明的不可能把所以的智慧给软件,更软件更没有感情和思维,他不会考虑的,只是执行任务。所以自然会有很多人不会使用软件或者不能很好的使用,尽管程序员费尽心思。而且软件本身有时也有很多的缺点,让我们操作起来将会更加的吃力甚至导致我们生活不适,更有甚是使得我们产生重大失误。
当你照镜子时,就容易看到自己的美貌而没有注意到瘤痣。
要想成为一个好的程序员,必须与电脑的本性和需要产生共鸣!
解决问题的关键是交互设计。
哎!每天还是胡思乱想啊,太懒了,你想一想还有多少人处于贫困之中呢?
认识的摩擦,奇迹并不在于熊跳得好坏,而在于熊一直在跳。
软件创新的全部进程都包括设计,包括从选择编程语言到确定产品包装颜色的各种方法。在这个漫长的进程所包括的方方面面中,没有哪个方面比编程本身需要更多的设计。程序员要在这个进程的每个阶段作出设计决定。程序员必须决定每一个过程与其他过程彼此将如何调用,信息和状态将如何共享,如何存储,如何改变,它的有效性将如何保证。所有这些决定,以及成千上万的这类决定,全是由设计决定的,每一步的成功都取决于程序员用经验和裁决承诺的能力。
软件开发遵循帕金森定律(Parkinson's Law):工作将膨胀填满分配给它的时间。
写坏的软件比写软件更昂贵。
在信息时代,最昂贵的有用之物不是建构什么东西的代价,而是你没有建构什么而失掉的机会。建构的失败意味着你没有作成功。
最昂贵的程序是它只是运行一次,最廉价的程序是它可以运行上百亿次。软件经济学就呈现不可思议的翻转,其中最廉价程序要支配那个最昂贵的程序的编写,而最昂贵程序也要支配那个最廉价的编写。好的程序员要花大量的时间和精力进行设置,以便编写一个大的程序。在编写一系列产品代码之前,仅仅设置编程环境就要花好几天时间。必须选择合适的库,必须定义数据,必须对存储和检索子系统进行分析,定义,编码和测试。
在长期运行中,没有适当控制的软件编写要比快艇比赛与吸毒嗜好都更加昂贵。
浏览器的工作方式,它不会把人们领向讨厌的安装过程。WEB的组织就像某个集权制的团体,通过中央电脑命令来控制无效能的桌面机器的行动。
微软,微软只作很少设计或者没有设计,它的产品在使用户感到受愚弄方面是出名的。它们在给予人们良好的价值与健壮的功能集方面也是出名的。几乎没有其他公司能像微软这样提供全面的解决方案。没有多少用户对微软是忠诚的。微软有成熟的技术和极好的商务,这使它在短期内弥补了缺乏设计的不足。几乎所有高科技产品的可期望平均水平仍然处于微软的标准,尽管他们的工作人员投入了全部智慧,诚心诚意,以及艰苦努力!
把自己擅长的方面做到最好,尽可能的多占领这个市场。
软件更像一座桥而不是一座大厦,尽管它是在高科技的微处理器中运行的,但它的使用与操作也必须由普通的人类来完成。电脑:惊人的快,无差错,理性的,无感情的,不会推理,顺序的,可预测,无道德,愚蠢。人:惊人的慢,爱出错,感性的,有感情的,会推理,随机的,不可预测,有道德,聪明。
程序员——逻辑人——总是往左边走;用户们——普通人——总是往右边走。
好的程序员知道怎么去写程序,而一个优秀的程序员知道怎么去重复使用程序。
不应按照问题生成时的同一思维方式来解决该问题。
编写软件一定要选择好一个角色,而且是有名字的角色。为一个人而设计。而且是用户角色不是买方角色。如果你打算设计基于软件的,使用户满意的产品,你必须相对精确地了解那些用户是谁,这就是角色所扮演的人物。下一步是尽可能地设计出功能强大的产品,为此,你需要更多地了解用户的目标。
人们还不能跟上20世纪的技术的发展。
让软件变得彬彬有礼。软件要为效能而设计,为人而设计。
把使任务具体化而采用的工具称为“脚本提纲scenario“。较少的代码意味着复杂性减少,差错bug不多,非法交互机会极少,以及容易维护。
一定要把设计放到首位,那样你的工作将会很顺利,1,设计;2,编写程序;3,调试错误&&用户测试;4,运行。
与微软竞争,你要把握他的弱点,他的产品开发过程中,编程在交互设计之前。
关于编写的进度,要有一个长远的观点,要有责任感,要保证足够的时间,要把握控制权。
前期制作投入的是时间,节约的是金钱,提高的是获得最后成功的可能性。
设计师们需要以充分的完整性和详尽的细节编写,整理,支持,概述他们的方案,这样程序员才可能信任这些方案,并且真正地以其为蓝图去编写代码。必须充分描述各种情况下的细节问题,好让开发者对方案的生命力有充分的信心,相信它能经得起实际应用的考验。写好的设计书,就像一个战斗计划。每一个人都知道自己的那一部分,知道什么是关键的问题。所有的人可以同步,协调地运作,来构造一个以同一特定用户——角色为目标的产品。
商业格言“没有落到纸上的东西都是不存在的”。
随着网络的发展,低技术市场的大批用户,会跳到便于使用的产品这里来。这些人由于网络可以简单地做简单的事而被吸引。同样的这些人,也会被设计优良的产品所吸引,由于这些产品可以简单地作一些复杂的事情。

time