0%

最近得知《青年马克思》上映,觉得有必要一看。于是上网搜了一下院线的排片,不出所料,排片量几乎是最近热映的《复联 3》的五分之一,甚至周末都少有商业影院有排期。于是只能等到周一约上阿文,去附近的影院一睹青年时期马克思的“芳容”。

刚入座,还在和朋友聊最近的中兴联想发生的一系列事件,电影就毫无防备地开始了。此时一个大概容纳五六十人的小影厅里只稀疏地坐着六七个人,多数还是学生(祖国未来还是很有希望的嘛)。

电影里的场景暂且不表,先来说说我对电影整体的感受吧。 首先,作为一部传记电影,而且讲述的是一位思想家的成长历程,如果没有一些对马克思生平以及思想的了解,可能就会在电影院呼呼大睡了。这可能会是观影的一个门槛。

其次,电影内容很丰富。短短不到两个小时,电影讲述了马克思从莱茵报编辑,到论战蒲鲁东,最后是完成《共产党宣言》这三个时期,同时又穿插了马克思与燕妮之间深沉的爱,马克思同恩格斯之间深切的友谊以及恩格斯同玛丽之间跨越阶级的感情。

阅读全文 »

在前端调试的时候,跨域一直都是一个比较麻烦的问题,这个在之前的文章关于跨域问题的一个解决方法中其实已经讨论了一些可以使用的方法。

如果要使用 JSONP,第一是需要修改的地方比较多,而且也不太符合前端发展的大趋势,如果使用 CORS 的话并没有 application/json 类型。而且更重要的是这只是在前端调试时候的需求,并不是在上线以后的需求,所以对后端有太多的入侵也不好。

所以就有一个念想突然在大脑中闪过——加入有一个代理不就可以解决这个问题了?但是又想了一下写起来还挺麻烦,于是就被搁置了。 直到前几天 Stone 提到其实 webpack-dev-server 早就想到并且已经帮我们实现了。

于是,我就在一个 Vue 项目中进行测试,发现真的很赞,既可以本地 Server 热加载,还可以直接跨域调用远程 API,完美解决了之前遇到的所有问题。

接下来我简要介绍一下步骤(以一个 Vue 脚手架建立的 webpack 项目为例):首先检查build/webpack.dev.conf.js中是否有

1
proxy: config.dev.proxyTable,
阅读全文 »

偶然读到王德峰老师的一本已经绝版的小册子,叫《寻觅意义》。心想这个题目起的甚是有趣——其一我在想他会怎么写,结果读下去发现是他在各个大学讲座的讲稿的一个小集;其二说来也很巧,我最近也一直在反思意义究竟是什么,我做什么才有意义,我追求的意义是什么,有没有属于这个时代的意义,而真正的大义又是何物呢?

关于时代的意义,和妈妈聊天的时候,她关于她的意义是什么给了我如下的解答:“除了想让你过的开心快乐,剩下的意义就是多赚钱了,钱赚得多,我就感觉很踏实。”我想,前半句是家庭,是我和母亲很真挚的亲情;后半句是时代,是我和母亲以及所有存活于现代社会的人共同处于的环境。

我们所处的是这样一个被资本与技术所主导的时代。所以我理解大家的理想多是要去赚钱。不论男女老少,不论贫穷富贵,每个人的欲望也总和钱脱不开关系。而钱这个东西,究其根本,不过是一个几乎是全人类共同参与的一个游戏,同我们的能生存与否没有什么直接的依赖关系,只是在这个时代里,我们需要用钱去获得各种生存资源和对他人支配的权力。

阅读全文 »

深度写作

最近看见沈向洋发表了一篇文章(地址:https://zhuanlan.zhihu.com/p/33771188),大意是说在这个 AI 的时代,虽然每天我们产生和接受的的零碎的信息量都非常巨大,但真正有意义的思考还是需要通过长篇写作来完成。写作可以帮我们理清思绪,可以清晰地表达观点和逻辑。

这也是我最近所担心的事情——我也已经很久没有进行过深度的写作了。

上次系统地写作还是中外文学名著鉴赏的期末作业,文章虽然可以大致表达我想说的表面意思,但是短短八百字的表达却支离破碎,根本无法把我更深成次的想法完整表述出来。在刚写完的时候没感觉到还沾沾自喜,觉得一下午写出来的文章应该还能看,之后读起来却就像是读一篇小学生记的流水账一般,像是喝了一大杯白开水还泛着水垢一般,毫无深度,甚至还难以读完。

感触更深的一次是上个月我想抽空写一下去年的年终总结,但刚提笔就不知道该从何说起,所以又去翻前几年的文章,发现当时的文风根本现在几乎无法模仿。我十分懊恼,故总结也一直搁置下去。

直到今天,我才有勇气重新打开编辑器开始写这篇文章。今天没有给文章定下主题,想到哪里就写哪里,但愿思路会更顺一些吧。

阅读全文 »

Windows 桌面程序开发一些方案

开发 Windows GUI 程序的方案有很多,接触过比较流行的大概有三种,一种是 C++和 Qt,一种是 HTML5+浏览器内核,最后一种是 C#+WPF。另外古老的 WinForms 和更古老的 MFC 也不多说了。

Qt 的跨平台特性得以开发的项目可以跨平台,而且各种 C++的组件非常丰富。但是但是 Qt 本身库的并不小,我也不是很喜欢 QML 那种 JSON 的书写方式,而且 Qt Creator 用起来也不太顺手,所以一般没怎么用过这种开发模式进行桌面应用的开发。

H5 和浏览器内核是一个不错的方式,可以轻松跨平台,而且 H5+JS 可以有很快的开发速度。主流的方案有 Electron、nwjs、cef 和 wke(其中弹幕派所用的方案就是 wke),但是 Electron 同样体积巨大,不利于应用的分发。wke 虽小但也很久没有更新,内核很老,bug 比较多。最近志鹏同学正在研究之前 wke 开发者新开发的 miniblink 内核,相信这个方案会比较优秀。

WPF 必须依赖于.NetFramework,所以无法跨平台,而且 XP 也不自带.Net,需要用户安装。另外,XAML 虽然写起来麻烦一些,但是开发漂亮的 GUI 还是比较方便。而最新的 UWP 技术也利用了 WPF 的 XAML 进行 UI 的设计,转型起来并不困难。

阅读全文 »

时日已至伏末,先别问秋老虎可不可怕,仅是鼻炎已经足以让我怀疑有一个连的人在想我。

话归正题,兰州在我心中的形象由两部分,一半像兰州烟上(我最喜欢吉祥兰州硬盒上的那个红色镶金的图案)那样:悠悠兰州,九天揽秀,另一半是爽朗直接,像兰州公交车司机一样,可以跳下车跟出租车对骂。总体来讲,用人来形容就是一个很飘渺但又古朴纯净的三四十岁胡子邋遢瘦削的硬汉。总之,矛盾满满。不过这一点不想展开去说,说说最近在兰州的见闻吧。

按照惯例,每次回家都要去张掖路逛逛,每次去逛也都盼着能有点什么不一样,但又担心不一样的地方多了我会忘记之前是什么样子。不过到目前为止,我的担心都是多余的。对我来讲,上半年改变最大的大概就是共享单车了。张掖路也是如此,但不是漫山遍野的自行车。为了不让单车进入,步行街的路障间隙更小了——将将够钻进去一条腿——进去以后擦一把汗,开始感慨前些日子的减肥真他丫有效,不然老夫就要卡死在这里了。

阅读全文 »

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

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

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

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

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

第一个是父亲不顾村里人的笑话,不顾官员的嘲讽,更不顾录像厅老板的眼神,每一次出场的眼神都温和却坚定;但却因自己特殊照顾女儿却导致女儿差点被体育学校开出流泪,这是多坚强的泪水!

第二个是父亲不论是在女儿消极怠练还是她们跑去参加别人的婚礼惹他生气甚至是女儿在教练那边学到了新的技巧而趾高气昂地嫌弃他的办法老旧的时候,他都没有打过一次女儿(每次都是她们的哥哥背锅)。父亲虽然严厉,但绝不毒辣,他对女儿的爱不亚于天下任何的父亲。

阅读全文 »

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

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

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

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

我几乎成功了。

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

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

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

阅读全文 »

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 流量接收器可以立刻报告一个网络事件,在集中式或者分布式的网络中形成一个控制回路)。
阅读全文 »

背景

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

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

OpenFlow已经为网络的控制平面提供了一个标准的可编程能力,并且在网络管理者寻找更加的自由和灵活的方案候起了重要的作用。

但是,它并没有使的数据平面有良好的可编程能力,数据平面依旧只能使用在OpenFlow的协议规范中被定义好的协议。如果OpenFlow需要支持较新的方案,那么OpenFlow的规范就要一直被扩展。

一个真正的数据平面按应该不被这些束缚,它应该允许管理员重新配置数据平面以完全适应自己定制的协议中的语法和语义。最近在可重配置的匹配表(reconfigurable match table,RMT)中的工作在体系结构上已经证明了可编程数据平面,即使在ASIC的硬件中也是可行的。

这个结果使得像P4这样的领域专用语言使得这些可编程数据平面可简单地以一个统一的方式在多种交换机上部署(比如基于RMT的ASIC、FPGA为基础的交换机、像PISCES一样的软件交换机、behavior model和在边缘服务器上的网络数据平面)。

简介

一般来讲,每一个P4兼容设备提供的可编程数据平面表示一种网络环境。

每一个P4的程序定义了:

  • 在流量被解析时的协议头的集合和与之相符合状态机
  • 在流量被处理时的匹配-执行表

为了支持不同的客户的类型和为复杂的包处理而灵活地组成虚拟方法,在多数情况下,操作者希望给定的网络设备可以有不止一个环境,即使只有一个物理的数据平面。

阅读全文 »