分类
Android开发 写作 读书

由外而内的安卓传奇——《安卓传奇》推荐序

半个月前,侠少老师说,最近出了本好书,给你一个样书,帮我们简单写个序吧。于是我就收到了《安卓传奇》这本书的样书,两天我就看完了,很激动。

分类
IT行业 技术

我是一个码农

初一我就开始在学习机上面写代码,那时候写的是某种弱化的BASIC。我当时理论上知道计算机和编程可以做世界上的一切,但是其实那时候计算机跟普通人离得太远太远。

大学毕业,我就算入行了软件行业,后来也算入行了互联网行业,有幸在互联网行业在中国最繁盛的时候,移动互联网在中国最繁盛的时候,我都是一个程序员。

但是也有苦闷的地方。我不知道怎么单枪匹马改变世界。所以,我们一步步地学习知识,学习语言,学习技能。然后开始学习协同,学习管理,学习怎么创业,怎么销售,怎么追款。

但是,其实也没怎么改变世界。

有的时候会很苦闷,因为追求高的薪水,就要去一家正在冉冉升起的企业,但是经常会发现,企业想做的,老板想做的,跟我们自己想做的并不一定兼容。

哪怕我自己创业了,也不一定兼容,作为老板的我,和作为一个程序员的我,也不见得兼容。

慢慢地,你受了伤,你发现自己并不是全能的,万能的,甚至不是可以掌控自己的人。

记得这个广告么?

有时候我就是这个感觉,我热爱编程,但是也许编程在某一个历史阶段跟我热爱的编程不一样,但是我还热爱它。

但是,我也有半年多没写程序了。太复杂了,回报太慢了,有时候,我会觉得,我们真的有能力改变世界么?

还是我们把世界搞得更糟了?

所幸,我现在不需要写程序养活自己,不需要为别的大公司打工来养活自己。也许是重新思考这个问题的时候了。

我想做一个码农。

就像一个农民一样,种多大的地,搞多大的收成,编程语言就是我的锄头、犁铧和镐。

看天吃饭,关心粮食和蔬菜,关心天气和心情。

至少在我看来,写文章和写代码应该是可以写到90岁的。

分类
iOS开发 IT行业

苹果iPhone12旗舰机上的黑科技激光雷达到底是什么东西?有什么用处?

今年苹果的 iPhone12旗舰机型上面搭载了激光雷达。很多人其实都听说过激光雷达,苹果的发布会上也提了这个东西,但是其实我发现很多人都不了解这个东西到底是怎么回事。

所以,我今天就想从头从原理里,给大家讲清楚激光雷达是什么东西。以及它到底有什么用处。给大家讲明白,为什么苹果会在旗舰机型上放这么一个东西,以及这个东西对我们的未来、对这个世界有什么改变。

分类
Github IT行业

Gitee得到了工信部的支持,将来会完全成为github的替代品吗?

刚才有人在冯大的知识星球上提问,《Gitee得到了工信部的支持!冯老师您觉得将来会完全成为github的替代品吗?》

大辉回复,怎么可能。

我的回答:

如果你觉得github就是一个代码仓库,仓库里面的项目都可以被复制过来,github以后不会继续有人更新,背后没有美国的开源文化、法律、社区的力量的话。那么当然可以替代。明天就可以,哦,不对,最好的带宽估计也要拉上个几个月吧。

其实这个回答可以类比的是,有些人真的以为现代科学就这样了,这个世界的创新也就这样了。所以他们相信脱钩也无所谓,闭关锁国,自力更生,我们也可以做全球最牛的国家。

分类
Github 技术

Github 企业版如何限制访问IP?

有很多公司的 Github 企业版运行在完全的内网,有些公司的 Github 企业版运行在公网上。不管内网还是公网,从企业信息安全的角度上公司、安全人员或者管理人员总是希望给服务器加上 IP 访问控制。

我之前研究了下,原来 Github 企业版已经内置了 UFW 防火墙软件。其实,我们只需要简单的利用 UFW 防火墙增加一些访问规则就可以轻松的给服务器增加 IP 访问控制了。

分类
iOS开发 技术

Xcode 12 比 Xcode 11 有很多改进, 我遇到的一个具体案例

编译差异

最近同时使用 Xcode 11 和 Xcode beta (也就是12),发现,后者性能提升超级明显,而编译器的理解能力也提升很多。

比如,我的一个SwiftUI代码里面,有一个稍微复杂一点的判断逻辑,有三个 if/else 分支,如下:

Group {
    if(index>0 && item.rating>4.0) {
        PoiLargeImageCell(item:item)
    }else if(index==0){
        InvisibleCell(largeHeadView:self.$largeHeadView)
        PoiCell(item: item)
    }else {
        PoiCell(item: item)
    }
}

这个代码在 Xcode 12 可以正常编译,没有任何问题。但是,在 Xcode 11 下就会直接报错,而且是那种完全文不对题的错误信息。错误信息不是在 Swift 5 发布后有改善了么?但是在这个问题下仍旧文不对题,所以,我只能把这个稍微复杂一点的 if/else 语句改为两个 Group 嵌套的做法,如下,这样在 Xcode 11 就可以正常编译了。

Group {
    if(index==0){
        ZStack{
            InvisibleCell(largeHeadView:self.$largeHeadView)
            PoiCell(item: item)
        }
    }else {
        Group {
            if(index>0 && item.rating>4.0){
                PoiLargeImageCell(item:item)
            }else {
                PoiCell(item: item)
            }
        }
    }
}

为了迁就编译器,代码变啰嗦多了。不过暂时需要这么做,期待 Xcode 12 早日正式发布。这么多年以来,第一次感觉苹果的 Beta 版本这么靠谱,感觉苹果今年果然有点进步。

提交上出现的错误信息

今天我用 Xcode 11 提交一个 app ,遇到了一个以前没见过的错误信息,“Profile doesn’t include the com.apple.application-identifier entitlement.”。查了下,原来跟 MacOS Big Sur 有关系,跟 Xcode 11 和 Xcode 12 beta 也有关系。解决方法很搞笑,那就是用 Xcode 11来编译打包,用 Xcode 12 beta 来 upload app。详情可以参考苹果开发者论坛的相关帖子

分类
Github 技术

Github Desktop如何添加使用自签证书的Github企业版账号

Github Desktop 是 Github 自己出品的 Git 和 Github 客户端,特别是针对 Github 的各种特定功能都有支持,所以现在很流行也被广泛的使用。

自签证书会带来的问题

有些企业的 Github 企业版因为种种原因没有申请正式的证书,或者是在POC,内部部署测试期间,没有申请证书。那么有些时候,比如刚刚下载 Github Desktop 就会在默认的欢迎页面遇到困难。例如下图:

解决方法

第一步,在欢迎页选择 skip this step 跳过欢迎页

第二步,正常设置你的 Git 信息

这个信息是提供在提交记录里面你的个人信息的。填写 Name 和 Email 即可。

第三步,填写服务器地址

首先,在菜单里面选择 Preferences:
在弹出的界面选择 Accounts,然后点击 Github Enterprise Server 旁边的 Sign In 按钮。
然后填写你的 Github 企业版服务器地址:

第四步,信任证书。

接下来会提示你这个服务器的证书是自签证书。提示也介绍了,你在试用 Github 企业版服务器的时候,自签证书是很普遍的。

请选择查看证书 View Certificate
然后,在弹出的证书介绍页面选择显示证书

然后选择始终信任即可

第五步,登录你的账号和密码,稍事等待设置就完成了。

完成设置后,你就可以点击 Clone a Repository 把一个 repo 克隆到本地进行操作了。

分类
MacOS

Mac刚升级以后会变慢是正常现象

很多人用了Mac以后,刚升级以后觉得慢就吓着了,以为Mac每次升级都会变得更慢。事实上,我用Mac这么多年,升级新版本往往不会让机器变慢。但是刚升级完的一天半天系统确实会变慢。

分类
技术

为什么初学编程我建议从Python开始

从1992年算起,我写程序已经写了28年,从2001年上班算起,我写程序也写了19年了。编程最早就是我的一个爱好,然后整个职业生涯编程养活了我,让我过了一个还不错的生活。到了这些年,我写文章的收入日益增长,变成主业。但是编程并没有离开我的生活,它又变成了我的一个爱好。

分类
技术

FFMpeg用法收集

我经常剪辑视频,虽然现在已经熟练使用Final cut pro了,但是有的时候,你会发现有些任务还是用命令行最方便,所以我也经常需要使用FFMpeg来做一些素材的调整工作,比如旋转素材(手机拍的,有时候是需要翻转的),所以这个Post不定期更新补充我用到的FFMpeg技巧。