非淡泊无以明志,非宁静无以致远

好电影是值得多看几遍的。

说实话,这几个月我都没有进电影院,更没有看过最近有争论所谓的这些国产烂片或者说是美国大片。对这部电影,虽然没有对比,但不能阻碍我认为它是一部好片。

虽然两次看的是同一部电影,但我每次的关注点一定是完全不同的。第一遍是随着影片的进程,不去思考过多,而是把自己融入电影之中,心情和大脑都去主动跟随剧情的发展,完全按照导演和编剧的思路欣赏。如果这是一部好片,那么心情一定会起起伏伏,倘若恰巧情节还比较紧凑,那么一场电影看下来必定是淋漓大汗。第二遍呢,我会选择从片中走出来,在看的时候去思考人物的性格、导演对情节的安排以及场内观众们的表现,看完后必定会有许多新的发现,有时候或许还能看出哪里是被引入的时候经过剪裁的,人物应该在哪里可以更活。

首刷的时候,我大概和其他观众一样,随着两个小姑娘的视角,内心跟随她们一起成长,一起对父亲肃然起敬,甚至国歌响的那一刹那,我也跟随她们一起感动。

二刷的时候,我注意到了几个有趣的细节。

More Link

这个周就要立夏了,在这个夏天我要战胜它,也战胜自己。

周末和老弟遛弯聊天,他跟我谈及一个严肃而单纯的问题:既然毒品能给人带来快感,那为什么不人人都去吸毒呢?

我假装成一副胸有成竹的模样,“好问题!不过先别讲这个,我要和你谈谈音乐。我还记得上次和你去国家大剧院听新年音乐会时候你的表现。”

为什么谈音乐呢?我无非是希望引导他去认识到音乐之美,而审美判断是“无利害而生愉悦”,从而认识到有比毒品更自由的获得快瑟之感的方式——艺术或者说是道德。

我几乎成功了。

“那么这种愉悦和那种愉悦有何区别?”这个话题绕不开道德。

“而且你刚刚在讲,美的理想和道德的理念是同一的。那么假设一个人没有(像我们世人一样的)道德,那么他是不是也无法感受到艺术之美,那么他只能从毒品之类的东西中获得物质的快感?而凭什么人人都有这样的道德呢?”

我再令他去想为什么国家和法律如此“暴力”:道德次序的维持需要暴力,暴力保证了次序,也保证了减少暴力。所以毒品和问题需要暴力解决。

“但是,道德又有什么意义呢?你用暴力去维系道德又有什么意义呢?”

“因为人需要自由。人向往自由。音乐可以让人获得自由,道德可以,而毒品不行!”

但自由又有什么意义呢?什么才是自由呢?

我有些歇斯底里,不过在五月份,话题也总是绕不开它。

“你说向往自由,但是佛陀获得了自由,所以他领会到了空。但是空,不会太无聊点了么?”

“所以你想要的意义不就是来自于欲望,这能让你不那么无聊。”

“ 但是欲望和自由是不是就矛盾了?”

所以人生大概就是痛苦的吧。

INT

In-band Network Telemetry

Specification

http://p4.org/wp-content/uploads/fixed/INT/INT-current-spec.pdf

介绍

INT 是一种用来在数据平面上采集和报告网络状态的框架,它不需要控制平面的任何干预或支持。在 INT 的模型里,设备发出的数据包会包含“遥测”的报头字段。这些字段会告诉兼容 INT 的设备在需要转发包的时候需要收集哪些信息,并将其写入包中。
INT 流量源(比如应用程序,端主机网络栈,NIC,虚拟管理程序或者发送 ToR)等可以将指令嵌入在正常的数据包或者特殊的探测包中。类似地,INT 流量接收器可以取到(并有选择地报告)这些指令所收集到的结果。INT 流量收集器可以在转发的同时精确地利用从数据包里观察到的信息来监视数据平面的状态。

举例说明可以收集并处理的信息

  • OAM:可以只简单地将收集到的网络状态编码(可以使用元数据,或者进行简单的清洗或压缩),并且将其发送给额外的控制器。
  • 实时控制或者反馈环路:INT 流量接收器可以编码数据平面的信息并将控制信息反馈给流量源,流量源可以利用这些数据调整流量工程或者数据包的转发(比如进行显式的拥塞控制)。
  • 网络事件探测:如果收集到的路径信息表明需要立即注意或解决的状况(比如严重的拥塞或者数据平面被破坏,INT 流量接收器可以立刻报告一个网络事件,在集中式或者分布式的网络中形成一个控制回路)。
More Link

背景

现在 SDN 已经有了在数据平面的编程能力,这使得网络设备(包括硬件)可以被重新编程以解析自己定制的协议和执行定制的功能。

但是,数据平面的编程能力还没有发挥最大的潜能,它依旧不完善,而且在不断增长的软硬件中提供可编程能力是有很大形成碎片的风险。如果使用虚拟化方案可以解决以上两个问题。

More Link

BPF、eBPF 和 IO Visor

BPF(BerkeleyPacketFilter,伯克利数据包过滤器)允许在内核态下丢弃那些不需要的数据包,从而避免所有包都从内核态拷贝到用户态的网络监控工具而提升性能 (也可采用 LIBPCAP 函数库实现过滤与捕捉)。

Linux 3.15 开始引入 eBPF。其扩充了 BPF 的功能,丰富了指令集。到了 eBPF 后,虚拟机的功能并都更加强大,使得我们对数据包的操作都可以在内核灵活地实现,完全不需要加载重新编译,而且可以在线替换等,灵活性大大增加。数据平面也就变得更加灵活(可以随时改变对每个数据包的处理行为)。且在内核中完成该功能使得性能大大提高(避免从内核到用户态的拷贝)。

IO Visor 的基本思路是使用一种灵活的方式在内核实现对网络数据包的处理,而不需要像传统的方法那样通过加载内核模块的方式来实现、或者通过繁重的系统调用在用户态计算。从而实现一个灵活的数据平面,加速 NFV。

具体说明可以参考:

所以,如果可以将 P4 代码转为 eBPF 的代码,那么它将可以直接在 Linux 中以原生的方式运行。可以认为 eBPF 能够作为类似 Behavior Model 的 P4 后端。

More Link

为什么要跨越

当需要允许其他人使用自己网站的一些 API 时,跨域就是一个必须要解决的问题了。

跨域解决方案

JsonP

因为 HTML 中的标签的 Src 属性可以跨域,所以该方案通过动态引入<script> 标签并添加 Src 属性完成跨域请求

但是在这种情况下,服务器不能仅仅返回一段 JSON,而是要返回一段完整的 JavaScript 代码(比如一个函数),这样调用它的代码才能成功调用到返回的数据。并且这种情况下因为是插入了一个标签,所以在调用 API 的时候只能以 GET 方式调用(这是我的理解,或许还有其他方法可以调用 POST?)。

More Link

相遇

最近被安利了多次“简史”类的书。很可能是因为厚本的史书已经成为了人文学院们书架上的“过时货”,而简史正成为一种更好的“快速消费”。毕竟入乡就需要随俗,那最近索性就来读一读简史类的书籍。而所读的第一本简史(如果不算《时间简史》的话)就选最近被盛誉无数的《人类简史》吧。

诶,我们是不是在哪见过

开始概览的时候,书中的观点并没有给我带来多少惊喜或者让我难以接受的地方,多数观点我都曾见识过。

比如——被进化论支配的人类其实就是一个和猩猩差不多的物种,甚至和我们最恨的老鼠都有八成相似,而且我们在进化的齿轮中也似乎只有因果而没有目的!这些观点在学习中学生物和初读《自私的基因》的时候大都已经遇见,由此我也相信作者本人是一个博览群书并博得众长的意见传播者。又如,文化寄生的说法,我也在之前的《失控》中有遇见过。而之前在哲学通识课中,了解到了语言之于社会的重要性,而“人们所谓的意义都只是存在于自己的故事中”可能是抄写某个名人名言的时候遇到的“意义之网”之类的只言片语。对于 150 人理论呢,貌似是复杂网络的一些书里有提到过。

More Link

编译安装 freeradius-server

freeRADIUS WIKI

先更新软件

在 git 仓库里 clone freeradius-server

检查版本,如果需要的话要用 git checkout 切换版本

查看依赖并安装

根据说明,安装 libtalloc 和 kqueue 依赖

查看安装说明

More Link

开头先讲故事

从开始正式接触 PHP 到现在已经走过了接近两年的时间了。

记得最开始接触 PHP 的时候是大一暑假为期两周的北邮人论坛技术组的培训上。学长学姐们花了五个晚上的时间给我们讲了 HTML、CSS、JavaScript、PHP、MySQL 和 Linux 以及 VIM 等等的基础知识。记得当时 H 仅仅两个晚上就用 PHP 手撸出来了一套 Blog。当时觉得这简直是不可能的事情。五天很快过去,我却连 VIM 怎么进入输入模式都没看懂,更别说去写各种前后端代码了。我还记得当时的绝望。

之后的暑假就是在各种 PHP 和前端视频教程中度过。记得当时是看的我的好友 志鹏同学 给我推荐的 李炎恢 的 PHP 教学视频。我看视频的方式就是两倍速度快进,视频看完以后困了就睡觉(只是看视频而不去手写代码),睡醒了就继续起来看,所以当时看学习视频的时候连白天黑夜都已经分不清楚了。看完视频也总是有一些进步,已经可以用自己的(或者是模糊印象中李炎恢的)套路写出一些简单的网站了。但是网站的前端还是很丑陋(因为不怎么会 JS,也不会套模版),而且很多东西也是不成体系。

More Link

因为要安装一些老版本软件,所以我在阿里云刚装好的 Ubuntu16.04 上面添加了一些 PPA 源,但是发现在

时,所有的 PPA 源使用都会出现类似

这样的 403 错误提示,而且 IP 还很奇怪(查询以后发现是阿里云的 IP,但并不是本机)。

经过排查以后发现原来是阿里云在安装的时候默认使用了 apt 代理导致被 PPA 源 403。

解决方案:

删除其中的

一行即可。