2021年已过去 80.31%
Windows 版 Effie 的一个小测试    @ 2021-09-30, 14:14

试着将《三国演义》整部小说大纲化,每个段落作为一个列表项,一共2617项。在 Effie for Windows 中生成思维导图,看看原生程序的性能:

Effie 整个过程中占用内存不超过50M(作为对比,XMind 占用大约2G左右的内存)。滚动过程中 Effie for Windows完全跟手不卡顿,切换风格2秒内完成。

Effie | 1 个评论 | 201 次阅读
简短地址:http://ncblog.net/1845/
Effie Win Done    @ 2021-08-26, 19:03

作为软件开发者,最满足最欣慰的莫过于此刻。半年时间,67000+行代码,一切都成为值得。Effie for Windows,来了。

Effie | 2 个评论 | 738 次阅读
简短地址:http://ncblog.net/1839/
“消失”的近半年    @ 2021-08-15, 17:05

Effie 的新 Windows 版从3月开始开发,尚是春寒料峭的时节。原计划6月底完成的,没曾想一转眼就快半年过去,暑假接近尾声,完成度95%了。终于快完成了。

虽然时间拖了一些,但就品质来说,我自己相当满意。在各方面的优化,费尽心机。可以算是我近年来客户端开发的新高峰了,即使相比 macOS 版本,只会更好。

比如这个在 Surface Pro 高分屏+毛玻璃的情况下,完全自己实现的动画过程依旧可以非常顺滑。

Effie for Windows,月内见。

Effie | 2 个评论 | 595 次阅读
简短地址:http://ncblog.net/1836/
Free Pascal 的 bug 已修正    @ 2021-03-15, 13:01

周末把 fpjson 的 bug 提交给了 Free Pascal 的开发组,很快就得到响应并修复了。

农码生涯 | 评论已关闭 | 1,098 次阅读
简短地址:http://ncblog.net/1834/
Free Pascal 的 fpjson 的一个解码 bug    @ 2021-03-13, 00:40

fpjson 单元是 Free Pascal 支持 JSON 的实现,今天使用它来解析服务器传回的结果时踩了它的一个解码 bug 的坑。

我写了一个演示程序,分别用 fpjson 以及另外两个第三方的开源 JSON 单元(LkJsonJsonTools)解析同一段非常简单的 JSON 字符串的结果。

uses fpjson, LkJSON, jsontools;

procedure TForm1.Button1Click(Sender : TObject);
var
    str : String;
    js1 : TJsonObject;
    js2 : TlkJSONobject;
    js3 : TJsonNode;
begin
    str := '{"name":"\u95e8\u88ab\u8111\u5b50\u6324\u574f\u4e86"}';
    js1 := GetJson(str) as TJsonObject;
    js2 := TlkJSON.ParseText(str) as TlkJSONobject;
    js3 := TJsonNode.Create;
    js3.Parse(str);
    ShowMessage(
        js1.Get('name', '') + #13#10#13#10 +
        js2.getString('name') + #13#10#13#10 +
        js3.Find('name').AsString
    );
    js3.Free;
    js2.Free;
    js1.Free;
end;

运行结果如下图所示,第一行是 fpjson 解析的有问题的字符串,后两行是另外两个解析的结果——显然都正确处理了:

演示工程放在 Github 了,也附带了另外的那两个开源 JSON 单元,其中的 LkJson 单元我修改了一些 bug,与原始版本(超过 10年没有修改过了)有些微差异。

农码生涯 | 评论已关闭 | 1,146 次阅读
简短地址:http://ncblog.net/1832/
Effie Win    @ 2021-02-27, 13:59

Effie 最早是年轻的前端小伙子用前端技术写的,当时快速地搭建出了产品原型。但到后期要真正产品化变成实际的商业产品时,限于技术能力和前端技术本身的一些限制,越来越吃力。

去年我加入 Effie 团队后,用平台的原生技术重写了 macOS 和 iOS 版。产品发布时,原先前端技术写的版本就作为 beta for Windows 形态发布以便 Windows 用户也先能用起来。但品质以及体验上,距离原生版本相差还是比较大的。

现在,用户呼声最大的,除了 iPad 适配外,就是用原生技术重写 Windows 版了。iPad 适配应该能在 3月完成,而重写 Windows 版,也已经开始了。

Effie | 3 个评论 | 3,353 次阅读
简短地址:http://ncblog.net/1829/
为 Effie 工作一周年    @ 2021-02-02, 12:19

减重卓有成效,目前为止瘦了 26 斤。

农码生涯 | 1 个评论 | 1,815 次阅读
简短地址:http://ncblog.net/1826/
Effie – 把思想变成价值    @ 2021-01-06, 18:37

macOS 和 iOS 版亲自写的,推荐,可以白嫖。
Windows 版暂不建议使用。

Effie 官网,邀请码 NC18

42秒了解Effie

Effie | 5 个评论 | 4,283 次阅读
简短地址:http://ncblog.net/1820/
不那么差的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 度。在办公室,特地让阳光肆意地洒进来办公桌上。

无酒无花 | 评论已关闭 | 1,287 次阅读
简短地址: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 个评论 | 1,794 次阅读
简短地址:http://ncblog.net/1815/