普通视图

Received before yesterdayKaffa.im

在 Windows 上 Bose SoundLink 音箱声音自动停止问题的解决

2025年6月5日 12:00

问题现象

在 Windows 上,通过音频线连接 Bose SoundLink,但声音会自动停止出声,此时,需要重新插拔音频线才能激活声音的输出。

解决方法

将 Windows 的声音设置到足够大,比如 70 以上,通过调节 Bose SoundLink 上的 +/- 键来调节音量。

参考

https://www.reddit.com/r/bose/comments/ywx08b/comment/iwmj22i/?tl=zh-hans&translated=1

krakos•3年前:笔记本电脑/音频接口的音量太低了。在那边调高音量,这样扬声器就不会因为信号太低而关闭。用扬声器的音量控制来控制扬声器的音量。

  •  

交易的实质——浪随风向

2024年12月29日 10:00

2013 年 6 月 28 日,我在为 EverEdit 创建的 todo 插件中埋了一枚彩蛋,当输入 "Who has seen the wind?" 时,会出现彩虹高亮。

彼时提到 Wind,是风向星座的我自我暗示适合风向职业(传播投资资讯),直到十年后,我才逐渐理解,对交易来说风是什么。风不是技术分析的历史重演,也不是基本面的财务数据,直到在市场中呆的足够长,并用量化的方式演算和回测。客观的结论是:技术分析、基本面、技术分析结合基本面三者都是错的。

只用技术分析交易,终会亏本离场;只用基本面交易,那些年线 A 杀的走势会嘲笑你的青春;用技术分析结合基本面也许某几年对了,但几年你看到了黑天鹅。我身边最聪明的朋友说,交易是玄学,广泛的市场中,不存在确定性,很难依靠长年得出的经验胜过市场,因为市场之海浪,一部分由风吹动,一部分是潮汐,潮汐就是自然周期的周期——斐波拉契,在自然周期之上的风,是ZZ。

依靠周期假设,并观察风的动向,看着风浪,再去航海。

  •  

机器人简史

2024年11月6日 21:18

评分

⭐⭐⭐⭐⭐ ⭐⭐ 7 / 10

原以为是本历史书,但翻开后发现是本文化书,就内容来说,读读也受启发,机器人不是机器人,是受奴役的人。

  •  

数学的惊奇

2024年11月6日 21:18

评分

⭐⭐⭐⭐⭐ ⭐⭐ 7 / 10

有趣的数学书,着谜数字的人可以翻翻,有细节。

  •  

牌局心理学

2024年11月6日 21:18

评分

⭐⭐⭐⭐⭐
5 / 10

市场上很多 XX 心理学都是东拼西凑的伪心理学。

  •  

ALaunch v1.0 发布

2024年11月4日 02:37

ALaunch 升级到 v1.0 版本,增加了标签的自由管理。

ALaunch v1.0 版本

新特性:

  1. 能创建和删除标签页;
  2. 能对标签页重命名。
ALaunch Snapshot

ALaunch 下载,欢迎反馈和留言。

预告

ALaunch v1.0 是友情软件:与此网站友情链接的朋友,可免费获赠授权码。

正在使用的朋友,建议下载新版本,欢迎反馈。

  • 1.5 将增加窗口控制
  • 2.0 实现启动布局
  •  

Windows 音频设备控制之旅

2024年11月2日 22:54

我的需求

笔记本通过 TypeC-DP 1.4 口连接了显示器,听音乐时,我使用笔记本连接的音频输出设备,看视频时,我使用显示器的音频输出口,因此,我有了需要在笔记本和显示器之间快速切换音频设备的需求。

解决过程

我拥有 Windows 编程能力,在 AI 时代想到的第一解决途径就是Prompt,AI 帮我编写一段小功能:你是 Windows 编程的高级程序员,我需要实现一个最简的功能,我需要界面上提供系统音频设备列表供选择,计划用 Python Tkinter 实现,可以用一组单选框,竖直排列,选中设备后设置为 Windows 默认音频设备。请得到代码后复查一遍可能的问题,提供最终可运行的代码。

得到代码后,我表示没看出 API 是什么,于是问 Windows 中切换音频设备的 API 什么,我想着实现 Python 后,可转化为一个简单的 C 程序一键在多个音频设备之间切换,我的基本思路是:先列出设备,再在设备间循环激活为默认。

后续过程就不列举了,AI 提供的代码,都是无法运行的,以下列举 AI 的关键代码。

实现方式一:

import comtypes
from comtypes import GUID, COMObject, POINTER
from comtypes.client import CreateObject
from comtypes.gen import PolicyConfigClient

def set_default_audio_endpoint(device_id):
   # 使用comtypes创建PolicyConfigClient对象
   pPolicyConfig = CreateObject(PolicyConfigClient.CLSID_PolicyConfigClient,
                                interface = PolicyConfigClient.IPolicyConfig)
   # 调用SetDefaultEndpoint方法设置默认音频端点
   hr = pPolicyConfig.SetDefaultEndpoint(device_id, 0)
   if hr == 0:
       print("默认音频端点设置成功")
   else:
       print("默认音频端点设置失败")


if __name__ == '__main__':
   # 这里需要替换为实际的设备ID
   device_id = "{0.0.0.0}"
   set_default_audio_endpoint(device_id)

实现方式二::

from pycaw.pycaw import AudioUtilities, IMMDeviceEnumerator

def get_speaker_device_id():
   device_enumerator = IMMDeviceEnumerator()
   speakers = AudioUtilities.GetSpeakers()
   device_id = speakers.GetId()
   return device_id

if __name__ == '__main__':
   device_id = get_speaker_device_id()
   set_default_audio_endpoint(device_id)

我后来使用一段复杂的 Python 代码调用了一个本地 dll 文件作为桥梁实现了切换。然后,为去掉这个不明就里的 dll,把问题弄得更明白一点,我查阅了 Microsoft 的文档,文档中居然没有提!

最后我发现实现切换的是 Microsoft Windows Undocumented API,列举和操纵此设置,居然分属在不同的 COM 接口中,未有文档的是 PolicyConfigClient 接口,它是一个特殊的 COM 接口,脚本无法创建和使用它的属性和方法,需要 Native 代码通过最基本的结构去调用。

然后,我浏览了交友网站 GitHub,发现世界上还有几个和我有一样需求的人,并且有几个 Geek 动手实现了 AudioSwitch 软件,以及还有几个 C# 和 vbs 的实现,经过比较,我还是喜欢 C++ 实现的版本。

AudioSwitch 软件运行后,按 F12 就能自动切换系统默认的音频设备。我于是下载源码,发现它使用一个叫做 SCons-win32 的编译工具进行了编译,我又查阅了 SCons-win32 帮助,成功编译出了 AudioSwitch.exe

当我完成编译,微软的安全软件居然报 Trojan:Win32/Bearfoos.A!ml,我去微软官方查询了 Bearfoos.A!ml 解释带 !ml 的是机器学习判断的木马。

我查看了它的源代码,然后 SCons-win32 作为可能引入病毒的第二个可能,风险也不高,我的编译器也是本地,安全软件扫描过的,所以我认为它大概率是误报,于是向微软提交了该二进制软件,几天后,我发现微软排除了它的威胁。

随后的几天中,我感觉都非常方便。

新的发现

突然有一天,我发现 Windows 托盘区的小喇叭似乎自带切换功能,只是这个功能,我才发现。相比开机自动运行一个小软件然后按 F12,和点击托盘区的小图标再点展开再点设备的三次操作来说,我觉得已经差不多了。

按一次键盘和点击三次鼠标,我感觉还是键盘轻松点,但弊端是 F12 是容易和其它热键冲突的。比如 MadEdit 中 F12 就是进入一个 PostIt 模式,如果从菜单进入了,再 F12 时,就无法生效了。

结论

  1. 虽然 AI 编程已经很厉害,你讲清楚了需求,它也无法写出切换音频设备的小功能。
  2. AI 无法完成的原因是它使用了 Windows 未公开的技术。
  3. 新问题很少,这个问题 Windows 的发展过程的几十年间,已经被很多人用不同方式解决。
  4. 如果要解决电脑问题,通过编程解决只是一种直接的方式,你去问 AI 怎么编程,这时有两个结果,一个是 AI 实现了,二是 AI 未能实现,但无论是搜索还是 AI,最后都可以解决。
  5. 解决问题本来还有更简单的办法,也许是对问题解空间的搜索方向错误了。

但无论如何,现有的 AI 都不算能直接解决此问题,最后还得依靠专家的知识和一个灵感和一个机会。

  •  

2024年第43-44周周报

2024年11月3日 08:00

2024年第43-44周双周报

12 月,目标是完成 11 月那些本该在 10 月完成的我在 9 月就定好的目标。

勇敢接受不完美的自己。

从掌握 20% 知识开始。

本周数据

年周 项目 动态 关注 友链
2024W43 5 264 6 14
  •  

小狗钱钱

2024年10月31日 02:00

评分

⭐⭐⭐⭐⭐ ⭐⭐ 7 / 10

这些基础概念,这个时代的小孩大多理解。

  •  

再度唤醒世界:赖特诗选

2024年10月28日 00:47

评分

⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ 9 / 10

开篇译作

不知开篇为何引用了一首唐诗译作,英国诗人也喜欢过李白的诗,翻译为:

如果你问我,为何居住在青山中。 我会默默地笑,我的灵魂宁静。 盛开的桃花追随着流动的水, 在尘世之外,有另一片天地。

原诗是:

问余何意栖碧山,笑而不答心自闲。 桃花流水窅然去,别有天地非人间。

“窅” 读为 “yǎo”,基本字义是眼睛眍进去,喻深远,“窅然”用来描绘桃花流水渐渐远去的状态,给人一种悠远、深邃的感觉。在此,翻译者似译出来不同的心境,至少我感受到的李白表达的是内心的追求,宁静是少有读出的。

致创造的造物

孤独如同我的渴望, 我没有女儿。 我不会死于火,我 会死于水。

冬末,我跨过水坑,想起中国古代的一位地方官

况吾时与命,
蹇舛不足恃。

——白居易《初入峡有感》

    作于819年

在网上找了一段他人的翻译:

白居易,开始谢顶的老政客,
有何用?
我想起你
不安地进入长江峡谷,
被拖曳着穿越激流而上
为了官职或其他
去忠州城。
你到达时,我猜
天都黑了。

但现在是1960年,又将是春天了,
明尼阿波利斯高耸的岩石,
堆垒起我自己的
竹索和水的昏黑暮色。
元稹在哪里,这位你钟爱的朋友?
大海在哪里,那曾终结中西部所有孤独的
大海?明尼阿波利斯在哪里?我什么都看不见
除了这棵随冬天变黑的可怕的橡树。
你是否找到了群山之外隔绝尘世的人们的城池?
或者说,你已把这根磨损的残绳的一端
紧握了一千年?

还有 张文武/译:

白居易,你这开始秃顶的老政治家啊,
有什么用呢?
我想起了
不安地进入三峡的你,
为了那一官半职
坐在被拉着逆流而上的船上,
奔赴忠州城。
我猜你到那儿的时候
天已经黑了。


而现在是1960年,眼看又是春天了,
明尼阿波利斯高高的岩石,
带来了我自己幽暗的黄昏,
竹索和水的黄昏。
你的好友元稹在哪里?
那曾经将整个中西部的孤独都带走了的
大海在哪里?明尼阿波利斯在哪里?除了这棵
因为冬天的到来而变黑的可怕的橡树,我什么都看不见。
你找到群山之外那座沦落人的城市了吗?
抑或是,将一根已然磨损的绳子的一端
握了一千年?

(2007-11-23 03:03:39)

原诗:

As I Step Over A Puddle At The End Of Winter,
  I Think Of An Ancient Chinese Governor

by James Wright


And how can I, born in evil days
And fresh from failure, ask a kindness of Fate?

– Written A.D. 819


Po Chu-i, balding old politician,
What’s the use?
I think of you,
Uneasily entering the gorges of the Yang-Tze,
When you were being towed up the rapids
Toward some political job or other
In the city of Chungshou.
You made it, I guess,
By dark.

But it is 1960, it is almost spring again,
And the tall rocks of Minneapolis
Build me my own black twilight
Of bamboo ropes and waters.
Where is Yuan Chen, the friend you loved?
Where is the sea, that once solved the whole loneliness
Of the Midwest?Where is Minneapolis? I can see nothing
But the great terrible oak tree darkening with winter.
Did you find the city of isolated men beyond mountains?
Or have you been holding the end of a frayed rope
For a thousand years?

重新发现“此时此刻”

现在已无人读诗,但依然有诗人。

诗歌是现实的犁耙,诗人是犁田的人。

过去不够碎,现实之土在诗人词汇的翻耙下熠熠生辉,如今现实稀碎,诗歌亦可用来弥合罅隙的流光。

  •  

Clojure Recipes

2024年10月28日 00:47

评分

⭐⭐⭐⭐⭐ ⭐⭐ 7 / 10

Clojure 是种 JVM 语言,但它的语法是 lisp,这样看来,它即没有 Java 那么累赘,又利用了 JVM 这个经过检验的中间平台。于是 Clojure 成为了掌握 lisp 又想利用 Java 生态的人的选择。

这种第一印象还是有点绕,但真实世界中,有不少 clojure 的应用。比如 LightTable,你很难想象 clojure 居然做了一个基础的编辑器,以及还有 clojure web 等好看的书。

本书一上来准备好环境后,就直接来了一个 WEB API 项目,可谓很实用,同时你发现 lisp 的表达甚至比 Python 还要紧凑简洁,当你在书写属性前习惯打一个:号时,你是否想起来 Vue 的运算属性也是这个写法,是不是其灵感来源?一旦你掌握了它,那也是一把好用的武器。

但基于国内环境,本书还是属于“没有优先级,有空老来看”系列。

  •  

文案卖货

2024年10月28日 00:47

评分

⭐⭐⭐⭐⭐ ⭐ 6 / 10

文案 = 卖货

凡语言所达处,皆是战场。

  • 做新:什么是新,没见识过。
  • 做尖:极端
  • 做思:提问

品类、品牌。

消费者用了产品变得如何牛

大胆报价;激励成交。

找大卖的

在已有的基础上改

跨行业找

  •  

印象派与东亚美术

2024年10月28日 00:47

评分

⭐⭐⭐⭐⭐ ⭐⭐ 7 / 10

内容还不错,能读,但谁会想着去读一本小开本、环保纸的印象派艺术书呢?艺术韭菜吗。

莫奈、德加、梵高,都在,但总觉质感无法呈现内容,形式和内容不符。

  •  

Racket Programming the Fun Way

2024年10月28日 00:47

评分

⭐⭐⭐⭐⭐ ⭐⭐⭐ 8 / 10

说明

Racket 的优势是,将 lisp + 常用数据类型 + 绘图 + GUI,因此可以很方便做出很多 2D 图形游戏。

适合作为讲述通用编程思想的语言。

在实战中,lisp 的表达能力确实强于 python、js,但 Python 视觉上更简洁,少了许多视觉障碍,而 Js 也可能是最开始学的 C 教学的缘故,大家也习惯大括号。

主要内容:讲解了 lisp 基础,比如

  • 原子类型 Atomic Data,number 和 strings
  • Lists
  • S-Expressions
  • List Functions
    • length
    • reverse
    • sort
    • append
    • range
    • make-list
    • null?
    • index-of
    • member
  • Defines, Assigns and Variables
  • Symbols, Identifiers and Keywords
  • Equality
  • Strings, Things
  • String Functions
    • string-length
    • substring
    • string-titlecase
    • string-upcase
    • string-downcase
    • string<=?
    • string=?
    • string-replace
    • string-contains?
    • string-split
    • string-trim
  • String Conversion and Formatting Functions
  • Vectors
  • Struct
  • Controlling output
    • write
    • display
    • print
  • Arithmetic
    • Booleans
    • Integers
    • Rationals
    • Reals
    • Complex Numbers
  • Numeric Comparison
  • Built-in Functions
    • abs
    • ceiling
    • floor
    • tan
    • atan
    • cos
    • sqrt
    • srq
    • log
    • exp
    • expt
  • Function
  • 绘图
  • GUI
  • 算法

很多 Python 书也是这种思路了。

本书的最大特点就和 Racket 一样,非常学术,实现了扑克牌游戏、A* 算法、Dijkstra 算法、八皇后问题、数独,甚至还有我喜欢的 15-Puzzle,也是用 A* 搞定的。

Racket 画个黄金螺线,那是最擅长的

Racket 就像一个老教授或一个顶级 Geek 一样,可以实现一切算法。但将 Racket 用到 Real world 中,会遇到现实粗砺的坑,现实会用人性打败他,会用数据量打败它,会用缺少必要中间件、分布式组件打败它,让 Racket 呆在它的教学领域是最好的选择。

精通的 Racket,能很快适应现代语言的基础特性,毕竟编程语言的爷爷在这里,比如新语言中出现 match 等,而反过来就不成立。

  •  

我们为什么爱喝酒

2024年10月28日 00:47

评分

⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ 9 / 10

前几个月喝了不少精酿,看到这本就略读了一遍,毫无疑问,这是一本非常有意思有文化的书。

更加肯定的是,酒精对人类的作用远大于通常的认识,对酒认识存在的误判和错误。

  •  

雅余的自省《独立博客自省问卷15题》

2024年10月24日 10:24

雅余的自省,这个听起来就像 Diablo 里一件暗金装备。

1、你的博客更新频率是多少? A.每周更新 B.一周数篇 C.一月1-2篇 D.几个月一篇

从一周数篇到一月1-2篇,作为写字自留地,将内容分散到四处写并不好。

2、你的博客上次更新是什么时候? A.本周 B.上周 C.上个月 D.上季度

C

3、你的博客文章是原创的吗? A.坚持原创 B.部分借鉴 C.AI 帮我写的 D.搬运别人的,而且不署名

B

4、你觉得自己的文章对他人有帮助吗? A.旨在对他人有启示 B.多少有点意义 C.每日每周流水账 D.自我陶醉就好,管他呢

B

5、你上次换博客主题/程序是什么时候? A.上周 B.上个月 C.去年 D.凭良心说,我多年都是一个主题

C

6、你上一次捣腾博客主题代码是什么时候? A.昨天,撸代码到凌晨 B.每周必捣腾 C.每月有那么一次 D.一年有那么一次

D,现在看起来这个频率有点高。

7、你会对博客主题进行二次开发? A.直接配置使用,省心不折腾 B.时不时自己改改,搞点新花样,换图片,换字体,爽 C.删除主题作者版权信息,改改样式,然后自我感觉良好 D.改得面目全非,但保留原作者版权信息或注明

会增加新功能,B

8、你多久打开自己博客自我陶醉一次? A.每天数次 B.每周一次 C.看心情 D.一般都是照镜子,不看博客

C

9、你近期对自己博客域名什么感受? A.想搞到一个 .COM 的域名 B.如果域名能再短几个字符就更好了 C.今年才换双拼域名了,明年再看看 D.目前挺好,没想法

A

10、你每天都会看网站的流量统计吗?

A.每天看几次,今天又多了100PV B.每周回顾,看看流量趋势 C.记得就看看 D.没有搞流量统计,都是浮云

C

11、你通过博客的广告赚到钱了吗? A.有,能覆盖建站费用 B.有,但付出大于收入 C.没考虑通过博客流量赚钱 D.拒绝广告,保证阅读体验

D

12、你去浏览别人的博客/网站主要为什么? A.学习别人分享的知识 B.搬运别人的内容 C.看看别人怎么装修博客,自己也抄一下,感觉都比自己的好 D.不爱看别人博客,自己爱写啥写啥

D,就是写写

13、看到别人分享了一篇文章,你打开第一反应是什么? A.哇,这域名真不错,怎么我没想到 B.哇,这网站速度真快,图片延迟加载丝滑 C.哇,这程序/主题不错,我也要抄一抄/留言问问哪里搞的 D.看看文章内容

D,主要还是内容

14、你觉得博客哪方面更重要? A.域名 B.服务器 C.主题 D.内容

A、D,好名字是成功的一半。

15、近期通过写博客有哪些新收获?

A.知识面有拓展 B.认识了新朋友 C.写作水平提升 D.通过知识变现

B,比如,我会写这篇就是因为看上雅余博客的品味,为能与交换友链而感到荣幸。

果真,人生有限,岁月如梭。

依然有自编写知识管理工具的执念,虽然 Obsidian 已接近心中所想。

  •  

2024年第41-42周周报

2024年10月20日 08:00

2024年第41-42周双周报

书看杂了,弄了一个批量处理脚本,发出刷屏。

开始新的职业方向。

本周投资

市场上涨得出人意料,活久见,没有拿到好的收益,波动性很大,老人宁愿踏空,新进入市场的带着贷款而来,这并不好。

本周数据

年周 项目 动态 关注 友链
2024W41 5 264 6 14
  •  
❌