We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Photo by Alex Escu on Unsplash
最近,网络上出现了很多关于中国技术困境的问题,有讨论操作系统的,有讨论浏览器内核的,不同领域各有不同的关注点,看起来纷繁复杂。但核心问题是相通的,那就是,中国企业为什么没有做出这样的产品。
中国技术困境
为什么呢?
很多热门回答解释说,欧美已经在中国的前面做出了这样的产品,而且已经形成占领市场的事实。中国企业只要拿来用就好了,没有必要做,不划算。
更有回答说,这些产品的技术含量并不高(来自某音技术博主),中国企业决心做,就一定做的出来。既然这么容易就能做出来,也就不用担心。只要想要,分分钟做出来。
也有道理,市场上有免费的东西可以用,为什么不用呢?非要自己搞一套,又是何苦?对吧。所以中国企业不做,是正确的,智慧的。反之欧美企业都是人傻钱多。
但是,欧美企业为什么总是偏执的要搞一套呢?为什么苹果不用塞班,非要搞一套 IOS?为什么谷歌不用塞班,非要投资 Android?微软 IE 如何中天时,谷歌干嘛要做 Chrome 呢?
还有最近,中国的华为,又为什么要搞自己的鸿蒙 OS 呢?
上面的那些公司,在国际上是什么地位,不用我多说了吧。华为,是欧美无比忌惮的中国公司。而谷歌,你们知道谷歌为什么被赶出去吗?微软在欧洲吃了多少反垄断罚单,感兴趣的可以去查查。
他们之所以被针对,是因为他们太大太强。他们太大太强,是因为他们蠢。市面到处都是免费产品,他们不用,非要自己干。蠢不蠢?
蠢,反而做大做强,你说奇怪不奇怪。
中国的技术困境,相当一部分的原因,就在于中国人不蠢。不仅不蠢,反而绝顶聪明。什么硬核技术,有电商赚钱吗?很多人跑到国外,看到老外的App简陋到无以复加,连个扫码支付都没有,就觉得祖国强大。可是在这看起来美好的强大背后,是太多太多关键的技术领域,没有中国力量。
最近两年在芯片领域,中国各种被卡脖子。软件领域其实也不安全。前段时间有新闻说,中国高校被限制不能使用 MATALAB,一个工业软件。当你并不掌握某项技术,也没有等价物可以交换,就会面临这样的风险。别人想卡你就卡你,丝毫不担心你报复。
现在回头看前面的言论,是不是不再觉得头头是道了。的确,当我们总是绕开核心问题,总是轻描淡写的拿来主义时,的确节省了很多时间精力财力,但是免费的东西自有其代价。这个代价就是,你会依赖它。当它弱小时,这种依赖还不强烈,当它变得强大,拥有了自己的知名度,生态圈,社区,粉丝,这种依赖就成为根深蒂固的顽疾。你的客户,员工,周边的舆论,都在围绕着它做文章,再谈摆脱依赖,谈何容易?
最后,那些看起来愚蠢的欧美同行,反而走在了前面。
艾德信任小指头,是让人非常迷惑的行为。初见小指头时,艾德非常不齿其为人,反感厌恶溢于言表,但兴许是凯特的从中协调,艾德开始接纳小指头。在很多场合,艾德对小指头的信任让人惊讶,比如,拜托小指头拉拢都城守卫队。但同时,艾德对小指头为人轻佻的反感,一直都没有消失。所以,艾德其实是矛盾的,一方面,艾德不喜欢小指头的作风,另一方面,因为凯特的缘故,艾德不得不信任小指头。而且,艾德似乎有一种简单的特质,一旦他选择相信,就深信不疑。这种选择,在领主的位置上,那叫做用人不疑,是加分项。但是在疑云诡谲的君临城,作为一个根基浅薄的外来户,这却是无比危险的行为。就像小指头所说,你不该信任任何一个人。他没有说错。
当然,艾德之死的确是一个意外。如果没有乔佛里,他会披上黑衣,会成为黑城堡的下一任司令官,会在与异鬼的战斗中建立功勋抑或战死沙场。可是没有如果。
TL
我最近在折腾一个类似 codesandbox 的项目, 名字叫 TL,与 codesandbox 不同的是,我打算支持更灵活的构建配置。这就需要用到 Docker。每个 sandbox 对应一个 Docker Contailer。这当然有点奢侈,如果未来 sandbox 数量太多,服务器的资源消耗是个大问题。这也是为什么 codesandbox 选择用浏览器构建这种重客户端轻服务端的方式来组织底层,因为横向扩容没有限制。sandbox 增长需要的只是更多硬盘容量,而不是 CPU。
codesandbox
当然,目前我并不需要担心这些事情。
假设用户创建了一个 sandbox,如何运行 sandbox 呢?简单来说,经历以下步骤:
这里比较关键的问题在于,如何动态的匹配路径。比如,对于 8080 端口而言,用户会前往(当然是前台打开这样的 tab 或者 iframe)https://tl.io/sandbox/8080 查看 sandbox。如何在 nginx 做这样的映射呢?
https://tl.io/sandbox/8080
nginx 的 location 支持正则表达式,所以
location ~* /sandbox/[^/]+/ { proxy_pass http://localhost:$1; }
当然这并不完美,在 URL 里放 8080 这样看起来就是端口号的方式,既不安全,又不美观。最好的办法莫过于用一个 Redis,存放 uuid 和 端口号的映射。前台拿到的是 uuid,后台,nginx 参考 Redis 的记录动态匹配。这里我还没折腾明白。
另外一个事情,是如何自动化 Docker。前面所属的三个步骤,前两个与 Docker 相关,现在都是我手动的。这个当然是要放在 service,当用户启动 sandbox,service 自动完成代码下载,Docker 构建启动。用程序语言操作 Docker 是可行的,只是貌似只有 Golang 和 Python 的支持,而我想写 TypeScript。
至于如何优化,我想到的一些,缓存 image,Contailer 存活时间,热启动,这些都需要慢慢打磨。
还有,看到 wasm 这么强大,是不是可以在浏览器端低成本的引入golang的构建。
wasm
想做的事太多。奈何时间有限。
The text was updated successfully, but these errors were encountered:
No branches or pull requests
封面
Photo by Alex Escu on Unsplash
本周主题
最近,网络上出现了很多关于
中国技术困境
的问题,有讨论操作系统的,有讨论浏览器内核的,不同领域各有不同的关注点,看起来纷繁复杂。但核心问题是相通的,那就是,中国企业为什么没有做出这样的产品。为什么呢?
很多热门回答解释说,欧美已经在中国的前面做出了这样的产品,而且已经形成占领市场的事实。中国企业只要拿来用就好了,没有必要做,不划算。
更有回答说,这些产品的技术含量并不高(来自某音技术博主),中国企业决心做,就一定做的出来。既然这么容易就能做出来,也就不用担心。只要想要,分分钟做出来。
也有道理,市场上有免费的东西可以用,为什么不用呢?非要自己搞一套,又是何苦?对吧。所以中国企业不做,是正确的,智慧的。反之欧美企业都是人傻钱多。
但是,欧美企业为什么总是偏执的要搞一套呢?为什么苹果不用塞班,非要搞一套 IOS?为什么谷歌不用塞班,非要投资 Android?微软 IE 如何中天时,谷歌干嘛要做 Chrome 呢?
还有最近,中国的华为,又为什么要搞自己的鸿蒙 OS 呢?
上面的那些公司,在国际上是什么地位,不用我多说了吧。华为,是欧美无比忌惮的中国公司。而谷歌,你们知道谷歌为什么被赶出去吗?微软在欧洲吃了多少反垄断罚单,感兴趣的可以去查查。
他们之所以被针对,是因为他们太大太强。他们太大太强,是因为他们蠢。市面到处都是免费产品,他们不用,非要自己干。蠢不蠢?
蠢,反而做大做强,你说奇怪不奇怪。
中国的技术困境,相当一部分的原因,就在于中国人不蠢。不仅不蠢,反而绝顶聪明。什么硬核技术,有电商赚钱吗?很多人跑到国外,看到老外的App简陋到无以复加,连个扫码支付都没有,就觉得祖国强大。可是在这看起来美好的强大背后,是太多太多关键的技术领域,没有中国力量。
最近两年在芯片领域,中国各种被卡脖子。软件领域其实也不安全。前段时间有新闻说,中国高校被限制不能使用 MATALAB,一个工业软件。当你并不掌握某项技术,也没有等价物可以交换,就会面临这样的风险。别人想卡你就卡你,丝毫不担心你报复。
现在回头看前面的言论,是不是不再觉得头头是道了。的确,当我们总是绕开核心问题,总是轻描淡写的拿来主义时,的确节省了很多时间精力财力,但是免费的东西自有其代价。这个代价就是,你会依赖它。当它弱小时,这种依赖还不强烈,当它变得强大,拥有了自己的知名度,生态圈,社区,粉丝,这种依赖就成为根深蒂固的顽疾。你的客户,员工,周边的舆论,都在围绕着它做文章,再谈摆脱依赖,谈何容易?
最后,那些看起来愚蠢的欧美同行,反而走在了前面。
读书
冰与火之歌
艾德信任小指头,是让人非常迷惑的行为。初见小指头时,艾德非常不齿其为人,反感厌恶溢于言表,但兴许是凯特的从中协调,艾德开始接纳小指头。在很多场合,艾德对小指头的信任让人惊讶,比如,拜托小指头拉拢都城守卫队。但同时,艾德对小指头为人轻佻的反感,一直都没有消失。所以,艾德其实是矛盾的,一方面,艾德不喜欢小指头的作风,另一方面,因为凯特的缘故,艾德不得不信任小指头。而且,艾德似乎有一种简单的特质,一旦他选择相信,就深信不疑。这种选择,在领主的位置上,那叫做用人不疑,是加分项。但是在疑云诡谲的君临城,作为一个根基浅薄的外来户,这却是无比危险的行为。就像小指头所说,你不该信任任何一个人。他没有说错。
当然,艾德之死的确是一个意外。如果没有乔佛里,他会披上黑衣,会成为黑城堡的下一任司令官,会在与异鬼的战斗中建立功勋抑或战死沙场。可是没有如果。
折腾
TL
我最近在折腾一个类似 codesandbox 的项目, 名字叫
TL
,与 codesandbox 不同的是,我打算支持更灵活的构建配置。这就需要用到 Docker。每个 sandbox 对应一个 Docker Contailer。这当然有点奢侈,如果未来 sandbox 数量太多,服务器的资源消耗是个大问题。这也是为什么codesandbox
选择用浏览器构建这种重客户端轻服务端的方式来组织底层,因为横向扩容没有限制。sandbox 增长需要的只是更多硬盘容量,而不是 CPU。当然,目前我并不需要担心这些事情。
假设用户创建了一个 sandbox,如何运行 sandbox 呢?简单来说,经历以下步骤:
这里比较关键的问题在于,如何动态的匹配路径。比如,对于 8080 端口而言,用户会前往(当然是前台打开这样的 tab 或者 iframe)
https://tl.io/sandbox/8080
查看 sandbox。如何在 nginx 做这样的映射呢?nginx 的 location 支持正则表达式,所以
当然这并不完美,在 URL 里放 8080 这样看起来就是端口号的方式,既不安全,又不美观。最好的办法莫过于用一个 Redis,存放 uuid 和 端口号的映射。前台拿到的是 uuid,后台,nginx 参考 Redis 的记录动态匹配。这里我还没折腾明白。
另外一个事情,是如何自动化 Docker。前面所属的三个步骤,前两个与 Docker 相关,现在都是我手动的。这个当然是要放在 service,当用户启动 sandbox,service 自动完成代码下载,Docker 构建启动。用程序语言操作 Docker 是可行的,只是貌似只有 Golang 和 Python 的支持,而我想写 TypeScript。
至于如何优化,我想到的一些,缓存 image,Contailer 存活时间,热启动,这些都需要慢慢打磨。
还有,看到
wasm
这么强大,是不是可以在浏览器端低成本的引入golang的构建。想做的事太多。奈何时间有限。
The text was updated successfully, but these errors were encountered: