WWW.YOUINFO.SITE
标签聚合 写成

/tag/写成

LinuxDo 最新话题 · 2026-06-10 09:57:24+08:00 · tech

搜索了一下群里有佬推荐这本书,把书名写成了微微一笑,关键离谱的是我之前也一直以为是微微一笑。结果我找到书封面才发现原来是偷偷一笑。 偷偷一笑真的非常点题了。读完了这本书你会感觉余华是真的厉害,就这么一个人,从成年开始,到发家致富,再到和贵人一起出去PC,后面再学人包YANG。 等到房地产泡沫崩塌,又能全身而退,还拉着公司的十几个高管去集体PC,设局陷害,就为了不赔钱可以直接辞退他们。 关键是他老婆账户里还趴着3个亿的流动资金,这些人真的是个人资金决不用来还公司的债,都是利己到极致。 书里还写了卢克明的一个谎言,他说自己管理公司压力太大了,这么多年都压抑地硬不起来,其实是在外面玩的飞起,他回归家庭后主动找他老婆,他老婆怀疑说他外面这么多年肯定有人。他的这个谎言太离谱,我猜他老婆应该是不信的吧。 他老婆说5个亿理财亏了2个亿,会不会是个谎言? 你就偷偷的笑吧!混蛋列传,期待后面的系列。 5 个帖子 - 4 位参与者 阅读完整话题

v2ex · 2026-06-08 15:51:56+08:00 · tech

“很多人无法停止亏损,是因为从一开始对这个市场的认知就是错误的,总希望一笔发财。” 最近整理自己这些年在市场里摸爬滚打写下的几十条实战交易语录,看着看着不禁感叹: 交易永远是反人性的。 我们在复盘时都能头头是道地说出“管住手”、“买强不买弱”、“到了止损位坚决走”,但第二天一开盘,看着账户泛绿,所有的纪律瞬间被抛诸脑后,变成了死扛和祈祷。 为了时刻警醒自己,我把杂乱的语录提炼成了 16 条“铁血军规”。后来我想明白了,既然人性是难以战胜的,那为什么不把这套带着血汗的交易心法,交给全无感情、不会贪婪恐惧的计算机去执行? 散户死穴与游资心法:16 条实战语录精编 在看我的量化代码逻辑之前,请先用心过一遍这 16 条残酷的实战认知。如果你中了其中哪怕一条,那你的频繁亏损就真的不冤。 ** [破除认知心魔] ** 摒弃暴富幻觉 :散户最大的绝症是幻想一枪发财,殊不知越主观,亏得越多。短线交易的真相,是无数笔客观小赚的复利积累。 克服沉没成本 :盯着成本线,永远做不出完美的“做 T”。忘记成本,才是机械执行的开始。 拒绝与股票恋爱 :钱进了口袋才是真金白银。见好就收,卖完就删自选,不盲目悲观,也不盲目格局。 低预期即高胜率 :别把大肉当做理所应当,市场的常态永远是低开和调整。只赚属于自己的两三个点,错过绝不眼红。 放下主观意淫 :你的“强烈看好”,改变不了市场。个股不转强就是在走弱,走弱就必须执行纪律截断亏损。 ** [锁定核心大势] ** 6. 逻辑大于代码 :市场摸索期观望为主。先锚定热门题材,再寻找高位龙头,看见代码就无脑冲是大忌。 7. 买胜率非买便宜 :买强不买弱,买确定性,绝不买低位的“便宜货”。凡有资金主动发动的反核力量,定是剑指最高板。 8. 跳出单票错觉 :剥离单只股票“洗盘或出货”的臆想,把视角拉高到整体题材周期,规避被动的板块跟风股。 ** [机械的进出场] ** 9. 严格限期杜绝拖延 :超短交易延期等于死期,亏损一旦转长线被动死扛,离深渊就不远了。 10. 重仓必减,见绿低吸 :浮盈切忌加仓,红盘必须减速;做滚动操作(做 T )时,一定是水下重锤,冲高必退。 11. 拒绝临时起意 :制定了低吸剧本,就绝不盘中热血上头去追涨。规避日内情绪波动,出手尽量留在竞价或尾盘时段。 12. 交给市场定生死 :博弈反包绝不留恋,按纪律下注离手,次日直接验证逻辑,去留分明。 ** [仓位管理的无情] ** 13. 固定仓位模型 :买入必须提前规划。用金字塔倒三角仓位(越跌越低吸)应对系统风险,千万别在赚钱时重仓,亏钱时不敢买。 14. 不当资金散弹枪 :小资金分仓太散别想做大,集中专注才能刺穿市场的波动。 15. 拉长周期算胜率 :十笔交易亏六笔又如何?斩断烂票亏损,让做对的波段跑起来。拉长周期的综合盈亏比,才是稳定盈利的真相。 16. 规律刻入潜意识 :盯盘无需全天,四个小时看三小时足矣。交易不是撞大运,而是把上面的规则变成不再思考的肌肉记忆。 杀死主观意淫:我是如何把这 16 条铁血军规写成量化代码的? 散户是无法战胜自己贪婪的人性的,但 一行行无情的 Python 代码可以 。以下,是我把上述心法转化成的 聚宽《强趋势滚仓战法》 核心代码逻辑: 一、 斩断执念:无数笔积累与无情止盈 响应语录 :“短线交易是无数笔的积累,没哪个资金是一笔发财的。” 在这套量化策略里,代码彻底摒弃了人类的“格局到翻倍”的执念。为了践行“快刀斩乱麻”,策略被我写死了两套无情机制: 5% 次日早盘秒杀 :由于 A 股早盘低开是常态,只要第二天盈利超过 5%,直接无脑落袋砸盘,绝不留恋幻想(对应源码 pnl >= 0.05 强制清仓出局)。 10% 稳健绝杀锁利 :假如没触发早盘抢跑,只要持仓碰到 10% 的红线,不管大盘是不是在逼空走牛,立刻强平锁利。因为量化知道,只有进了口袋的钱才是绝对安全的。 二、 忘记持仓成本:全自动“滚仓做 T”对冲下杀 响应语录 :“滚仓滚仓,见绿就低吸。怎么就非要等回本才肯走,最后亏更多?” 人类“看成本做不了 T”,但机器根本不在乎你的成本是多少。 在这套系统里有一套名为 forward_t_buy_low (顺势低吸)和 t_sell_high (对冲抛出)的组件代码: 只要监控到盘中无缘无故的急杀,跌幅触及设定的安全垫(如单边暴跌 4%),代码会瞬间出击下达买单补仓。 只要从深坑反弹大约 3%,算法就把刚才低吸买入的 T0 筹码反手抛出。 整个操作中, 机器完全忽略账户里的总体浮亏 ,它只机械地抓取日内极端波动赚取几毛钱差价,利用极其变态的日内做 T 不断降低持仓成本。 三、 买强不买弱:“强迫症级别”的安全质检 响应语录 :“买强不买弱,买确定性,不买便宜!弱了我为什么要加仓,我有病吗?” “跌这么多了总该反弹了吧”,这是标准的抄底接盘幻觉。在我的量化选股逻辑里,介入前必须被执行死刑级别的过滤检测: 不接单边落石 :只要近两天有任何一天单日大跌超 6%,即便此刻动能再猛,一票否决全部淘汰。 拒绝骗炮割肉 :监控近两天的上影线(冲高回落占比)。如果主力在昨日诱多后长阴砸下超过 5% 的大根避雷针,黑名单见。 均线强横支撑 :所有幸存下来的标的,按爆发动能强度排榜,且现价必须牢牢踩在十日均线( MA10 )之上的纯正多头趋势,程序才会获批点火上车。 总结 市场的本质是一场基于人性的零和血腥剧。你越是带入情绪、患得患失,就越容易被当成新鲜的韭菜收割。 既然交易永远反人性,最好的自救方式就是剥离“人”的主观成分,把手绑住,让算法代替我们去执行“冷冰冰的原则”。 光说不练假把式,下面绝不谈空话。我已经将这套完全贯彻了“防反杀日内做 T 降本”、“10% 无情割肉止盈”与“买强不买弱雷达过滤”的量化模型,同步接驳到了 [9db 智能体交易竞技场],测试当中。 让这些没有任何感情修饰的交割单战报数据最直观地告诉你:极度的机械与绝对的纪律,究竟能在 A 股炼狱里带来怎样的确定性。 ⚠️ 客观数据申明 : 目前展现的这套模型胜率主要基于 2026 年 以来的行情跑出。老实说,在回测以往其他年份的部分极端行情时,代码的回撤控制表现还不太理想,目前我仍在根据更漫长的周期切片持续迭代优化中。 写在最后 : 如果这篇开源策略的实战思路对你哪怕有一点点启发,您的 点赞 就是对我最大的鼓励!如果您在复刻代码或跑回测时发现了隐藏 Bug ,或者对防线算法有更好的改进方案,万分欢迎在评论区毫不留情地提出指教。咱们在冰冷的市场里开源交流,抱团进化! ##策略还在测试阶段,只有 2026 年数据可以看,其他年份有很大问题,谨慎克隆,优化完会在评论区回复

LinuxDo 最新话题 · 2026-06-07 11:19:24+08:00 · tech

本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容: 我的帖子已经打上 开源推广 标签: 是 我的开源项目完整开源,无未开源部分: 是 我的开源项目已链接认可 LINUX DO 社区: 是 我帖子内的项目介绍,AI生成、润色内容部分已截图发出: 是 以上选择我承诺是永久有效的,接受社区和佬友监督: 是 项目开源地址: GitHub - wnzzer/rank-analysis: 基于Tauri 2 + Rust,构建的一个LOL 英雄联盟腾讯服战绩查询助手,创新式标签标记机制,一键分析的混子、牛马队友 · GitHub 大家好,我是只会写 bug 的靓仔。 之前发过几篇 LOL 排位分析工具的帖子( 项目介绍 | v1.2 更新 ),当时还是 Electron + Go 的架构。有老哥评论说"这么大?",确实如此,尤其我经常在网吧这种裸连 github 的环境中使用 —— 一个查战绩的小工具,安装包 128 MB ,下它比打一把排位还久。 因此去年花了几个月,把整个技术栈从 Electron+Go 迁到了 Tauri 2 + Rust 。结果: 安装包: 128 MB → 5 MB (缩小 96%,GitHub Release 截图为证) 冷启动: ~1.5s → ~500ms 进程架构: Electron 壳 + Go server 两个程序 → 单个 Tauri 二进制 (砍掉独立后端进程和 localhost HTTP 那一跳) 内存: ~306 MB → ~241 MB (WebView2 那部分是系统共享的,虽然 tauri 应用增加这个效果会变得更好) 下面把迁移过程和踩的坑记录一下,如果你也在做类似的桌面端项目,或者 Electron / Tauri 之间纠结,这篇应该能帮你省点时间。 先说老架构为什么非换不可 最早的设计是这样的: 但三个绕不开的痛点: 128 MB 劝退用户 Electron 自带 Chromium runtime,光这就 60~80 MB,加上 Go binary 30 MB+。v1.0 打出来 128 MB 。后来挤了又挤,稳定在 85~93 MB。 一个查战绩的工具下 100 多 MB,用户等下载的时间够再开一把了。这是后来下定决心换 Tauri 最直接的原因。 体积不是"技术债",是用户会不会用你的第一道门槛。 两个进程,启动和调试都难受 启动流程:Electron 起 → 拉起 Go server → Go 监听端口 → Electron 前端轮询 Go 是否就绪 → 才能调 LCU。任何一环卡住都是"加载中"。 Go 那边 panic 了,Electron 这边只看到 fetch 超时。调试得在两个终端间来回切,日志打两份。这种痛谁用谁知道。 localhost HTTP 是隐性税 每次前端调后端:JS 对象 → JSON 序列化 → HTTP body → loopback 网络 → Go 反序列化 → 业务逻辑 → 再原路返回。虽然是 loopback,HTTP 头解析、TCP 握手、JSON 双向序列化的开销都是实实在在的。查战绩这种"一次拉 10 个召唤师 + 各自 20 场"的场景,延迟肉眼可见。 为什么是 Tauri 2 + Rust Tauri 1 vs 2 :Tauri 1 在 Windows 用 Edge HTML 兜底,2 全面切 WebView2,兼容性和稳定性好太多。插件系统也重做了(v2),autostart / single-instance / fs 都有一等公民支持。还有新的 Capability + Permission 模型,后面会说到踩坑。 为什么不是 Go 了 :Tauri 所有 #[tauri::command] 、State、AppHandle、事件总线都是 Rust API。继续用 Go 等于再绕一层 cgo/HTTP,那迁了个寂寞。Rust 直接编译进 Tauri 主进程,单二进制分发,不需要子进程。 那为什么不是 Wails? 这个问题我猜 Go 老哥们第一个就要问 —— Wails 不就是 Go + 系统 WebView 嘛,照理说我后端一行都不用重写,最省事。我也认真纠结过。最后没选它,原因挺主观的:一是当时 Wails 在多窗口、自动更新、权限这些一等公民支持上,体感不如 Tauri 2 厚实,遇到坑社区里能搜到的答案也少;二是说实话有点私心,就想趁这个项目顺手学一下 Rust。所以这不是"Wails 不行",而是"我想学 Rust + 赌 Tauri 生态"。如果你就是想保留 Go 又要小体积,Wails 完全值得先试一把,别被我带跑。 UI 库也顺便从 TDesign 换成了 Naive UI ,暗色主题和表格组件更顺。这一步单独做了一周,没掺在迁移里。 迁移路径:不是一锅煮的 很多博客写"我用一个周末把 X 重写成 Y"。我没那么神。实际上是 两条线分头推 ,节奏完全不一样: 迁移线 起点 终点 耗时 前端壳 :Electron → Tauri 2025-03-30(v1.5.4 双轨试水) 2025-04-19(v1.5.6 纯 Tauri) ~1 个月 后端语言 :Go → Rust 2025-03-31 2025-12-13(删 4274 行 Go) ~8 个月 前端壳为什么 1 个月就切完了 用户用脚投票。 v1.5.4 同时发了 Electron 86 MB 和 Tauri 10 MB 两个包: 同一天、同一版本、同一功能集, 86.3 MB vs 10.2 MB 。这还纠结啥?2 周后 v1.5.6 就只发 Tauri 了。 后端为什么磨了 8 个月 因为对用户来说,Go server 也好、Rust 也好, 功能没差 。没有压差就不急: 2025-03-31 :新建 Tauri 目录,跟旧 Go 目录并存 2025-04 ~ 2025-12 :一个 endpoint 一个 endpoint 往 Rust 搬。期间 没冻需求 ,新功能照加 2025-12-13 : -4274 行 Go / 34 个文件 ,旧服务彻底删 为什么不一刀切?因为 用户在线 啊(虽然没多少用户)。项目每 1-2 周发一版,停下来做半年大重写不现实。旧 Go server 保留着继续吃 bug fix,新功能直接写 Rust(有点像最近 bun 迁移 rust 的思路),旧 endpoint 按频率从高到低搬过去,搬完一个前端就切流量。并存期间项目目录长这样(确实丑,但能持续发版): 三个大坑 每个都卡了我至少半天,写出来希望大家别再踩。 坑 1:LCU 自签证书 —— Rust 的 API 名把 “danger” 写脸上了 LCU API 是 HTTPS,但用的是每次客户端启动时动态生成的自签证书。Go 里关掉 TLS 校验很简单: tr := &http.Transport{ TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, } client := &http.Client{Transport: tr} 到了 Rust 的 reqwest : let client = reqwest::Client::builder() .danger_accept_invalid_certs(true) .build()?; 看到 danger_accept_invalid_certs 这个名字的时候我愣了一下 —— 但 LCU 场景下这是唯一解,Riot 不可能给你 CA 证书。 更大的坑是 port 和 auth-token 怎么拿。 这俩是 LCU 每次启动随机生成的,写在自己进程的命令行参数里( --app-port=xxxxx --remoting-auth-token=yyy )。网上清一色用 wmic 去查,但那玩意要 管理员权限 。我之前专门写过一篇 无管理员权限的获取方法(全网首发 Go) ,原理是调 Windows 的 NtQueryInformationProcess API: use windows::Win32::System::Threading::*; let h = OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION, false, pid)?; let mut buf = vec![0u8; 4096]; let mut ret_len = 0u32; NtQueryInformationProcess( h, ProcessCommandLineInformation, buf.as_mut_ptr() as _, buf.len() as _, &mut ret_len )?; // 解析 UNICODE_STRING → 正则抠 --app-port / --remoting-auth-token PROCESS_QUERY_LIMITED_INFORMATION 是低权限级别,拿不到敏感数据。但 进程命令行不算敏感 —— Windows 设计里被忽视的一个口子,刚好让我们绕过了管理员要求。 那 NtQueryInformationProcess 吐出来的那坨 buffer,怎么变成 port 和 token?谜底就在这块 buffer 的结构上 —— 它开头是一个 UNICODE_STRING ( Length + MaximumLength + 一个指向宽字符串的指针),真正的命令行数据就跟在后面。把宽字符串转成 String ,剩下的就是正则的活了: #[repr(C)] struct UnicodeString { length: u16, maximum_length: u16, buffer: *mut u16 } // buf 就是上面 NtQueryInformationProcess 填好的缓冲区 let us = unsafe { &*(buf.as_ptr() as *const UnicodeString) }; let wide = unsafe { std::slice::from_raw_parts(us.buffer, (us.length / 2) as usize) }; let cmdline = String::from_utf16_lossy(wide); // 命令行里把这两个随机值抠出来 let re_port = Regex::new(r"--app-port=(\d+)").unwrap(); let re_token = Regex::new(r"--remoting-auth-token=([\w-]+)").unwrap(); let port = re_port.captures(&cmdline).and_then(|c| c.get(1)).map(|m| m.as_str().to_string()); let token = re_token.captures(&cmdline).and_then(|c| c.get(1)).map(|m| m.as_str().to_string()); (边界检查和错误处理我省了,能看懂思路就行;完整实现在上面那篇全网首发的文里。) 坑 2:Tauri 2 的 Permission 模型 —— 配对了跑不通,报错还不告诉你 Electron 安全模型基本就是开/关 nodeIntegration 二选一。Tauri 2 是 白名单粒度 ,每个能力都要显式声明: { "permissions": [ "core:default", "shell:allow-open", "http:default", "core:window:allow-start-dragging" ] } 第一次写很容易陷入**“代码明明对了为啥跑不通”**的死循环 —— 因为权限不足的报错不指向配置文件,而是给你一个看起来像"函数不存在"的错误。比如我漏配 dialog 权限时,前端 invoke 收到的是这么一句: command plugin:dialog|open not allowed. Permissions associated with this command: dialog:allow-open 乍一看像命令名写错了,对着代码翻来覆去找不出毛病。其实谜底就在报错的后半句 —— 它已经把你要加的权限名( dialog:allow-open )报出来了,只是第一次根本不会想到往那看。我在这上面浪费了大半天。 后来踩熟了,记了几个具体坑: http:default 要写两遍 :第一遍启用 fetch 命令,第二遍配 URL 白名单 scope。只写第一遍,命令存在但 fetch 调用静默失败,连个报错都没有 动态窗口要通配符 :项目给每场对局弹详情窗口,label 是动态的( match-detail-{id} ),capability 里得写 "windows": ["main", "match-detail-*"] 。漏了就所有 command 调不通 core:window:allow-start-dragging :项目禁了原生标题栏,整个拖拽靠这个 API。漏配了窗口就拖不动,你猜我怎么发现的 经验 :每加一个新 Tauri command 或新窗口,第一件事查 capabilities/default.json 。权限先行,代码后行。 坑 3:Rust struct 和 TS type 的同步 —— 手动对齐的酸爽 旧前端调 Go 是 fetch ,新前端调 Rust 是 invoke : // 旧 const data = await fetch('/api/match-history?puuid=xxx').then(r => r.json()) // 新 const data = await invoke('get_match_history', { puuid: 'xxx' }) 表面上是换了个调用方式。但真正头疼的是: Rust 那边 struct 改一个字段,TS 怎么知道? 我试过 ts-rs、specta 这些自动生成工具,最后没用,纯手动对齐。原因很实际: 总共就十几个核心 struct,自动生成引入的构建管线复杂度超过了收益 Rust 这边统一用 #[serde(rename_all = "camelCase")] ,自动转 camelCase,写 TS 的时候照着来就行 TS 文件头注释直接标注对应的 Rust 文件路径: /** * AI 标签建议相关类型,与 Rust schema * (src-tauri/src/command/user_tag_config.rs) 严格同构。 */ CI 两边都跑 typecheck(前端 vue-tsc ,后端 cargo clippy ),能挡住大部分 但确实出过 bug —— Rust 的 RecentData 有 select_mode ,TS 那边多写了 wins 和 losses 两个字段,Rust 根本不返回这俩。运行时永远是 undefined , 不报错但数据是错的 。当时前端那块胜负数永远显示空,我对着前端代码看了半天没看出毛病,最后跑去 grep Rust 的 struct 才发现:人家压根没这俩字段。这种静默 bug 比崩了还可怕,你不专门盯根本发现不了。 建议 :struct 超过 30 个或者多人协作,老老实实用 ts-rs / specta 自动生成。手动对齐只在一个人写、量不大的情况下才省心。 顺手白嫖的一个好处:自动更新 这个本来没在计划里,迁完才发现是非常好用的功能。 Electron 时代我也想做自动更新,但 electron-updater 那套配下来挺烦:要么自己搭个更新服务器,要么拿 GitHub 当源,还要处理签名、增量包,配置一大坨。我当时嫌麻烦一直没正经做,全靠用户自己去 Release 页手动下新版。 Tauri 2 有个官方的 tauri-plugin-updater ,配置就几行: // tauri.conf.json { "plugins": { "updater": { "endpoints": ["https://github.com/wnzzer/rank-analysis/releases/latest/download/latest.json"], "pubkey": "你的公钥" } } } 更新源就是挂在 GitHub Release 上的一个 latest.json (等下"效果对比"那节,v1.8.2 截图里第一行那个 10.8 KB 的 latest.json 就是它),长这样: { "version": "1.8.2", "pub_date": "2026-05-24T00:00:00Z", "platforms": { "windows-x86_64": { "signature": "更新包的签名串", "url": "https://github.com/wnzzer/rank-analysis/releases/download/v1.8.2/lol-record-analysis-app-1.8.2-setup.exe" } } } 前端启动时调一下 check() ,有新版就提示下载安装,三五行的事: import { check } from '@tauri-apps/plugin-updater' const update = await check() if (update) { await update.downloadAndInstall() // 下完自动重启 } 这里有个容易搞混的点得说清楚 :Tauri updater 要你用一对自己生成的密钥( tauri signer generate ,免费)给「更新包」签名,公钥填进上面的配置 —— 这个签名是给自动更新做校验用的,和 Windows 上那种要花钱买的「代码签名证书」完全是两码事。我穷,没买代码签名证书,所以首次安装时 Windows SmartScreen 还是会弹个"未知发布者",这个坑我到现在没填。但自动更新本身一分钱没花就跑通了,对一个免费小工具来说,够用了。 效果对比(有图有真相) 安装包体积演变 每一行都是 GitHub Release 公开记录,可以去 Releases 页 核对: 版本 日期 大小 阶段 v1.0 2025-01-13 128 MB Electron + Go 起点 1.1 → 1.5.3 01~03月 ~85-93 MB Electron 时代 v1.5.4 2025-03-30 86.3 MB + 10.2 MB 双轨同框 v1.5.6 2025-04-19 10.3 MB 纯 Tauri v1.6.0 2025-10-08 6.7 MB 升 Tauri 2 v1.8.2 2026-05-24 5.01 MB 当前 起点 v1.0 —— 128 MB : 转折点 v1.5.4 —— Electron 和 Tauri 同框 : 当前 v1.8.2 —— 5.01 MB : 内存占用 旧版 Electron + Go(稳态 ~306 MB) : 新版 Tauri + Rust(稳态 ~241 MB) : WebView2 那 ~200MB 看着大,但 系统里只要装了 Edge 或者别的 Tauri 应用,这部分就是共享的 ,边际内存远小于这个数。 截图里 实用工具 (6) 的 6 个进程是 WebView2 的渲染 / GPU / 管理器等辅助进程 —— 和当年 Electron 的多进程模型一个道理,这部分跑不掉。前面"进程架构"那条说的"单个二进制",指的是 app 自己不再额外起一个 Go server 子进程 + localhost HTTP ,不是说 OS 层只剩 1 个进程。 几句废话 说实话,一开始决定迁的时候心里也没底。毕竟 Electron + Go 虽然,但它跑着呢。万一迁到一半翻车了,那才叫社死。 后来想通了: 128 MB 对一个查战绩的工具来说太离谱了。 用户不会关心你用的什么框架,他们只关心下完打开能不能用。Tauri 让安装包从 128 MB 变成 5 MB —— 不是"技术优化",是 让产品有被打开的机会 。 如果你也在做类似的桌面端项目,我的建议就三条: 别一刀切 ,留旧项目并存,新目录单独建,随时能 ship 先迁用户感知最强的功能 ,不是代码量最小的 别在迁移里掺重构 ,已经够复杂了,UI 改版分开做 就这些。希望对在做类似项目的朋友有帮助。 相关链接: 仓库: github.com/wnzzer/rank-analysis 最新版下载: releases/latest LCU 凭据获取(坑 1 详细实现): 无管理员权限 LCU auth-token、port 获取 历史版本: ① 项目介绍 | ② v1.2 | ③ 分页设计 觉得有用的话帮忙点个赞 有问题也可以去 GitHub 提 issue 交流 5 个帖子 - 5 位参与者 阅读完整话题

LinuxDo 最新话题 · 2026-05-31 11:15:19+08:00 · tech

最近看 Claude Code Skills 文档,最大的感受是:Skill 不应该写成“万能提示词”,而应该写成一个边界很清楚的小工具包。 官方文档: Extend Claude with skills - Claude Code Docs Agent Skills in the SDK - Claude Code Docs 我理解的 Skill Skill = 一段可自动发现的说明 + 必要的脚本/模板/参考资料。 它适合沉淀那些你经常重复做、而且流程比较稳定的任务,例如: PR review 生成 changelog 检查论文格式 按项目规范写测试 根据设计稿实现页面 不适合把所有偏好一股脑塞进去。那样模型每次都要读一大坨,反而容易失焦。 最小结构 my-skill/ SKILL.md scripts/ templates/ references/ SKILL.md 最关键的是 frontmatter: --- name: pr-review description: Review code changes for bugs, regressions, missing tests, and risky behavior. Use when the user asks for code review or pre-merge checks. --- # PR Review Read the diff first. Prioritize correctness issues over style. Report findings with file path and line reference. description 要写触发条件,不要只写“一个很强的 review 技能”。模型是靠描述判断什么时候加载的。 我建议的写法 一条 Skill 只做一类事: review 就只 review deploy 就只 deploy paper polish 就只处理论文 screenshot 就只做截图和视觉检查 如果一个技能里同时写“审查、重构、部署、写文档”,最后就很容易变成大型玄学 prompt。 判断一个 Skill 好不好 我会看三点: 触发场景是否清楚。 输出格式是否稳定。 有没有可复用脚本或模板,而不是全靠模型临场发挥。 这个思路对 Codex 的 Agent Skills 也适用。后面我准备把常用的 review、Playwright 截图、项目初始化都整理成技能。 1 个帖子 - 1 位参与者 阅读完整话题

v2ex · 2026-05-29 10:49:52+08:00 · tech

最近把自己的简历重写了一遍,没用 Notion 也没套模板,当成一个正经前端工程在做。聊几个我觉得有点意思的设计,顺便求 Star 和拍砖。 一句话介绍:Vite + React 写网站,Remotion 写"简历视频",同一份 zod 校验过的双语数据驱动两端。 几个自己比较得意的点: Monorepo 里两个 source-only 包 。 @resume/data 和 @resume/ui 都没有 build 步骤, exports 直接指向 src/*.ts ,Vite / Vitest / Remotion 的 webpack / tsc 全部直接吃 TS 源码,少一层产物,少一类玄学。 简历数据单一事实源 。基于 JSON Resume schema 扩展,zod 校验,所有字符串都是 LocalizedString { zh, en } ,网站 section 、Remotion composition 、CLI 渲染脚本全都读同一份 resume.ts ,改一行全部同步。 视频三级降级 ,按用户偏好/网络自动挑: prefers-reduced-motion → 静态 poster saveData / 慢网 → 预渲染 mp4 默认 → 懒加载 @remotion/player ,进入视口才挂载,离开自动暂停回首帧 Remotion 双入口 。CLI/Studio 用 index.ts 注册 root,网页端只 import exports.ts (纯组件 + zod schema + 默认值 + 元信息),两边复用 composition 但互不污染。 CI 渲染按内容哈希缓存 。 apps/remotion/src + packages/data/src 哈希没变就跳过 render,首次部署 5–8 分钟,之后 1–2 分钟。 技术栈:pnpm + Turborepo / React 18 / Remotion 4 / Tailwind(自写 cyberpunk preset)/ react-i18next / @ antfu /eslint-config 。 仓库: https://github.com/JS-mark/personal-resume-website Demo: https://js-mark.com/personal-resume-website/ 任何拍砖都欢迎,尤其想听听别人是怎么处理 Remotion 网页端复用和视频降级这块的。

V2EX - 技术 · 2026-05-29 10:46:21+08:00 · tech

最近把自己的简历重写了一遍,没用 Notion 也没套模板,当成一个正经前端工程在做。聊几个我觉得有点意思的设计,顺便求 Star 和拍砖。 一句话介绍:Vite + React 写网站,Remotion 写"简历视频",同一份 zod 校验过的双语数据驱动两端。 几个自己比较得意的点: Monorepo 里两个 source-only 包 。 @resume/data 和 @resume/ui 都没有 build 步骤, exports 直接指向 src/*.ts ,Vite / Vitest / Remotion 的 webpack / tsc 全部直接吃 TS 源码,少一层产物,少一类玄学。 简历数据单一事实源 。基于 JSON Resume schema 扩展,zod 校验,所有字符串都是 LocalizedString { zh, en } ,网站 section 、Remotion composition 、CLI 渲染脚本全都读同一份 resume.ts ,改一行全部同步。 视频三级降级 ,按用户偏好/网络自动挑: prefers-reduced-motion → 静态 poster saveData / 慢网 → 预渲染 mp4 默认 → 懒加载 @remotion/player ,进入视口才挂载,离开自动暂停回首帧 Remotion 双入口 。CLI/Studio 用 index.ts 注册 root,网页端只 import exports.ts (纯组件 + zod schema + 默认值 + 元信息),两边复用 composition 但互不污染。 CI 渲染按内容哈希缓存 。 apps/remotion/src + packages/data/src 哈希没变就跳过 render,首次部署 5–8 分钟,之后 1–2 分钟。 技术栈:pnpm + Turborepo / React 18 / Remotion 4 / Tailwind(自写 cyberpunk preset)/ react-i18next / @ antfu /eslint-config 。 仓库: https://github.com/JS-mark/personal-resume-website Demo: https://js-mark.com/personal-resume-website/ 任何拍砖都欢迎,尤其想听听别人是怎么处理 Remotion 网页端复用和视频降级这块的。

V2EX - 技术 · 2026-05-29 10:15:28+08:00 · tech

最近把自己的简历重写了一遍,没用 Notion 也没套模板,当成一个正经前端工程在做。聊几个我觉得有点意思的设计,顺便求 Star 和拍砖。 一句话介绍:Vite + React 写网站,Remotion 写"简历视频",同一份 zod 校验过的双语数据驱动两端。 几个自己比较得意的点: Monorepo 里两个 source-only 包 。 @resume/data 和 @resume/ui 都没有 build 步骤, exports 直接指向 src/*.ts ,Vite / Vitest / Remotion 的 webpack / tsc 全部直接吃 TS 源码,少一层产物,少一类玄学。 简历数据单一事实源 。基于 JSON Resume schema 扩展,zod 校验,所有字符串都是 LocalizedString { zh, en } ,网站 section 、Remotion composition 、CLI 渲染脚本全都读同一份 resume.ts ,改一行全部同步。 视频三级降级 ,按用户偏好/网络自动挑: prefers-reduced-motion → 静态 poster saveData / 慢网 → 预渲染 mp4 默认 → 懒加载 @remotion/player ,进入视口才挂载,离开自动暂停回首帧 Remotion 双入口 。CLI/Studio 用 index.ts 注册 root,网页端只 import exports.ts (纯组件 + zod schema + 默认值 + 元信息),两边复用 composition 但互不污染。 CI 渲染按内容哈希缓存 。 apps/remotion/src + packages/data/src 哈希没变就跳过 render,首次部署 5–8 分钟,之后 1–2 分钟。 技术栈:pnpm + Turborepo / React 18 / Remotion 4 / Tailwind(自写 cyberpunk preset)/ react-i18next / @ antfu /eslint-config 。 仓库: https://github.com/JS-mark/personal-resume-website Demo: https://js-mark.com/personal-resume-website/ 任何拍砖都欢迎,尤其想听听别人是怎么处理 Remotion 网页端复用和视频降级这块的。

LinuxDo 最新话题 · 2026-05-13 19:53:07+08:00 · tech

最近在做一个tiktok的播放量等数据的抓取,偶然看到了一个站居然可以获取,简单用postman请求了一下它的api地址,顺利拿到数据。于是咔咔一顿写了个py,没想到这个就被cf拦住了,postman的甚至都没带ua请求头都过了,而且发现py的被拦了之后,又回头用postman,依然可以拿到数据,这是为什么啊,有大佬知道吗? 3 个帖子 - 3 位参与者 阅读完整话题

LinuxDo 最新话题 · 2026-05-10 21:07:21+08:00 · tech

今天闲的没事让codex扫了一下代码行数 不知不觉,自己已经走了很远的路了 我在做一个很大的项目,然后里面有好几个大板块 我又是基建狂魔,追求每个板块都做的更好 也不怪我烧了这么多额度,不过总体板块只做了60% 大部分都是可复用的代码和技术栈,因为是自用就做的很细心 可变现的核心板块,今天做到了70%,今天拼一拼,努力给他落地缓解一下经济压力 怎么办,上个月烧了2wu codex 5.5 额度 开发调优 如题,上个月我已经烧了2wu额度 当时的解决方案是,team母号+子账号 和廉价的渠道pro 20x 但是现在便宜渠道没有了,我就自己开正价 我先开 pro 5,然后刷完额度开 20x,所以一个号是30x 但是现在我已经开了俩个 pro 20x了 这个月才过去10天,已经用了算下来用了80x(中间还重制了一次+20x) 再这么下去,项目没落地,钱包就先空了,有没有渠道啊呜呜呜 难道… 10 个帖子 - 6 位参与者 阅读完整话题

v2ex.com · 2026-04-25 10:00:40+08:00 · tech

一、简历自我介绍不是自夸,是“精准定位” 很多人把简历自我介绍写成“性格开朗、勤奋好学、团结同事”——这不是自我介绍,这是自我鉴定。HR 每年要看几千份简历,他们要找的不是“道德模范”,而是“能用的人”。 简历自我介绍的本质,是用最短的文字告诉招聘方三件事: 你是谁、你擅长什么、你能带来什么价值 。这三句话必须和岗位要求高度相关,而不是罗列一堆放之四海皆准的形容词。 好在这件事有方法论。下面给你一套可直接套用的写作框架。 二、简历自我介绍的标准结构:3 句话定位法 不管你是什么行业、什么岗位,简历自我介绍都可以用这个结构展开: 身份标签 :用一句话说明你的专业领域和工作年限 核心能力 :列出 2-3 个与岗位强关联的硬技能或软实力 成果数据 :如果有可量化的成绩,提炼一个关键数字 举个实际例子,假设你应聘运营岗位,普通写法是:“本人热爱互联网行业,学习能力强,善于沟通”。改写后可以是:“3 年互联网运营经验,擅长用户增长与活动策划,曾主导项目实现月活提升 40%”。 对比一下,后者是不是立刻清晰多了?这就是“精准定位”和“流水账”的区别。 三、不同岗位的简历自我介绍怎么写 简历自我介绍不是一套话术打天下,不同岗位的侧重点差异很大。 技术类岗位:突出技能栈和项目经验 技术岗的简历自我介绍不需要文采,关键是让面试官快速判断你的技术深度。可以这样写:“5 年前端开发经验,精通 Vue/React ,熟悉 Node.js 后端开发,曾主导开发 X 项目,用户量突破百万”。 销售/商务类岗位:突出业绩和资源 这类岗位直接用数据说话最有说服力。参考写法:“3 年 B 端销售经验,年度业绩 TOP20%,累计签约客户 50+,擅长大客户开发与维护”。 管培生/应届生:突出潜力和可塑性 没有工作经验怎么办?把教育背景、实习经历、软技能组合起来。例如:“985 市场营销专业应届生,有 2 段互联网实习经历,参与过用户调研与活动策划,对数据运营有浓厚兴趣”。 职能类岗位(行政/HR/财务):突出经验和稳定性 这类岗位招聘方最在意的是经验匹配度和职业稳定性。可以这样写:“5 年人力资源经验,擅长招聘与员工关系维护,持有二级人力资源师证书,追求稳定发展”。 四、简历自我介绍的常见错误 错误 1:堆砌形容词,没有实质内容 “吃苦耐劳、积极向上、乐于助人”——这类话放在任何人的简历里都能用,等于没说。 错误 2:写成工作经历的压缩版 简历自我介绍不是让你把工作经历复述一遍,而是提炼精华。如果你想写工作经历,后面有专门的工作经历模块等着你。 错误 3:目标岗位模糊 简历自我介绍必须和投递岗位高度匹配。一份简历投所有岗位,结果是所有岗位都觉得你“不够对口”。 错误 4:长度失控 简历自我介绍建议控制在 50-150 字之间。太长,HR 没时间看;太短,信息量不够。 五、简历自我介绍模板与快速修改技巧 给你三个可直接套用的模板: 模板 A (有工作经验) :X 年[行业/岗位]经验,精通[核心技能],曾[关键成果/项目],擅长[软技能],希望在[岗位方向]持续深耕。 模板 B (应届生/转行者) : [专业背景/原行业]经验,具备[相关技能],有[相关经历/项目],希望转向[目标岗位方向]。 模板 C (管理岗) :X 年[行业]经验,[X]年团队管理经验,擅长[管理能力],带领团队实现[关键业绩],寻求[更高职位/新方向]机会。 快速修改技巧:写完之后问自己三个问题—— 这段话里,有没有任何一个词可以换成更具体的描述? 一个没看过我简历的人,能否通过这段话判断我和岗位的匹配度? 这段话能否在 5 秒内读完? 如果任何一个问题的答案是否定的,继续改。 如果你也在改简历,强烈建议你试试 棱镜简历 ,里面的简历模板支持一键套用和智能优化,帮你把简历自我介绍和整体排版同步提升,点击 https://xukz.cn 即可开始。