linux.do
19.9K subscribers
80.1K photos
173 videos
80 files
196K links
linux.do最新话题和热议话题
Download Telegram
[求助帖]我记得有个链接是关于升级规则的来着,哪位佬可以分享一下?

如标题,想再回顾一下规则,但是找不到这个帖子链接了,哪位佬知道的可以分享一下吗?万分感谢

3 posts - 2 participants

Read full topic

via LINUX DO - 最新话题 (author: 小丘道长)
Superpowers:一套给coding agent的工作流skills(≈29k Star)进官方插件仓库了

我大概用了两周的coding agent工作流:Superpowers(obra/superpowers)。今天看到它出现在 claude-plugins-official 列表里(我这边 /plugin 能看到 source),顺便分享下它的工作流思路。

来源:

Reddit 讨论:https://www.reddit.com/r/ClaudeCode/comments/1qgkupf/superpowers_is_now_on_the_official_claude/
GitHub:GitHub - obra/superpowers: An agentic skills framework & software development methodology that works.

它有一套最近大家在聊的很火的 skills,用来把agent拉回“先想清楚、再动手、再验证”的节奏,核心链路大概是:

brainstorming(/superpowers:brainstorm):任何“要开始写/改功能”之前先用它,把需求/约束/成功标准摸清楚,先出设计再实现(分段确认)
writing-plans(/superpowers:write-plan):把实现拆成很小、可验证的 steps,避免一口气写一大坨
executing-plans(/superpowers:execute-plan):按批次执行计划,每批做一次 review/checkpoint
test-driven-development:强调 red/green/refactor(先失败的测试,再最小实现)
verification-before-completion + systematic-debugging:先验证再宣称“修好了”,遇到 bug 用更系统的方法追根因

安装我就不复读了:README里Claude Code/Codex/OpenCode都有对应的入口和指令。我个人感觉最有用的是先从 brainstorming 那套问答/设计确认开始。

我也在不断熟悉这套工作流中,感觉它就是我想要的coding agent工作流。

6 posts - 6 participants

Read full topic

via LINUX DO - 最新话题 (author: yvan42)

Invalid media:
image
image
Opus4.5渠道没了 人心惶惶.....

这两天陆陆续续所有便宜的Opus4.5全没了
不管是公益站还是盈利站

3 posts - 3 participants

Read full topic

via LINUX DO - 最新话题 (author: f99)
Microsoft 365 Premium 免费送4年(Office+Copilot+领英)的个人踩坑经验分享

看了其他佬友的,正常是2年,也有5年
4年是什么原理?

分享下我的踩坑流程,希望能给大家带来帮助

1.我先在tw区的链接,edu的认证什么的都很顺利,但是卡在了绑卡上,试了PayPal和直接输入卡号都不行
https://checkout.microsoft365.com/acquire/purchase?language=zh-TW&market=TW&requestedDuration=Month&scenario=microsoft-365-student&client=poc&campaign=StudentFree12M

2.于是换成us区,还是用之前的edu(之前屯的tw的edu)使用以下链接https://checkout.microsoft365.com/acquire/purchase?language=en-US&market=US&requestedDuration=Month&scenario=microsoft-365-student&client=poc&campaign=StudentFree12M
这次还是卡在绑卡上,发现可以使用Gpay,绑定,顺利通过!

3.领取普通版本的365之后,尝试领取Premium版本的365,也是us区,使用如下链接
https://checkout.microsoft365.com/acquire/purchase?language=en-US&market=US&requestedDuration=Month&scenario=microsoft-365-premium&client=poc&campaign=StudentPremiumFree12M

4.它会一直显示错误,刷新也错误,本来我听别人说封车了,但是不要放弃!在不断尝试刷新、隐私网页再登陆领取,最后和之前一样的流程,绑定Gpay之后领取成功了

5.最后在这里查看订阅时长:https://account.microsoft.com/services/

30年2月17日到期,总共领取4年!
不清楚为什么和其他人不同,可能和地区或者邮箱有关吧,但是我个人用的是us区+tw的edu,这种混搭感觉也不是很靠谱,佬友们参考看看吧

领到的佬友们记得取消自动续期哦

3 posts - 3 participants

Read full topic

via LINUX DO - 最新话题 (author: WisdomD)

Invalid media: image
明天早上9点考编译原理好紧张

明天早上9点考编译原理,老师上课讲的我没认真听,期末考试发现只有10个选择,90分大题,我该怎么办好紧张(遇到大题就害怕),虽然复习了几天了,还是担心会挂科,学也学不进去了,玩也玩不下去 🥲有佬友给点意见吗 🤐

8 posts - 5 participants

Read full topic

via LINUX DO - 最新话题 (author: zcy)
有没有大佬指点指点, 这种代码设计是否合理?

#define __vaMacro                               valist
#define valueVariableArgumentListMacro( type ) va_arg( __vaMacro, type )
#define variableArgumentListMacro( firstArgumentName ) \
for( va_list __vaMacro = {0}, *_ = &__vaMacro; _ not_eq NULL; _ = NULL, va_end( __vaMacro ) ) \
for( va_start( __vaMacro, firstArgumentName ); _ not_eq NULL; ) \

static inline void
foo( const Structure *restrict structure, ... ) {
const char *p = NULL;

if( structure == NULL ) failureMacro();
variableArgumentListMacro( string ) {
if( (p = valueVariableArgumentListMacro( const char * )) == NULL ) break;
······
}
······
}

static inline void
bar( const Structure *restrict structure, ... ) {
const char *p = NULL;

if( structure == NULL ) failureMacro();
variableArgumentListMacro( string ) {
if( (p = valueVariableArgumentListMacro( const char * )) == NULL ) break;
······
}
······
}

foo/bar 函数签名除函数名外其它完全一致, 但是处理逻辑完全不一样, 这种设计是好还是坏啊?

1 post - 1 participant

Read full topic

via LINUX DO - 最新话题 (author: googleMail)
求助!Claude Pro订阅使用Claude Code没有tokens和💲的详细花费,有第三方插件吗!

各位佬友,这厢有礼!!
开了个Claude Pro会员,想试试Claude code,但是/cost没办法使用,无法查看tokens消耗和💲花费,请问有什么办法吗,第三方插件也行。
账号设置页面也只有用量百分比。
求助佬友!这厢谢过!!

1 post - 1 participant

Read full topic

via LINUX DO - 最新话题 (author: OceanRunner)

Invalid media:
image
image
image
科学订阅还有一天,佬们抓紧用

地址:
https://赔钱.com/api/v1/client/subscribe?token=c1a7fc13f0c47a6dc9d749f9cf51c377
支持好几个同时在线,都可以用用
点点赞,佬们 🥲

3 posts - 3 participants

Read full topic

via LINUX DO - 最新话题 (author: mengyu)
反重力抽风了

今天使用反重力,我和同事都出现了如下情况,是为啥。。。。

10 posts - 9 participants

Read full topic

via LINUX DO - 最新话题 (author: caocan)

Invalid media:
image
image
GPT的社区和L 站高度一样

如图 😀

4 posts - 4 participants

Read full topic

via LINUX DO - 最新话题 (author: Vitory Ai)

Invalid media: image
chatgpt说它可以生成逼真的图?

🤣
3 posts - 3 participants

Read full topic

via LINUX DO - 最新话题 (author: miaoxiansheng)

Invalid media: image
# 交出你们2026的新年壁纸!佬们还在哪里找的新年壁纸!感觉新年不换一波壁纸不自在!
*

3 posts - 3 participants

Read full topic

via LINUX DO - 最新话题 (author: iko)

Invalid media: image
ChatGPT有类似于fuclaude这样的镜像吗

佬们,可能是因为梯子质量的问题,总是容易上不去ChatGPT,之前自建的节点也被GPT封了,想问一下有类似fuclaude这样的镜像吗?

1 post - 1 participant

Read full topic

via LINUX DO - 最新话题 (author: Melon)
Postgres 发布订阅

介绍
发布和订阅使用了pg的逻辑复制功能,通过发布端创建publication与表绑定,订阅端创建subscription同时会在发布端创建逻辑复制槽实现逻辑复制功能

逻辑复制基于 发布(Publication) 与 订阅(Subscription)模型

一个 发布者(Publisher) 上可以有多个发布,一个 订阅者(Subscriber) 上可以有多个 订阅 。
一个发布可被多个订阅者订阅,一个订阅只能订阅一个发布者,但可订阅同发布者上的多个不同发布。

典型用法

迁移,跨PostgreSQL大版本,跨操作系统平台进行复制。
CDC,收集数据库(或数据库的一个子集)中的增量变更,在订阅者上为增量变更触发触发器执行定制逻辑。
分拆,将多个数据库集成为一个,或者将一个数据库拆分为多个,进行精细的分拆集成与访问控制。

复制标识

一个被纳入发布中的表,必须带有复制标识(Replica Identity),只有这样才可以在订阅者一侧定位到需要更新的行,完成UPDATE与DELETE操作的复制。
默认情况下,主键 (Primary Key)是表的复制标识,非空列上的唯一索引 (UNIQUE NOT NULL)也可以用作复制标识。
如果没有任何复制标识,可以显式将复制标识设置为FULL,也就是把整个行当作复制标识
使用FULL模式的复制标识效率很低(因为每一行修改都需要在订阅者上执行全表扫描,很容易把订阅者拖垮),所以这种配置只能是保底方案。
使用FULL模式的复制标识还有一个限制,订阅端的表上的复制身份所包含的列,要么与发布者一致,要么比发布者更少

创建发布订阅

环境介绍

version: pg16
发布端: 5433
订阅端: 5434
主机IP: 192.168.28.11

创建发布订阅

在发布者端,wal_level必须被设置为logical,而max_replication_slots中设置的值必须至少是预期要连接的订阅数加上保留给表同步的连接数。max_wal_senders应该至少被设置为max_replication_slots加上同时连接的物理复制体的数量。
订阅者必须配置max_replication_slots。它必须设置为至少是订阅者数,加上一些用于表同步的预留。max_logical_replication_workers必须至少被设置为订阅数加上保留给表同步的连接数。此外,可能需要调整max_worker_processes以容纳复制工作者,至少为(max_logical_replication_workers + 1)。注意,一些扩展和并行查询也会从max_worker_processes中取得工作者槽。

发布端

1. 修改配置文件

vim postgres.conf
wal_level = logical
max_wal_senders = 100 #max_wal_senders大于max_replication_slots
vim pg_hba.conf
host all repl 订阅者IP/32 md5

重启pgsql ,配置生效
su postgres
pg_ctl restart -D /data/postgresql/pgdata/pg-5433/

1. 发布者节点创建用户,赋权

su postgres
psql -P 5433
psql (16.9 (Ubuntu 16.9-0ubuntu0.24.10.1))
Type "help" for help.
#创建用户
postgres=# create user repuser password 'repuser' replication;
CREATE ROLE
#在postgres库中创建表,并插入一条数据
postgres=# create table test1(id int primary key,name varchar(10) );
postgres=# insert into test1 values(1,'a');
# 赋予复制用户select表权限
postgres=# grant select on table test1 to repuser;


1. 创建表 test1的发布

create publication pub_test01 for table test1;


订阅端

1. 修改posetgres.conf

vim postgres.conf
max_replication_slots=8
max_logical_replication_workers=10
max_worker_processes=8


max_logical_replication_workers 逻辑复制进程数,应大于订阅节点的数量,并且给表同步预留一些进程数量
2. 重启 pgsql
pg_ctl restart -D /data/postgresql/pgdata/pg-5434/

1. 创建订阅

CREATE SUBSCRIPTION subs_test01  CONNECTION 'host=192.168.28.11 dbname=postgres port=5433 user=repuser password=repuser' PUBLICATION pub_test01;

1. 查看表是否同步
在发布端执行test1表的insert、delete、update、truncate操作,看订阅端是否能同步

新加表同步

发布端

1. 新建表
create table test3 (id int,name varchar(10));
2. 设置复制标识
alter table test3 REPLICA IDENTITY full;
3. 将表加入发布
ALTER PUBLICATION pub1 ADD TABLE test3;

订阅端

在订阅端执行刷新
ALTER SUBSCRIPTION sub1 REFRESH PUBLICATION ;
在发布端执行test3表的insert、delete、update、truncate操作,看订阅端是否能同步

发布订阅查询状态语句

发布端
select * from pg_replication_slots; --查看所有复制槽
select * from pg_stat_replication; --查看复制槽的同步状态
select * from pg_publication; --查看所有发布
select * from pg_publication_tables; --查看所有发布对应的表
select usename,a.pubname,c.*,pubinsert,pubupdate,pubdelete,pubtruncate from pg_publication a,pg_user b,pg_publication_tables c where a.pubowner=b.usesysid and c.pubname=a.pubname;


订阅端
select * from pg_subscription; --查看所有订阅
select srrelid::regclass from pg_subscription_rel; --查看订阅的所有表
select usename,datname,subname,srrelid::regclass,srsublsn,subconninfo from pg_subscription a,pg_user b,pg_subscription_rel c ,pg_database d where a.oid=c.srsubid and a.subowner=b.usesysid and a.subdbid=d.oid;


删除发布订阅

删除订阅

订阅在运行的情况下,需要一下操作:
ALTER SUBSCRIPTION pub_test01;
##首先需要停止当前的订阅
ALTER SUBSCRIPTION subs_test01 (slot_name =NONE);
##然后将订阅的复制槽设置成空
drop subscription subs_test01;
##最后就可以删除订阅了。
##另外一个问题,复制订阅中,如果订阅的服务停止,或无法再次连接的情况下,需要关注 发布端的数据wal log 无法清理以及膨胀的问题。

##所以在复制订阅中的订阅停止后,如果确认订阅无法再次恢复,或者不确认多长时间恢复,则需要删除复制槽

select * from pg_replication_slots;

select pg_drop_replication_slot(slot_name) from pg_replication_slots where slot_name = 'pub_test01';

2 posts - 2 participants

Read full topic

via LINUX DO - 最新话题 (author: 小小大头兵)
Jetbrain AI连接硅基连不上,怎么搞?

2 posts - 1 participant

Read full topic

via LINUX DO - 最新话题 (author: 会飞的莲花)

Invalid media: image
请问这是被封了吗?“Sorry, you don't have access to this chat or channel.”

佬友们,我的纸飞机突然所有的群组和个人聊天都无法聊天,只要输入内容都是提示:Sorry, you don’t have access to this chat or channel.这是账号被封了吗?有没有解决办法啊,用了好几年的账号,之前用接码平台绑定的手机。也没法收验证码了…

1 post - 1 participant

Read full topic

via LINUX DO - 最新话题 (author: 李四)
[工具] AI 生成的 PPT 导出 PDF 转 PPTX 解决样式丢失 | 附年终述职的思路

又到年终汇报时间,又要搞 word 格式,又要 ppt 形式述职,下面总结一下经验可以给佬们参考。

1. 先根据每个月的月总按照公司模板生成年总需要填写的内容,这里我用的 Google AI Studio - Gemini 3 pro。没有月总的可以看看自己 Git 提交记录找找今年做了什么。
2. 使用 Z.ai 生成 PPT。

这里导出的 PPTX 打开后,会发现样式有变化。

可以使用先导出 PDF,之后使用 Python 脚本将 PDF 转为图片,图片再转为 PPTX,这样就解决样式变化的问题了。

1. 先安装库

pip install pymupdf python-pptx

1. 创建文件 pdf2pptx.py,内容:

import fitz  # PyMuPDF
from pptx import Presentation
from pptx.util import Inches
import io
import os

def pdf_to_pptx(pdf_path, pptx_path, dpi=300):
"""
将 PDF 转换为 PPTX(每一页作为一张全屏图片)
:param pdf_path: 输入 PDF 文件路径
:param pptx_path: 输出 PPTX 文件路径
:param dpi: 渲染清晰度,300 已经非常清晰,如果文件太大可以降到 200
"""
# 1. 打开 PDF
pdf_doc = fitz.open(pdf_path)
prs = Presentation()

# 2. 获取 PDF 第一页的尺寸,并设置为 PPT 的幻灯片尺寸
# PDF 默认单位是点 (points), 1 inch = 72 points
first_page = pdf_doc[0]
width_pts, height_pts = first_page.rect.width, first_page.rect.height

prs.slide_width = Inches(width_pts / 72)
prs.slide_height = Inches(height_pts / 72)

print(f"开始转换: {pdf_path}")
print(f"总页数: {len(pdf_doc)}")

# 3. 逐页处理
for page_num in range(len(pdf_doc)):
page = pdf_doc.load_page(page_num)

# 渲染页面为图片 (设置缩放倍数以提高清晰度)
zoom = dpi / 72
mat = fitz.Matrix(zoom, zoom)
pix = page.get_pixmap(matrix=mat, alpha=False)

# 将图片存入内存流中,避免产生临时文件
img_stream = io.BytesIO(pix.tobytes("png"))

# 添加一张空白幻灯片 (6 是空白布局)
slide_layout = prs.slide_layouts[6]
slide = prs.slides.add_slide(slide_layout)

# 将图片插入幻灯片,铺满全屏
slide.shapes.add_picture(img_stream, 0, 0, width=prs.slide_width, height=prs.slide_height)

print(f"正在处理第 {page_num + 1} 页...")

# 4. 保存文件
prs.save(pptx_path)
pdf_doc.close()
print(f"转换完成!已保存至: {pptx_path}")

if __name__ == "__main__":
# === 使用说明 ===
# 将下面的文件名替换为你实际的文件名
input_pdf = "input.pdf"
output_pptx = "output.pptx"

if os.path.exists(input_pdf):
pdf_to_pptx(input_pdf, output_pptx)
else:
print(f"错误:找不到文件 {input_pdf}")

1. 将 pdf 文件重名为 input.pdf,然后执行:

python pdf2pptx.py

1. 输出文件 output.pptx。可以再让 AI 帮你输出一份口述草稿配合起来就行了。

----------------------

有尝试过在线 ILovePDF 网站去转,但是样式还是有问题。

试过 NotebookLM 生成 PPT,效果一般般,没想到 Z.ai 生成的效果还挺好看的

2 posts - 2 participants

Read full topic

via LINUX DO - 最新话题 (author: kendo)

Invalid media:
image
image
image
Google学生认证经验贴

到今天,两个账号都成功认证成功了,下面先描述一下我两个账号的情况,有同样问题的佬友可以参考。

1. 大号是一个七八年的老号,连google one的资格都没有,花钱订阅都不行,更不用说教育认证了
2. 小号是一个一两年的号,基本没怎么用过,比大号要好,是有google one的资格的。

我基本都是使用SG的固定节点,两个账户通过terms查看都是sg。但是其实这个显示的没用,最重要的应该是看google play显示的区(最下面有显示),我大号就显示是china,但是小号就是us(我也不知道为什么)。

我小号注册很顺畅,使用站内的美国节点,正常流程走就过了,最后绑定的卡是工行的校园星座卡。

解决大号的问题:

最重要的是要将大号的区换成美国,可以用Google Play的app,流程如下(我是在美国ip进行的):

1. 通过账号-偏好设置-国家/地区和个人资料
2. 绑定信用卡(国内的就行,我用的就是上述的工行的学生信用卡)(有人说用网上生成的信用卡信息,就算添加不成功也能改区,但是我没有成功)
3. 填写资料的时候,信用卡的信息正常填写,地区写US,邮编写一个美国的邮编,我用的是90001
4. 然后你就会发现你的账户就锁定为美区了,与你ip无关。

到此就可以区浏览器认证google学生账户了,我是用SG的节点也有资格,但是最后使用1key过学生验证的时候一直在pending,我后面换成US的节点就快了很多。认证完成之后,由于之前绑定了信用卡,这一步也不用了,就直接ok了。

希望对有需要的人有帮助

4 posts - 2 participants

Read full topic

via LINUX DO - 最新话题 (author: narutozxp)
抽五个 glm coding plan 转发后的 key

还有一个月左右,实在是不想用了,找几个佬友送掉吧

抽奖主题: glm coding plan 中转*5

🏆️ 奖品详情:

glm coding plan 中转后的 key 五个

:three_o_clock: 活动时间:

开始时间:Mon, Jan 19, 2026 12:00 AM CST
截止时间:Mon, Jan 19, 2026 12:00 AM CST

📝 参与方式:

在本帖下回复“XXXXXXX”。

🔍️ 抽奖规则:

每位用户仅允许参与一次。
使用官方工具随机抽取中奖者。

⚠️ 注意事项:

本活动将在活动截止时间后关闭回帖,以确保公正性。
中奖者将在活动结束后4小时内在本帖公布,并通过 私信通知领奖方式。
所有规则及抽奖结果由活动发起人和论坛管理团队最终解释。

期待您的积极参与,祝您好运!如有任何疑问,欢迎随时联系抽奖发起人。

10 posts - 10 participants

Read full topic

via LINUX DO - 最新话题 (author: 光头不砍树)