精华内容
下载资源
问答
  • 让微信地球转起来(python实现)

    万次阅读 多人点赞 2020-06-23 13:28:21
    你有没有想过,如果上面那个地球转起来会是怎样? 效果图 素材 这里有两个表面素材,一个是地球表面素材,一个是云图素材。 还有一个微信地球的抠图素材。 基本原理 基本的贴图方法在本博前面的文章(《用python...

    让微信地球转起来(python实现)

    微信地球

    手机重启后打开微信的一瞬间,会看到一幅有名的图片。
    在这里插入图片描述
    大概是站在月亮上看地球的效果。
    你有没有想过,如果上面那个地球转起来会是怎样?

    效果图

    在这里插入图片描述

    素材

    这里有两个表面素材,一个是地球表面素材,一个是云图素材。在这里插入图片描述
    在这里插入图片描述
    还有一个微信地球的抠图素材。
    在这里插入图片描述

    基本原理

    基本的贴图方法在本博前面的文章(《用python实现旋转地球》)中讲过了,这里重点讲双层素材的动态效果。云图是灰度图,白色地方代表云层厚,黑色的地方代表那里云层薄。我们根据颜色设置不同的透明度。

    如果云图与地面的选择速度相同,会显得不自然,我们这里让云层旋转速度比地面旋转速度慢一半,产生相对运动的效果。

    这样带来的问题是,地球旋转360°后云图只旋转了180°,必须加倍到720°才能实现连续运动。

    具体的云层透明度设置,参数需根据实际效果进行调整。

    GIF压缩

    顺便给大家介绍一个比较好用的压缩GIF的在线工具。
    https://www.iloveimg.com/zh-cn/compress-image/compress-gif
    直接生成的GIF动图有超过传输限制,无法上传,用此工具压缩后文件体积大幅缩小,但图片效果没有肉眼可以察觉的影响。

    完整代码

    分步骤的具体逻辑讲解,请看《用python实现旋转地球》,这里贴一下完整代码。

    from PIL import Image, ImageDraw
    import math
    import numpy as np
    import imageio
    
    def calcSphereXY2XYZ(px, py, maxHeight, longOffset):
        v0x= np.array(px)
        v0y= np.array(py)
        v03= np.subtract(v0x, maxHeight)
        v04= np.subtract(v0y, maxHeight)
        v1x= np.true_divide(v03, maxHeight)
        v1y= np.true_divide(v04, maxHeight)
        # print(max(v1x), min(v1x))
        v07= np.power(v1x,2)
        v08= np.power(v1y,2)
        v09= np.add(v07,v08)
        v0a= np.subtract(1,v09)
        v1z= np.power(v0a,1/2)                                  # z
        # print('z:', max(v1z), min(v1z))
        v1lat= np.multiply(v1y, math.pi/2)                      # lat
        v0lon= np.arctan2(v1z, -v1x)                             
        v1lon= np.add(v0lon, longOffset)                       # long
        v2lon= np.fmod(v1lon, math.pi*2)                       # long
        return v2lon, v1lat
    
    def calcShpereLatLong2XY(vlon, vlat, width, height):
        v3x0=np.multiply(vlon, width/2/math.pi)
        v3y0=np.multiply(vlat, height/math.pi)
        v3y1=np.add(v3y0, height/2)
        v3x2=v3x0.astype(np.integer)
        v3y2=v3y1.astype(np.integer)
        return v3x2, v3y2
    
    
    
    def getPic(a):
        # imgBack= Image.open('地球3.jpg')
        imgBack= Image.open('世界地球日地图_8K_2.jpg')
        imgCloud= Image.open('世界地球云地图_8K.jpg')
        width= imgBack.size[0]
        height= imgBack.size[1]
        imgBack= imgBack.convert('RGBA')
        arrayBack= np.array(imgBack)
        arrayCloud= np.array(imgCloud)
        circleSize= 508
        img2= Image.new('RGBA', (circleSize,circleSize))
        img= Image.new('RGBA', (circleSize,circleSize), 'black')
        w= img.size[0]
        h= img.size[1]
        pxList=[]
        pyList=[]
        for i in range(w):
            for j in range(h):
                r= math.sqrt((i-w/2)**2+(j-h/2)**2)
                if r<circleSize/2:
                    pxList.append(i)            
                    pyList.append(j)
    
        nplon, nplat= calcSphereXY2XYZ(pxList, pyList, h/2, a)
        nplon2, nplat2= calcSphereXY2XYZ(pxList, pyList, h/2, a/2)
        # nplon, nplat= rotSphere(nplon, nplat, )
        npx, npy= calcShpereLatLong2XY(nplon, nplat, width-1, height)
        npx2, npy2= calcShpereLatLong2XY(nplon2, nplat2, width-1, height)
        color= arrayBack[npy, npx]
        color2= arrayCloud[npy2, npx2]
        for i in range(len(pxList)):
            x= pxList[i]
            y= pyList[i]
            cc=color[i]
            # print(cc)
            cc= tuple(cc)
            img.putpixel((x,y), cc)
            c2= color2[i]
            c0= int(c2[0]*1.6)
            if c0>255:
                c0=255
            c_alpha= int(c2[0]*0.9)
            c2= (c0,c0,c0,c_alpha)
            img2.putpixel((x,y), c2)
        r,g,b,a= img2.split()
        img.paste(img2, (0,0), mask=a)
        return img
    
    if __name__=='__main__':
        frames=[]
        str1= '微信地球_mask.png'
        img1= Image.new('RGB', (750,1334))
        img2= Image.open(str1)
        for i in range(0, 720, 12):
            a= -i*math.pi/ 180
            img= getPic(a)
            img1.paste(img,(122,424))
            r,g,b,alpha=img2.split()
            img1.paste(img2, (0,0), mask=alpha)
            str1= 'temp%03d.png'%i
            print(str1)
            img1.save(str1)
            im = imageio.imread(str1)
            frames.append(im)
            # img.show()
        imageio.mimsave('earth.gif', frames, 'GIF', duration=0.20) 
        
    
    展开全文
  • 这是一本浅显易懂、图文并茂的计算机基础。 目录 第1章 计算机的三大原则 问题----------------------- 初级问题 硬件和软件的区别是什么? 中级问题 存储字符串“中国”需要几个字节? 高级问题 ...

    点击关注,期待Binrry(冰蕊)带给你更多更全的读书笔记~~

    在这里插入图片描述

    这是一本浅显易懂、图文并茂的计算机基础书。

    目录

    目录1
    目录2
    目录3

    第1章 计算机的三大原则

    问题-----------------------

    初级问题
    硬件和软件的区别是什么?

    中级问题
    存储字符串“中国”需要几个字节?

    高级问题
    什么是编码(Code)?

    答案-----------------------

    初级问题:
    硬件是看得见摸得着的设备,比如计算机主机、显示器、键盘等。而软件是计算机所执行的程序,即指令和数据。软件本身是看不见的。

    中级问题:
    在GBK字符编码下,存储“中国”需要4个字节。

    高级问题:
    通常将为了便于计算机处理而经过数字化处理的信息称作编码。

    解释-----------------------

    初级问题:
    硬件(Hardware)代表“硬的东西”,而软件(Software)代表"软的东西” 是硬的还是软的取决于眼睛能否看得到,或者实际上能否用手摸到。

    中级问题:
    存储汉字时,字符编码不同,汉字所占用的字节数也就不同。在GBK字符编码下,一个汉字占用2个字节。在UTF-8字符编码下,一个汉字占用3个字节.

    高级问题:
    计算机内部会护所有的信息都当成数字来处理,尽管有些信息本来不是数字。用于表示字符的数字是"字符编码”,用于表示颜色的数字是"颜色编码"。

    1.1 计算机的三个根本性基础

    1.计算机是执行输入、运算、输出的机器
    2.程序是指令和数据的集合
    3.计算机的处理方式有时与人们的思维习惯不同

    第2章 试着制造一台计算机吧

    问题-----------------------

    初级问题
    CPU是什么的缩写?

    中级问题
    Hz是表示什么的单位?

    高级问题
    Z80 CPU是多少比特的 CPU?

    答案-----------------------

    初级问题:
    CPU是Central Processing Unit(中央处理器)的缩写。

    中级问题:
    Hz(赫兹)是频率的单位。

    高级问题:
    Z80 CPU是8比特的 CPU.

    解释-----------------------

    初级问题:
    CPU是计算机的大脑,负责解释、执行程序的内容。有时也将CPU称作“处理器”。

    中级问题:
    通常用Hz来表示驱动CPU运转的时钟信号的频率。1秒发出1次时钟信号就是1Hz,所以100MHz(兆赫兹)的话就是100x100万=1亿次/秒。M(兆)代表100万。

    高级问题:
    CPU上数据总线的条数,或者CPU内部参与运算的寄存器的容量,都可以作为衡量CPU性能的比特数。在Z80 CPU中,无论是数据总线的条数还是寄存器的容量都是8比特,所以Z80CPU是一款8比特的CPU.而在Windows个人计算机中广泛使用的Pentium(奔腾)CPU则是32比特的 CPU.

    在这里插入图片描述

    第3章 体验一次手工汇编

    问题-----------------------

    初级问题
    什么是机器语言?

    中级问题
    通常把标识内存或I/O中存储单元的数字称作什么?

    高级问题
    CPU中的标志寄存器(Flags Register)有什么作用?

    答案-----------------------

    初级问题:
    由二进制数字构成的程序,CPU可以直接对其触释、执行。

    中级问题:
    标识内存或I/O中存储单元的数字叫作“地址”。

    高级问题:
    用于在运算指令执行后,存储运算结果的某些状态

    解释-----------------------

    初级问题:
    不仅是汇编语言,用C语言,Java,BASIC等编程语言编写的程序,也都需要先转换成机器语言才能被执行。机器语言有时也叫作“原生代码”(Native Code)。

    中级问题:
    内存中有多个数据存储单元。 计算机用从0开始的编号标识每个存储单元,这些编号就是地址(Address)I/O中的寄存器也可以用地址来标识。 哪个寄存器对应哪个地址,取决于CPU和I/O之间的布线方式。

    高级问题:
    Flag的本意是“旗子”,这里引申为“标志”。一旦执行了算术运算、逻辑运算、比较运算等指令后,标志寄存器并不会存放运算结果的值,而是会把运算后的某些状态存储起来,例如运算结果是否为0、是否产生丁负数,是否有溢出(Overflow)等。
    在这里插入图片描述

    第4章 程序像河水一样流动着

    问题-----------------------

    初级问题
    Flow Chart的中文意思是什么?

    中级问题
    请说出自然界中河流的三种流动方式。

    高级问题
    事件驱动是什么?

    答案-----------------------

    初级问题:流程图。

    中级问题:向着一个方向流淌;流着流着产生支流;卷成漩涡。

    高级问题:用户的操作等产生事件后,由事件决定程序的流程。

    解释-----------------------

    初级问题:
    流程图(Flow Chart)是指用图的形式表示程序的流程。

    中级问题:
    与河流的流动方式一样,程序的流程也分为三种。在程序中,把犹如水流向着一个方向流淌的流程称作“顺序执行”;把犹如水流流着流着产生了支流的流程称作“条件分支”;把犹如水流卷成漩涡的流程称作“循环”。

    高级问题:
    Windows应用程序的运行就是由事件驱动的。例如,选择“打开文件”菜单项就能打开一个窗口,在里面可以指定要打开文件的名称和存储位置。之所以能够这样是因为一旦触发了"选中了菜单项”这个事件,程序的流程就相应地流转到了处理打开窗口的那部分。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    第五章 与算法成为好朋友的七个要点

    问题-----------------------

    初级问题
    Algorithm翻译成中文是什么?

    中级问题
    辗转相除法是用于计算什么的算法?

    高级向题
    程序中的“哨兵”指的是什么?

    答案-----------------------

    初级问题: Algorithm翻译成中文是“算法”

    中级问题:是用于计算最大公约数的算法

    高级问题:“哨兵”指的是一种含有特殊值的数据,可用于标识
    数据的结尾等。

    解释-----------------------

    初级问题:
    算法( Algorithm)一词的含义,不仅能在计算机术语辞典上查到,就是用普通的英汉辞典也能查到。

    中级问题:
    最大公约数指的是两个整数的公共约数中最大的数使用辗转相除法,就可以通过机械的步骤求出最大公约数

    高级问题:
    字符串的末尾用0表示,链表的末尾用-1表示,像这种特殊的数据就是哨兵。
    在这里插入图片描述

    第6章 与数据结构成为好朋友的七个要点

    问题-----------------------

    初级问题
    程序中的变量是指什么?

    中级问题
    把若干个数据沿直线排列起来的数据结构叫作什么?

    高级问题
    栈和队列的区别是什么?

    答案-----------------------

    初级问题:变量是数据的容器。

    中级问题:叫作“数组”。

    高级问题:栈中数据的存取形式是LFO;队列中数据的存取形
    式是FIFO

    解释-----------------------

    初级问题:
    变量中所存储的数据是可以改变的。变量的实质是按照变量所存储数据的大小被分配到的一块内存空间。

    中级问题:
    使用了数组就可以高效地处理大量的数据。数组的实质是连续分配的一块特定大小的内存空间。

    高级问题:
    LIFO( Last In First Out,后进先出)表示优先读取后存入的数据;FIFO( First In First Out,先进先出)表示优先读取先存入的数据。

    数组是数据结构的基础,只要使用数组就能通过程序实现各种各样的算法以处理大量的数据。数组在内存中存储数据的空间是连续分布的。

    表6.1主要的典型数据结构

    名称数据结构的特征
    把数据像小山一样堆积起来
    队列把数据排成一队
    链表可以任意地改变数据的排列顺序
    二叉树把数据分为两路排列

    “栈”(Sack)的本意是干草堆。通常把这种存取方式称为Last In First out,后进先出,即最后被存入的数据是最先被处理的。
    “队列”( Queue)就是等待做某事推成的队。通常把这种形式称为First In First Out,先进先出,即最先被存入的数据也是最先被处理的。

    第7章 成为会使用面向对象编程的程序员吧

    问题-----------------------

    初级问题
    Object翻译成中文是什么?

    中级问题
    OOP是什么的缩略语?

    高级问题
    哪种编程语言在C语言的基础上增加了对OOP的支持?

    答案-----------------------

    初级问题: Object翻译成中文是“对象”

    中级问题:OOP是 Object Oriented Programmin(面向对象
    编程)的缩略语。

    高级问题:C++语言。

    解释-----------------------

    初级问题:对象( Object)是表示事物的抽象名词。

    中级问题:面向对象也可以简称为Oo( Object Oriented)

    高级问题:++是表示自增(每次只将变量的值增加1)的C语言运算符。之所以被命名为C++,是因为C++在C语言的基础上增加了面向对象的机制这一点。另外,将C++进一步改良的编程语言就是Java和C#语言。

    面向对象编程(OOP, Object Oriented Programming)是一种编写程序的方法,旨在提升开发大型程序的效率,使程序易于维护。

    观点1:面向对象编程通过把组件拼装到一起构建程序
    在面向对象编程中,使用了一种称为“类”的要素,通过把若干个类组装到一起构建一个完整的程序。从这一点来看,可以说类就是程序的组件( Component)面向对象编程的关键在于能否灵活地运用类。

    观点2:面向对象编程能够提升程序的开发效率和可维护性
    通常将像这样的一组类(一组组件)称作“类库”。通过利用类库可以提升编程的效率。还有一些类原本是为开发其他程序而编写的,如果可以把这些现成的类拿过来使用,那么程序的开发效率就更高了。所谓企业级的程序,指的是对可维护性有较高要求的程序。可维护性体现在当程序投入使用后对已有功能的修改和新功能的扩充上。

    观点3:面向对象编程是适用于大型程序的开发方法

    观点4:面向对象编程就是在为现实世界建模
    在实际建模的过程中,要进行“组件化”和“省略化”这两步。所组件化,就是将可看作是由若干种对象构成的集合的现实世界分割成组件。

    观点5:面向对象编程可以借助UML设计程序

    可以说建模就是在为面向对象编程做设计。为了把对现实世界建模的结果以图形的形式表示出来,还经常使用被称作UML( Unified Modeling Language,统一建模语言)的表记方法。UML是通过统一历史上曾经出现的各种各样的表记方法而发明出来的,事实上UML已经成为了建模表记方法中的世界标准。
    在这里插入图片描述
    在进行面向对象编程的设计时,要在一开始就把所需要的类确定下来,然后再在每个类中列举出该类应该具有的函数和变量,而不要到了后面才把零散的函数和变量组织到类中。

    观点6:面向对象编程通过在对象间传递消息驱动程序
    也就是说用C++等面向对象编程语言编写程序的话,程序可以通过由一个对象去调用另一个对象所拥有的函数这种方式运行起来。这种调用方式被称为对象间的“消息传递”。

    观点7:在面向对象编程中使用“继承”( Inheritance)、“封装”( Encapsulation)和“多态( Polymorphism)

    继承指的是通过继承已存在的类所拥有的成员而生成新的类。封装指的是在类所拥有的成员中,隐藏掉那些没有必要展现给该类调用者的成员。多态指的是针对同一种消息,不同的对象可以进行不同的操作。

    使用类的程序员可以通过三种方法使用类,分别是:
    1.仅调用类所持有的个别成员(函数和变量);
    2、在类的定义中包含其他的类(这种方法被称作组合);
    3通过继承已存在的类定义出新的类。应该使用哪种方法是由目标类的性质以及程序员的目的决定的。

    第8章 一用就会的数据库

    问题-----------------------

    初级问题
    数据库术语中的“表”是什么意思?

    中级问题
    DBMS是什么的简称?

    高级问题
    键和索引的区别是什么?

    答案-----------------------

    初级问题:
    表(Tabe)就是被整理成表格形式的数据

    中级问题:
    DBMS是 Database Management System(数据库管理系统)的简称。

    高级问题:
    键用于设定表和表之间的关系( Relationship),而索引是提升数据检索速度的机制。

    解释-----------------------

    初级问题:
    一张表由若干个列和行构成。列也被称为字段( Field),行也被称为记录( Record)。

    中级问题:
    市面上的DBMS有 SQL Server、 Oracle、DB2等。无论是哪种DBMS都可以用基本相同的SQL语句操作。

    高级问题:
    其上每个值都能够唯一标识一条记录的字段称为主键。为了在表和表之间建立关系而在表中添加的、其他表主键的字段称为外键。而索引是与键无关的机制。

    数据库是数据的基地
    所谓数据库( Database)就是数据(Data)的基地(Base)

    索引能够提升数据的检索速度
    索引表是一种数据结构,存储着字段的值以及字段所对应记录的位置。例如,如果在顾客表的顾客姓名字段上设置了索引,DBMS就会创建一张索引表(如图8.13所示),表中有两个字段,分别存储着顾客姓名和位置(所对应的记录在数据文件中的位置)。与原来的顾客表相比,索引表中的字段数更少,所以可以更快地进行数据的检索和排序。当查询数据时,DBMS先在索引表中进行数据的检索和排序,然后再根据位置信息从原来的数据表中把完整的记录取出来。索引所起的就是“目录”的作用。与图书的目录一样,数据库的索引也是一种能够高效地查找目标数据的机制。

    第9章通过七个简单的实验理解TCP/IP网络

    问题-----------------------

    初级问题
    LAN是什么的缩略语?

    中级问题
    TCP/P是什么的缩略语?

    高级问题
    MAC地址是什么?

    答案-----------------------

    初级问题:
    LAN是 Local Area Network(局域网)的缩略语

    中级问题:
    TCP/P是 Transmission Control Protocol/Internet Protocol(传输控制协议和网际协议)的缩略语。

    高级问题:
    所谓MAC地址就是能够标识网卡的编号。

    解释-----------------------

    初级问题:
    通常把在一栋建筑物内或是一间办公室里的那种小规模网络称作LAN。与此相对,把互联网那样的大规模网络称作WAN( Wide Area Network,广域网)。

    中级问题:
    TCP/IP协议族是互联网所使用的一套标准协议。TCP/IP这个名字意味着同时使用了TCP协议和IP协议。

    高级问题:
    几乎所有的网卡都会在上市前被分配一个不可变更的MAC地址。

    实验1:查看网卡的MAC地址
    因为MAC地址是由制造厂商的编号和产品编号两部分组成的,所以世界上的每一个MAC地址都是独一无二的。
    在这里插入图片描述
    其中00-005D代表制造商,B8-39-B0代表产品的编号。
    实验2:查看计算机的IP地址
    在这里插入图片描述
    显示在 IP Address后面的202.26.186.174就是IP地址。请诸位再留意一下显示在 Subnet mask后面的255.255.255.240。这串数字是“子网掩码”。子网掩码的作用是标识出在32比特的IP地址中,从哪一位到哪一位是网络地址,从哪一位到哪一位是主机地址。图中对应的IP地址前28比特是网络地址,后4比特是主机地址。
    实验3:了解DHCP服务器的作用
    “自动获得IP地址”这个选项使得计算机在启动时会去从DHCP服务器获取IP地址和子网掩码,并自动地配置它们。DHCP的全称是 Dynamic Host Configuration Protocol(动态主机设置协议)。

    实验4:路由器是数据传输过程中的指路人

    路由器正如其名,就是决定数据传输路径的设备。
    在这里插入图片描述

    实验5:查看路由器的路由过程
    在这里插入图片描述

    实验6:DNS服务器可以把主机名解析成地址
    实际上,在互联网中还存在着一种叫作DNS( Domain Name System,域名系统)的服务器。正是该服务器为我们www.grapecity.eom这样的
    域名解析为了210.160.205.80这样的IP地址。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    实验7:查看IP地址和MA地址的对应关系

    在计算机中就加入了一种程序,用于实现由PP地址到MAC地址的转换,这种功能被称作ARP( Address resolution protocol,地址解析协议)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    第10章 试着加密数据吧

    问题-----------------------

    初级问题
    通常把还原加密过的文件这一操作叫作什么?

    中级问题
    在字母A的字符编码上加上3,可以得到哪个字母?

    高级问题
    在数字签名中使用的信息摘要是什么?

    答案-----------------------

    初级问题:叫作解密。

    中级问题:可以得到字母D

    高级问题:信息摘要是指从作为数字签名对象的文件整体中计算出的数值。

    解释-----------------------

    初级问题:本章将会介绍加密和解密的具体例子。

    中级问题:
    因为字母表中的字母编码是按字母顺序排列的,所以在字母A的编码上加3,即A→B→C→D,所以可以得到D。

    高级问題:
    对比由文件整体计算出的信息摘要,可以证明文件的内容有没有被篡改。加密处理过的信息摘要就是数字签名。

    第11章 XML究竟是什么

    问题-----------------------

    初级问题
    XML是什么的缩写?

    中级问题
    HTML和XML的区别是什么?

    高级问题
    在处理ML文档的程序组件中,哪个成为了W3C的推荐标准?

    答案-----------------------

    初级问题:XML是 Extensible Markup Language(可扩展标记语言)的缩写。

    中级问题:HTML是用于编写网页的标记语言。XML是用于定义任意标记语言的元语言。

    高级问题:DOM( Document Object Model,文档对象模型)

    解释-----------------------

    初级问题:所谓标记语言,就是可以用标签为数据赋予意义的语言。

    中级问题:通常把用于定义新语言的语言称作元语言。通过使用XML可以定义出各种各样的新语言。

    高级问题:本章将会介绍使用了DOM的示例程序。
    在这里插入图片描述
    在这里插入图片描述

    第12章 SE负责监管计算机系统的构建

    问题-----------------------

    初级问题
    SE是什么的缩略语?

    中级问题
    IT是什么的缩略语?

    高级问题
    请列举一个软件开发过程的模型

    答案-----------------------

    初级问题:SE是 System Engineer(系统工程师)的缩略语

    中级问题:IT是Information Technology(信息技术)的缩略语

    高级问题:软件开发过程的模型有“瀑布模型”“原型模型”“螺旋模型”等。

    解释-----------------------

    初级问题:在计算机系统的开发过程中,SE是参与所有开发阶段的工程师

    中级问题:一提到IT,通常就意味着充分地运用计算机解决问题但 Information Technology(信息技术)这个词中并没有
    包含表示计算机含义的词语。

    高级问题:本章将会详细地介绍应用瀑布模型的开发过程。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 日历,体验高效办公!

    千次阅读 2019-10-24 14:55:12
    总经理,员工怎样才能随时获取工作信息,提高企业效率 操心...... 琐事不断,“心”事连篇,是时候用一款高效、便捷、连接你我的智能日历,合理高效地安排时间,组织会议,从而建立高效的管理与和谐共赢的员工关系...

    免费使用

    飞书官网

    HR经理,面试时间调来调去 糟心......
    行政人员,邮件反复提醒一些日程安排 烦心......
    总经理,员工怎样才能随时获取工作信息,提高企业效率 操心......

    琐事不断,“心”事连篇,是时候用一款高效、便捷、连接你我的智能日历,合理高效地安排时间,组织会议,从而建立高效的管理与和谐共赢的员工关系。

    日历,这个时间管理器,可能是人类最古老的历史实物。从原始的结绳刻木,到一个世纪前出现的台历、挂历,再到信息时代形形色色的日历软件。在万物互联时代,智能的力量如“瓶中精灵”,不知疲倦地帮助我们预判、洞察、决策,“以人为本、以智为器”也成为日历创新突破的秘诀。 

    不主动颠覆就要被边缘化!抓住先机,对标先行者最佳实践,体验一站式沟通与协作,畅享高效愉悦的办公体验、就在飞书!

    飞书日历将冰冷的虚拟程序融入人性的温度,与即时沟通、在线文档深度整合,团队成员可以便捷规划和共享日程,时刻与大家保持同步,组织会议、项目排期更高效。带你细细体验下面这些用户场景:

    便捷订阅同事日历

    ”明天的会议很重要,把张总、李总、赵总、王总的时间都约一下,务必请他们出席。”唉,这种反复电话、邮件沟通协调日程的事儿又开始了......

    在飞书智能日历里,现在可以方便地订阅同事日历、直观查看对方忙闲状态,简化沟通,让制定日程、安排会议更合理、更高效。

     

    轻松创建公共日历

    “下个月的项目排期表都发给所有人了吗?怎么还有人不知道时间安排?能不能好好查看邮件呢?” 多想有个公共日历,随时订阅、方便查看,项目排期再也不会被遗忘了......

    创建“项目排期”、“节假日安排”等公共日程,可以快速和大家分享项目计划,时刻与团队保持同步,更重要的是,还能方便部门老大做开会、客户拜访的安排。

     

    高效组织团队会议

    “邮件、工作群早就发布了通知,但总会有人因忘记会议时间而缺席或迟到。” 一人忘事,就会浪费所有人的时间,怎样才能避免这种情况,保证会议效率?

    通过日历组织会议,可快速向同事或整个群组发出邀约,参与者会在飞书里收到通知,日程也会自动同步到其日历中,非常便捷。

     

    极速查找空闲会议室

    “一小时后临时有个项目沟通会,快去看看哪个会议室空着,马上占下来。“团队紧急开会,但不知道会议室的使用情况,只能逐间查找空闲会议室,劳神劳力,还没有找到,太尴尬了!

    在会议室视图下,可以同时查看多个会议室的预约安排,哪个会议室可用一目了然,快速找到合适的会议室,合理规划会议。

     

    一键开启会议群聊

    “这次我们要讨论第二版修改方案,请大家打开文档。”散乱堆在电脑文件夹里的文件,查找起来很困难,而一旦在外出差,不能随时打开电脑,想查找资料就更捉急......

    每次开会时,都要费时费力地逐个把参会人拉到群里?创建会议邀约后,还可一键创建会议群聊,共享会议相关文档,一事一议,让讨论更专注更充分。

     

    智能实用通知提醒

    当你每天的日程被大大小小的会排得满满,或者会议发生调整,你却未能收到更新提示,飞书智能通知提醒功能就是你的及时雨。

    收到会议邀请,或日程开始前、日程时间地点发生变更,以及日程有冲突时,日历助手小机器人会及时发送消息提醒,以防你忘记。

     

    飞书,智能可共享的团队协同日历,犹如你的智能时间助理,掌握整个团队的日程安排。

    飞书日历与即时沟通、在线文档深度整合,团队成员可以便捷规划和共享日程,时刻与大家保持同步,组织会议、项目排期更高效。

    欲了解更多,请登录飞书官网

    当然,只有在多人协同使用的情况下才能更好地体验飞书价值,还等什么,马上和你的团队一起用起来吧!点此获取免费使用

    展开全文
  • []Linux相关图书选购指南

    千次阅读 2004-12-29 15:57:00
     掌握一门技术,兴趣是最好的老师,而就可能是前进的导航灯。计算机图书的出版情况,从一个侧面能够反应一个国家的计算机发展水平。比如台湾,其资讯业比大陆发达的多,其计算机书籍也明显走在了大陆的前列;幸运...

    Linux相关图书选购指南
    本期特约作者 冯锐
    (会员名:phost)

      工欲善其事,必先利其器。
      掌握一门技术,兴趣是最好的老师,而书就可能是前进的导航灯。计算机图书的出版情况,从一个侧面能够反应一个国家的计算机发展水平。比如台湾,其资讯业比大陆发达的多,其计算机书籍也明显走在了大陆的前列;幸运的是最近几年大陆的计算机书籍的出版正迎头赶上。国外计算机和计算机图书的水平明显高于国内,很多出版社与国外著名的出版社合作,引进外文版的图书,例如中国电力出版社引进的Oreilly的图书,华中理工出版社引进的台湾候俊杰先生的图书,对于读者来说都是振奋人心的好消息。
      而计算机图书出版的蓬勃发展也给读者带来另外一个问题:现在的计算机图书可以用浩如烟海来形容,在书店可谓是看花了眼,其质量肯定参差不齐,而且面对不菲的价格,该如何找到自己需要的书籍,如何有效地选择自己需要的书籍呢?读者选择书籍不免会碰到以下的问题:

    1. 该选择哪个出版社?
      国内计算机图书口碑比较好的几个出版社有:清华大学出版社、电子工业出版社、人民邮电出版社、机械工业出版社。清华大学出版社是老牌的计算机图书出版社,它是国内出版原著计算机图书最好的出版社,其出版的影音版的外文书籍也值得称道。机械工业出版社在我的印象中是从1997年开始大力出版计算机图书,现在已经取得了显著的成效,其属下的华章公司的网站http://www.china-pub.com是读者选择图书的一个好去处。另外还有些出版社的图书也非常不错,例如前面提到的例如中国电力出版社引进的Oreilly的图书和华中理工引进的台湾候俊杰先生的图书,都是专业内的经典之作,出版社凭借这些图书在业界内也名声大振。如果单纯论出版书籍的种类和数量,北京希望电子出版社和水利水电出版社出版可以是说是大户,但是其质量实在不敢恭维(也许是我看到的书刚好如此,但是出版社的图书就是自己的商品,质量不好牌子就倒了)。

    2. 选择中文版还是英文版
      这个问题的答案很简单,如果有引进的英文版,读者的英文功底又足够的话,就不用考虑中文版了。这并非什么崇洋媚外,实在是一种无奈。计算机水平是英语语系的最高,其资料和文档大部分(大概70%)都是英文的,想在行业内立足和发展,就不可能避免英文的问题。而且国内出版的计算机图书,如果是原著,很多质量还是可以的;但是有些书籍的质量与国外著名出版社出版的图书还是有一定差距的。如果是译著,恐怕从事过相应工作的人都会明白,信、达、雅这三个字并非如此简单,真正能做到这三个字的译著恐怕凤毛麟角。而且加上引进、翻译、出版的各个环节,引进的图书恐怕要比原版图书滞后一年的时间。当然,在外文图书购书渠道不畅通、读者的经济承受能力和外文水平有限等情况下,原著、译著都是很好的选择。

    3. 如何选择作者、译者
      技术上的大牛未必能写出好书,但是好的作者肯定是技术的权威。就像W.Richard Stevens的一样,其三卷本的《TCP/IP详解》、两卷本的《UNIX网络编程》以及《UNIX环境高级编程》高级编程,全都是经典的传世之作。
    译著的质量和原著的质量以及译者的水平都有很大的关系,蹩脚的译者翻译的书籍会增加阅读的难度,甚至曲解原著的意思。台湾候俊杰先生(http://www.csdn.net/expert/jjhou/有介绍)就是非常一位非常著名的译者,大陆尤晋元的Unix方面的图书、潘爱民的Com理论方面的图书也都是上上之选。
      作者和译者的选择,只能靠平时的经验积累和别人的推荐了。

    4. 其他相关内容
      书籍的读者适用对象。每本书籍都有自己特定的读者对象,读者应该根据自己的实际情况适当地选择需要的图书。就像是清华大学出版社出版的谭浩强编写的《C语言程序设计》一书,照样有人说它是垃圾。是的,对于那些对于C语言了若指掌的那些人来说,该书就可以当成垃圾扔到一边了;但是对于新手学习C语言来说,这本书堪称是相当经典的教材了。
      书籍的厚薄。书是越厚越好么?有些读者会以为书越厚内容可能就越充实,书也就越权威;事实不尽其然。能深入者才能浅出,真正好的书籍并不需要大块头来装点自己的门面,能用简单通俗的语言深入浅出的把道理说明白,才是上选。动辄上千页的书,多久能看完都是个问题,这种书只适合作为技术手册,需要的时候搬来查一查。当然,要把内容详实地介绍清楚,还是需要一定的篇幅的。
      书籍的版次。从某种意义上来说,一本书的再版次数就反应了该书受欢迎的程度;至少也是再版修订过原来的错误了。计算机技术的发展可以用日新月异来形容,除了一些经典的介绍理论或基础的教材,读者应该尽量选购新版的书籍。
      书籍的多寡。并非手里面的书籍越多越好,这可能是读者的一个误区。就某一个专题来来说,可能有很多书都在讲解,但是在某一个阶段,适用于你的书有一本就足够了。在选书的时候就应该自习选择,拿到书后应该融会贯通;自己水平提高了,就可以换层次更高的书来看。不要妄想一本书里面会介绍所有的内容,这样的所谓大全只能是蜻蜓点水,让你全都一知半解。

      下面我们就Linux方面的图书做一个简单的介绍,希望能对读者选购图书有所帮助。(由于书籍实在太多,很多笔者也没看过,其内容和质量不敢妄加评论。) Linux从严格的技术定义讲,Linux指的是开放源代码的Unix类操作系统的内核。然而,目前大多数人用它来表示以Linux内核为基础的整个操作系统。Linux是一个自由的、开放的操作系统,其软件的发布和使用遵循GPL,现在在服务器、嵌入式应用等方面有突出的表现。Linux本身和Unix有千丝万缕的联系,其原理、应用有很多相通之处,因此可以触类旁通。

    1. 系统安装和使用
      在早期众多的Linux发行版本中,最有影响的要数Slackware。当时它是最容易安装的Linux发行版本,在推广Linux的应用中,起了很大的作用。Linux文档项目(LDP)就是围绕Slackware发布写成的。目前,Red Hat发行版本的安装更容易,应用软件更多,已成为最流行的Linux发行版本;而Caldera则致力于Linux的商业应用,它的发展速度也很快。国内中文的发行版本有TurboLinux、红旗(RedFlag)Linux、蓝点(BluePoint)Linux、HappyLinux以及Xlinux。每种发行版本有各自的优点和弱点,但它们使用的内核和开发工具则是一致的,因此书籍的内容大部分也是相通的,读者在选购图书入门级的图书是没有必要限定于哪个发行版本。
      对于初学者我给大家推荐中国电力出版社2000年3月出版出版的《Linux权威指南》(第三版),原书由O'Reilly 出版,Matt Welsh,Matthias Kalle Dalheimer,Lar Kaufman著,洪峰译。该书内容设计系统安装,常用命令,系统管理,文件系统管理,Xwindow的定制和使用以及部分网络的内容,比较适合初学者使用。另外给大家介绍一本适合初学者使用的书,中国青年出版社引进的《精通Linux入门、管理与应用》(位元文化编著,台湾文魁资讯股份有限公司出版),这个书虽然块头很大(680页),但是排版比较松,内容深入浅出,比较适合我这样的懒人看。
      Linux上目前流行的两种GUI(图形用户界面)是KDE和GNOME,分别给大家推荐《实用KDE教程》(作者: Dennis E.Powell,译者: 张辉清华大学出版社,2000-11-1)和《轻松学用GNOME》(作者: David D.Busch,译者: 徐晓青 王江红 阎慧娟,电子工业出版社,2000-11-1)。这两本书分别介绍了KDE和GNOME的安装、使用,适合初学者使用。
      实际上Linux系统中的图形花引用软件并不比Windows逊色,比如GIMP(推荐书籍:《GIMP权威指南》,作者: Olof S.Kylander Karin Kylander,译者: 唐新桂 罗阿理 侯增广 冯兴元,机械工业出版社,2000-10-1)就可以和Photoshop抗衡;StarOffice是Linux系统中可以与Windows系统中的Office相媲美的软件,可惜国内市场上介绍StarOffice的书籍似乎没有。
      Linux上相当重要的一个部分就是网络,如果脱离开网络,其价值就大为降低了,以上书籍中对网络都有简单介绍,我们将在后面给出更详尽的书目进行介绍。
      目前在国内开展培训和认证考试的有TurboLinux、红旗和Xlinux,如果读者是要参加他们的认证考试,不妨参考一下各个公司出版的认证培训教材,见下表。

         发行版本

    认证培训教材
    TurboLinux       书名: 红旗Linux用户基础教程
    作者: 中科红旗软件技术有限公司
    页码: 288
    定价: ¥26.00
    出版社: 电子工业出版社
    出版日期: 2001-1-1
    书名: 红旗Linux网络管理教程
    作者: 中科红旗软件技术有限公司
    页码: 336
    定价: ¥28.00
    出版社: 电子工业出版社
    出版日期: 2001-1-1
    书名: 红旗Linux系统管理教程
    作者: 中科红旗软件技术有限公司
    页码: 348
    定价: ¥28.00
    出版社: 电子工业出版社
    出版日期: 2001-1-1
    XLinux

    书名: Linux网络管理教程
    作者: 北京网虎科技有限公司
    页码: 218
    定价: ¥26.00
    出版社: 电子工业出版社
    出版日期: 2001-4-1
    书名: Linux系统管理教程
    作者: 北京网虎科技有限公司
    页码: 258
    定价: ¥28.00
    出版社: 电子工业出版社
    出版日期: 2001-4-1


    2. 系统管理和网络应用
      前面我们已经说过,Linux最主要的一个应用就是服务器,其稳定的性能、强大的网络功能深得用户的青睐。此处为大家推荐《GNU/Linux高级网络应用服务指南》(作者: LinuxAid网站,机械工业出版社,2001-1-1)。该书由国内非常出名的Linux的网站LinuxAid(http://www.linuxaid.com.cn)组织编写,参加编写的作者全部都是经验丰富的工程师,该书内容广泛,涉及到系统的安全优化策略、TCP/IP网络管理、Apache Web服务器、FTP服务器、邮件服务器、域名服务器、代理服务器、防火墙、路由器、拨号服务器、文件服务器、新闻组服务器、DHCP服务器、LDAP服务器、群集服务器、BBS、CVS以及系统安全软件的介绍。本书既适用于初级用户,也适用于高级用户。另外一本适用于中、高级用户的书是《Red Hat Linux系统管理员手册》(Mohammed J.Kabir著,魏永明、郑翔、孙登峰译,电子工业出版社,2000-7)。对于Solaris,推荐机械工业出版社的《Solaris系统管理员指南》(Janice Winsor著,王无敌等译,机械工业出版社,2000-1)和《Solaris高级系统管理员指南》(Janice Winsor著,王无敌等译,机械工业出版社,2000-2)。
      Linux上面的很多服务应用功能相当强大,种类繁多。看看《GNU/Linux高级网络应用服务指南》的目录就可以初见端倪了,但是这些服务的配置和使用并非一蹴而就,每个专题都会有大块头的书籍来介绍,高级用户应该转而看这些书了,以下我们就个别方面介绍一些比较好的书籍。
      Apache的功能相当强大,几乎是目前应用最广泛的Web服务器。与之相关的优秀的出版物也有不少,例如《Professional Apache》(Peter Wainwright著,Wrox Press Inc,1999-9)、《Linux Apache Web Server Administration (Linux Library)》(Charles Aulds著,Sybex,2000-9)等,国内市场能够见到一本好书的是《The Definitive Guide》(Ben Laurie、Peter Laurie著,O'Reilly,1999-2,中国电力出版影印,中文名《Apache 权威指南(第二版)》)。该书除了介绍Apache的安装、配置、使用之外,还介绍了Apache的一些API,以及如何编写Apache的模块(module),对系统管理员和编程人员都很有帮助。中文介绍Apache的图书给大家推荐《Apache Server实用全书》(英文原书名: Apache Server Unleashed ,作者: Rich Bowen Ken Coar 等,译者: 罗四维 等,电子工业出版社,出版日期: 2001-2-1)。
      Internet上每个进行通信的主机都要有自己的IP,但是人们更经常的是使用域名来访问主机,于是DNS就应运而生,实现IP地址和域名的转换。随着Internet的飞速膨胀,靠一台服务器来维护域名信息已经不可能,现在所依赖的BIND就是一种分布式数据库,它允许网络大规模无限制地增长下去。介绍DNS比较经典的书有《Linux DNS Server Administration (Craig Hunt Linux Library)》(Craig Hunt著,Sybex,2000-1)和《DNS and BIND (4th Edition)》(Paul Albitz、Cricket Liu著,O'Reilly,2001-4);后者的第三版中国电力出版社已经引进,中文名为《DNS与BIND》(雷迎春、陈世林、杨传军译,2000-11)。
      Linux中的邮件服务器采用的最多的是Sendmail,经典著作有《Linux Sendmail Administration (Craig Hunt Linux Library)》(Craig Hunt著,Sybex,2001-2)和《Sendmail》(Bryan Costales,Eric Allman著,O'Reilly,1997-1)。前者详尽地介绍了Sendmail的原理、安装、配置及安全性问题;后者的作者Eric Allman就是Sendmail的开发人员,中国电力出版社已经出版了该书的影印版,中文名为《sendmail》第二版(2000-5),上下两卷。
      Linux使用Samba和Windows之间实现共享访问,解释Samba比较好的书有《Using Samba》(Robert Eckstein,David Collier-Brown著,O'Reilly,1999-9)和《Linux Samba Server Administration》(Roderick W. Smith著,Sybex,2000-9)。二者都详细介绍了Samba的安装、配置、使用及安全性和备份、恢复的内容,前者已经被Samba小组正式采用,中国电力出版社已经引进并翻译出版了该书,中文名为《实战Samba》(薛彬等译,2001-1)。
      其他方面也都有专门的专著进行介绍,比如介绍NFS的《Managing NFS and NIS, 2nd Edition》(Hal Stern, Mike Eisler, Ricardo Labiaga著,O'Reilly,2001-7)和《Linux NFS and Automounter Administration》(Erez Zadok著,Sybex,2001-5),介绍SSH的《SSH, the Secure Shell : The Definitive Guide》(Daniel J. Barrett, Richard Silverman,O'Reilly,2001-2)等都是相当不错的书,读者可以根据需要自行选择。

    3. 编程及开发应用
      Linux的内核主要使用C语言编写而成,少量地使用了汇编语言,其编译器采用gcc。因此C语言是Linux系统中相当重要的编程语言。都Linux编程很陌生的读者可以翻阅以下《GNU/Linux编程指南》(K.Wall M.Watson M.Whitis著,王勇、王一川、林花军、甘泉译,清华大学出版社,2000-6),该书对编程工具(GNU C、GNU Makefile、Autoconf、RCVS、Emacs)、系统编程(I/O操作、文件操作、进程、线程、内存管理)、进程间通信和网络编程(管道、消息队列、共享内存、信号灯、Socket、设备驱动程序)、用户界面编程(ncurses、Xlib、Motif、GTK、Qt、Java、OpenCL)、Shell编程及GDB调试工具都有简要的介绍,是了解Linux编程环境的一本好书,但是这本书的确是一本指南,每种技术都浅尝辄止,希望深入学习该技术的读者需要选择适当的书籍来学习。
      Linux中最基本的编程是Shell编程,推荐《LINUX与UNIX Shell编程指南》(David Tansley蓍,张春萌等译,机械工业出版社,2000-6),该书详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。
      系统编程推荐《UNIX环境高级编程》(W.Richard Stevens,尤晋元等译,机械工业出版社,2000-2),就是著名的APUE。本书对I/O、进程、信号、进程间通讯的介绍都相当深入,一直以来被誉为UNIX编程的"圣经",同样适用于Linux,翻译质量也属上乘。
    网络编程推荐W.Richard Stevens的另外一套书:《UNIX网络编程》(清华大学出版社引进),大师的经典之作,赞美之词溢于言表。读者也可以参看国内出版的《Linux网络编程》(李卓桓等著,机械工业出版社,2000-1)。要想详细了解网络底层的知识,请看W.Richard Stevens的《TCP/IP详解》(三卷本,机械工业出版社)和DOUGLAS E.COMER的《用TCP/IP进行网际互连》(三卷本,电子工业出版社),这绝对是网络参考书中的经典。
      用户界面方面的编程工具比较多,ncurses是在终端下开发图形界面的有力工具;Xlib是构建Xwindow的基础,著名的KDE和GNOME分别就是使用QT和GTK开发的。这方面国内出版的书籍比较少,知道的有《Linux应用程序开发指南:使用Gtk+/Gnome库》(许宏松等著,机械工业出版社,2000-7)和《GNOME/GTK+编程宝典》(Arthur Griffith著,吴向峰、王景中、江继军等译,电子工业出版社,2000-12)。讲解QT的书有《Programming With Qt》(Matthias Kalle Dalheimer著,O'Reilly,1999-5),国内人民邮电出版社最近出版了一本《24小时精通QT编程》。
      目前Linux广泛使用的编程工具还有Perl、PHP等。Perl是一种解释性语言,从某种程度上来说可以替代CGI,比较好的书有《Programming Perl》(Larry Wall, Tom Christiansen, Jon Orwant著,O'Reilly,2000.1)、《Learning Perl》(Randal L. Schwartz, Tom Phoenix著,O'Reilly,2001.7),目前这两本书都已经出版到第三版,中国电力出版社已经引进翻译了后者,中文名为《Perl教程》(张大江译,2000-6)。PHP与Apache结合,在Web应用方面表现了巨大的潜力,推荐两本适合中、高级读者使用的书:《PHP 4.0 Web开发技术指南》(Tobias Ratschiller Till Gerken著,陈军、龙浩、李向荣译,机械工业出版社,2001-1)和《PHP4.x企业级Web应用与开发》(廖若雪等著,机械工业出版社,2001-4)。
      经验丰富的程序员都会知道源代码版本控制的重要性,Linux使用CVS来解决版本控制的问题。《CVS 开源软件开发技术》(Karl Fogel著,肖虎勤、陈军等译,机械工业出版社,2001-6)详细介绍CVS 的发展历史、基本概念、高级应用等内容。
      Linux对数据库应用的支持并不比Windows逊色,全部支持MySQL、Oracle、Informix、Sybase、DB2、Progress。《Linux环境数据库管理员指南》(David Egan著,钟鸣、田晓涛译,机械工业出版社,2001-1)全面地介绍了各种数据库在Linux下的安装、配置以及简单应用,这是唯一一本全面介绍Linux下数据库应用的书;可以想象的是,一本书里面全方位地介绍这么多数据库的内容,对数据库本身的知识介绍肯定不够,专著于数据库开发的读者需要结合所使用的数据库选择适当的图书,例如介绍MySQL的《MySQL网络数据库指南》(Paul DuBois著,田晓涛等译,机械工业出版社,2000-6)。
      如果读者希望了解内核的构造,不免会涉及的内核模块编程的问题,LKMPG(Linux Kernel Module Programming Guide)是LDP项目之一,一份比较权威的文档,其中译版收录在《Linux编程白皮书》(朱珂等译,机械工业出版社,2000-4)一书中,可惜的是原来是针对2.0.*版本的内核编写的,后来对2.2.*版本的内核进行了扩充,但是现在2.4.*版本的内核有和很大的改进,希望作者能早日更新本文档。
      在介绍了这么多编程系列的图书之后,最后再给大家推荐两本:《Beginning Linux Programming》(Neil Matthew, Richard Stones著,Wrox Press Inc,1999-9)和《Linux程序设计权威指南》(于明俭、陈向阳、方汉著,机械工业出版社,2001-4)。前者浙江大学曾组织影印过一批,从内容和涉及深度来讲,这本书可以看做是APUE的"入门"级版本,APUE虽然是学习Unix编程的经典,但对于初学者来说,显得太深,啃起来比较吃力,在这种情况下,BLP一书就很有阅读价值了。这本书从Linux编程的基本概念讲起, 覆盖了Shell编程、文件、环境、终端控制、Curses、进程与线程、管道、SystemV IPC、socket、Tcl/Tk、gtk+、Perl、HTML/CGI、设备驱动程序等Linux编程中常用的内容, 并介绍了make、版本控制等常用工具和Linux下C程序的调试技术。如果读者具有一般的C编程经验, 但以前没写过Linux程序,那么这本书可以帮助你很快迈入Linux编程的门坎。同时, 由于书中大多数章节内容严格遵循POSIX、XPG4I3(Unix98)、SVID等业界标准,因此也适合于学习一般的Unix编程。《Linux程序设计权威指南》的第一作者于明俭是chinput的作者,对Linux的国际化、本地化和中文化有很深入的研究,因此本书的第六章"国际化和中文化编程"应该是相当权威的。

    4. 操作系统原理
      其实选择操作系统原理的书很简单,认一个人的名字就够了,Andrew S.Tanenbaum,他的《操作系统:设计与实现(第二版)》(两卷本,王鹏、尤晋元、朱鹏、敖青云译,电子工业出版社,2001-4)、《现代操作系统》(陈向群译,机械工业出版社,1999-10)、《分布式操作系统》(陆丽娜、伍卫国、刘隆国等译,电子工业出版社,1999-12)全都是经典之作,此处就不再介绍了。

    5. 内核和源代码分析
      首先介绍的一本应该是《莱昂氏UNIX源代码分析》(John Lions著,尤晋元译,机械工业出版社,2000-9)。该书上篇为UNIX V6的源代码,下篇是莱昂先生对UNIX操作系统版本6源代码的详细分析。该书从1976年开始一直就是黑客内部流传的一部经典教材,直到1996年才得以正式出版。虽然内容很多涉及PDP11的内容,相应的汇编指令没有相应的基础很难看懂,但是本书的内容、思想永远都值得购买、学习。作者除了对源代码进行注释、分析之外,还提出了很多改进意见,china-pub把本书誉为旷世奇书实不过分。
    对于Linux,国内出版了几本不错的书,其中最好的应该是陈莉君编著的《Linux操作系统内核分析》(人民邮电出版社,2000-8),该书对Linux内核进行了较全面的分析,既包括了对进程调度、内存管理、进程间通信、虚拟文件系统、设备驱动程序及网络子系统的分析,也包括对Linux整体结构的把握、Linux启动过程的剖析以及Linux独具特色的模块机制的分析与应用等。该书在台湾业界都广泛流传着复印或影印的版本;不足之处是内容深度不够,对SMP(对称多处理)等都没有介绍。
      译著里面值得一提的是机械工业出版社出版引进出版的姊妹篇:《Linux内核源代码分析》(Scott Maxwell著,冯锐、刑飞、刘隆国、陆丽娜译,2000-6)和《Linux IP协议栈源代码分析》(Stephen T.Satchell、H.B.J Clifford著,刘隆国、翟刚、陆丽娜、辛炜译,2000-11)。前者针对当时最新的内核(2.2.5),分析了系统初始化、系统调用、信号、中断和时间、进程和线程、内存、System V IPC、对称多处理等方面的内容。后者则是针对当时广泛被采用的2.0.34的内核的网络部分进行分析,较全面地介绍了ISO网络模型、API 、IP、ICMP以及ICP 等核心网络实现,对它们的代码进行了详尽的分析。但是在新版本的内核中(2.4.*)网络部分已经进行了相当大的改动,作者的第二版就是针对2.4.*版本的内核进行分析的。
      今年有一件令Linux的技术爱好者振奋人心的事情,就是《Understanding the LINUX Kernel: From I/O Ports to Process Management》(Daniel Pierre Bovet, Marco Cesati著,O'Reilly,2000-9)一书的出版,该书是迄今为止分析Linux内核最好的一本书;Solaris也出版了一本经典之作《Solaris Internals: Core Kernel Architecture》(Jim Mauro, Richard McDougall著,Prentice Hall PTR,2000-10)。这两本书已经分别由中国电力出版社和机械工业出版社引进,近期都会出版中译版。
      有关内核,网上公开的一份相当好的文档是LKI(Linux Kernel Internals),可惜的是还没有完成。另外有一本《Linux设备驱动程序》(Alessandro Ruibini著,LISOLEG译,中国电力出版社,2000-4)详细地介绍了Linux下开发设备驱动程序所涉及的内容,包括建立驱动程序并装载模块、完善字符设备、块设备和网络设备驱动程序、调试驱动程序、计时、内存管理和DMA、中断、可移植性事项、外部设备互连(PCI)、内核内幕的导览,是这方面不可多得的好书。可惜的是写第一版当时所采用的内核开发版本才到2.1.43,现在的2.4.*已经有了很大的改进,O'Reilly已经在今年6月份出版了本书的第二版,内容已经包含了2.4.*的改进,据说中国电力出版社已经引进了该书。
      还有很多优秀的图书,笔者可能不了解详情,不能一一列出;但愿这份简要的介绍能给读者选购图书提供帮助。


    from: http://www.china-pub.com/main/linux/linux_fengrui.htm

    展开全文
  • 把书看薄,再看厚

    千次阅读 2013-11-16 12:52:09
    一直以来有许多读者问我:你的都那么厚一本,看起来真费劲,那么多内容,好像都是重点,看完后却记不住多少,该怎么办?怎样的看书方法效果会更好?这的确是事实,在我的《网管员必读》(包括第一版和第2版)和...
  • JAVA程序员必看的15本书-JAVA自学书籍推荐 (

    万次阅读 多人点赞 2017-02-07 14:43:39
    作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的太多,往往容易无所适从。我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水平的...
  • 作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的太多,往往容易无所适从。我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水平的...
  • 项目中遇到哪些难点,你是怎样解决的?单点登录系统说一下?分布式缓存的使用场景?(说好的基础呢,上来就是项目,毫无准备,导致好多东西都记不起来了。面试官还说“那你说一个你记得的项目”,手动无奈。。。) 3....
  • Learning Java the OReillys Way (Part I) Java 技术可以说是越来越重要了,不但可以用在计算机上,甚至连电视等家电用品,行动电话、个人数字助理(PDA... 因为讲授 Java 课程的关系,这几年来,不少人问我:怎样才能
  • 1、年龄 ...”他如此的向我问道,“是的,不过您怎么知道呢?” 我如此反问他,但被他无视,只是自顾自的和别人说话。 “您今年45岁吧?” “是没错。” “您是62岁吗?” “你怎么知道的?” 一
  • 一、重大消息网站: http://longfy.any2000.com/ ...“首席执行官的参考,文化经理的操作指南”——《企业文化管理地图》 龙伏佑著二、题记许多企业都在说企业文化和做企业文化,但遗憾的是,说
  • 大学四年,这些让我起飞的计算机必看书籍

    千次阅读 多人点赞 2021-06-14 19:24:05
    对于大学生或者一些半路转行的人来说,最容易被忽略的就是,基础知识的学习,这些基础书籍就像我们的内功,掌握好这些内容,才能让我们走的更远。 今天我就给大家介绍一些我这几年看过的一些自认为优秀的书籍,由于...
  • 你不得不读的书籍清单

    万次阅读 多人点赞 2015-12-16 17:15:13
    没错,这次推荐的是《当我谈跑步时我谈些什么》,村上春树写的,非常有文艺气质的一本,读起来就像微风佛面一样,很自然,很亲切。 说来惭愧,我总是念不好“村上春树”,100次中有90次念做“树上村树”,并非...
  • 作为 CSDN 的前排博主(18 万+关注,有点飘了哈),我接触了太多太多想学编程、想编程学好的人,有从别的专业过来的,有零基础自学的,有科班出身的。他们当中的一部分人,学着学着就放弃了,或者还在放弃的路上...
  • 《富爸爸穷爸爸 》 读书笔记

    千次阅读 2018-11-18 12:15:33
    富爸爸穷爸爸 是我看过的中对我认知刷新最大的一本。这本书我在就业前读过一次,那时候没挣钱的我对这本书的理念比较震惊。...而如果你自问”我怎样才能付的起“,则会让你的大脑动起来。   两种观念...
  • 国内的语法很少像这本书那样“一本两个目录、若干附录”——检索起来超级方便(有些语法竟然不提供索引,真不知道作者是怎么想事儿的)。体系完整的同时,例句不仅丰富且分类细致。 我个人觉得这本书绝对是...
  • 转行穷三年?未必!

    万次阅读 多人点赞 2017-03-15 06:51:28
    所以,很多人都在考虑,到底该怎么样才能既转行又不穷三年。这就是我们今天要讨论的话题了。 那么,我当年转行时,有没有穷三年呢? 没有! 我没有穷的感觉,更别说穷三年了。 为什么呢? 我们得先从...
  • 富爸爸穷爸爸-读书笔记

    千次阅读 多人点赞 2020-10-24 16:33:37
    文章目录概述序言 这就是你所需要的...这里有一些要做的事情结束语 怎样用7000美元支付孩子的大学费用 概述 罗伯特·清崎(英文名:Robert Toru Kiyosaki),1947年4月8日生于美国夏威夷,日语名清崎彻(Kiyosaki Tor
  • 新手初学者怎样才能学好Java?

    千次阅读 2019-09-18 09:58:47
    很多学生在写代码时,就像瓢一样,对自己没有任何了解,常常把书上放下来。这就是为什么没有思考,这是缺乏编程思想的原因。所以,理解是最重要的。一旦建立了编程思想和自己的想法,编写起来就会容易得多。 ...
  • 好书好人生--读书的步骤

    千次阅读 2013-08-25 20:41:07
    写在开始:    作为一名IT人士,我们要经常接触新的技术,也要多读一些技术的和生活的怎样读书最重要,读书并... 想要一本读得透彻,不能简简单单、随随便便地读,而应有步骤、有层次地读,因为任何一
  • 因为简单!我的第一本算法,就被女友抢走了...

    万次阅读 多人点赞 2019-06-17 16:55:28
    怎么会有那样的呢?哎呀,最好学了算法人还能变得很萌…… 这个……要求是不是太高了呀?哈哈,有的真的能满足所有这些要求哦! 来,看看这本书有多可爱—— 二分查找 假设要在电话簿中找一个名字...
  • 如果想速成,那就上网看视频吧,这样主要是面对应用...只有在脑海中建立了一个个逻辑模型,理解FPGA内部逻辑结构实现的基础,才能明白为什么写Verilog和写C整体思路是不一样的,才能理解顺序执行语言和并行执行语言的设
  • 书籍:wpf学习书籍介绍

    千次阅读 2015-05-26 16:18:40
    WPF参考推荐  下面先整理下,本人主要学习的WPF参考:  1、WPF编程宝典(C#2010)    该:(必读)  心得体会:读完该后,你对WPF的基础和基本控件的使用,包括WPF的编程模型,相比Winform的特性和如何...
  • 程序员讲师 | 你约我写

    万次阅读 多人点赞 2017-04-05 06:50:05
    写在前面 :  这篇文章是我们订阅号“程序视界”的一位老朋友约我写的,...怎么样,你准备好了吗? 心想事成要怎么想才能成 转行穷三年?未必! 程序员转行为什么这么难? 你都付出了哪些努力
  • 品好书

    千次阅读 2012-09-11 10:47:49
    我一向不喜欢打腰封,读温伯格的之前会先腰封扯下来。  一个好的出版者能够让读者在第一时间爱上手中的,并宽容地忽略很多文字上的缺陷;一个糟糕的出版者懂得如何使读者的阅读体验“尽可能地糟糕”...
  • 12年经验老程序员的5次转型

    千次阅读 2017-12-13 08:40:01
    程序员的职场生涯,会遭遇 4 大绝命难题:怎么选择技术方向?要不要管理?年龄大了,如何不被年轻人替代?不想干开发了,还能干什么?
  • 了解这些问题后,你才能培养出兴趣,兴趣是最好的引路人,学习的动力与持久力才能让你应付接下来的若干个阶段。关于机器学习是什么,能做什么,它与深度学习以及人工智能的关系,可以看我写的博客 从机器学习谈起 ...
  • 技术学到多厉害,才能顺利进入BAT?

    万次阅读 多人点赞 2017-10-25 14:46:36
    【不要错过文末彩蛋】简介本科的时候对 Linux 特别感兴趣,心中向往成为一名运维工程师,就开始没日没夜的看相关的书籍,到了大约2013年前后的时候发现 DevOps 开始流行起来了,就开始学习 Python 希望成为一名 ...
  • 一生的读书计划

    万次阅读 2008-01-17 16:33:00
    无论如何,如果在书店里看到这本书,我猜我一定会很小心很神圣地捧起来,至少要看看目录的,我要知道究竟有哪些是我这一辈子不能错过的。 费迪曼《一生的读书计划》称要开列一张“有益于读者的书单,要求所选书目...
  • 做什么的软件才能赚钱?

    万次阅读 2010-03-27 12:39:00
    做什么的软件才能赚钱?学什么的知识才能赚钱?肖舸老师 这是发在我的邮箱里面的一封信,这里做个统一回答。一家之言,欢迎拍砖哈。(原信篇幅过长,请大家到原帖去看)我的回答:这位同学你好, 从这封信看得...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 156,354
精华内容 62,541
关键字:

怎样才能把书转起来