月度归档:2016年08月

暑假总结以及计划完成度

暑假马上就结束了,感觉这算是从小到大以来学到东西最多的一个暑假了.看了几本书,计划也基本完成了,在这里总结一下,顺便顶一下近期的计划把没弄完的东西搞完.

0x01:读了的书:

  1. O’REILLY的那本
  1. 官方推荐的书
  1. 非常棒的工具书
  1. Steve Souders 同O’REILLY 学习前端必备
  1. 学C语言的好教材,同样是一本好工具书

下面是图片:

1.jpg

2.jpg

3.jpg

4.jpg

0x02:学到的东西和完成的项目

  • 用Bootsrap框架做了几个页面
  • 学会了用jekyll
  • 用PHP做了个文件管理程序(未完成)
  • 熟悉了Linux的安全和网络配置
  • 学会了几个IDE
  • Git命令行操作
  • 把已经做好的几个网站设置了自动抓取内容
  • Python的基本编程

0x03:剩余的东西

  1. 给jrExplorer文件管理器添加控制面板
  1. 制作Linux多服务器监控程序,PHP或Python写即可
  1. 学习Python的网络和深度学习编程基础
  1. 用Python写个练手的WEB APP

基本就这样,顺便提一句,睿因路由器是真差,发四个包必丢一个,简直不知淘宝9.9包邮的无线网卡…-_-

QQ截图20160819114850.jpg

什么是Raid技术以及其实现方法 – part 2

一、磁盘阵列实现方式

磁盘阵列有两种方式可以实现,那就是“软件阵列”与“硬件阵列”。

软件阵列是指通过网络操作系统自身提供的磁盘管理功能将连接的普通SCSI卡上的多块硬盘配置成逻辑盘,组成阵列。如微软的Windows NT/2000 Server/Server 2003和NetVoll的NetWare两种操作系统都可以提供软件阵列功能,其中Windows NT/2000 Server/Server 2003可以提供RAID 0、RAID 1、RAID 5;NetWare操作系统可以实现RAID 1功能。软件阵列可以提供数据冗余功能,但是磁盘子系统的性能会有所降低,有的降代还比较大,达30%左右。

硬件阵列是使用专门的磁盘阵列卡来实现的,这就是本文要介绍的对象。现在的非入门级服务器几乎都提供磁盘阵列卡,不管是集成在主板上或非集成的都能轻松实现阵列功能。硬件阵列能够提供在线扩容、动态修改阵列级别、自动数据恢复、驱动器漫游、超高速缓冲等功能。它能提供性能、数据保护、可靠性、可用性和可管理性的解决方案。磁盘阵列卡拥有一个专门的处理器,如Intel的I960芯片,HPT370A/372 、Silicon Image SIL3112A等,还拥有专门的存贮器,用于高速缓冲数据。这样一来,服务器对磁盘的操作就直接通过磁盘阵列卡来进行处理,因此不需要大量的CPU及系统内存资源,不会降低磁盘子系统的性能。阵列卡专用的处理单元来进行操作,它的性能要远远高于常规非阵列硬盘,并且更安全更稳定。

二、磁盘阵列配置实例

磁阵有8个网口用来连接服务器,4个光纤模块口。这里我只用了2个网口,所以物理连接就是两台服务器centos分别通过两个网口连接磁阵。

1.设置磁阵的两个网口的ip, 分别为10.0.10.1、10.0.20.1 掩码:255.255.0.0

2.设置两台服务器与磁阵相连的网口的网卡ip分别为,10.0.10.3、10.0.20.4 掩码:255.255.0.0 (这样服务器就可以ping通磁阵了)

3.控制服务器登录磁阵,service iscsid start启动iscsid服务,然后这是开机启动chkconfig iscsid on,没有的话yum安装

4.以其中一台服务器为例,iscsiadm -m discovery -t st -p 10.0.10.1,然后运行iscsiadm -m discovery

[root@localhost ~]# iscsiadm -m discovery

10.0.20.1:3260 via sendtargets

10.0.10.1:3260 via sendtargets

5.登录磁阵iscsiadm -m node -p 10.0.10.1:3260 -l,这样fdisk -l就可以发现3块磁盘组了,不过这三块磁盘组都超过了2T,需要用parted分区,然后格式化成xfs格式的文件系统。最后就可以mount上去了

/dev/sdd1 17T 33M 17T 1% /mount2

/dev/sdc1 8.2T 33M 8.2T 1% /mount1

6.建议将这个mount操作写在开机启动脚本中,因为写在/etc/fstab,如果配置开机挂载的话,如果因为服务器和磁阵网络问题中可能导致无法找到磁盘组,就无法开机了,需要到机房code了。

最后enjoy it

附录:

Linux下fdisk工具不支持GPT,得使用另一个GNU发布的强大分区工具parted

parted /dev/sdd

mklabel gpt

mkpart primary 0KB 17000GB

quit

iScsi

一个供硬件设备使用的可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议。iSCSI技术是一种新储存技术,该技术是将现有SCSI接口与以太网络(Ethernet)技术结合,使服务器可与使用IP网络的储存装置互相交换资料。SCSI可以兼容SATA。

HBA卡

光纤存储卡,用于服务器与光纤阵列规的连接。买服务器的时候,如果有和磁阵相连的需求时,可以配上HBA卡,这样和磁阵就可以用光纤传输数据了。

reffer to :

http://www.cnblogs.com/yanghuahui/p/3412077.html

http://www.jb51.net/article/39265.htm

OpenCobol IDE的安装下载与配置教程 – MacOS + WIN10

What is COBOL?

COBOL(CommonBusinessOrientedLanguage)是数据处理领域最为广泛的程序设计语言,是第一个广泛使用的高级编程语言。在企业管理中,数值计算并不复杂,但数据处理信息量却很大。为专门解决经企管理问题,美国的一些计算机用户于1959年组织设计了专用于商务处理的计算机语言COBOL,并于1961年美国数据系统语言协会公布。经不断修改、丰富完善和标准化,目前COBOL已发展为多种版本。

使用OpenCobol IDE的好处

  • COBOL 语法高亮
  • COBOL 代码自动完成
  • COBOL 代码分类
  • 导航树形视图
  • 智能自动缩进
  • 计算 PIC 字段偏移量工具
  • 编译为程序 (.exe) 或者子程序 (.so/.dll)
  • 从编辑器或者配置的外部终端运行程序
  • 黑颜色模式和主题
  • 跨平台:GNU/Linux, Windows 和 Mac OSX
  • Linux 上集成 dbpre

OpenCobolIDE 是简单轻量级的 COBOL IDE,基于 GnuCOBOL 编译器。OpenCobolIDE 使用 Python 编写,基于 PyQt5 (or PyQt4) 和 pyQode. 均为开源软件.

OpenCobol IDE的下载

1.Windows平台

Windows下安装OpenCobol IDE简单方便,操作基本上就是下一步下一步,不需要配置编译器,IDE中自带了编译器,安装完成即可使用.

0x01.下载

请自行使用下载工具下载

官方链接:

https://launchpad.net/cobcide/4.0/4.7.4/+download/OpenCobolIDE-4.7.4_Setup.exe

我给大家提供的镜像链接:

http://file.jrlab.win/cobol/OpenCobolIDE-4.7.4_Setup.exe

注意:官方链接速度稍慢,请耐心等待.镜像链接速度快,但是我的流量是有限制的,如果大家官方连接的下载速度可以接受的话请尽量使用官方链接.

0x02.安装

双击运行下载好的EXE安装包.

QQ截图20160814070417.jpg

2.jpg

同意协议.

3.jpg

选择安装位置.

4.jpg

剩下的操作下一步即可.安装完成后点击运行IDE,并创建新文件

5.jpg

选择目录

6.jpg

IDE会自动为用户创建一个HelloWorld程序,点击左上方工具栏中的绿色运行按钮,即可成功运行实例程序.

7.jpg

到此Windows的安装教程就结束了.

2.MacOS平台

0x01.下载

请自行使用下载工具下载

官方链接:

https://launchpad.net/cobcide/4.0/4.7.4/+download/OpenCobolIDE-4.7.4.dmg

我给大家提供的镜像链接:

http://file.jrlab.win/cobol/OpenCobolIDE-4.7.4.dmg

注意:官方链接速度稍慢,请耐心等待.镜像链接速度快,但是我的流量是有限制的,如果大家官方连接的下载速度可以接受的话请尽量使用官方链接.

0x02.安装前的准备工作

1.安装Command Line Tool

首先在Appstore中下载并且安装xcode,大约需要4gb的空间。

然后打开终端,输入命令xcode-select --install然后按下回车键

1.png

之后在插入电源的前提下同意所有协议即可以安装成功。之后在终端中输入xcode-select --install,如果出现一下情况,则代表安装成功。

2.png

2.安装Homebrew包管理器

在终端中执行命令:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安装完成后执行命令brew -v,如果提示如下,则代表安装成功,否则请自行安装git或其他包。

3.png

3.安装gnu-cobol编译器

在终端内执行命令brew install gnu-cobol.等待完成后再次执行该命令,当看到如何提示时,则代表安装成功。

注意:安装完成后需要执行homebrew link gun-cobol才可以成功链接,切记,第一次写的时候忘记写这个了.

4.png

4.安装OpenCobol IDE

1.双击打开下载好的dmg文件,讲里面的IDE文件拖动到桌面上,之后打开Mac的finder,之后把它拖动带应用程序上面,如图:

5.png

之后,就可以在launchpad中找到它了。

6.png

如果有如下提示,可以在系统偏好设置中的安全性与隐私处点设置任何来源来允许程序运行.但是你首先要点击左下方的小锁解锁设置选项。

7.png

8.png

之后点击允许,运行IDE。

9.png

剩下的操作和windows的一样,就不重复了。

结束

到这里所有教程就结束了,有什么问题可以在本文后面留言,在我的能力范围内我会尽量帮助大家的。

2016.9.6更新:

注意:Mac版的安装完成后如果无法编译,但是编译器设置是正确的,请在preference中设置在新终端窗口中显示结果,这个就解决了定义域的那些报错.

什么是Raid技术以及其实现方法 – part 1

What is RAID?

RAID全称为**独立磁盘冗余阵列(Redundant Array of Independent Disks)**,基本思想就是把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个价格昂贵、 容量巨大的硬盘。RAID通常被用在服务器电脑上,使用完全相同的硬盘组成一个逻辑扇区,因此操 作系统只会把它当做一个硬盘。 RAID分为不同的等级,各个不同的等级均在数据可靠性及读写性能上做了不同的权衡。 在实际应用中,可以依据自己的实际需求选择不同的RAID方案。

RADI的分类

  • 标准RAID
* raid 0* raid 1* raid 2* raid 3* raid 4* raid 5* raid 6
  • 非标准RAID
* DRFS
  • 混合RAID
* raid 01* raid 10

标准raid

A: raid0 叠加磁盘读取速度,无数据冗余,块存储

7178f37egw1eoohf4mpo4j20dc04xjs1.jpg

RAID0称为条带化(Striping)存储,将数据分段存储于各个磁盘中,读写均可以并行处理。因此其读写速率为单个磁盘的N倍(N为组成RAID0的磁盘个数),但是却没有数据冗余,单个磁盘的损坏会导致数据的不可修复。

STRIPE WIDTH

stripe width是指可被并行写入的 stripe 的个数,即等于磁盘阵列中磁盘的个数。

STRIPE SIZE也可称为block size(chunk size,stripe length,granularity),指写入每个磁 盘的数据块大小。以块分段的RAID通常可允许选择的块大小从 2KB 到 512KB不等,也有更 高的,但一定要是2的指数倍。以字节分段的(比如RAID3)一般的stripe size为1字节或者 512字节,并且用户不能调整。 stripe size对性能的影响是很难简单估量的,最好在实际应用中依自己需求多多调整并 观察其影响。通常来说,减少stripe size,文件会被分成更小的块,传输数据会更快,但 是却需要更多的磁盘来保存,增加positioning performance,反之则相反。应该说,没有 一个理论上的最优的值。很多时候,也要考虑磁盘控制器的策略,比如有的磁盘控制器会等 等到一定数据量才开始往磁盘写入。

B: raid1 给数据做镜像,提高读取速度,有数据冗余

7178f37egw1eoohf5gkuuj20dc04xjsp.jpg

镜像存储(mirroring),没有数据校验。数据被同等地写入两个或多个磁盘中,可想而知,写入速度会比较 慢,但读取速度会比较快。读取速度可以接近所有磁盘吞吐量的总和,写入速度受限于最慢 的磁盘。 RAID1也是磁盘利用率最低的一个。如果用两个不同大小的磁盘建立RAID1,可以用空间较小 的那一个,较大的磁盘多出来的部分可以作他用,不会浪费。

C: raid2 读取速度快,有数据验证盘

RAID0的改良版,加入了汉明码(Hanmming Code)错误校验。

7178f37egw1eoohf5tyknj20dc064gnr.jpg

汉明码能够检测最多两个同时发生的比特错误,并且能够更正单一比特的错误。汉明码的位 数与数据的位数有一个不等式关系,即:2^P ≥ P + D +1.

P代表汉明码的个数,D代表数据位的个数,比如4位数据需要3位汉明码,7位数据需要4位汉 明码,64位数据时就需要7位汉明码。RAID2是按1bit来分割数据写入的,而P:D就代表了数据 盘与校验盘的个数。所以如果数据位宽越大,用于校验的盘的比例就越小。由于汉明码能够纠正单一比特的错误,所以当单个磁盘损坏时,汉明码便能够纠正数据。

RAID 2 因为每次读写都需要全组磁盘联动,所以为了最大化其性能,最好保证每块磁盘主轴同步,使同一时刻每块磁盘磁头所处的扇区逻辑编号都一致,并存并取,达到最佳性能。 如果不能同步,则会产生等待,影响速度。

与RAID0相比,RAID2的传输率更好。因为RAID0一般stripe size相对于RAID2的1bit来说 实在太大,并不能保证每次都是多磁盘并行。而RAID2每次IO都能保证是多磁盘并行,为了 发挥这个优势,磁盘的寻道时间一定要减少(寻道时间比数据传输时间要大几个数量级),所 以RAID2适合于连续IO,大块IO(比如视频流服务)的情况。

D: raid3 安全性高,写入速度收校验盘的性能影响

7178f37egw1eoohf6eqr3j20dc04y75j.jpg

类似于RAID2,数据条带化(stripe)存储于不同的硬盘,数据以字节为单位,只是RAID3使用单块磁盘存储简单的奇偶校验信息,所以最终磁盘数量为 N+1 。当这N+1个硬盘中的其中一个硬盘出现故障时, 从其它N个硬盘中的数据也可以恢复原始数据,当更换一个新硬盘后,系统可以重新恢复完整 的校验容错信息。

由于在一个硬盘阵列中,多于一个硬盘同时出现故障率的几率很小,所以一般情况下,使用 RAID3,安全性是可以得到保障的。RAID 3会把数据的写入操作分散到多个磁盘上进行,不管是向哪一个数据盘写入数据, 都需要同时重写校验盘中的相关信息。因此,对于那些经常需要执行大量写入操作的应用来 说,校验盘的负载将会很大,无法满足程序的运行速度,从而导致整个RAID系统性能的下降。 鉴于这种原因,RAID 3更加适合应用于那些写入操作较少,读取操作较多的应用环境,例如 数据库和WEB服务器等。

E: raid4 类似raid3,不同在于以块存储数据,提高了IO

与RAID3类似,但RAID4是按块(扇区)存取。无须像RAID3那样,哪怕每一次小I/O操作也要涉 及全组,只需涉及组中两块硬盘(一块数据盘,一块校验盘)即可,从而提高了小量数据 I/O速度。

F: raid5 将校验数据分别存储在各个磁盘上,高磁盘利用率,高读写速度

7178f37egw1eoohf7bzynj20dc05i3zz.jpg

奇偶校验(XOR),数据以块分段条带化存储。校验信息交叉地存储在所有的数据盘上。

RAID5把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和 相对应的数据分别存储于不同的磁盘上,其中任意N-1块磁盘上都存储完整的数据,也就是 说有相当于一块磁盘容量的空间用于存储奇偶校验信息。因此当RAID5的一个磁盘发生损坏 后,不会影响数据的完整性,从而保证了数据安全。当损坏的磁盘被替换后,RAID还会自动 利用剩下奇偶校验信息去重建此磁盘上的数据,来保持RAID5的高可靠性。

RAID 5可以理解为是RAID 0和RAID 1的折衷方案。RAID 5可以为系统提供数据安全保障,但 保障程度要比镜像低而磁盘空间利用率要比镜像高。RAID 5具有和RAID 0相近似的数据读取 速度,只是因为多了一个奇偶校验信息,写入数据的速度相对单独写入一块硬盘的速度略慢。

G: raid6 类似raid5,额外增加了第二个磁盘大小的数据校验,写入差

类似RAID5,但是增加了第二个独立的奇偶校验信息块,两个独立的奇偶系统使用不同的算法, 数据的可靠性非常高,即使两块磁盘同时失效也不会影响数据的使用。但RAID 6需要分配给 奇偶校验信息更大的磁盘空间,相对于RAID 5有更大的“写损失”,因此“写性能”非常差。

7178f37egw1eoohf7nf8gj20dc05i0ty.jpg

由图所知,每个硬盘上除了都有同级数据XOR校验区外,还有一个针对每个数据 块的XOR校验区。当然,当前盘数据块的校验数据不可能存在当前盘而是交错存储的。从数 学角度来说,RAID 5使用一个方程式解出一个未知变量,而RAID 6则能通过两个独立的线性 方程构成方程组,从而恢复两个未知数据。

伴随着硬盘容量的增长,RAID6已经变得越来越重要。TB级别的硬盘上更容易造成数据丢失, 数据重建过程(比如RAID5,只允许一块硬盘损坏)也越来越长,甚至到数周,这是完全不可接受的。而RAID6允许两 块硬盘同时发生故障,所以渐渐受到人们的青睐。

伴随CD,DVD和蓝光光盘的问世,存储介质出现了擦除码技术,即使媒介表面出现划痕,仍然可以播放,大多数常见的擦除码算法已经演变为上世纪60年代麻省理工学院林肯实验室开 发的Reed-Solomon码。实际情况中,多数RAID6实现都采用了标准的RAID5教校验比特和Reed-Solomon码 。而纯擦除码算法的使用使得RAID 6阵列可以失效两块以上的硬盘,保护力度更强,有些实现方法提供了多种级别的保护,甚至允许用户(或存储管理员)指定保护级别。

非标准RAID

DRFS

DRFS,即DistributedRaidFileSystem,是一种尝试将RAID与Hadoop的DFS结合起来的技术。 通常的HDFS在实践中需要将replication factor设为3以保证数据完整性,而如果利用RAID的stripe和partity(奇偶校验)技术,将数据分为多个块,并且存储各个块的校验信 息(XOR或擦除码)。有了这些措施,块的副本数就可以降低并且保证同样的数据可靠性,就能节省相当一部 分的存储空间。

DRFS包含以下几个组件:

DRFS client: 提供应用程序访问DRFS的接口,在发现读取到的文件有损坏时修复,整个操作对应用程序透明

RaidNode: 创建,维护检验文件的daemon

BlockFixer: 周期性地检查文件,重新计算校验和,修复文件.

RaidShell: 类似于hadoop shell.

ErasureCode: 即DRFS所使用的生成校验码的算法,可为XOR或者Reed-Solomon算法。 XOR仅能创建一个校验字节,而Reed-Solomon则可以创建无数位(位数越多,能恢复的数 据也越多),如果使用Reed-Solomon,replication甚至可以降为1,缺点是降低了数据读 写的并行程度(只能从单机读写)。

混合raid

raid01 是RAID0和RAID1的结合.先做条带(0),再做镜像(1)

7178f37egw1eoohf594gvj207806bq3u.jpg

raid10 先做镜像(1),再做条带(0)

7178f37egw1eoohf822ggj206y062dgr.jpg

实现方法在part2中!

《疑犯追踪》十大经典台词

<code>POI(疑犯追踪)是我从第一季就开始追的剧,中间从来没有停顿过.这是我见过的刻画人物最棒的一部剧没有之一,句句台词都能打动人心.这些台词是第三季之前的.现在该剧已经全剧终了,希望能有好剧继续出吧!</code>

喜欢《疑犯追踪》的理由有无数个,其中之一,是其台词极妙。阿好之前誉之为:惊如旱雷,婉如西厢;曲藻警人,满口余香……倒也不算溢美之词了。

一、里叔:羁绊

When you find that one person who connects you to the world,

you become someone different,

someone better.

When that person is taken from you…

what do you become then?

——S01E01

当你找到你在这个世上的羁绊

你就变了

变得更好

而当这个人从你身边被夺走

那你又会变得怎样

——里瑟

赏析:全剧开篇第一段话,里叔柔情入骨的嗓音,配上全剧最明快最缠绵的场景,娓娓道来;又在最后一句戛然而止,风格骤变。无数人歌颂自由,甚至有“若为自由故,两者皆可抛”之说;却忽视了与自由相对的一个概念:羁绊!——毫无羁绊的自由,根本毫无意义。往小里说如断了线的风筝,往大里说如羽化成仙不再食人间烟火。幸福,应该是两个自由的人,心甘情愿在彼此之间连成一点一点的羁绊。如里叔和宅总,两个孤寂的灵魂,慢慢成为彼此的羁绊,是最美的童话。

二、洁西卡:更容易

You thought you’d get killed over there,

and that that would hurt me.

But I think the truth is that

It was easier for you to be alone.

You wanna be brave?

Take a risk.

Tell me to wait for you and…

Say those words and I will.

——S01E03

你觉得你会死在那里

觉得那样会伤到我的心

但是我觉得事实是

一个人对你来说更容易

你想勇敢一次吗

冒一次险

开口让我等你

只要你说 我会的

——洁西卡

赏析:一个人很容易,会害怕承担起另一个人;两个人很容易,会害怕独自承担。选择一个人,还是两个人,最终不过是取决于习惯,或者是厌倦了之前的习惯。改变,真的需要很大的勇气。

三、豆豆:人之将死

You ever been shot?

Craziest things go through your mind–

glad I put on clean underwear,

hid that stash of porn.

Sorry that your son had to find out

that his old man was a dirty cop.

Then you realize you’re gonna die.

You try to go down doing something good.

——S01E15

你中过枪吗

瞬间脑子里闪过各种疯狂的念头

幸好我穿了干净的内裤

黄片也都藏好了

不幸的是儿子会得知

他老子是个坏警察

然后你意识到你会死

你想做点好事

——弗斯科

赏析:我几乎不记得从什么时候开始,我认为是个无聊酱油的黑警察,变成了我最喜欢的人物之一;不过这段台词,肯定在其中起了重要作用。我印象中,这是剧中的豆豆,第一次慨然赴死(悲剧的是并非最后一次);而也是在这次之后,里叔才算真的信了豆豆。(所以我一直坚信里叔早就到了,就是躲后边不出来,非要考验豆豆呢~~~)在POI的设定中,除了日常号码,豆豆是唯一一个正常人类了。会软弱会糊涂会贪财会怕死,不高不帅不天才不神经……而这样一个凡人,最终做出了最伟大的选择,不惜牺牲自己的生命!我想很多英雄都曾是凡人,所以每一个凡人都可以成为英雄——只要他意识到:我会死!我想做点好事!

四、奈森:“无关紧要”

Everyone is relevant to someone.

You would know that if you had anyone in your life you cared about.

What about her?

What about the next person whose number comes up?

Are you gonna look that person in the eye

and tell them that they were irrelevant?

——S01E22 & S02E21

每个人都会与某些人相关

如果你生命中有真心在乎的人,你就会明白

她呢?下一个跳出来的号码呢?

你能看着他们的眼睛

告诉他们说:他们无关紧要吗?

——奈森

赏析:奈森,全剧的道德标杆,POI存在的原因,最完美的男人,永远活在闪回中的圣人。每次他的出现,都让我感觉有一道圣光,有着真正的悲悯情怀。人世间的绝大部分悲剧,在于没有这种同理之心,在于不懂得“每个人都会与某些人相关”,每个人都是某些人的心肝宝贝……某一年我的生日,MBA的课堂上,教授引出的案例是老人倒地扶不扶,同学引经据典的评论该不该扶;我激动了,站起来,对着全班说:这不是应该讨论的问题!我求你们,我拜托你们,一定要扶!因为我有妈妈,我有外婆,我有姑姑,我有很多深爱的人在老去!有一天她们可能走在路上,不小心倒地,求求你们,扶起她们!我知道扶了有可能会惹上麻烦;但我也知道,倒在地上无人理会的,可能是我的至爱、必定会是某些人的至爱……

五、宅总:解π

π.

The ratio of the circumference of a circle to its diameter.

And this is just the beginning.

It keeps on going. Forever. Without ever repeating.

Which means that contained within this string of decimals

is every single other number.

Your birth date,

combination to your locker,

your social security number.

It’s all in there somewhere.

And if you convert these decimals into letters,

you would have every word that ever existed

in every possible combination.

The first syllable you spoke as a baby,

the name of your latest crush,

your entire life story from beginning to end.

Everything we ever say or do…

all of the world’s infinite possibilities rest

within this one simple circle.

Now what you do with that information…

what it’s good for…

that would be up to you.

——S02E11

π

圆周长与其直径之比

这是开始

后面一直有 无穷无尽 永不重复

就是说在这串数字中

包含每种可能的组合

你的生日

储物柜密码

你的社保号码

都在其中某处

如果把这些数字转换为字母

就能得到所有的单词无数种组合

你婴儿时发出的第一个音节

你心上人的名字

你一辈子从始至终的故事

我们做过或说过的每件事

宇宙中所有无限的可能

都在这个简单的圆中

用这些信息做什么

它有什么用

取决于你们

——芬奇

赏析:这段在微博上曾风靡一时,不再多说。无限,便孕育着可能性;只要继续下去,便有无数可能……所以,如果有一天,你觉得坚持不下去了,想想下一个瞬间的无数可能性,也许便有一个,是你梦寐以求的。

六、皮尔斯:每个人的向往

But if you accept change is inevitable,

it doesn’t crush you when it does.

Every technology ages, John.

the only thing that never gets old

is connecting with people.

That’s what everyone wants,

a real connection.

——S02E14

只要能接受改变的必然

到时就不会被打垮了

每种技术都会没落 约翰

唯一不会过时的

是人与人之间的羁绊

那是每个人的向往

真正的羁绊

——皮尔斯

赏析:这段话之前,我看皮尔斯不过是一个熊孩子(身价亿万的熊孩子);这段话之后,皮小斯成了我心目中最喜欢的POI之一。他是我最喜欢的那类人:看透世情,却仍能坚持理想;有种知其不可而为之的洒脱与从容。这段台词,让思想瞬间跳跃到全剧开场的那段,里叔对“羁绊”的诉说。那一刻,里叔和小皮,是知己。——科技越发达,人的本能需求越显原始。

七、老师:文明的原则

Civilization rests on the principle

that we treat our criminals

better than they treated their victims,

that we not stoop to their level.

But you and I are outliers.

We’re not really a part of civilization.

We’re something…older.

Which means, of course,

that we can do the things that civilized people can’t.

——S03E10

文明的原则

是我们对待罪犯

要仁慈过他们对待受害者

我们不能降格到罪犯的水平

但你我是异类

我们并不是文明的一部分

我们更加 原始

当然也就是说

我们可以做些文明人不能做的事

——以利亚

赏析:当老师的脸在半明半暗中吐出这段话,声音清辙平和,眼神中隐藏怀念,娓娓道来,而后又隐没于黑暗之中……屏幕前,观众憋了整整一集的气,终于吐了出来!——没错,复仇是人类本能的需求。再高的文明,也抵不消人类最原始的复仇冲动。所以,我们爱老师!爱那个“可以做些文明人不能做的事”的老师!

八、孩子

– Your child is a dancing star.

– It’s not my child. It’s a machine.

– Does it make you laugh? Does it make you weep?

– Yes.

– What’s more human?

——S03E12

-你的孩子是巨星。

-它不是我的孩子,它是台机器。

-它让你笑过吗?让你哭泣过吗?

-是的。

-还要多像人呢?

——亚瑟&芬奇

赏析:亚瑟这老头儿虽然只出现了两集,但却塑造得让人如此难忘,第三季最美的台词,几乎都是由他口出说出。那段对小撒出生的描述,美伦美奂。那句“忘记如同第一次失去,太伤太痛”,也有着让人感同身受的痛楚。而这段话,我刻意选出,是因为他解答了宅总长久以来的一个不确定:机器到底是什么?根妹一直当TM是神;里叔一直当TM是人;而宅总则一直在挣扎,并曾亲口告诉根妹,是界于两者之间,充满矛盾。而亚瑟这个可爱的老头子,最用一个最简单的方法解决了这个问题:“它让你笑过吗?让你哭泣过吗?”……那一瞬间我就想起了不朽的《小王子》:因为她驯养了我,因为她是我的玫瑰。因为它曾经第一次叫admin时我的笑容,因为跟它捉迷藏被它抓到时我的骄傲,因为它试图救我时我的严厉,因为它在我面前删掉奈森号码时我的万念俱灰……所以,她是我的孩子……

九、宅总:自由意志

I would always rather that

a human element remain in determining

something so critical as someone’s fate.

We have free wil

And with that comes great responsibility

and sometimes great loss.

——S03E13

我一直相信

要人类才能决定

他人性命攸关的事

我们有自由意志

相伴的是重大的责任

有时是重大的损失

——芬奇

赏析:这段初看来,像是蜘蛛侠的“责任越大,能力越大”;然而细品之后,远不止此!POI是一个界于科幻与非科幻之间的剧;开播时还顶着科幻的名头,播了两年后被棱镜给坑爹成了非科幻剧……于是第三季大大加了机器宝宝的戏份,勉强抱住科幻大腿了。但随着科技的发展,AI人工智能的出现,几乎成了一种必然。届时,人与人工智能相比,到底差别何在?——芬奇在此指出,人要做决定!人必须自己做出决定,而无法依靠更高的力量(比如上帝、机器宝宝、小撒等)。与此段话呼应最好的,是季末对国会议员的杀与不杀。机器是上帝,无所不知,无所不能。但一切真相看透之后,做决定的,还是人。那一段宅总和里叔的对话极妙,其实可以同归于此段。【与此形成对应的,是根妹和老爷爷对更高力量的盲从;他们不相信人类,而希望由机器主导一切……而里叔和宅总的观点是完全一致的!所以说嘛,三观不同怎么做基友!!灵魂伴侣有木有!!】

十、根妹:希望

You once told John

the whole point of Pandora’s box

is that once you’ve opened it, you can’t close it again.

She wanted me to remind you of how the story ends.

When everything is over, and the worst has happened,

there’s still one thing left in Pandora’s box…

hope.

——S03E23

你跟约翰说过

潘多拉之盒的可怕之处

在于打开了就无法再关上

她要我提醒你故事的结局

当所有全部结束 悲剧已然发生

潘多拉之盒中还留有最后一样

希望

——根

赏析:这还赏析个屁啊!!!这段话的力量强大到,我默默确认了好几次:这不是大结局吧?下一季真的续订了吧?——尼玛早就续订你特么弄这么个季终搞得跟大结局似的干嘛!!!配上图书馆被抄、裂玻璃被砸、卡姐照片落在地上……一堆神补刀,刀刀削人心!!!尼玛你个季末就这样,回头剧终你让人活不!让人活不!让人活不啊你!!!

$_SERVER['SCRIPT_NAME']、$_SERVER['SCRIPT_FILENAME']及__FILE__ 的不同

在PHP中,有时需要知道脚本所处的位置,这时会用到$_SERVER[‘SCRIPT_NAME’]、$_SERVER[‘SCRIPT_FILENAME’]及FILE。那么他们之间有什么不同呢?

1、$_SERVER[‘SCRIPT_NAME’]

先说 $_SERVER[‘SCRIPT_NAME’] ,它是包含当前运行脚本的路径,这是从客户端来看的路径。假如你访问的URL地址为 http://www.yourdomain.com/test/test.php,那么在脚本中 $_SERVER[‘SCRIPT_NAME’] 将会是 /test/test.php 。如果你想引用脚本自身,例如把一个表单提交给自己处理时,这可以用这个。

那 么在b.php中,$_SERVER[‘SCRIPT_FILENAME’]可能会是 /home/a88888888/public_html /test/a.php。虽然$_SERVER[‘SCRIPT_FILENAME’]是在b.php内,但b.php是在a.php内运行的,因此得到 的是a.php的路径。而在b.php中,FILE可能会是 /home/a88888888/public_html/test/b.php, 这是FILE所处的真正位置。

另外还有一个$_SERVER[‘PHP_SELF’],看上去似乎和$_SERVER[‘SCRIPT_NAME’]一样,不过如果你访问的URL地址为 http://www.yourdomain.com/test/test.php/foo.bar,那么 $_SERVER[‘PHP_SELF’] 将会是 /test/test.php/foo.bar。服务器获取当前文件名时会用到!

linux下添加SWAP交换空间

操作步骤

1,创建一个需要的swap大小文件(创建了一个swap文件在/mnt目录下):

<code>sudo dd if=/dev/zero of=/mnt/1024Mb.swap bs=1M count=1024</code>

其中:“count=1024”指要创建的文件大小,bs = block size 区块大小;

2,格式化该文件,将其转换为swap:

<code>sudo mkswap /mnt/1024Mb.swap</code>

3,将该swap添加到系统中:

<code>sudo swapon /mnt/1024Mb.swap</code>

4,添加完后,可以查看:

<code>cat /proc/meminfo </code>

5,刚刚的操作做完后需要为其做永久性的变更,步骤如下:

<code>(sudo)vi /etc/fstab//在文件末尾加上如下一行:/mnt/1024Mb.swap  none  swap  sw  0 0</code>

6,保存修改,并重启。

<code>shutdown -r now</code>

腾讯云服务器CentOS6.5无法更新源解决办法,提示:Couldn't resolve host 'mirrors.tencentyun.com

众所周知,腾讯云服务器内网yum源的域名 mirrors.tencentyun.com 需要有内网的DNS才能访问,但是实际情况下,我们会根据需要修改DNS,为了使用腾讯云内网快速稳定的内网源,我们需要把DNS恢复为内网DNS,下面为各地区服务器DNS地址。

北京服务器:

nameserver 10.53.216.182

nameserver 10.53.216.198

广州服务器:

nameserver 10.182.24.12

nameserver 10.182.20.26

上海服务器:

nameserver 10.237.148.54

nameserver 10.237.148.60

香港服务器:

nameserver 10.145.0.57

nameserver 10.145.0.58

北美服务器:

nameserver 10.116.19.185

nameserver 10.116.19.188

修改DNS方法 CentOS6.5:

通过修改/etc/resolv.conf文件,往里边添加内容

nameserver XXX

nameserver XXX

nameserver 8.8.8.8

nameserver 8.8.4.4