微信小程序可能是近几年最耀眼的技术突破
当我们谈论微信小程序的时候,会有一种怪怪的感觉,我们会想尽一切办法找出这个点子是腾讯抄谁的。可是很遗憾,想来先去,也找不到,感觉小程序就像之前火过一阵的轻应用,于是感觉放心了,说来说去,也就是新瓶装旧酒。可是,我却认为,微信小程序,是近几年国内甚至国际上最耀眼的技术突破。
首先,我们要先确定一下为什么说它最耀眼。我之所以这么认为,是从产品的角度考虑。这世界上的产品无穷无尽,但是,真正有商业价值,并且就像一片空白,有待发挥巨大潜力的,并不多。早几年3D打印被认为不得了,可如今呢?之后VR火的不行,结果呢?如今,人工智能大行。一个产品,它是否具备非常大潜力的商业价值,要从它内在的实用价值,和它外在的市场规律去看。互联网技术的商业价值非常大,但在互联网早期,一切都是空白的时候,很多人看不到。互联网本身所带来实用场景颠覆毋庸置疑,问题在于,这样的颠覆是否符合市场规律?所谓符合市场规律,其实本质在于是否天时地利人和。中国最早的电商网站8848,它遇上错误的时间,互联网本身不普及,没有足够的信任体系(支付体系),快递成本高周期长,面向消费者的销售问题复杂。而阿里巴巴则看到这些弊病,它做了两件事:1.做企业间的生意,以商务解决互联网问题;2.即使再困难,也稳住不死,等待时机。对于微信小程序而言,它重新定义了一款服务的呈现方式,使商家可以脱离系统底层,快速开发服务,而且,小程序本身定了很多规矩,从某种层面讲,它用自己的方式制定了原则,这就像app store分发一样,有利于整个生态的良性循环。只要稳住不死不胡来,它就充满无限的遐想。
其次,为什么说它是技术突破?小程序底层要解决非常多兼容性问题,同时,它从另一个角度重新定义混合式开发的模式。它的开发方式和reactnative、weex很像,但是又不相同。一方面,它要解决reactnative一样的问题,即如何将基于前端技术开发的代码解构为可以和系统交互的代码,解决通信,解决视图渲染。另一方面,它要解决如何兼容微信所依托的整个平台,以及底层的系统。很多人觉得,我有一套H5就够了,微信里面照样可以被传播不是吗,干嘛非得有一套小程序呢?我们不从商业角度去考虑,而从技术出发。小程序给了开发者另外一片天地。在小程序之前,前端开发基本就是面向浏览器,面向浏览器的开发必然遇到浏览器本身的瓶颈。而小程序提供了另外一种可能。它用规范化的语言方式,并且在后台提供微服务,让编程更像是以最终产品为导向,而非以过程解决问题为导向。而且小程序是可升级的,它伴随着微信版本的升级而升级,因此,任何的瓶颈都有可商量的余地,开发者觉得有些地方实在不行,可以提,这是中国人自己掌握的技术。
小程序本身不会作为一款商业产品发布,发布小程序这个动作本身不收费,虽然要有发布资格需要付费认证。它更多的是作为一个平台,一个接入层,对接服务,把原本极其笨重的服务轻量化,对于用户而言,感知不到,对于微信本身而言,虽然自身能实现的东西有限,但却依赖这一平台,实现了无限的可能性。微信本身已经越来越重,如果再提供更多服务,几乎是不可能的,相反,小程序的出现,让社交、服务、支付、游戏等等融合一体,可谓是近20年中国互联网创业者的最终梦想。
什么样的产品算优秀?
在香港过十字路口时,红绿灯会响,慢响表示等待,快响表示可以通行。红绿灯不像大陆那么高,给车看,而是矮墩墩的,等的人可以按。一盏红绿灯,红色代表停,绿色代表行,但是如果是有红绿色盲的人呢?所以,红绿灯除了要有颜色状态之外,还要有声音状态,还要有静动的状态。
谈论一个产品是否优秀,是从它的外观考虑?从档次考虑?从价格考虑?还是从实用性考虑?都不是。一款优秀的产品,它的灵魂决定了它的它的用户是否可以热爱它,忘记它,把它融入自己的生活。什么是一款产品的灵魂?是它抱着怎样的价值观,以怎样的形式,为自己的用户服务。
灵魂,它的本质是爱,是仁,是对这世界的期待。它期待这世界变得美好,它期待这世界温柔待它。
一款优秀的产品,当它离开它的设计者的手,它就有了自己的生命。它所传递给用户的,是关爱,是拥抱,是对未来的向往,它就像黑夜里不烈不晃的光,它照亮路人前行。如果问这世界上,怎样的产品算一款优秀的产品,或许,它被注入了创造者最温柔的一面吧。
在iphone上写代码是怎样的一种体验?
说到写代码,好玩又有趣,心里有个想法,创意突然冒出来的时候,能不能马上把创意用代码表达出来呢?一台iphone满足你的这种需求。为了体验在iphone上写代码,我专门录制了一个视频。
视频中提到的软件有textastic,coda,codeanywhere。
另外,视频中关于local-remote的逻辑,我后来仔细想了一下,其实和filezilla的操作逻辑是一致的,我们在pc上使用sftp编辑远程文件,如果sftp软件不支持在线编辑,那其实和视频中的逻辑其实是一致的。
As wanted to programing on iPhone, I installed a application called Buffer Editor which costed me ¥60!! After a while using, I just want to say: what the fuck of this ¥60 shit!!!
- the shit UI which costed ¥30 unless the logo icon
- the shit features' usage costed ¥28 which make a coder like a foolish
- the left ¥2 given the author, go back home and wash your mind for 10 years
At last I have to install Textastic instead which cost ¥68. Both ¥60s, why your distance so much long? Even though Textast is less of features, the UI and the operation logic is like silk.
For all application developers: make your production worth for users, don't lose your face in public.
iMac升级之后,electron rebuild sqlite3失败
macOS出了新的版本,启用暗黑主题之后各种不习惯,又切回原来的主题。今天在build electron应用的时候,先是直接报错,不能electron-rebuild,接着发现sqlite3 rebuild失败了,各种坑。
解决这个问题先要:
sudo xcode-select --install
这样可以解决electron-rebuild无法使用的问题。接下来,修改rebuild sqlite3的命令为下:
electron-rebuild -f --module-dir ./node_modules/sqlite3/
也就是说之前的--which-module参数现在不好用了,必须通过--module-dir来明确指定目录路径。相信后面应该会修复这个问题,现在暂时这样解决了。
文件选择框,只选文件夹
文件选择器,多选,只选择文件夹,根据需要挑选属性即可
<input type="file" webkitdirectory directory multiple/>
怪异空格引发的血案
在整理博客的过程中发现博客内有部分地方没有对齐。于是赶紧打开devtool看下。结果发现了神秘而怪异的现象。明明没有打空格的地方,却出现了实体 真的是着了魔般,怎么都干不掉。
![](https://www.tangshuang.net/wp-content/uploads/2018/09/Screen-Shot-2018-09-29-at-12.41.54-AM.png)
二维码和下面的文字没有对齐,查看后发现图片没对齐
第一反应是css出了问题,于是打开devtool试着调试css。结果,怎么搞都没办法。仔细去看HTML,发现出现了两个 。
可是我很清楚,这地方源码里面没有空格啊。于是想到自己的网页是经过ob content输出的,是不是php处理上出了什么问题,然后去翻开插件看,可是怎么读代码,都觉得应该不是这个问题。
于是又去看下网页源代码,怪异的事情发生了,明明网页源代码里面没有 啊。
难道是\t的问题?于是把源码中的这个地方删掉重新换行,结果,仍然还是这个问题。直到我开启了vscode的空格显示功能,才发现了异样。
你仔细看<img>前面的空格,发现这两个空格的宽度感觉很奇怪。于是删掉,自己打了两个空格,问题解决了。
正常的空格[ ],奇怪的空格[ ],请查看源码和在devtool中查看。
原来这两个空格是全角空格,也就是中文格式下的特殊字符。但是,这个空格在键盘上是打不出来的,要通过特殊的输入方式才能打出来,这是怎么产生的呢?我不可能写代码的时候,还这样去特意打两个全角空格吧。最后,看来是在不同的系统切换,不同的环境下,切换编辑时,留下的问题。
-
你这个情况,我博客上也有,不过仅限 Mac 和部分 Windows 之间。
比如我明明正常输入的一句话,在某些 Windows 下会看到句子里出现类似+号的奇怪字符。
自己的Win 8.1 和 公司的 Win 10下会看到,但有的读者说他们并没有看到,所以也不知道是什么机制了。#612 Betty 2018-09-30 11:28 -
上班时间逛博客,小同学,需求不包含啊😝#613 回复给#612 否子戈 2018-09-30 11:32
-
上班时间回评论,大同学,你需求不包含啊
我是今天休假了,要对自己好一点,哈哈哈#614 回复给#613 Betty 2018-09-30 11:36 -
提前休假真爽啊,岂不是要出去浪了#615 回复给#614 否子戈 2018-09-30 11:44
一个可能摧毁微信的二维码
今天群里红了一个二维码,扫这个二维码之后,手机就会出现自动重启的极端情况。经过测试,只有iphone上的微信会出现这样的问题,而安卓微信则幸免于难。
![](https://www.tangshuang.net/wp-content/uploads/2018/09/WechatIMG95.jpeg)
会让微信崩溃,手机重启的二维码(想清楚再扫哦)
瞬间这个二维码就在朋友圈儿红了,比如有人说这是个体验新产品的入口啦,有人说这是个幸运的抽奖啦,有人说这是个领红包的口令啦,等等,于是就开始有人试了,从此,两人恩断义绝,再无瓜葛……
作为有志向的程序员,当然要一探究竟了。先解码二维码,然后去看对应网页的源代码,于是呼撸,原来就是非常简单的嵌套黑洞。点击这里可以看源码的真正出处,放心,点进去没影响。
这是苹果给自己挖的坑。iOS用的网页排版引擎WebKit有个弱点,而这个引擎是苹果要求,所有app所有浏览器必须用的。只要在CSS的Backdrop-filter里嵌入大量元素,比如<div>标签,就可以耗尽设备的所有资源,造成内核错误(Kernel Panic) 。后果就是,关闭操作系统并重启,以避免设备受到伤害。只要在iOS上渲染了HTML,这15行代码就有效。
看完源代码,你懂了吗?