Code Journey #5
openSUSE
opi
- 第一个可用版本发布
- 打包推送到 openSUSE Factory
打包
- 更新 adobe-sourcehansans-fonts
- 更新 adobe-sourcehanserif-fonts
- 更新 google-noto-emoji-fonts
这是第一篇,把自己做的一些小事记录下来,激励自己坚持下去。自由软件是一个有意义的事情,这点我从没怀疑过。
中午过了一阵雷雨,阳光穿透稀薄的云。短暂的,明媚,清凉和安宁。
路上深深的车辙,困住了些许雨水,此时已沉淀干净。
男孩子穿着凉鞋,脚上沾着泥沙,将捡来的木片,泡沫和其它小东西,放在小水洼中。水面的波纹折着耀眼的光,一圈一圈。影子投在水底,像漂在空气里。在很小的时候,人会忘记眨眼睛,盯着一个小小的世界,很久很久。
时间好像不会前进一样。
这一年,隹五岁。
隹晚了三个月入学。由于年纪稍小,母亲拜托了学校里的亲戚,才勉强让他上学。
学校里的小孩儿们大多都互相认识了。隹找不到说话的人,藏到了教室最后一排的角落。旁边的男孩在桌子上刻字,还有些女孩在玩贴纸。课间,教室吵得厉害,他感觉自己的猫耳朵太过灵敏了。隹走路没有声音,可以悄悄离开不适应的环境。
隹的第一本教科书是托人买的,在学期末的时候,他发现最后少了一页。他把最后一页的文字和插图临摹下来,夹在书里。不是因为喜欢,而是因为害怕。此后的每一本教科书,即使课外读本,他都要翻看好几遍。
这一年,隹七岁。
在村子的深处,有一处废弃的宅子。里面囚禁着疯子,一个没有名字的人。
偶尔,隹会跟着邻家的男孩子们从墙的坍塌处溜进来,因为院中有一棵非常甜的枣树。无人照看的地方,草木如妖化了一般疯长,诡异的绿色让人害怕。低矮的屋子,已没有了门窗。白色的墙皮脱落殆尽,露出了土坯。隹隐约听到铁链拖动的声音,那个眼睛如野兽般的人,在阴影里盯着他们。男孩子们朝屋子的方向扔石块,然后飞快地逃跑了,屋里传出令人毛骨悚然的叫声。
隹有时候会梦见,那个有着蓬乱长发的人在哭。
那一年,隹十岁。
隹的姐姐年长两岁。每天她都会教隹明天老师要讲的内容,还会画英文单词的卡片。她有各种各样的爱好,虽然村子里的孩子没有机会上兴趣班。她会拉着隹一起画画,绣花,织毛衣,抓蚱蜢,打游戏。
直到有一天,姐姐要去高中寄宿。一个星期后,隹和妈妈去县城的学校看望姐姐。姐姐刚刚结束军训,看到家人便哭得不停。这里的辛苦快让她崩溃了。隹只是在旁边呆呆地站着,吃着盒饭,不知道要说什么。夏天的燥热,树叶的哗啦声,感受不到清凉的树荫,小声的啜泣。
小时候觉得,哥哥姐姐天生就是哥哥姐姐。他们为各种事情都做好了准备,然后再来告诉你到时候要怎么做。这种错觉总是会不见的。
分别前,姐姐塞给隹一块巧克力,那是她趁着午休前的间隙去便利店买的。
那一年,隹十四岁。
隹遇到了第一个令他无可奈何的女孩——莺。
她是隹的对立面,做事很用力,却依然平平,很容易结交朋友,心里有情绪绝不会等下一分钟再爆发。她似乎一直看不惯隹的安静,孤高和并不努力的优秀。从偷保温瓶里的热水,到故意在教室门口挡路。课间的揶揄调侃,回答不出问题时的嘲讽。两个人的冲突一直一直持续着,直到这成为了他们日常的一部分。少男少女之间的感觉,很容易就转化成了什么了不得的东西。
莺留起长发,声音变得柔和温顺。隹有了积极的态度,去融入自己抗拒过的世界。没有触碰指尖的心跳,也少了让人踮起脚尖的温柔话语。只是在发呆的时候,不约而同地,远远望着对方。
这一年,隹十七岁。
南方的小城,从不缺雨水。一整个六月,总是湿透的。
隹还是形单影只,仍然不习惯带伞出门。虽然在社团和同班都有熟络的人,但他喜欢这样一个人在雨天,在校园的一角,听雨声。有人打扰的话,就可惜了。
他的单肩包里总是放着很多东西,必不可少的是糖,饼干和小瓶牛奶。没有糖分的话,就无法思考,这是他最清楚的事情。最近买了一本很艰涩的英文书,总是带在身上。他对未来没有计划,也没有期待。在别人谈论这些话题的时候,他总是悄悄地挪远一点。沉浸在今天的兴致里,已经让他感到别无所求了。
午餐和晚餐,他总会在食堂买一份最便宜的蔬菜。尝不出味道,也依然幸福着。
这一年,隹二十一岁。
二十三岁。
去年秋天 DYX 同学和越南同学拉我入伙,参加一个 Hackthon,以期获得免费的日本旅行机票。虽然最终获奖了,但是计算一下在这期间投入的时间成本,实际上不太划算的。连到了日本,都还要花一天时间做 Presentation 和 Social。
继续阅读 →做一个应用程序有非常多不同的技术选择。使用 Web 技术既可以用做小的开发成本做出跨平台的应用,但是性能和功能又有诸多限制。完全使用原生技术则需要极高的成本。选择技术的因素固然有很多,不同的技术可能实现相同的功能,但体验上是有差异的。
下面介绍的顺序是从更接近 Web 技术到更接近原生技术。
典型的 Web 应用模式,网页在后端进行渲染,配合少量的 JavaScript而构成的应用。这种模式适合交互简单,以内容为主的应用。典型的例子是 GitHub, WordPress, Wikipedia 之类的网站。
后端渲染对服务器的压力更大,每跳转一个页面,浏览器都要等待至少数秒钟。除了 Safari 之外的移动浏览器都有一个刻意而为的点击延迟 (300ms),这让点击链接跳转在移动端的体验变得更差了。速度是最大的弊端。
使用 Angular, React, Vue 之类的 JavaScript MVC/MVVC 框架制作的应用。前端作为 JavaScript 被整个或部分加载到浏览器。然后只从服务器获取需要的数据,更新页面的部分内容而不需要重载页面。服务器不再需要处理网页渲染,数据可以缓存,数据库查询等耗时操作也更少。这种模式适合交互频繁,数据更新频繁的应用。典型的例子有 Twitter, Facebook, Instagram 之类的网站。
缺点仍然很多:
这两个东西都是提供了原生系统接口的 Web 容器。Electron 主要用于桌面应用,只要 NodeJS 可以做到的它都可以做到,因此可以使用非常之多的原生接口。Cordova 或者 PhoneGap 面向移动平台,能使用的接口由插件提供,非常之有限。
JavaScript + 原生 UI。一个性能和快速跨平台开发的折中选择。但也可能是一个陷阱。
原生应用可以在所支持的平台上做尽可能多的优化,取得最好的效果。但代价是巨大的开发成本。
以视频播放器为例,原生应用可以支持任意视频格式,并尽可能优化性能,获得悬浮窗等系统权限。
待续……
夏天的中间,我搬到了离工作很近的地方。骑车需要十分钟,路上会经过很大一片花田。延伸到森林边缘的紫色,开过了整个夏天。燃烧殆尽,花穗只剩了白色。仅仅过了几天,一片看似荒废了的土地,向日葵压着杂草生长起来。向日葵田在路的转角。骑车经过的时候,总是会望着它们。
这一段不长,只有公路和两旁的树林,草地,溪流。上班和下班的时候,只有一辆旧自行车的我,独自消化着不知从哪里来的想法。人大多是实实在在地活着。出与归,作与息。幸福感来自无忧且知足,禁忌是:改变。
平平常常,短暂停留于世的花,不是轻易让人欣赏的。它们的孤高,无畏,从未随随便便生长。无法选择天气和土壤,也要用尽方法获取阳光和养分。
我羡慕那些还在困境中挣扎的人,因为挺过困境之后,其实什么也没有。
夏天已经结束,这片向日葵田也时日无多。它们只有一个夏天,而我们有几十个。
从零开始做蛋糕。
面粉:芬兰超市里一般有三种面粉,包装上面画着面包的,画着蛋糕的,还有画着面条。用途就和画的一样,应该不会买错的。
牛奶:芬兰有三种牛奶,不论品牌都可以按包装颜色区分。红色的是全脂牛奶,深蓝色的是半脱脂牛奶,浅蓝色的是脱脂牛奶。我现在用的是半脱脂牛奶 kevytmaito。
色拉油:我用葵花油替代了。其实菜籽油,花生油都可以。专用的色拉油只是这些油提纯过,去除了味道而已。因为想省钱就没有专门买。可能用色拉油味道会更好一些。
鸡蛋:买最便宜的就好。
砂糖:大包的那种最便宜的。
嗯,用不到黄油。
巧克力坚果也别加。
不要在里面放水果。
把你的葡萄干收好。
鸡蛋:5 个
砂糖:90 克(30 克用于面糊,60 克用于蛋白霜)
面粉:80 克
牛奶:40 毫升(40 克)
色拉油:45 毫升(40 克)
称量方法:我只有一个很便宜的量杯,它有三种刻度,分别测量液体体积,面粉重量,砂糖重量。液体材料我都用体积记录了,牛奶的密度大约是 1 克/毫升,油的密度是 0.9 克/毫升。
蛋清必须完全不含任何蛋黄和水分,必须用电动搅拌机。
其实也不用这么复杂,只要记住糖要晚点加,分几次加,然后搅拌得足够久,让蛋白霜有点硬硬的,能成型感觉就行了。
尽量多搅拌,搅拌到均匀没有结块的感觉。可以用搅拌器拉起来看看能不能形成一张膜。
将面糊倒到蛋白里,或者反过来?两种做法我都试过,好像没有什么差别。
用橡皮刮刀从下到上翻几下,然后将刮刀插进去,横着划一遍,竖着划一遍,重复几次。这个动作可以找网上的视频看看。直到颜色比较均匀了为止。不能搅拌太久,气泡会消失的。
搅拌之后倒入大约 8 英寸 / 20 厘米直径的圆形模具中。然后重重地在桌子上 Duang 几下,将里面的大气泡震出来。一些中等大小的气泡不可避免的会留在里面。
这个过程可以避免两个问题:鼓起和塌陷。先用低温烤定型,可以避免鼓起。拿出后倒扣放置,可以防止塌陷。
这个方案尚不完善,持续修正中。
2017 年十月 23 日。烤制时间不够,是 140 度 25 分钟 + 170 度 35 分钟。高温烤制时间应该延长。
继续实验中,持续更新……