2021年已过去 5.81%
困扰大半年的一个疑难杂症解决    @ 2020-12-10, 21:47

上半年开始开发公司新产品 iOS 版的时候,遇到一个奇怪的问题,每次 NSURLSession 发起请求后都要延迟 7 秒左右才能连接上服务器,在客户端甚至抓包跟踪都找不出原因。但这种现象又会在一段时间后自动消失,然后又会在另一个设备上再次出现。之后就把怀疑对象转向了服务端的配置,但做了各种尝试后也依然没有头绪。

直到昨天因为试图解决另一个问题时,首科发了一小段 nginx 的配置给我,其中有一个 ssl_trusted_certificate 配置引起我好奇,去 google 搜了一下相关内容,从而了解到 OCSP。今天顺藤摸瓜继续研究,在一篇文章中查到 LetsEncrypt 提供的(旧的) OCSP 接口被 GFW 封了,所以身在国内的服务器无法连接而导致 ssl_stapling 无法开启,进而使得客户端会试图去连接 OCSP 以验证证书有效性——当然,也会无法连接而失败,可能在 iOS 设备上就是 6-7 秒左右的超时。

这样解释,一切就都说得通了。现有的解决办法,除了 hosts 中将被墙了的“ocsp.int-x3.letsencrypt.org” 域名作正确的 IP 解析——感觉不是很靠谱,如果官方 IP 地址变化了就又会问题重现。更好的办法就是重新申请 LetsEncrypt 新的证书(不是 renew)替代老证书。

近年做客户端开发比较多,这类问题如果不是有什么契机,真的是很难摸到头绪。幸好困扰了大半年后,在产品即将发布前夕,找到了原因,并且彻底解决了。

农码生涯 | 3 个评论 | 725 次阅读
简短地址:http://ncblog.net/1815/
不觉已春深,物我两相忘    @ 2020-08-25, 00:38

虽然已经过了处暑,2020年也已经过去65%,却仍然很想吟唱“不觉已春深,物我两相忘”。

一个人,109天,31120行成品代码,完成了第一个 macOS 平台(Cocoa)产品的开发,一个月前行百里半九十的最后十里也终于走完了。全心地投入做想做的事情,忘我感受时移物易,很快乐。


不觉已春深,物我两相忘。

农码生涯 | 1 个评论 | 1,051 次阅读
简短地址:http://ncblog.net/1801/
行百里半九十    @ 2020-07-26, 00:30

从五月初开始开发的 mac 应用产品,还有两周,就要到达预期的三个月开发周期的目标时间点了。开发工作完成度估算大约也有了 85%~90%,可能会有少许超期,也算是在情理之中。

首先在预期之外的,就如前所述那样的,“macOS 的开发框架与 iOS 的差异,比我之前想象的要大得多”。

其次是产品设计上实现相关的复杂度也比预期要“坑多”。有多次为实现一些功能需求,使用 google 搜索的前提下,全网都很难找到文档、答案,而只能在诸如 WWDC 2010 的一些专题演讲(以及 PPT)中给出的只言片语作为线索,再去尝试推断出来的几种方案。

当然,这个过程,回头看其实挺爽的。久违的沉浸于开发的充实感,伴随着那种似乎已经触摸到全网都几乎查不到资料的技术(因为需求少所以做过的人少)的成就感。

因为去年老妈的倒下,已经两年没去珠海了。昨天,老婆和儿子去珠海了,而我因为项目开发正处于关键时刻,以及仍然无法放心老妈的情况下,没有同行。


桐花诗八韵,思绪一何深。

农码生涯 | 1 个评论 | 1,018 次阅读
简短地址:http://ncblog.net/1798/
NSTextView 文本的行高    @ 2020-06-13, 15:16
  1. LineHeight:简单地使用 NSParagraphStyle 的 lineHeightMultiple 的情况下,当设置其值为大于 1.0 的时候,文字占据整个增加了行间距的空间的底部,如图:
  2. LineSpacing:使用 NSParagraphStyle 的 lineSpacing 的情况下,当设置其值为大于 0 的时候,文字占据整个增加了行间距的空间的顶部,如图:
  3. BaselineOffset:给 NSAttributedString 增加 NSBaselineOffsetAttributeName 属性,可以使得文字向上或者向下偏移,但同时也会与 LineHeight/LineSpacing 叠加,改变整行的高度。
  4. 实践后的正确方式:将 LineSpacing 与 BaselineOffset 结合。

算法很简单:

  1. 算出目标行高 target_height;
  2. 算出原始行高(1.0 倍 LineHeight,0 LineSpacing) original_height;
  3. 将 target_height 与 original_height 的差值除以 2 后,赋值给 LineSpacing 与 BaselineOffset,也就是将差值一半给 LineSpacing,一半给 BaselineOffset。

效果如图:

农码生涯 | 评论已关闭 | 1,052 次阅读
简短地址:http://ncblog.net/1794/
渐入佳境    @ 2020-05-10, 18:17

上班三个多月了,(开发)工作上渐入佳境。一方面,现在再次开发 iOS 项目自我感觉比 Mera 的时候更精进了一层,有点曾经在使用 Delphi 开发时的那种随心所欲的感觉了;另一方面,同时开始了 macOS 平台的应用开发,也是一件好玩的事情。

macOS 的开发框架与 iOS 的差异,比我之前想象的要大得多。从 UIKit 转换到 AppKit,幸得有不少好的文章,比如这篇,即使是多年前的也难以掩盖其价值。

虽然一直不太喜欢用苹果的产品,比如 iPhone,比如 mac,但我确实还是喜欢在苹果平台上做开发的,Xcode 以及 Objective-c 都是很优秀的工具(嗯,不包括 Swift)。

如今可算是前端当道,JS 就要统治世界一样。但我依然还是只喜欢做原生客户端(包括所谓移动端)开发,因此能做这样的开发工作也可谓求仁得仁了。

农码生涯 | 评论已关闭 | 1,206 次阅读
简短地址:http://ncblog.net/1787/
上班    @ 2020-03-25, 00:45

从2月26日开始,到办公室上班。步行15分钟的路程,毫无压力。这一个月来,渐渐融入了团队,重新适应了上、下班的生活。这是自从离开金山后,第一次不是创业性质的上班工作。

农码生涯 | 2 个评论 | 1,770 次阅读
简短地址:http://ncblog.net/1761/
新年伊始 2    @ 2020-02-16, 02:53

正月已经过了二十多天了,由于疫情,公共的秩序还没能恢复——很少人出门,网购几乎陷于停顿(除了某猫某东的自营超市,卖家一般发不了货),新工作的上班地点暂时又只能在家里。

新工作本来头两个星期应该是和团队磨合、融入的最好时机,但两周下来都只能通过钉钉以及音频会议沟通,很多方面还是感受到距离带来的掣肘而难以施力。

老妈日常需要去医院做的康复治疗,也已经中断近一个月了。目前只能每天在家自行爬楼梯锻炼,慢慢已经可以独自进行。四楼的楼梯每次上下三趟,每次能锻炼到出汗,每天两次。老妈似乎也慢慢适应了目前的状态,易怒的情况稍有改善,生活慢慢趋于平静。

当生活从田野跌入苟且,会想拾起最初的心心念念。

于是决定在今年的业余时间开始学习自己一直觊觎的领域,让自己有所突破——年内啃完这本书并有点小成果。

这个冬天比较漫长,但2020年已过去12.59%。

农码生涯 | 1 个评论 | 1,517 次阅读
简短地址:http://ncblog.net/1753/
半月纷扰的四月    @ 2019-05-02, 14:23

四月下半月老妈得了带状疱疹,疼痛不已。带着老妈求医问诊治疗,分心的时间比较多了,开发进度稍有放缓。
今天凌晨发布了 Inspire v2.25,为下一步做好了准备。

2019年已然过了三分之一,todo list 仍然排得满满。

昨天,第一次一家三口一起进电影院,看了《复联4》。而我上一次进电影院还是十二年前的《变形金刚1》了。

农码生涯 | 2 个评论 | 1,661 次阅读
简短地址:http://ncblog.net/1684/
出坑    @ 2019-03-12, 17:14

没想到竟然泥足深陷一个问题一周,然后前天又突然莫名胃痛了两天。今天一切都好起来了,而且还是个好天气。

农码生涯 | 评论已关闭 | 1,342 次阅读
简短地址:http://ncblog.net/1652/
全面 V 化已然实现    @ 2019-01-25, 03:12

换个角度,世界全然不同~

农码生涯 | 评论已关闭 | 1,573 次阅读
简短地址:http://ncblog.net/1599/