V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  FrankHB  ›  全部回复第 15 页 / 共 92 页
回复总数  1830
1 ... 11  12  13  14  15  16  17  18  19  20 ... 92  
2022-06-23 22:01:13 +08:00
回复了 yazinnnn 创建的主题 程序员 JVM 战士请教一个问题,各种语言都是怎样控制内存上限的?
@Building 我没正面回答么?是不是你看不懂什么叫 ISO C ?
退一步讲,你连 OP 都不是,我 at 你又不是私信,非得专门喂给你看的所以一定要浅显到连你都看得懂?
再退一步讲,为什么我有义务回答你经常连 well-formed 都算不上的问题?
而且你哪来的自信定义什么叫“乱七八糟”,你是很确信在这个问题领域比我更权威咯?
2022-06-23 21:49:48 +08:00
回复了 Ljcbaby 创建的主题 Windows Win 下 打开 EROFS img 工具
@Buges 我不得不再纠正你一个浅显的技术错误:你理解的自主可控太奇葩了。

自主可控表面的核心含义是指要有人理解和能维护代码。更深层次的意义是:如果我要的动,我就有机会动的了。
其实 GPL 之类在这里自由的保障是很弱的。
比如给你 10 亿行 GPL's 代码,as-is ,不提供无偿审计服务,你有资源去**看完**?你怎么知道没后门,保证软件会捍卫你的自由?
更别说改了。
(我极端反感废话多的代码和逼人废话的语言,也有实现自由的因素。)
相比之下,所谓的自主可控,先不说方式,至少结果反倒更字面地接近自由。

我觉得我有资格说这话,因为我比大多数人更极端在这方面进行实践。例如,我现在用的浏览器就是我自己修改的( github/FrankHB/basilisk )自己编译的,顺便实现了上游也不大可能搞定的改工具链。
当然,我感谢包括自由软件在内的开源软件让我有机会直接改而不是重新自己糊整坨屎,但是很遗憾,“自由软件运动”相比“开源软件运动”(除了历史上提早启蒙)真没在此给我提供什么实质帮助。

另一方面,方向一开始就混沌,有“重大改进”又如何?
如果不是 Web 这么坨破烂,我有被迫面对上面这样的屎的需求吗?
可能有人会说 Web 是很大的贡献。摁,扪心自问,没 Web ,就没有其它更像样的东西了?( Project Xanadu:?)
没有 UNIX 呢?
没有 C 呢?
我应该远比你清楚更多 if 线的潜力,所以更加仇恨某些小人眼里的自由。( Elisp……算了我就当是能力有限,留点口德吧。)具体内容已经举例的就够超纲了就先不多科普了。
2022-06-23 21:18:42 +08:00
回复了 Ljcbaby 创建的主题 Windows Win 下 打开 EROFS img 工具
@Bugen
1.不清楚你是否了解为什么被反对,我要指出,你的“小小的”正是体现你拉仇恨的例子。
如果你实际上不是类似功能的主要的业界大手的马甲,这是自然无礼的,因为对这种实现不显见的内容,光是评估什么算“小小”就是有准入门槛的专业问题,在这里也不是常识。你这样基本仅输出观点而没有具体设计上的论据显得你只是纯粹口嗨。
连这点局部的观点都没说服力,而直接搭上立场,就更遑论具体工程决策的价值问题了。
2.小小的和“颠覆性”直接对立,也显得没有常识。
一般最有意义的工作是首先是不需要颠覆的开创或奠基性工作,颠覆相比下是擦屁股。(举例:牛二定律原始形式就是狭义相对论动力学方程,即便意义再颠覆,发现这个形式的功劳也是算在牛顿而非爱因斯坦头上——因为这部分后者只是复读。)
其次是填补重要空缺。
颠覆性工作的价值也是因为它一般同时会有大量产出,也不排除可能有小小不起眼的那种。而就算没颠覆也可以有重要意义。
3.自由的问题是你的立场在我看来就不明确,像是 FSF 小鬼。
RMS 否定不了 BSD 比 GPL 更自由,他鼓吹自由软件运动其实相对就是限制一部分用户的自由。所以重点一直对抗专有软件以及反对混淆开源和自由,却从来反不了开源却不自由的部分。你的矛头针对的位置相比起来就很奇怪。
至于开源大手子的意见是什么呢?流派很多,但整体意见(包括 FSF 也同意)基本就是“爱用用不用润”。你所谓的“provide as is,without liability”根本就是开源共通价值观,哪里有自由软件特色了?
至于 clearly against the Free software movement 属实是你想多了。

下面不是针对小鬼,而是抠脚皮大汉自身的:
RMS 的“自由”观点令不少技术人员反感的问题除了激寒传教(其实也还好),主要是这一部分:
I think that freedom is more important than mere technical advance.
虽然引述者经常只是说 his own personal beliefs ,但 FSF 和 RMS 粉基本也就是这样干的。
这种直接把贬低生产力的意识形态为纲的作风自然很多人不买账。
最主要的是,很少有 free software movement 鼓吹者认识到,允许用 technical advance 解决实际问题根本也是最优先的 users' freedom (“自由之零”)的一部分。所以这方面就在自己打脸了。
(题外话,RMS 本人理论水平太屑是一个整体问题——更大的问题还有太怂。有人给 RMS 抠 communist 的帽子,就不敢接,不敢喊出全世界○○○者团结起来来统战,这倒罢了;最后居然还因为 zzzq 灰溜溜地从 FSF 老大的位置润了。这个意义上就算不是晚节不保,形象也真不如 Linus Torvalds 一根中指。)
退一万步讲,把这里狭义的 freedom 和其它价值排序也应该是其它许多观念中的正当自由。
凭什么 free software movement 的纲领就位居其上?别的 freedom 就更不重要?“它配?”

这个意义上 Linus Torvalds 反对 GPLv3 也是很自然的了,因为“有些东西比 FSF 鼓吹的自由更重要”。
不过这回我还是站 RMS 的 anti-Tivoization 立场,主要是因为看不惯前者事不关己高高挂起+发泄情绪时以外就表演庸俗的实用主义,其次是因为许可证兼容性自身拉仇恨而削弱贡献的实际价值的关系。

KPI 导向大概这里没人会兹瓷,问题是随便就钦定 KPI 导向和随便替人给不同的 freedom 重要性排序,对正常人来说,是会容易引起近似的家长制 ptsd 症状的。

我不是很有兴趣诘问你的具体成分,但我建议你还是主动交代清楚点给人信服你不是叶公好龙的小鬼的理由比较好。
2022-06-23 19:45:19 +08:00
回复了 Ljcbaby 创建的主题 Windows Win 下 打开 EROFS img 工具
@singerll 开源和自由是两回事。按许可证原作者( FSF+OSI )的意思,自由的是开源的,也有不自由的开源。
只不过被上游 GPL'd 了,不自由也被自由了。

至于 Google 倒是不用多提了。用 Java 当 userland app 主力开发语言本来就是倒垃圾界最伟大的 innovation 之一,一个 fs 不管怎么用,比起来算什么弟弟、、、

@Buges 你真要纠结自由的话,我倒是对你站队 Linus Torvalds 还是抠脚皮大汉有点好奇。
(至少自由软件界)众所周知,这两者在意识形态上是有矛盾的。
kernel 吸收了 erofs 自然已经够代表了其中之一的立场,也就是这个举动才引入了你所谓的其他问题。你是想骂哪个呢?
2022-06-23 19:37:41 +08:00
回复了 Ljcbaby 创建的主题 Windows Win 下 打开 EROFS img 工具
@Buges 我本来以为也是 KPI 产品,不过最近刷到这个居然是在 0net ,有人提 Cloudron 的沙盒上的应用……找了下应该有内核那边人自己的考虑,不像是下游自己单推的。

“不是很难实现”在没实现时没什么意义,除非你说话的时候顺便就 commit 上个 patch 把缺的东西补齐了并且人家马上给你 review 和 test 过。
这是工程常识问题。如果你的立场是把反智合理化,我倒是挺同意有人认为你是民科的。
2022-06-23 19:28:36 +08:00
回复了 hhhhhh123 创建的主题 Python 现在 Python 开发 GUI 用什么框架? 因项目需要使用 GUI
@westoy 一时间不可能没人写。
至少 TortoiseHg 还有活人维护。
另外我就因为一时半会儿撸不出一个 Qt 而被迫得抄 Shiboken……(虽然这严格上不算用 Python 写,但是至少得抄点 demo )。
2022-06-23 19:21:04 +08:00
回复了 yazinnnn 创建的主题 程序员 JVM 战士请教一个问题,各种语言都是怎样控制内存上限的?
@Building 所以你也太小看编译器的下限了。
“申请内存”?你是不是不知道直接不提供给你“申请内存”的实现也符合 ISO C ?你先给我说说你怎么确保一个 strictly conforming 的 C 程序“申请内存”还一定能过?
顺便,让 int main(){int a;}直接给 stack overflow 都是符合 ISO C 的。你说你见到过的编译器都会过?行,我写个程序判断源代码是不是长这样,如果是就直接给你生成一跑就会挂掉的二进制代码,不是就扔给 gcc ,不也是个符合 ISO C 的实现?(不符直接扔标准条款谢谢。)
(顺便,int a;不算“申请”内存。)
所以用得着你个“申请内存”个什么寄玩意儿啊……

@hxndg 上面举例子过了,用到个自动对象都可以给你当作栈爆了,也是合乎规矩的。即便没什么实现那么不要脸。
实际上这是 ISO C 比较下限,事实上允许实现随便钦定资源限制,但一点都没说最小限制是什么,只说超过限制 UB 。
而且这个比“分配内存”特殊在于原则上是没法直接加规则修的,因为 ISO C 抽象机里根本就没调用栈这种东西,自动对象不是被“分配”的。(但显然又要占资源,否则不确保不会爆栈的现有实现都不符合 ISO C 了。)
ISO C++同理( core lang 里唯一一个提到 stack 的是 stack unwinding )。
其实这种设计就没什么可移植性。

/proc/pid/limit 这个倒是比较有实际意义的好例子。不过,这个显示不出语言设计不讲理的地方。
2022-06-03 09:50:44 +08:00
回复了 yazinnnn 创建的主题 程序员 JVM 战士请教一个问题,各种语言都是怎样控制内存上限的?
@Building ?我甚至还要在这科普什么叫 conformance 和数学常识了吗?
该报错的不报错,不该报错的报错了,那叫 bug ,不管是编译器还是运行时的。决定什么该报错,该报什么错的是 spec 里的规则。写编译器一般没什么能力同时做整个 spec ,所以直接用的语言的 spec ;就算自己写 spec ,不是照抄的,实际上就发明了语言出来。
内存无限和数学如何明显是你 yy 。都玩那种玩具 model ,那早搞体系结构的就破产了。数学不好请自己补课。数无限?抽象代数我实在不想教,要不你还是先搞清楚比如 C 的无符号数折腾的就是数学上的 modular arithmetic 那套这样的入门经验再说吧。
2022-06-03 06:47:04 +08:00
回复了 yazinnnn 创建的主题 程序员 JVM 战士请教一个问题,各种语言都是怎样控制内存上限的?
@Building 报错不是限制?
没兴趣浪费金币仔细科普什么叫 ill-formedness 了。
8 字节,嗯嗯……
要不是你这典中典回复成了几个群里的乱窜的表情包,我还真差不多忘了我有回复这楼了……
2022-06-02 12:36:45 +08:00
回复了 yazinnnn 创建的主题 程序员 JVM 战士请教一个问题,各种语言都是怎样控制内存上限的?
@Building 你好歹讲点别的吧,加法?明显语言的语义上不限制上限的麻烦得多以至于几乎没什么语言不限制。只要你用的数据类型明确限制了最大元素,加法还能绕出去?就是任意精度数值,内部表示也受到空间的限制而不可能表示任意大的数;真正没限制最大数的怕就是只有 lazy list 之类的模拟了,你倒是统计下有几个语言这么做了?

最简单的,C 无符号数直接钦定不溢出,内部表示占用固定大小。只要语言残废到都是类似的玩意儿再在超出实例时禁止翻译就能静态证明不可超出限制了。阉掉了动态分配和递归的 C 类似物也是这样,只不过不方便算出具体上限是多少,一般要凑。
2022-05-28 05:39:01 +08:00
回复了 sampeng 创建的主题 程序员 写了一段时间 Golang,我很纳闷,为啥 Golang 这么火
我说的是,这种表面的技术问题,根源是人。

一次性学很多语言是极端情况。
但大部分人长期没选型决策权,没余裕在项目需求上推三阻四拒绝学习新技术(语言是其显著代表),不管技术上是不是合理的(不用就得润),结果就习惯要么固守个别领域,要么就被随意差遣,更加对这方面事务没话语权。结果莫名其妙拱手放弃了支配自身技术发展路线的权力。
即便一次就学一个新的,时间长了项目多了迟早等效:学习开销不随工程经验丰富而下降,收益却因为越来越有能力发现“新”语言的弱点而下降。越来越难发现好到值得投入学的语言,认真了反而像是给人免费当苦力推广;即便是发现坑为项目避雷,对个人生涯来讲也是净亏。

破解无谓超额成本做法有两个:一是愿意同流合污,打不过就加入,有饭一起恰;二是自己开宗立派,取而代之。
我这么点明了,自然一般人都想做后者。但这比把持选型决策权还难;而且被技术视野不够高的决策者支使惯了,需要独立思考的时候就躺了;所以现实大多会怂。
更何况现实很少有人自己独立发现这层利害关系,就算想到了更加寄了。
OP 和一些回复背后隐含类似的焦虑算是比彻底躺了的孺子可教,但脱离具体场景泛泛而谈个别缺点格局仍比较水,这是我说比较无聊的一个原因。

只有对选择第二条路的人,考虑具体技术问题才有实用意义。
不过说实话,我就感到这几十年还真是阿猫阿狗也敢整活了。
有的大约就是单纯用的不被大众所知,但我还是嫌多了碍眼。比如 Squirrel 的实现连 REPL 的 EOF 都处理不对,这样的素质也敢有厂商搞当工业语言用。当然,小圈子语言嘛,跳出坑就行,比较容易逃避。
有的是盲目从众。这时候上梁不正的后果就是灾难行的,比如 TC39 和 Guido van Rossum 连 proper tail call 都欠教育的水平。这是大部分人逃不过的部分,因为想要逃离毒害差不多是转行。

至于 Go 是什么档次呢?
设计 OS 水平先不论(虽然也存疑),Ken Thompson 在搞语言这块嘛,是个连什么叫 nominal typing 都没概念的( lambda-the-ultimate.org/node/4554#comment-71474 ),这样的水平能指望啥呢?
另一方面,golang 的 spec 里把原来 C 叫 object 的东西硬是叫 variable 这样的原则上技术氵 13 问题到处都是,就更不说整个核心“社区”的质量了。
写起来恶不恶心反倒是次要的,足够圣母觉得有救的用户,可以自己加个 pp phase 之类,多造半个语言改正缺陷或者适应需求变化(如 C→C++→C++/CLI )。而要是 spec 从根上整个没得救,连会设计语言的人士都不觉得魔改的必要,那就真寄了。

当然不是说水平高见识多的屁股就一定正确,也可能一堆私货;比如 Robert Harper ( cf. github.com/JuliaLang/julia/issues/6113https://github.com/FrankHB/pl-docs/blob/master/zh-CN/typing-vs-typechecking.md )。
大部分用户在这种层次的问题上,仍然逃离不了被大手子当放大观点的工具人使的命运。
独立思考是不可能独立思考的,这辈子大约都不行了。

现状就这样,不是照顾外行,golang 不值单独拎出来一提。其实这种 dssq 很多领域到处都是,也犯不着对某种语言的流行特别少见多怪了。这是我说无聊的另一个原因。
2022-05-26 20:08:49 +08:00
回复了 sampeng 创建的主题 程序员 写了一段时间 Golang,我很纳闷,为啥 Golang 这么火
@LotusChuan OP 的问题虽然比较无聊,不过你这么一回倒是显得有澄清的价值了。
简而言之,因为大部分职业菜鸡只是停留到 PM 喂什么就吃什么的入门阶段,学习成本平摊了,感知不强。
如果要突击学几十个语言,有本事学得会的正常人都会觉得里面的大部分都是什么歪瓜裂枣,学来学去顶用的就那么点东西,时间精力大部分浪费在适应设计者奇怪癖好的 mdzz 上了。(就算这部分开销没整个项目大,无效劳动比例高到发指,加起来绝对不小。)
——别急着考虑这种情况不存在。有选型任务的技术管理多少会面临这种问题。另外职业年限多到被迫全栈和需要带小弟的也有类似的困难。
跟架构不同的是架构的氵比较深的地方基本全是跟具体业务紧耦合的,所以会流行的东西反而不会那么多 nc 粉乱 bb ,知道雷点绕着走相对容易,不像语言不花够时间还被 nc 粉嘲讽没学会。而且搞架构一般不需要带人,培训值得讲的东西基本都有专门的讲师,破事少。
2022-05-26 20:02:56 +08:00
回复了 hostname 创建的主题 云计算 腾讯云太坑了,随意封机不给证据
常规操作罢。
我被“涉嫌诈骗”永久冻结 QQ (搞笑,你要借口色图码不够,还可能得自肃一下),走完客服机器人流程投诉通信管理局,见识到传说中的鹅厂人工客服,一口广普“国家主管机关通报封号”只能“临时解封”,死活不说哪诈骗啥机关,就“警方”。呵呵哒,警方怕吃我诉讼要你鹅护着?
“临时”一年多,至今不知这 KPI 便宜什么机关了。
2022-05-26 19:45:02 +08:00
回复了 feirisu 创建的主题 程序员 域名在国内部分区域被墙有遇到过的吗?
@id7368 我遇到过唯独某个包邮区解析到 127.0.0.1 的结果测速延迟最低的……

……所以到底什么样的基准会偷懒直接 127.0.0.1 呢?
2022-05-26 19:40:34 +08:00
回复了 feirisu 创建的主题 程序员 域名在国内部分区域被墙有遇到过的吗?
就算不考虑某自治区,也显然有相当一部分是区域自治的。
比如各种矿池很长一段时间各地封的毫不同步,就是现在封的方法也有地域性。
2022-05-25 00:27:37 +08:00
回复了 Biwood 创建的主题 程序员 Linus Torvalds 在 TED 演讲上所说的有品味的代码
@cnbatch 破案了。
TL;DR:
我一开始没注意到就有 cdefs.h 里本来就有__containerof ,就是 drm2 这代码没有用。
你要是有看到了,早提一下,就不会那么多问题了。

详细讨论更新在上面的 gist 里。
2022-05-24 08:49:56 +08:00
回复了 Biwood 创建的主题 程序员 Linus Torvalds 在 TED 演讲上所说的有品味的代码
2022-05-24 01:18:10 +08:00
回复了 Biwood 创建的主题 程序员 Linus Torvalds 在 TED 演讲上所说的有品味的代码
@chbatch 不污染内核树不等于要 vendored ,你这还不是官方源里了嘛……至少原则上不保证不重复的大坨通用代码就不适合原样放 in-tree 的具体业务模块里。
而且看这文件里就远不只 container_of ,逻辑上不适合放这的代码数量就多得离谱。既然都__FBSDID("$FreeBSD$")了,显然不是照搬的;更何况文件名看就是给 FreeBSD 特供的,还这么一整套,看着就像复制粘贴以后懒得维护一样,味儿太冲了。

Clang 也支持 GNU 扩展还当卖点。不过({})这种一旦引入就难以排除,大约因为比 C++ lambda 鸡肋,还有 Clang block 之类的竞品,所以难以标准化,有洁癖也不奇怪。

“转换成左值引用”是很传统的用法,虽然能转换为左值引用的操作数通常就是个左值而不再怎么强调是左值引用。
真“转换”,也就定义个 operator T&。
单个&在 C++11 后能用 ref-qualifier 和 lambda-capture 里,之前没这语法。之前有的倒不需要关心变化。

(铜币不够,剩下的隔天再说。)
1 ... 11  12  13  14  15  16  17  18  19  20 ... 92  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2561 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 39ms · UTC 15:01 · PVG 23:01 · LAX 08:01 · JFK 11:01
Developed with CodeLauncher
♥ Do have faith in what you're doing.