V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
V2EX  ›  geelaw  ›  全部回复第 3 页 / 共 189 页
回复总数  3778
1  2  3  4  5  6  7  8  9  10 ... 189  
2025 年 10 月 13 日
回复了 abcbuzhiming 创建的主题 Windows 目前高分屏下 windows 有最佳缩放解决方案吗?
@datou #62 你说的(除了 no )和我说的是一回事儿。
@aprikyblue #3 楼主写的是 C 不是 C++,没有 enum class 。(当然,换成 C++ 似乎是比较好的选择。)这一点可以从这段代码可以编译知道(见下面第二点)。

————

几个可以挑剔的点:

一双下划线是保留标识符。

二是初始化的时候 constness 不合适,注意 const BizTypeRef 是 struct __BizType * const 而不是 struct __BizType const *,于是这里会丢失 const ,如果实现方(很容易无意间)尝试修改只读复合字面量的 .value 的话会有 UB 。

三是,如果实现方不需要数据,那么实际上没有必要使用 value ,用 non-const 复合字面量本身就可以确保几个表达式的对象不占据相同的位置(但是 const 复合字面量可能会是同一个对象)。

————

@ysc3839 #7 楼主的版本有不同的值,所以无法是同一个位置。在文件作用域的复合字面量是静态存储期。
2025 年 10 月 12 日
回复了 azzzzzz 创建的主题 反馈 可能是论坛的一个 BUG?
是自然归约导致的 UI/UX 问题,自然的设计是:如果你用第三方身份注册,那么设置密码之前不允许用密码登录,并且第一次设置密码必须重新做身份验证(这一点等同于登录后修改密码,依然要再输入一次密码做身份验证)。

自然的归约:把第三方身份注册的用户的密码设置为高熵随机串。

改进 UI/UX 的方法:后端记住用户是否设置过密码,如果没有,在登录后的“修改密码”页面提示用户从未设置过密码,并允许重新验证身份后设置密码。
2025 年 10 月 9 日
回复了 abcbuzhiming 创建的主题 Windows 目前高分屏下 windows 有最佳缩放解决方案吗?
>绝大部分网站不是为这种缩放比例设计的

抽象层级错误,网站的 px 和系统 DPI 缩放是独立的,在 100% 缩放下用浏览器反复 Ctrl + Plus 做缩放,在网站看来和更高的系统 DPI 加上浏览器不用 Ctrl + Plus 缩放,是一样的。

如果你看到的网站不正常,只能说明这个网站一开始就不正常。

缓解方法是系统高倍缩放下,按 Ctrl + Minus 缩小浏览器的缩放。
@realpg #8 能不能预览是有没有安装预览处理程序的问题(当然你用的软件可能只支持 Windows 11 ),预览处理程序是 Windows Vista 引入的。
自中古以来就是这样排序的,我自己记不得 Windows 98 的行为了,但根据 https://devblogs.microsoft.com/oldnewthing/20080804-00/?p=21383 的链接可以知道 2006 年的 Windows 已经对数字有特殊处理了,也就是至少 Windows XP 开始就是这样了。

根据 CompareString 的文档,至少从 Windows 95, Windows NT 3.1 开始就已经有不区分平假名和片假名的选项了,而且简体中文和繁体中文的规则也很不同(只有繁体中文会用笔画数)。总之,简单的答案是:Explorer 的 UI 排序是非常复杂的字符串比较。

用 ASCII 排序应该已经很久没有在 Windows 下 work 过了,普通用户并不期待

A-0.txt
Z-1.txt
a-2.txt

这样的顺序。
2025 年 10 月 8 日
回复了 ttgo 创建的主题 问与答 macOS 鼠标光标漂移,没有外设也飘
1. 熟悉如何用键盘开关 Mac 的设备,防止稍后的步骤死锁
2. 关掉所有指针设备,查看问题是否出现
3. 用安全模式启动 Mac ,查看问题是否出现

搜索 mac mouse pointer drifting even if no mouse is connected ,可以找到一些资料:

https://www.reddit.com/r/MacOS/comments/16y4rbn/mouse_cursor_wiggling_on_external_screen_only_mbp/

1. 如果屏幕上正在播放动态内容,比如 YouTube 或者 Telegram 的动画表情,则可能有此问题
2. 此问题在使用外置屏幕时更容易发生,鉴于楼主用的是 Mac Studio ,可以考虑打开光标位置监测程序,拔掉屏幕,等待一段时间,重新接入,查看监测日志

@kome #5 这个理论应该不成立:首先是抽象层隔离的期待,即使有随机挪动屏幕内容的设置,光标位置是屏幕坐标系,和屏幕处于现实世界的位置是两件抽象层次不同的事情;其次是因为观察到的现象是光标一直向左移动,而不是随机变位置。
那答案是 Edge 的“删除下载文件”用的是 DeleteFileW ,也就是“删除”而不是“移动到回收站”。

>不知道这与我回收站位置改在 D 盘有无关联。
没有,而且回收站是每个盘有自己的回收站。

>现在导致我用浏览器删除文件到不了回收站。
它没想移动到回收站。

>还有不知道是不是幻觉每一次删除 c 盘可用容量好像也跟着减少。
时间上相近不代表因果关系,最简单的解释是程序运行的时候产生了新的临时数据。
或许您可以解密一下是如何用 Edge 浏览器删除文件的,按 Ctrl+O 然后在“打开文件”对话框里按 Delete ,还是下载了文件之后按 Ctrl+J 并点“删除”按钮删除下载的文件?
2025 年 10 月 7 日
回复了 wdssmq 创建的主题 Edge Edge 密码全丢的事也是遇上了
@patrickyoung #9 很有意思的信息,但是里面的内容表明 app-bound encryption 不过就是两层 DPAPI + 调用进程验证,所以 #4 大体还是对的,不过这次所有 EdgeSaved 都要再被 service user key (e.g., machine/SYSTEM key) 加密一次。

App-bound encryption 安全意义可以说没有,同等级进程可以随便注入,而且“打开文件”对话框里有无数个 shell extension 会自动启动。最大的作用大概是减少不理解安全模型的人反复制造无聊“新”闻。
2025 年 10 月 7 日
回复了 YanSeven 创建的主题 Go 编程语言 写屏障,概念混淆?
@geelaw #4 确保内存操作顺序。
2025 年 10 月 7 日
回复了 YanSeven 创建的主题 Go 编程语言 写屏障,概念混淆?
是两个正交的概念,三色标记 GC 里的 read/write barrier 是指读写 GC 管理的引用之前,编译器插入从而导致运行的代码(辅助 GC 算法),memory fence 是多线程程序里确保某些内存操作在多线程下可观测顺序的指令(因为 CPU 会乱序执行,通常只能保证结果在单线程下无区别,加入 memory fence 可以约束多线程下的内存操作顺序)。

并行 GC 肯定是需要一些同步操作的,可以用 lock/mutex ,这样就自带内存操作的同步,如果要写无锁的,也可以考虑用 memory fence 确保内存操作。因此一个 GC 里面可能会同时使用 read/write barrier 和 memory fence 。

最后,memory fence 也可以叫做 memory barrier 。

————

楼主引用的段落第一个分句就有严重的语病:

>内存屏障技术是一种屏障指令
>技术是指令

这句话的正确说法是

>内存屏障是一种指令

>内存屏障技术/技巧是利用特殊指令约束指令乱序执行和多线程下内存操作顺序的方法

然后我随便翻了一下那本书的前几页,真是惨不忍睹:

>发展到今天已经有过去了 10 多年

有、过去了 句式杂糅。

>目前的 Go 语言在国内外的社区都非常热门

第一个“的”不符合汉语使用习惯。

>很多著名的开源框架,例如:Kubernetes 、etcd 和 Prometheus 等都使用 Go 语言开发,近年来热门的微服务架构和云原生技术也为 Go 语言社区带来了非常多的活力。

冒号管辖范围错误。

>也坚定地认为这门语言未来的发展会越来愈好。

越来越、愈来愈 杂糅。

>很多文章都会陷入对不重要的细节,大量的篇幅都是复制的源代码,分析介绍的过程也没有分清主次,不能提供很好的阅读体验。

句式不符合汉语习惯,应该是“陷入对不重要的细节的纠结”。

我不确定这些充斥大量语病的内容是怎么出版出来的,作者、编辑、校对都没有上心?
2025 年 10 月 6 日
回复了 wdssmq 创建的主题 Edge Edge 密码全丢的事也是遇上了
每个新用户都有自己的 DPAPI 密钥,此密钥平时受用户的密码保护;建立新用户(包括新安装操作系统后建立用户)会生成新密钥;强行修改当前用户的密码(不知道旧密码的情况下)会导致旧密钥无法恢复; DPAPI 密钥可以备份还原,并且可以存在于域控制器中。

Edge 的密码是用 DPAPI 保护的,因此重装系统并且没有加域,即使建立同名账户,即使密码相同,即使把 AppData 里的数据复制过来,旧密码也无法读取。

不清楚 HackBrowserData 是否可以把保存的密码明文读出,理论上来说在原来的用户下当然可以,因为是原来的用户的身份。

用公式表示:

EdgeSaved = Enc(key = user key, plaintext = Web password)
InUserProfile = Enc(key = derived(Windows logon password), plaintext = user key)

每个新用户都对应一个不同的 user key ,所以朴素地重装 + 复制资料的结果是

Copy of EdgeSaved = Enc(key = user key 1, plaintext = Web password)
New InUserProfile = Enc(key = derived(Windows logon password), plaintext = user key 2)

然而要读取保存的密码,需要的是

Enc(key = user key 2, plaintext = Web password)

或者

Enc(key = derived(Windows logon password), plaintext = user key 1)
2025 年 10 月 6 日
回复了 gegeligegeligo 创建的主题 问与答 碰到一个很奇怪的问题
最简单的假设是:发生了自动更新,且 Settings | Accounts | Sign-in Options | Automatically save my restartable apps and restart them when I sign back in 和 Use my sign-in info to automatically finish setting up after an update 都是开启的状态。

如果此假设成立,那么“被关闭大部分”是因为大部分软件都没用使用 Restart Manager 让自己在安装更新后自动重启,而少部分看起来没有关闭的软件则是使用了 Restart Manager 且恢复得不错。
2025 年 9 月 29 日
回复了 jmliubiao 创建的主题 C# C#中异步相关的问题
@jmliubiao #6 oh wow 你应该看 #5 的信息,我记错了……

TestController 代码的效果只有无异常的情况下是一样的,考虑 new TsetService() 这个表达式产生异常的情况(比如内存不足,或者构造器抛出异常),那么 Get1Async 会同步得到异常,而 Get2Async 会把异常装进 Task<Student> 里面返回。

Task<int> M1(bool t) { if (t) throw new Exception(); return Task.FromResult(0); }
async Task<int> M2(bool t) { if (t) throw new Exception(); return 1; }

那么

try { M1(); } catch(Exception ex) { Console.WriteLine("caught M1"); }
M2(); Console.WriteLine("M2 succeeded");

的结果是

caught M1
M2 succeeded

因为 M2 的异常只有在 await 的时候才会浮现。但是 #5 说由于这个(异常总是异步的)优点所以应该尽量用 async/await 我就不知道了,我的感觉是最终使用的时候所有 Task 都要被 await ,此时包围之的方法必然是 async ,因此同步异常和异步异常最后都会浮现,时机不同,而且典型的代码里还会掺杂很多其他可能异常的语句,就看细抠异常语义是否有意义吧。
2025 年 9 月 29 日
回复了 jmliubiao 创建的主题 C# C#中异步相关的问题
@geelaw #3 所谓没有意思上的差别,是指假设有

Task<T> M();

那么

Task<T> M1() { return M(); }
async Task<T> M2() { return await M(); }

没什么区别,当然 TestController 里面 Get1Async, Get2Async 因为调用了 TsetService 里面不同的方法,实际的效果区别很大。
2025 年 9 月 29 日
回复了 jmliubiao 创建的主题 C# C#中异步相关的问题
楼主应该善待帮助自己的人,比如提供格式化之后的代码。

TestController 里面的代码没什么意思上的差别,Get1Async 没有额外包装,或许性能会好一些。

TsetService (维持楼主的错误拼写)里面则完全不同。

Get1Async 完全抛弃了 Task.Delay(100),所以 Get1Async 实际上没有任何延迟,return Task.FromResult 是同步执行的,await Get1Async() 也不会有延迟,因为被 await 对象是已经完成的 Task.FromResult 。

await Get2Async() 有 100ms 延迟。
2025 年 9 月 29 日
回复了 AllenZ0 创建的主题 问与答 你有多久没整理过你的电脑桌面了
很久,但我一直都是隐藏所有桌面图标,并且从来不把文档保存到桌面的。
2025 年 9 月 25 日
回复了 XueXianqi 创建的主题 发音 “你”和“拟”的读音一样么 ?
@XueXianqi #64 按照你在 #60 的说法,老师教的是发音方法,不是教录音结果。如果你要说“非常标准的普通话”,那么把“拟”按照你自然发“你”的方式发音就可以了,但这完全无必要,普通话母语者在普通话语境里会自动把你的 gni 和 ni 都识别为 ni 。

百度单字似乎是新闻联播播音员录制的,词语似乎是 TTS 合成的,而且音色有很多“含糊不清的萌感”,此时再去分辨 gn 和 n 的微小差别实在困难。我觉得采用这个标准就可以了:如果这个机器只用来合成普通话的汉语拼音,并且它的 n 发音是说普通话的人会自动识别为 n 的范围内,那么它的发音就应该被解读为 n 而不是 gn 。
2025 年 9 月 25 日
回复了 XueXianqi 创建的主题 发音 “你”和“拟”的读音一样么 ?
@heganyuliang #57 我不清楚楼主自己用的方言是什么情况,但根据老国音,很可能楼主的方言是区分 gn 和 n 的,只是楼主没有意识到。

我认为普通话母语者很难把 n 发成 gn ,因此 gn 和 n 无自由变体的关系,但普通话母语者很可能会把别人说的 gn 识别为 n ,但这很可能只是未经训练难以感知 gn 和 n 的区别导致的。

————

不知出于什么原因,楼主似乎看过了我的一些回复但是没看懂。

> 1. 这 2 个字的发音是不是不一样?

在老国音(一种已经废弃的方言)里面这两个字读音不同。
在普通话(一种方言)里面这两个字读音相同。
不清楚楼主的方言是什么,也不清楚是否相同,这个问题当然要楼主自己判断。

在老国音里面,这两个字的区别在于声母。

> 2. 如果发音不一样,为什么都是 nǐ?

字典里标注的是普通话读音,因此方言读音不同不影响两个字的拼音相同。

@XueXianqi #60 有没有可能是老师说话也不标准呢?

鉴于楼主迟迟没有透露自己所在地最常用的方言,似乎不得不引入意念调试法。考虑吴语,它有 gn 和 n 的区别,根据 dict dot ciet dot top 的字典,“你”和“拟”的读音是 ni 和 gni 。
1  2  3  4  5  6  7  8  9  10 ... 189  
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5380 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 51ms · UTC 07:41 · PVG 15:41 · LAX 00:41 · JFK 03:41
♥ Do have faith in what you're doing.