Wednesday, 22 November 2017

Is Swift 4 horrible?

The project team of Boochord iOS recently reached the first version milestone for iPhone and is publishing on iOS App store and preparing to utter the joys to sky.

It employs Swift language version 4 as the primary language and the tool of XCode, AppCode, Cocoapods etc. Many people know the "famous" incompatibility between Swift different version and the pet peeves about String processing performance, optional design etc. How does the project team go through all caves and traps to arrive the status today? I would like share some experiences with you.

First, optional design is a good one which helps junior person to avoid many "nil", aka, null dead end problems in java / c environment. But it does not mean nil bugs are fully eliminated since the enforced optional unwrapping is still some times unavoidable. And besides, best practices within a team could vary depends on third party used and member preferences etc. e.g., guard vs if statement. So agreement on early time is always important to avoid the code messing by many ifs.

Second, string processing is kind of pain for those with Java background. Since the indexing is not by integer but String.Index. And String can not be easily converted / processed in the form of charater Arrays. It would be easy to fall into the performance trap considering there are also big difference on low level String functions. String's UnicodeScalar view is indeed useful in some situation but they are always useful. However's by our experiences, a bad design and implementation could be 100 times slower than Android processing. We are using IPhone 7 plus comparing to kind of middle level 3 years aged android brand phone like Xiaomi etc.

Third, XCode is kind of robust but sometimes staggering and slow. The source code is compiled and running but it still shows there are some code error. Sometimes we have to delete the derived data of compilation to get a clean visual world. But the good side is that it is dead seldom while AppCode does although it does better and quicker refactoring job like renaming, moving etc. I cannot see it is a shame of jetbrain because it is performing much better as in Android Studio.

Fourth, Interface builder is the proud of Apple and has very precise and flexible control to place graphical components at right places. Its auto-layout has much better and clear intuitive presentation of constraints than Android GUI designer in my point of view. But be very careful to use XML source view to edit story board / nib file. It is reckless and rude change probably from Apple's point of view. Because you could fail to start Xcode unless you can fix the error by external tool like vi or other text editor.

Fifth, third party integration sometimes out of control. As many as 50 percent cocoapods did not function at first installation and needs some tweaks / work rounds. And Swift package managers is still in infant phase could not provide meaningful help. Manual import in XCode seems the final solution almost in all cases. But the method brings in potential manage risk on package management for many processes that requires automation such as testing, upgrading, merging etc.

Overall speaking, Swift is evolving to a mature language and the version of Boochord is reached in as short as 3 months and passed all the tests with few bugs. Considering it is has many complex components of intensive timer tasks, incorporated many Artifitial Intelligence generated data marks, and many members are junior or with different tech stack experiences and they are confident with Swift now, I would like to say Apple did a good job in last year to make Swift competitive.

Sunday, 1 October 2017

我的幸福生活

看上去挺哲学的一个题目,即将生生被我整进一个广告贴,但是我确没有负罪感,反而心里充满了分享的幸福感,因为我深信我的分享很大可能提升你的生活品质。

1. 花时间阅读经典名著,了解人性的基础。最好方式是使用我开发的软件书弦,英文名boochord,一边播放世界级的朗读声音,一边实时显示文字。配上书单管理功能,你可以把阅读和做家务并行了,甚至连上卫生间都不用浪费。好书有弦,我用我的心弦与她和声,还算一点小享受吧。



2. 卡路里管理。购买一个小型桌下训练用自行车,最好是电磁式的,安静,可以调节阻力的那种。然后,可以一边学习,或者写程序,一边踩自行车。按我的统计,一天坐着工作六小时的话,可以消耗八百大卡左右。每天称下体重,就可以获得卡路里平衡。如果你是一个骇客,可以把这个小自行车改装成发电机,为世界带来一点绿意。

3. 简单的烹调。我有一个小小的罪恶工具,一把小铡刀。
这样,切肉的时间缩短到两分钟,飞水去掉血水。基本二十分钟可以保证两个营养和色香味俱全的小炒。

这样我已经省出了大把的时间,可以去和朋友们耍去了。


Thursday, 7 September 2017

外国人不用实名 OK

国家互联网信息办公室印发管理规定称,微信群、QQ群、微博群、贴吧群、陌陌群、支付宝群聊等各类互联网群组适用于该文件,并按照“后台实名、前台自愿”原则,对使用者进行真实身份信息认证,并保护使用者个人信息安全,10月8日正式施行。(中新网)

然而一带一路怎么办呢?互联网企业也是中国新经济和外交的龙头啊,总不能不让老外用中国的社交软件吧?显然我在这瞎操心,我们的传统就是外国人不用实名 ok


Wednesday, 6 September 2017

苹果利用自己的垄断地位向中国应用开发者泼脏水

 网易发了一篇新闻,中国应用商店删了100万个应用,开发者怒告苹果。

这些应用的开发者可是花了真金白银,更是真的付出了艰辛劳动的。
现在,苹果说中国应用商店的应用垃圾也好,不符合法律也好,这完全是下流的泼脏水。因为苹果这样说,正如我在上一篇博客里所说,是在利用自己的垄断地位,根本就没有给人申辩的机会。
网易的新闻,佐证了我的看法,根据这篇报道,列举一二如下,

一, 科技研究公司ASO 100称,今年以来App Store删除了超100万个中国应用。请问苹果应用商店有多少工作人员,能够如此高效率判定这些应用为垃圾,不符合中国法律?删除的流程是否给予了开发者充分的申辩机会?
二, 今年苹果删除的中国应用比美国多了约20万个。苹果拒绝评论在中国删除的具体应用数量。 如果在中国赚钱,但是不能平等对待中国的合作者,这样的公司,如果不付出代价,那么就是中国的软件业付出代价。

最后重点说说苹果关于“应用不符合法律”的说法。首先,苹果这么在公众场合说,如果没有证据的话,那完全就是损毁开发者的名誉,属于污蔑了。如此,从道义上说,开发者应该有绝对的权力要求苹果出示这个证据,作为商业流程的一部分。总不能说苹果说翻墙软件违反中国法律就真违反了。

世事多艰,我这个说法很轻松,可能在中国很难成为现实,其实在美国也很难成为现实。

但是,能有这么多开发者站出来告苹果,还能获得律师事务所的支持,总归凡事有那么点希望吧。祝你们好运!为你们加油!!
 

Sunday, 30 July 2017

虽然我逃不脱做奴隶的命运

最近苹果要下架国区的VPN应用。不知道这些应用的开发者做何感想。

要开发苹果手机的应用,投名状可真不少,必须使用XCode,甚至必须购买苹果台式电脑或者笔记本。或者开发者可以自己安装Mac OS X虚拟机,但是这甚至是非法的,苹果在这点上就是事实的法律制定者。

“数字产品”销售收入的百分之三十归苹果。甚至连微信这种规模的应用,打个赏也不能逃脱。苹果就是有指鹿为马的霸道。这么评论,因为我对打赏的定义,无论如何也无法和苹果苟同。

但是苹果并不能保护奴才们的利益,所以,为何要做苹果的奴才呢?

因为没有更好的主子?安卓其实不错吧。开发安卓挣不到钱?广告费并不少。

人工智能的年代,搞出万能可移植程序的编译器,绝对没有那么遥远。所以苹果,等着吧,出来混总归要还的。

你有两个臭钱?你和现政府分钱分得很爽?那又怎么样,让更多的开发员一边被吸血,一边翘起屁股被你和现政府当三明治猛干?我是摆不出这个姿势的

Monday, 24 July 2017

广告贴

上半年找了个不错的社区,租了个公寓搞开发,安卓上的App, 名字是BDTimer。上个礼拜终于发布了第一个版本,好歹给自己一个交待。

项目开始之前想用Cordova/PhoneGap跨平台,研究了下,运行速度有损失,界面设计过于依赖CSS,不得不放弃。毕竟这个程序有一部分是有严酷的时间要求,响应必须达到百分之一秒。

项目发布之后,所有的bug修了一遍,功能都照设计的运行了,连广告费也如愿产生了。但是维持生计似乎还不够。所以决定去找个工作。

心想有这么个参照,工作应该不难找,然而人生就是这么不堪,移动开发市场经过一段时间的过热终于饱和了,连就业市场也转冷。简历发出去都没有回应。当然我也没有那么急,市场总归是浪打浪,有波峰就有波谷,咱耐心点就是了。而且经过这个项目的洗礼,心态也比较成熟。咱也钻研人工智能去了。

小区,新认识了一个老太太,Sophia,八十八岁了。看我成天在会所坐着写程序,哪儿也不去,以为我很闲,求我帮忙开车送她到银行办事。不料送了一次之后,就没完了,今天去银行,明天去超市,后天去药店。每次去都要等上超过一个小时才能办好事。我就问她有手机没,可以叫Uber或者Lyft,最不济我也不用干等那儿,她办完事给我一电话我再接就行。不料老太太油盐不进,竟然说自己没有手机。实在没有那个勇气问她儿女在哪,我不怕侵犯隐私,不过真的怕老太太伤心。老婆说这老太太是我的闺蜜。

这不,今天闺蜜又来了,想开溜都有难度。想挣点钱,时间还被闺蜜挤压。没办法,做做广告,各位如果有减肥或者专业健身的需求,到安卓市场下载BDTimer试试吧

https://play.google.com/store/apps/details?id=com.bigdecimap.BDTimer

告诉自己的健身教练,做个计划,创建个日历,分享给自己。人人都值得拥有健康活力的身体不是?


Thursday, 8 June 2017

互联网封锁形势

商业公司是中国政府的首要客户,可继续维持垄断。只说说个人吧。

域名:在国外购买的域名,纸面上的法律规定可以在国内备案,但实际成本太高,基本无法操作。在国内购买的话,个人无法注册.com,.info等域名,因为必须提供商业实体信息。

实际网站,电邮等实体:如果使用国外购买的域名,政府禁止国内的网商,例如阿里,腾讯,等提供服务,无论是基本的主机,电邮,还是商业服务,因为这些域名没有在工信部备案。再次强调,这只是针对个人。

国内个人在互联网上的发声通道已经被完全堵死,和猪猡没有区别。

但这也是普通中国人获得话语权的唯一机会,如果能达成如下共识:

白箱监管,任何人可以注册网站,提供任何网络服务。

网站本身散布不实消息必须承担责任。甚至可能导致网站被封锁,经济,刑事等一系列责任。

反过来,封锁网站必须有司法授权程序,被封锁网站必须有司法救济程序。无故封锁网站的责任人必须受到惩罚,例如赔偿被封锁网站的损失。

网站相关的诉讼,不涉及实体暴力的,任何一方同意的话,可以由抽签组成陪审团陪审。希望中国的计算机大佬们能投资开发这样的抽签流程。