2024年已过去 30.02%
不那么差的2020    @ 2021-01-01, 23:35

似乎对大部分人来说,2020年是一个极其不友好的年份。但对于我个人而言,这一年似乎并没有那么坏,至少比起 2019年的忙乱和窘迫,要好一些。

2020年重新开始上班,有了稳定收入后,明显地经济压力小了很多。同时,上班也提供了能让我有相对比较稳定地做开发工作的地点和时间,并且主导完成了公司即将发布(嗯,因为产品开发之外的因素被延期了几次了,不过这次应该真的快了,就这节后几天吧)的新产品的 macOS 版和 iOS 版——算是2020年我最大的成就吧。跨入了一个新的领域——AppKit,以及重新拾起了 UIKit。

除了上班,另一个改变就是减重。2009年的时候,在猪圈已故好友 magic2003 的指引下,用减少糖摄入的方式减肥成功,当时从 84kg 在两个月内减到了 73kg。之后的 10年在不太注重体重的情况下,慢慢回到了80 的水平,2020年 5月时,体重达到了人生巅峰 85+kg。借着一个契机和一个理由,从5月月中开始,在公司的两顿饭(午饭和晚饭)不再吃米饭,并且饭后和几个同事一起出去走一大圈。如此少吃多动但又并非很激进,体重从此开始慢慢回落,直到现在回落到 74kg 左右,时隔 10 年后 BMI 指数再次回到“普通”级别。减重带来的好处,除了人本身感觉精力更充沛、体力增加之外,还可以开始尝试修身版的衣物。这次,决心要保持住这个状态,希望 2021年能维持在 70kg 左右(算是 flag 之一吧)。

2020年初时,有立过一个 flag,要啃完 Essentials of Programming Languages 这本书,但后来真正上班后就没有能完成它。2021年就我目前能看到的未来,估计也难以完成,就先放着吧。

2021年第一天,阳光明媚,气温很低——最高温度摄氏 0 度。在办公室,特地让阳光肆意地洒进来办公桌上。

无酒无花 | 评论已关闭 | 2,684 次阅读
简短地址:http://ncblog.net/1818/
困扰大半年的一个疑难杂症解决    @ 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 个评论 | 3,205 次阅读
简短地址:http://ncblog.net/1815/
人到中年    @ 2020-12-05, 12:38

切切实实地感受到人到中年了,即使经常还会被路人唤作“小伙子”。

常有人说,上有老、下有小。但其实,当老的还能独立生活,甚至还能帮带小的,这时是算不上“上有老、下有小”的。当老的失去独立生活的能力依赖你照顾,当小的尚在求学需要你支持,这时候,才是真真切切的人到中年了。

去年老妈脑梗病倒,今年一月出院回家开始一起生活——磕磕绊绊的生活。脑梗病人因为自身病痛或者部分残疾导致的生活不便带来的悲观情绪,性情会非常易怒、暴躁以及不近人情(似乎不再有同理心,不会考虑他人感受了),旁人会轻松说一句“她是病人,多体谅”。而病人身边切实每天照顾她的亲人,哪怕理智上再清楚“她是病人”,但在不断的言语伤害以及zuo劲笼罩下,凡人真的很难能完全控制自己的情绪。

于是,日子就变得越来越苟且,你不会如同年轻时,再对世界或者未来有什么憧憬了。你的未来的很多年的日子,已经是程序般的设定好了且非你所愿的那种。你对世界只剩下一点点的,对一些人和一些事的留恋而已。工作、上班,反而成了一种避风港,996,成了一种奢侈。

转眼,2020——我的中年元年,已经接近尾声了。今年上班后主导开发了一个效率工具类产品的 macOS 版和 iOS 版,即将上线了。这也是我对世界剩下一点点的,留恋的“一些事”了,希望会有个好的结果。失败这么多年了,真的也该成一个了吧。

无酒无花 | 6 个评论 | 3,667 次阅读
简短地址:http://ncblog.net/1814/
修墙    @ 2020-10-05, 17:28

去年把老房子装修后,阳台外墙由于年久失修而渗水。今年特别多的雨水,导致靠近窗台处的内墙被渗进的水损坏。

今年六月底的时候,开始研究修补方案。

首先给外墙补漏,虽然可以找物业来弄,但一般物业找人来补都只是用沥青或者聚氨酯卷材搞一下,寿命较短。我研究后,自己买了聚脲涂料(理论上与基材同寿命),到隔壁邻居家窗口对着自家阳台外墙直接怼。两遍涂满了整面外墙。

同时由于自己不方便上楼顶,所以还是找了物业请人上楼顶也做了补漏施工。后经过几次暴雨验证,确认成效。

然后,九月初开始内墙修复工程。买了修补膏,也就是调配好的成品腻子,趁周末的时候,在家铲墙、批腻子、打磨。


(刚批上的腻子)


(打磨后)

最后,在这个国庆假期,完成最后的上漆工序,顺便做了一下全屋翻新。

无酒无花 | 1 个评论 | 3,505 次阅读
简短地址:http://ncblog.net/1812/
不觉已春深,物我两相忘    @ 2020-08-25, 00:38

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

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


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

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

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

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

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

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

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


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

农码生涯 | 1 个评论 | 3,258 次阅读
简短地址: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。

效果如图:

农码生涯 | 评论已关闭 | 3,383 次阅读
简短地址:http://ncblog.net/1794/
共青森林公园    @ 2020-06-09, 00:20

又一个月过去,产品开发仍然持续中,已经完成的部分效果很好,有待完成的只是时间压力较大。即使如此,一周六天的开发已然是极限。

周日约了设计师 kukun 一起到森林公园看花,结果蹭到了不少照片。我和老婆都尤其喜欢这张。

无酒无花 | 评论已关闭 | 3,346 次阅读
简短地址:http://ncblog.net/1790/
渐入佳境    @ 2020-05-10, 18:17

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

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

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

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

农码生涯 | 评论已关闭 | 3,010 次阅读
简短地址:http://ncblog.net/1787/
转:互联网是人类历史的一段弯路吗?    @ 2020-04-25, 15:19

作者:评论尸,原文:https://mp.weixin.qq.com/s/V5Dk4gpzpdb-zsfurp9ZiA

本文大约 40000 字,阅读需要 102 分钟,由于存在主动或被动删稿风险,建议先行保存。

本文写成于2019年12月,原本预计 2020 年 1 月发表,疫情爆发后一直感觉需要加笔。但时至 2020 年 4 月,新冠疫带来的变化似乎并未影响本文叙事,新加内容也仅起到案例更新作用,遂以去年完稿的版本发布。

1 至暗时刻

1.1 互联网是一种集权的技术吗?

2019年4月,纽约时报发布的一篇名为《减少互联网是唯一的答案》(The Only Answer Is Less Internet)将西方主流媒体对互联网行业的批判推到了一个新的高峰。
阅读全文 »

转贴收藏 | 评论已关闭 | 3,343 次阅读
简短地址:http://ncblog.net/1785/