guochao 最近的时间轴更新
guochao

guochao

V2EX 第 448797 号会员,加入于 2019-10-24 09:37:55 +08:00
guochao 最近回复了
88 天前
回复了 onice 创建的主题 Linux 为什么你要用 Linux 当桌面呢?
@skiy 我是觉得国内现在首先就是缺生态,缺应用,普通用户用不起来。其实底层的东西国内做了很多了,lvs 、tidb 、nginx 、linux 内核模块(比如说华为),甚至有些差不多算是正常用的服务器用的国产的 CPU (有些网站就跑在这些服务器上)。有了用户才知道脖子被别人卡在了什么地方,知道下来要做什么优化什么,没有用户就空想只能给别人养用户,或者做了东西有问题但是发现不了。

碎片化这个是个问题,但是不只是版本的问题,版本其实还好,snap 之类的工具就是解决这些。主要是桌面环境本身的能力,有的环境有 A 有 B 没 C,有的有 A 有 C 没 B 。鸿蒙、Fuchsia 都是把能力细化以后,应用按照能力分发,比如说现在 Android 本地 apk 只是一个形式,内部都是分解开的,分发的不一定是一个完整的应用。
88 天前
回复了 onice 创建的主题 Linux 为什么你要用 Linux 当桌面呢?
Linux 下你对自己负责,任何商业软件下你希望其他人负责。抛开特别的生态需求,系统之间没啥差别。我选择 Linux 只是因为习惯了,很多人选择 Windows 也是类似的原因。另一方面 Windows 用户多可能和商业原因有关,硬件厂商很多会天然亲近 Wintel,我最近遇到的问题是主板有一天只能找到 Windows 的 bootloader 了( UEFI Shell 可以直接引导起来其他的 bootloader,说明包括 Secure Boot 在内的其他东西没问题),我自己感觉和厂商有关系,但是毕竟没有实锤,我不做 BIOS 给我代码我也锤不了。

非要说问题的话。

Linux 的主要问题在于碎片化,不同的环境满足的条件不一样,进而导致不同的应用表现差异有大有小。安卓也是类似的问题。再有就是权限放开以后大家认为法无禁止皆可为,可是 Linux 什么都没有禁止,就有很多人以为什么事情都可以做,做了也没关系。我自己平时也搞一些 Linux 桌面中间件(就是老看更新的 dbus 的各种服务),所以现在的工作也和 Linux 桌面生态有关。桌面环境一般够好了,不管是操作还是渲染效率。出问题八成是没有理解逻辑做了没法负责的事情。有的应用或者硬件不成熟是一定的,缺少(行为随机的普通)用户使用的产品都是缺少验证的,但是作为开发者不觉得是大问题,只是什么时候生态够大,大到能逐渐容纳用户、验证产品。那当然产品也要分情况,普通用户就限制死,不要做自己负责不了的傻事儿,需要开发东西了再考虑放开权限,其实就是 UOS/ChromeOS 的思路。啥?你说 configure 、make 、sudo make 不是正常操作么,凭啥不让我做?这还真不是正常操作,毕竟楼上大多出问题的连 ld 都没搞清楚过,Linux 对大部分人只是一个平台,一个环境,但是不是研究对象,知道 epoll 知道内核的某些模块知道一些原理不代表理解了 Linux 。就像是你很熟悉飞机的面板制造工艺,能说自己熟悉飞机整体么?能在家目录里面装上包配置环境,让二进制能被找到,这对于大部分人来说已经足够了,包括大部分的研发。

Windows 不熟悉,但是遇到过中文路径的问题,anaconda 很难和其他工具集成,conda 没法用系统代理(每次直接报错,必须关了代理再跑 conda ),环境变量管理复杂,桌面卡死,复制时系统失去响应,dotnet 为啥 udp 还要报端口拒绝,QQ+虚拟机+游戏有概率会死,构建的时候索引和桌面占资源太多,音频有驱动有输出没声音,某些版本的一些软件终端渲染很慢( tty 的水准),硬件 passthrough 没搞懂怎么搞,应用之间不怎么好隔离,Windows 容器占的内存也太夸张了。但是赢就赢在有生态,另外 WSL2 的效率勉勉强强及格了,只是桌面还是很怪异,没法日常用。尝试了几年的微软栈以后,最后放弃了 Windows 。

回到一开始,我不用 Windows 只是因为我习惯了 Linux,而且 Linux 的生态可以满足我的需要,3D 建模、文档、简单的 CAD 、简单的电路设计,这些在 Linux 上面对我来说足够了。反过来说,如果没有这些生态,那我推荐你用 Windows,毕竟讨论独占生态没有意义,XBbox 没有地平线零之曙光就是不好了么,只是零之曙光选择了 PS4 独占而已。
@hongqn 有兴趣加个微信吗:base64:Z3VvY2hhbzMwNTQyMQ==
177 天前
回复了 EscYezi 创建的主题 程序员 git 仓库同步到坚果云上后损坏了
@hanssx 就是正常的 Git 托管服务啊,用 git 来推送或者拉取就好了
243 天前
回复了 EscYezi 创建的主题 程序员 git 仓库同步到坚果云上后损坏了
git 会快速操作大量文件,并且涉及到 filemode 一类的文件属性的操作,同步盘本质是把文件内容修改排队上传,定期 squash,有意外情况的时候(比如说在很短时间内增减同一个路径上的文件)很容易破坏 git 树,而且无法保留 filemode 也会丢失非常多信息。类似的是 vim,也会快速的增删文件

直接提交到 git{hub,lab,ee}吧,gitlab 在国内也建了团队,gitee 和 gitlab 在国内的可用性应该都会相对越来越好
说实话,价格和任何其他的特点是冲突的。便宜的就要牺牲太多东西。

之前在坚果云工作了几年,网盘存储要钱,同步盘流量烧钱,计算靠人力优化架构和堆服务器,都是成本。要做 p2p 类的东西还可能涉及到政策限制。是做企业的不是做慈善的,很难有又便宜的服务。

建议就是根据需要把资源分到不同的地方,百度云或者自建存储存媒体,坚果云或者 icloud 或者 dropbox 存文档,git 托管代码。
赞。氛围很不错的
302 天前
回复了 RandomAccess 创建的主题 Python 关于 Python event loop
简单说 python 的 event loop 是一个单进程单线程单个 loop 执行 coroutine 的过程。asyncio.run 就是一个创建 loop 并且 run until complete 的过程,new event loop 又建了一个,没有必要。

解决办法就是让整个程序的入口是一个 async 函数,在 async 函数中配置程序,新建各种实例,启动应用。在__main__里面 asyncio.run(entrypoint())就行。然后在任何其他地方都不要 new_event_loop 或者 asyncio.run

如果要执行一个 coroutine 但是不等待结束,可以 asyncio.ensure_future 或者 3.7 以上的新 API asyncio.create_task,这两个函数都是在 get_event_loop()返回的 loop 上执行对应的函数,会返回一个 Task
如果要在一个 coroutine 中执行一个 coroutine 并且等待结束,那就直接 await 。
如果要执行一个同步过程,可以用 run_in_executor,返回一个 Future
关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1025 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 10ms · UTC 22:55 · PVG 06:55 · LAX 14:55 · JFK 17:55
♥ Do have faith in what you're doing.