V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  secondwtq  ›  全部回复第 38 页 / 共 123 页
回复总数  2453
1 ... 34  35  36  37  38  39  40  41  42  43 ... 123  
2021-06-08 18:19:12 +08:00
回复了 MinecraftFuns 创建的主题 全球工单系统 jsDelivr 503 Service Unavailable
https://news.ycombinator.com/item?id=27432408
https://news.ycombinator.com/item?id=27432343
"Building distributed systems, geo-redundant and whatnot - just to make some external service your SPoF?"
高并发 高并发.jpg
2021-06-07 20:48:02 +08:00
回复了 Livid 创建的主题 健康 关于 Dark Mode 和阅读,最近看到了这样的一篇文章
@namelosw 配个 Times New Roman 或者 SimSun 字体呗
是啊,再也不是傻傻的无类型语言了。我们 JS 真的是太厉害啦!
2021-06-07 19:13:43 +08:00
回复了 hxys 创建的主题 互联网 由于 stack overflow 被收购,防止 vip 化。放出备份链接 78G
这数据看起来是很早之前官方就开始上传了,好像不新鲜。
说起来最近两天逛 HN 正好看到了这个: https://news.ycombinator.com/item?id=3368812,SO 官方居然提供了在线查询这份数据的界面 http://data.stackexchange.com ( again,至少十年前就有了,不知道以后会不会下掉)
2021-06-04 05:04:06 +08:00
回复了 Not404 创建的主题 Java 关于 Java 类的向上转型和向下转型的疑问
搜 Java array covariant
这是做什么?
1.1.1.1 是个 DNS 服务器,one.one.one.one 是个域名,我想要用域名,首先得弄个 DNS 服务器,而要用这个 DNS 服务器,我先得解析这个域名。我要是有了 DNS 服务器,为什么还需要域名?
2021-06-03 19:43:40 +08:00
回复了 Livid 创建的主题 健康 关于 Dark Mode 和阅读,最近看到了这样的一篇文章
噢对了,这样有个缺点,就是现在深色背景的 color scheme 好像相对比较多,浅色背景的不太好找。
2021-06-03 19:42:47 +08:00
回复了 Livid 创建的主题 健康 关于 Dark Mode 和阅读,最近看到了这样的一篇文章
我也是一直纯白背景。倒不是因为别的,只是因为大多数非电子屏幕的阅读场景( i.e. 纸张)都是白底黑字,这样更统一一点(也就是追求“接近纸张的阅读感受”)。
而且我 assume 现在的大多数字体都是以浅色背景为主要场景设计的,配合浅色背景更合适。
用多了反而不习惯达克木德了。
2021-06-03 00:26:40 +08:00
回复了 WilsonGGG 创建的主题 Firefox Firefox 89 更新了设计语言,感觉不错
@vkbo 20 来年 ... 大概这东西有专利吧 ...
2021-06-02 00:37:37 +08:00
回复了 XIVN1987 创建的主题 Python Python 有没有能从 elf 文件中解析出函数调用关系的 lib?
方向错了,ELF 只是个容器,里面啥都可以存的
也就是说你这个问题相当于,有没有一个机箱可以玩 2077 ?
2021-06-01 00:57:37 +08:00
回复了 benmaowang 创建的主题 耳机 三千块整个解码耳放+耳机,有意义没?
耳机肯定有,其他的不一定
推荐试下大耳,感觉跟塞子不一样,虽然现在便宜塞子貌似做得也不错
这东西我也搞过,弄了个 Google Sheets 拉公式,不仅搞过 CPU,还搞过 GPU
算得比你这个稍微精细一点,还顺便记了 SIMD 宽度,SIMD 全核 boost 频率之类的
GPU 还记了每 FLOPS 的 VRAM 带宽
以及还算了全系统价格,CB 分数(因为我的 workload 和 CB 类似)
结论是老 Xeon 永远单身

不过纯粹 GCC 的话可以看这个
https://www.anandtech.com/bench/CPU-2020/2842
这个
https://openbenchmarking.org/test/pts/build-llvm&eval=88f6fd656ea815b1ef1c419a9d16092db0a50b56#metrics
以及这个
https://openbenchmarking.org/test/pts/build-gcc&eval=98d2ecc26a5dd0b83cc7e52eb9db72c9210222d1#metrics
https://openbenchmarking.org/test/pts/build-linux-kernel

看了下 10900 确实还凑合,不过单论性价比 5600X 可能一点不差
2021-05-29 18:27:43 +08:00
回复了 ETONG 创建的主题 NAS 虚拟出来的 freenas 可以支持虚拟化吗?
Jails 也是 OS 级别的”虚拟化”,你说呢
2021-05-28 19:54:19 +08:00
回复了 vevlins 创建的主题 程序员 lowcode 是不是在断后人的路?
对于我们这种加速壬来说,断掉越多人的路越好。
当然如楼主所说,这货可能只有吹得好,实际并不能断掉什么路,那这种破事也是越多越好的。
2021-05-23 23:58:24 +08:00
回复了 samin 创建的主题 程序员 关于低(零)代码平台的看法
这么说吧,宣扬所谓“低”代码,“零”代码的人,他 /她的格局和水准,和这个代码的量基本是成正比的。

套用新闻界某著名人士的著名发言:

> 难道我们现在指望的是,做软件很容易,然后随便有手就能做,然后一点难度都没有,然后只要拍脑袋想出的功能,屏幕上点一点就实现了,不会吧?

> 不会吧?不会吧?!
作为做 LLVM 的来说一下吧,学 C++ 看 GCC 更像是“学开车去看发动机制造原理”,GCC 代码是 C 的底子,本身确实“跟 C++ 没啥关系”,LLVM 则是个彻底的现代 C++ 项目

首先,LLVM 早已经不是一个简单的“编译框架”,现在的 LLVM 既可以指狭义的“LLVM Proper”(这词是我自己 coin 的,只是为了区分,社区没这说法),即“基于 LLVM IR,提供优化和代码生成的框架”,也可以指广义的“LLVM Project”,即“以 LLVM Proper 为中心,由 LLVM 社区所管理的一系列项目”,LLVM Project 包含 “LLVM Proper” 编译框架,Clang C/C++/Objective-C/OpenCL/CUDA ... 前端,LLD 链接器,LLDB 调试器,libc++ C++ 标准库,compiler-rt 运行库,llvm-libc C 标准库,Flang Fortran 前端和 MLIR 等一系列项目,一起构成一个 monorepo,但是每个项目的实践都有或大或小的不同

对于一个非编译器相关的开发者而言,我认为 LLVM 最值得学习的是它的基础设施
LLVM 的核心理念之一是“把一切功能封装成一个库”,也就是说 LLVM 本体是“库”。LLVM 会编译出许多 executable,但是这些 executable 绝大多数都是对库的简单 CLI 封装( Clang 除外,因为要与其他编译器兼容,Clang 的 Driver 层做得格外重),也就是说你自己的程序里面也可以调同样的库来实现类似的功能。举个例子,比如 clang 带一个程序叫 clang-rename,实现了“重命名符号”的代码重构操作,但是这个程序只有几百行,功能实际是在 clang/Tooling/Refactoring/Rename 这个库里实现,而这个库又依赖于 Clang 的 Refactoring 库和语义分析库 ... 我自己就利用这个特性做过简单的代码生成小工具: https://github.com/secondwtq/einstein/blob/master/Einstein.cpp
把一切封装为“库”的目的就是最大化复用,也就是说这个理念背后的隐含意思是“基础设施能帮你做的都会尽量帮你做,你只需要写你自己需要的东西就行”
比如说 LLVM 提供了一整套的容器和数据结构,这些基本上都是通用的,很值得一看
LLVM 的若干公用模块大量使用了模板
LLVM 大多数模块都天生非常适合自动化测试,LLVM 也有完整的测试设施,常用的有 gtest 单元测试,LIT 测试和运行时集成测试三级。做编译器经常出现改东边的东西影响到西边的测试的情况,针对这种状况 LLVM 给你准备好了自动更新测试用例的脚本。
作为一个通用的编译器框架,LLVM 支持很多指令集,不同指令集通用的算法(如指令选择、寄存器分配等)被封装成了一个叫做 CodeGen 的库,而针对每一个指令集的支持都是一个单独的模块(前两个月刚有人搞了个 68000 的支持 ...),每一个指令集都需要定义大量的指令,为了解决这个问题,LLVM 搞了一个叫 TableGen 的 DSL 做代码生成,这个东西统一地解决了指令集定义、指令选择、调用约定、微架构细节定义、CLI 选项定义等一系列问题。这么一整套框架做下来,添加新指令集,添加新指令,很大程度上都是重复性工作。

另外,抛开 LLVM 源码来说,学习 C++,不可不学各种新的工具,而 Clang 占据了半壁江山;不可不了解编译器优化,一般非编译器开发者研究优化都是看汇编,也就是看个一头一尾,但是了解 LLVM IR 就能看中间;不可不看 CppCon 等前沿实践,而其中最有趣的之一就是 LLVM 社区大佬 Chandler Carruth 的基于自己开发经验的系列演讲

不足的地方:
LLVM 作为传统的编译器(也就是说还是主要面向 C/C++)整体设计并没有偏离传统太多,后果之一是里面跟多线程有关的东西很少(因为传统编译器不需要这玩意,直接多进程点到为止就行了),还有一堆全局状态,学这方面的你得另请高明
编译时间太 TM 长 ... 普通 PC 少说半小时吧,我用服务器也得 10 分钟,而且还很大,GCC 就很快(但是好处是需要的依赖很少,只是吃 CPU 而已,基本不用折腾,浏览器则是真正的 worst case,代码量和依赖都很多)
说是把所有东西都做成了库,实际上不同的库之间是互相依赖的,加起来光库就有好几十 M,也就是说很难做到单独拿出一个东西能用。这个理念的意义更主要还是在于,只要你依赖了 LLVM,里面的东西可以随便单独拿出来调用——但是前提是你依赖了 LLVM,这个逻辑就好像“你如果入了苹果的坑,很多东西都会看上去很好(之所以‘看上去很好’是因为金玉其外败絮其中),但是你必须听苹果的话”( GitHub 上甚至有人做把 LLVM 项目里面特定模块单独拎出来的项目)
如果你是 LLVM 的用户,你会发现它的 API 也不是很稳定,很多老项目都直接钉死某一个 LLVM 版本,因为维护成本不低(这进一步说明了 LLVM 的“现代性”:写程序一把梭,刷版本号就得了)
2021-05-23 11:23:25 +08:00
回复了 Livid 创建的主题 游戏开发 MagicaCSG
hmm 总感觉单纯 CSG 的能力是有极限的,能结合 loft/sweep 和雕刻之类的,或者干脆和 MagicaVoxel 结合起来会更好
2021-05-21 22:32:59 +08:00
回复了 noogler67 创建的主题 职场话题 基层工作选择, b 站和特斯拉
芯片大佬 Jim Keller,LLVM 和 Swift 项目创始人 Chris Lattner 都在特斯拉呆过
然后没待两年就走了
也许是他们觉得自己不配跟 Elon Musk 这么优秀的人共事?
你这还真是方向问题,类似的东西许多静态类型语言都有”参照”,但动态类型语言里面就是不好找
Swift 里面叫 protocol
Go 里面叫 interface
Rust 里面叫 trait
C++ 里面叫 concept
Haskell 里面叫 typeclass
ML 里面叫 module
Java/C# 里面也叫 interface

动态类型语言 by definition 一般没这习惯…
1 ... 34  35  36  37  38  39  40  41  42  43 ... 123  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1016 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 53ms · UTC 21:04 · PVG 05:04 · LAX 13:04 · JFK 16:04
Developed with CodeLauncher
♥ Do have faith in what you're doing.