Jon

Jon

关于格调

2018年4月,“内涵段子” App 因为没有格调,被广电强制下架。想起了王小波的一篇旧文。 最近我出版了一本小说《黄金时代》,有人说它格调不高,引起了我对格调问题的兴趣。各种作品、各种人,尤其是各种事件,既然有高有低,就有了尺度问题。众所周知,一般人都希望自己格调高,但总免不了要干些格调低的事。这就使得格调问题带有了一定的复杂性。 当年有人问孟子,既然男女授受不亲,嫂子掉到水里,要不要伸手去拉。这涉及了一个带根本性的问题,假如“礼”是那么重要,人命就不要了吗?孟子的回答是:用手去拉嫂子是非礼,不去救嫂子则“是豺狼也”,所以只好从权,宁愿非礼而不做豺狼。必须指出,在非礼和豺狼之中做一选择是痛苦的,但这要怪嫂子干吗要掉进水里。这个答案有不能令人满意的地方,但不是最坏,因为他没有说戴上了手套再去拉嫂子,或者拉过了以后再把手臂剁下来。他也没有回答假如落水的不是嫂子而是别的女人,是不是该去救。但是你不能对孟子说,在生活里,人命是最重要的,犯不着为了些虚礼牺牲它——说了孟夫子准要和你翻脸。另一个例子是舜曾经不通知父亲就结了婚。孟子认为,

By Jon

iOS

TableHeaderView 使用 AutoLayout 自适应高度

在 viewDidLayoutSubViews() 中设定 headerView 的高度 override func viewDidLoad() { self.headerView = (Bundle.main.loadNibNamed("CreateOrderTableHeaderView", owner: self, options: nil)![0] as? CreateOrderTableHeaderView) } override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() sizeHeaderToFit() } func sizeHeaderToFit() { if let headerView = tableView.tableHeaderView { headerView.setNeedsLayout() headerView.layoutIfNeeded() let h

By Jon
最寒冷的冬天

Reading

最寒冷的冬天

最近秋风四起,恰好朝鲜又新闻不断,一副凛冬将至的架势。于是翻出书架上这本尘封已久的老书——《最寒冷的冬天》,看看美国人眼中的朝鲜战争。 牢不可破的朝中友谊? 朝鲜、中国、苏联因为历史原因,并不是牢固的盟友,反而相互猜忌、提防。 在战前筹备的过程中,中国的外交人员,以及政府里的“亲中派”,都被刻意排斥在外,通知中国外交官的消息,也只是一些连公共广播里都有的内容。最终,朝鲜正式出兵开战后,才通知中国方面。 麦克阿瑟:伟大的恶人 年少成名,却活在自己营造的小世界中,被奉承了五十年。 表演型人格。 和《高卢战纪》中的凯撒大帝一样,麦克阿瑟喜欢用第三人称指代自己,比如他自己会这样说:“麦克阿瑟已经决定要到现场指挥疏散行动”。 自诩精通东方心理的麦克阿瑟,在实战中却一再误判。二战时,麦克阿瑟将军认为日本绝无可能主动发起进攻。日本偷袭珍珠港后,也没有能力及时应对,导致九小时后日本再次偷袭复活节岛得手,美军战略轰炸机部队被消灭在停机坪上。 朝鲜战争中,麦克阿瑟再次作出了严重的误差,认为中国不可能出兵参战。 不过,由于在日本战后建设过程中的卓越贡献,麦克

By Jon

使用 Docker 快速搭建 Tomcat 测试环境

1 需求 碰到一个项目,要维护历史代码,运行环境是 Tomcat7、Java6。需要在现有的测试服务器上部署版本比较老旧的 Tomcat 环境。 2 思路 部署测试环境,有两个方法, 1. 用 Docker 起一个容器; 2. 下载 Tomcat 7、JDK 1.6,手动部署。 下面大概设想一下分别使用这两个方法的过程。 2.1 用 Docker 起一个容器的步骤 * 找到合适的镜像和启动参数 * 打开 bash * docker run 过程大约5分钟,之后泡杯咖啡,坐等镜像下载即可。 2.2 手动部署的步骤 * 找到 Tomcat 7 的下载地址 * 下载 Tomcat 7

By Jon

iOS

React Native RCTValueAnimatedNode.h file not found 问题修复

原因 官方代码库里 RCTNativeAnimatedNodesManager.h中 import 了错误的头文件。 GitHub 上相关的 issue 日期是2017年3月,截止本文写作时的2017年9月27日,该问题仍未解决。 * GitHub issue:[iOS][cocoapods] 'RCTAnimation/RCTValueAnimatedNode.h' file not found #13198 * 本文使用的 React Native 版本:0.48.3 解决方法 解决方法是在 package.json 中添加一个指令,修复 ReactNative 源代码中的错误: { "name": "YourProject", "version": "

By Jon

OpenLayers 3

OpenLayers 3 动态更新 VectorLayer 中的数据

通过一个小例子,展示如何改变 VectorLayer 中的要素,并刷新地图。 源代码:qianyanseu/openlayers3-vectorlayer-source-update 关键代码 在 OpenLayers 3 中,更新矢量图层中的内容,可通过修改该图层的 DataSource 来实现。 下面这段代码实现了每5秒更新一次数据。更新时,首先将现有的要素集清空,再批量将获取到的要素集添加到图层中。对 addFeatures() 的调用会自动触发 changed 事件,导致图层重绘,因次不需要再专门调用地图重绘的方法。 var refreshInteval = 5000; // refresh every 5 seconds setTimeout(updateFeaturesForVectorLayer, refreshInteval); function updateFeaturesForVectorLayer(){ $.ajax({ type : "POST",

By Jon

WWDC 2017

开篇 “老公,WeChat 不工作了!” 这广告耗资不少 开篇励志:最年轻和最年长的开发者   tvOS、watchOS 略过。其实做得都很好,只是 tvOS 和国内用户关系不大,Apple Watch 短时间内还没有机会亲身体验(在 Apple Store 把玩不算)。 新版 macOS High Sierra,macOS 版本名可真好起啊! Refinements * Safari * autoplay blocking * Intelligent tracking prevention(对国内这些流氓管用吗?) * Photos 倒是不错,可是硬盘吃紧,注定无法成为主力照片处理工具。Photos 自带曲线(手机上有吗?)! Tech * 文件系统 APFS (iOS 10 已经用上了,效率有巨大提升)文件复制瞬间完成

By Jon