Normal view

There are new articles available, click to refresh the page.
Today — 1 May 2025Curiosity

斗地主记牌器的开发

By: dhuzbb
1 May 2025 at 12:49
dhuzbb:

起源

周末经常和同事一起玩 JJ 斗地主,每局输赢不大,主要以娱乐为主。由于经常输,所以萌生了开发一款记牌器来偷偷提升斗地主水平的想法。

我的本职工作是 Java 后端开发,没有接触过安卓开发,再加上最近 AI 编程的火热,让我萌生了使用 Cursor 开发一款安卓应用的想法。

思路

主要思路:如果能够每隔 1 秒截取到当前手机屏幕的内容,然后识别出截图中的所有牌张的点数及花色,那么用 54 张牌直接减去对应的牌张及花色即可得到剩余的牌张。

实现的困难点在于,不仅要识别牌的点数,还需要识别牌的花色。

因为如果只是单纯的识别牌的点数而不考虑花色,那么会产生 Bug 。

例如:先出黑桃 2 ,再出红桃 2 ,等了 3 秒后再出其它牌。由于出牌时间不是固定的,在这期间每隔 1 秒识别截图会重复识别多次牌张 2 ,导致剩余牌张数不准确。

如果同时识别牌的点数及花色,则不会出现重复多次扣减同样牌张的问题。

UI 设计

记牌器 UI 的主体借鉴了 JJ 斗地主自身的记牌器。

应用主界面如下:

由于是自己使用,所以界面做得比较简单,主界面只有一个 [开启记牌器] 按钮。点击后该按钮会变成 [结束记牌器] 。

点击 [开启记牌器] 按钮,会弹出系统屏幕录制权限,可以只录制单个应用,也可以全局录制整个屏幕。如下所示:

点击 [开始] 按钮,会在当前页面显示记牌器悬浮窗,如下所示:

整个悬浮窗由三部分组成:

  • 左侧: [隐] 按钮点击可以控制悬浮窗的显示和隐藏。点击后变为 [显] 按钮。
  • 中间:记牌器的主体分为上下两排,下面是 3 到大王的剩余牌张数,如果有炸弹,文字会显示为红色。
  • 右侧: [开始] 按钮点击后可以开始新一局的录制,同时按钮会变为 [结束] 按钮。

点击右侧 [开始] 按钮后,开始一局的录制,同时按钮会变为 [结束] 按钮。

整个悬浮窗可以全局灵活的自由拖动:

悬浮窗还可以显示和隐藏:

记牌器显示在桌面的效果如下:

记牌器在 JJ 斗地主游戏界面显示如下:

UI 开发

期间一共开发了三个版本:

  • 第一个版本由 Cursor 的 Agent 模式开发,使用 Claude 3.7 Sonnet 模型。由于个人知识的局限性,对于安卓全局悬浮窗和屏幕录制权限完全不了解。当提出的问题本身可能都不完全正确的情况下,让 AI 去实现相应的功能以及修改 Bug 的时候,AI 往往会陷入死循环,结果就是 Cursor 消耗了 200 左右的对话次数都无法修改正确一个在我个人看来非常简单的问题。令人失望的是,最后并没有达到想要的效果,以失败告终。

  • 第二次尝试使用免费的 Trae 来开发同样的 UI 部分,同样使用 Claude 3.7 Sonnet 模型。有了第一次的经验,使用 Trae 开发的前期比较顺畅,但是当对话次数多了之后需要排队,由于等待时间较长,严重影响写代码的体验,最终还是放弃了。

  • 前面两次 AI 生成的 UI 代码也不是完全没有用处。有了前面两次的经验,还是让我学习到了不少安卓 UI 开发的相关知识。最后还是通过搜索相关实现例子,手写大部分 UI 代码再加上 AI 的辅助,最终才搞定 UI 的部分。

图像识别

记牌器的技术难点在于图像识别。

前期通过调研,得知 OpenCV 可以实现图像识别,并且网上可以搜索到相应的代码示例,再加上 OpenCV 有对应的 Java 包,所以优先选择了 OpenCV 来开发图像识别功能。

通过 ChatGPT 以及 DeepSeek 的辅助,花费了不少时间开发出了第一版的 OpenCV 识别算法。

核心思路大致是:

  • 通过手动截取出 54 张牌的左上角的数字以及花色区域,得到 54 张截图模板。
  • 对模版和待识别的截图进行各种预处理(转为灰度图、高斯模糊、二值化等)。
  • 最后使用 OpenCV 的模板匹配,将 54 张模板和待识别的截图依次做相似度匹配,取匹配相似度最高的结果,并且丢掉低于设定阈值的匹配结果。

测试过程中发现 OpenCV 的识别效果不太理想,容易出现识别错误以及漏识别的问题。

对于记牌器应用来说,是不能容忍任何的漏记以及错误识别的,必须想办法提高识别的精度。

深度学习

OpenCV 的模版匹配方案还有另外 2 个致命的问题:

  • 不同手机的分辨率可能不一样,势必会影响识别的准确度。
  • 无法适配其它斗地主游戏。

既然 OpenCV 存在致命的缺陷,所以不得不推倒重来。

又是新的一轮咨询 ChatGPT 以及 DeepSeek ,得到了可以通过基于深度学习框架 YOLO 来提高图像识别的准确度。

大致看了一下官网文档,看上去比较容易上手。

整体大致流程:

  • 先手动截取一些包含所有 54 种牌张的截图
  • 使用 LabelImg 对截图进行类别的标注
  • 将截图按照 8:2 的比例分为训练集和验证集
  • 使用 YOLO 进行训练
  • 最后导出训练的最佳模型

有了 AI 的详细指导,整个过程基本上都比较顺畅。使用 Google 免费的 Colab 很快就训练出了第一版模型。然而最终验证的识别效果还是不太理想,还是存在漏记和错记的情况。

最后得知原因在于训练的数据集太小(手动截图并标注了几十张训练图)。想要识别效果比较理想,一般的 YOLO 训练集的大小规模在几千到上万张左右。

由于手动一张张截取手机屏幕并标注,消耗的时间实在是太长了。为了解决训练集不足的问题,最后不得不写了一个程序,根据截图模版随机生成了一万张图片以及对应的 YOLO 标注文件用于训练。

当训练集规模到了一万张的时候,预计模型训练花费的时间会达到几个小时,Google 免费的 Colab 有运行时间的限制条件,无法再满足训练的需求,不得不考虑租用 GPU 服务器。

综合对比之下,最后采用了阿里云的 GPU 服务器。配置为 16G 显存的 V100 显卡。非常幸运的是,新用户前 100 个小时有很大的优惠折扣,折合 2 块/小时左右,实在是太划算了。

在阿里云上总共的训练时长不到 3 个小时。最后,识别精度意外的好,每张牌都能到达 0.98-0.99 的准确度,实际体验下来没有遇到过错记或漏记的情况。

整合

将训练好的图像识别模型与 UI 整合起来有两种方式:

  • 通过 Python 调用训练好的模型并部署 API 接口供安卓 UI 调用。
  • 将模型转换为适用于移动端的模型格式,安卓自身通过代码直接调用模型进行图像识别。

方案 1 的缺点就是需要额外的服务器进行部署,且依赖网络传输截图数据。

方案 2 我个人没有尝试过,但看 ChatGPT 给出来的代码示例,感觉也许应该是可行的吧。有空会尝试一下方案 2 ,不清楚移动设备的识别效率会怎样。

由于难易程度的关系,我采用了方案 1 。通过 ChatGPT 给出的 Python 调用模型进行识别的方式,很容易就对外暴露了一个识别 API 接口供安卓 UI 调用。

最后在家里的 M4 Mac Mini 上部署之后,达到了非常完美的识别效果。

思考和总结

经常在网上看到一些所谓的完全不懂编程,我竟然 4 小时靠 AI 复刻出月入$600k 的 APP 的同款的营销文章和视频。说实话,我个人是非常反感这类文章和视频的。

从我个人的亲身体验来看,现阶段的 AI 还只能用于辅助开发。AI 的知识储备确实非常丰富,能够带领你尝试你从未涉及的领域。但是,往往由于个人本身所掌握的知识的局限性,遇到特定的问题的时候,依靠 AI 往往很难解决。

另一个方面,AI 很容易犯错。我记得让 ChatGPT 给出使用 SpringBoot 实现直接调用训练好的 YOLO 模型的时候,AI 很快给出了一段看上去像模像样的 Java 代码并贴心的给出了 Maven 依赖包。当你按照 AI 的指导写好所有代码的时候,你会惊奇的发现,Maven 包实际上并不存在,完全是 AI 瞎编造出来的,包括那些像模像样的实现代码也是一样。当你质问 AI 给出的 Maven 依赖包为何不存在的时候,只会得到 一句抱歉。

然而即使现阶段的 AI 在使用上还有着各种各样的缺陷,我对未来的 AI 编程还是抱有期望的。对比几年前,AI 的提升无疑是巨大的。这些改进和提升在往后的几十年中还会不断的上演,甚至呈现指数级的增长,直到实现普通人都能够轻松使用的真正的 AI 。

多进制数的乘法时间复杂度 O(n)?

By: qwertyegg
1 May 2025 at 12:11
qwertyegg:

举个🌰,比如 7-5-3 进制数,可以表示 0-104 ,105 个整数

7-5-3 进制数跟 10 进制数的转换

0-0-0 表示 0 1-1-1 表示 1 2-2-2 表示 2 3-3-0 表示 3 4-4-1 表示 4 5-0-2 表示 5

以此类推

6-4-2 表示 104

10 进制数转换为 7-5-3 进制数很容易,求余即可。反过来,7-5-3 进制数转换为十进制数可用中国剩余定理算 a-b-c to (a15 + b21 + c*70) mod 105.

显而易见,7-5-3 进制数的加法:

a-b-c + x-y-z = (a+x)-(b+y)-(c+z),只需要对每位计算一次,完全不需要考虑进位。当然这个并不是大问题,计算机算加法也是可以同时并行计算每一位,并不是手算那种需要考虑进位的依赖。

有意思的是乘法:

a-b-c * x-y-z = (ax) mod 7-(by) mod 5-(c*z) mod 3

n 位的乘法只需要 O(n),而非小学学的 O(n^2),也比基于 FFT 的 O(nlog n log log n)快

其中最大的优点是可并行计算,只要计算单元够多,O(1)就能计算出乘法结果而没有进位的依赖.

我用 AI 做了两个 Wordpress 插件 —— 好物/应用分享页

By: VeryJack
1 May 2025 at 12:04
VeryJack:

作为小白,一直很羡慕各位大佬制作的好物分享页面。之前我也有尝试使用 Wordpress 的古腾堡编辑器手搓好物页和应用分享页,但添加新的内容会变得十分麻烦,以至于我几乎没有更新过页面。于是,完全不懂 PHP 的我用 AI 制作了两个简单的 Wordpress 插件,实现了好物和应用分享页面的搭建,并且操作非常简单,适合小白用户。

效果展示

效果图 1

https://veryjack.com/goods

效果图 2

https://veryjack.com/apps

项目地址

好物分享页 Wordpress 插件

应用分享页 Wordpress 插件

使用方法

两个插件的使用方法相似,均是先在 github releases 页面下载 zip 文件,在 Wordpress 中安装插件,最后在后台页面添加信息即可,以好物分享页为例,具体步骤如下:

  1. 下载插件
  2. 在 Wordpress 后台 - 插件 - 添加插件 - 选择下载的 zip 文件进行安装;
  3. 在 Wordpress 后台 - 好物页面 选项 - 添加新产品 - 填入产品名称产品描述跳转链接(可不填)产品图片即可;
  4. 创建一个页面或者新的文章,在文中输入段代码即可调用该分享页面。
[goods_exhibition_page]

注意事项

如果需要调整颜色等样式,需要自行下载插件后解压,修改 .css 文件。

招聘 Flutter 开发

1 May 2025 at 11:03
web2320632844: base:长沙 25-35k
核心职责
基于 Flutter 框架设计并开发高质量的跨平台( iOS/Android/Web )应用程序。
优化应用性能,解决复杂的技术问题(如渲染效率、内存管理、多端适配等)。
与产品、UI/UX 、后端团队协作,确保技术方案与业务需求高度匹配。
主导技术方案评审,推动代码规范、测试覆盖率和工程化最佳实践。
探索 Flutter 前沿技术(如 Impeller 、FFI 、Isolate 等),提升团队技术竞争力。

任职要求
必备条件:

5 年以上移动端开发经验,3 年以上 Flutter 商业项目经验,至少主导过 2 个以上完整 Flutter 项目上线。
精通 Dart 语言,深入理解 Flutter 框架原理( Widget 树、渲染管线、状态管理等)。
熟悉 Native ( Android/iOS )开发,能独立处理平台相关功能(如原生插件开发、性能调优)。
熟练使用 Riverpod/Bloc 等状态管理工具,掌握 GetX 、FlutterBoost 等常用库的深度优化。
具备复杂动画、自定义绘制、多线程编程等实战经验。
熟悉 CI/CD 流程(如 Fastlane 、Codemagic ),有自动化测试( Unit/Widget/Integration )经验

加分项:
有 Web 或桌面端( Flutter Desktop )开发经验。
参与过开源 Flutter 项目,或技术社区贡献者。
熟悉后端技术( Node.js/Go 等),具备全栈能力。
团队与文化
技术驱动:鼓励技术创新,提供硅谷级技术栈和硬件支持。

上海移动有 1 元抽百 G 活动,在 app 上搜索 1 元百 g

By: pagxir
1 May 2025 at 10:44
pagxir: 上海移动客户均可办理( wap 套餐客户除外)

[活动时间]


即日起至 2025 年 12 月 31 日。

[活动规则]

活动期间客户可参与百 G 礼包抽奖,有机会抽得以下奖品:

1 、1 元百 G 礼包:当月订购,当月生效。原价 10 元含 1GB 国内通用流量(不含港澳台地区),现 12 个月内优惠至 1 元/月且每月加赠 99GB 上海地区通用流量、即每月 1 元含 100GB 流量。

2 、5 元百 G 礼包:当月订购,当月生效。原价 10 元含 1GB 国内通用流量(不含港澳台地区),现 12 个月内优惠至 5 元/月且每月加赠 99GB 上海地区通用流量、即每月 5 元含 100GB 流量。

3 、10 元百 G 礼包:当月订购,当月生效。原价 10 元含 1GB 国内通用流量(不含港澳台地区),现 12 个月内每月加赠 99GB 上海地区通用流量、即每月 10 元含 100GB 流量。

4 、20 元百 G 礼包:当月订购,当月生效。原价 20 元含 3GB 国内通用流量(不含港澳台地区),现 12 个月内每月加赠 97GB 上海地区通用流量、即每月 20 元含 100GB 流量。

5 、4 元百 G 礼包:一次性收费 4 元,次月自动失效。礼包共计包含 100GB 流量,其中 1GB 为国内通用流量(不含港澳台地区),99GB 为上海地区通用流量。

[重要提醒]

1 、抽得的礼包若未立即办理,当月可在“我的礼包=已抽取礼包”找到和办理。若未找到则抽得的礼包已逾期失效,需重新抽取。

2 、1 元、5 元、10 元百 G 礼包默认开通 10 元 1GB 流量可选包,20 元百 G 礼包默认开通 20 元 3GB 流量可选包,均在相应流量可选包基础上享受月费优惠和流量加赠。

3 、所含流量资源均不可共享、不可结转。流量使用优先级高于可结转的套内流量。上海地区通用流量仅限在上海市内手机上网抵扣使用,使用外省(市)网络则抵扣国内通用流量或按基础套餐资费收取,具体以话单为准。

4 、对于已办理全国大流量-高速流量的用户,若套内高速流量使用完毕则遵循合约流量模组的流量封顶规则、降速规则。

5 、高速流量客户在高速流量用尽限速后,可订购自动提速包取消限速,然后继续使用本活动流量。



6 、百 G 礼包仅可办理一次,已经参与过百 G 礼包活动用户将不能重复办理。

[默认开通的流量可选包规则]

1 、合约期 12 个月,到期当月有到期提醒短信并可退订,下月生效;合约期间,客户如因销户、携号转网等需提前解除协议,应先退订。

2 、若合约期内转出合约流量包,需前往营业厅办理办理提前解约,需支付的违约金=流量可选包月费×50%×已享受优惠的月数。

3 、合约到期月,您可变更档次或退订;若未在到期当月退订,则次月默认延续,合约期仍为 12 个月;以此类推,后续每 12 个月均按上述规则自动展期。

求教:使用 iSCSI 共享能否解决 SMB/NFS 的权限冲突问题

By: Ploter
1 May 2025 at 10:35
Ploter:

背景

我有一台 Proxmox VE 主机,虚拟化了两台 VM:

  • TrueNAS Core:作为存储服务器。
  • Playground ( Debian ):运行 Docker 容器,部署服务。

两者通过 PVE 的 VirtIO 网络连接。

需求:我想将 TrueNAS 的存储共享给 Playground 作为扩展磁盘,供 Docker 容器使用。

尝试过 SMB 和 NFS ,但遇到问题:某些 Docker 容器会修改文件权限(所有者或读写权限),导致权限冲突或“Permission denied”错误,可能是 SMB/NFS 的用户映射问题。

我听闻 iSCSI 是块共享协议,但感觉上手有点复杂,所以先来问问大佬们。

问题

  1. iSCSI 是否能有效解决 SMB/NFS 的权限冲突/用户映射问题?
  2. 使用 iSCSI 共享后,文件是否只能通过 iSCSI 客户端查看?能否在 TrueNAS 上访问相同数据?
  3. iSCSI 是否支持多个客户端同时连接呢?

能想到的暂时就这些了,有经验的大佬可以补充一下。

每天解锁 Jemini ai 的一种玩法 5/1:素描转实体图

By: antaeus
1 May 2025 at 10:26
antaeus: 每天解锁 Jemini ai 的一种玩法 之 5/1:

素描转实体图:

1 、app store 搜索下载:Jemini ai - 动嘴生图、改图
2 、上传一张素描图
3 、输入提示词:这是一张素描图,里面有一个几何体,两个苹果,还有一个墨颜料碗,请上色并生成实体图

注:Jemini 底层模型给谷歌的 Gemini

老婆明天生日,想去春熙路做手工[手动狗头]

1 May 2025 at 10:22
csfreshman:

v2 上的热帖一个比一个逆天,一天不刷 v2 就跟不上了潮流。

如果你不知道成都春熙路,我只能说你最近没刷 v2,如果你老婆明天不过生日,并且你每个月的零花钱不是 500 ,那么我只能说……

老哥你问买啥礼物,直接说预算多少,你说你每个月零花钱 500 ,是不是会让那些每个月没有 500 零花钱的人破防?每个月零花钱远远超过 500 的老哥们会笑话你🐢,只有每个月零花钱是 500 的老哥才能跟你感同身受!根据我 7 8 年的编程经验,零花钱一个月只有 500 的老哥在 v2 绝种了,只有你一份。

我分析可能是由于我打了两针科兴的缘故,最近刷 v2 这种帖子刷的很上瘾,就像最近刷那种微信短视频,虽然剧情很蠢,但是有点爽。

perplexity 的 deep research 模式的 AI 幻觉(hallucination)很严重,动不动就伪造古文,有没有同价位的幻觉率少点的 Deep Research 推荐?

1 May 2025 at 10:20
qqqfreeboycn: perplexity 的 deep research 模式的 AI 幻觉( hallucination )很严重,动不动就伪造古文,自编数据更是司空见惯,有没有同价位的幻觉率少点的 Deep Research 推荐?

劳动节为什么不翻译为劳工节或者工人节

By: movq
1 May 2025 at 08:23
movq:

说劳动节,好像这个节是为了劳动,或者为了歌颂劳动似的,“劳动最光荣”

其实英文是 International Workers' Day, 或者 Labour Day ,意思是工人、劳工的节日,是为了保障劳动者(工人)权益的节日

这个节日的起源,是当时的工人为了争取 8 小时工作制而进行罢工,可见是为了减少劳动,而非歌颂劳动,并非“劳动最光荣”

总结如下:

Labour Day 的起源可以总结如下:

  • 起源背景
    19 世纪中后期,随着资本主义的发展,工人阶级普遍遭受超长工时和恶劣劳动条件的剥削。工人们为争取八小时工作制和改善生活条件,陆续发起罢工和抗议[3][4]。

  • 澳大利亚的首次行动
    1856 年 4 月 21 日,澳大利亚墨尔本的石匠和建筑工人举行大规模停工,要求实施八小时工作制,这一行动成为后续国际工人运动的先声[1][5][7]。

  • 美国芝加哥大罢工
    1886 年 5 月 1 日,美国芝加哥等城市约 35 万工人举行大罢工,要求八小时工作制。期间发生了著名的“干草市场事件”( Haymarket Affair ),工人与警方冲突,造成多人伤亡。这次运动虽然遭到镇压,但极大地推动了全球工人运动的发展[1][2][3][4][5][9]。

  • 国际劳动节的确立
    为纪念美国工人的斗争,1889 年 7 月,恩格斯领导下的第二国际在巴黎召开代表大会,决定将每年的 5 月 1 日定为国际劳动节( May Day ),号召全球工人为争取合法权益和八小时工作制而团结斗争[1][3][4][5]。

  • 节日影响与传播
    1890 年 5 月 1 日,欧美多国工人首次集体庆祝这一节日。此后,五一劳动节逐渐成为全球 80 多个国家法定的节日,象征工人阶级团结、争取权益和社会进步[3][4]。

简要总结:
Labour Day 起源于 19 世纪工人为争取八小时工作制而发起的罢工运动,尤其是 1886 年美国芝加哥的大罢工。1889 年,第二国际将 5 月 1 日定为国际劳动节,以纪念工人运动和争取权益的斗争精神。此节日如今已成为全球劳动者的共同节日[1][3][4][5]。

来源 [1] 国际劳动节- 维基百科,自由的百科全书 https://zh.wikipedia.org/zh-hans/%E5%9B%BD%E9%99%85%E5%8A%B3%E5%8A%A8%E8%8A%82 [2] 五一国际劳动节起源 - 项城市人民政府 https://xiangcheng.gov.cn/sitesources/xcs/page_pc/xwdt/ssxw/articleA1FAF1E27CF14A9EA301668D58F39535.html [3] 五一国际劳动节_百度百科 https://baike.baidu.com/item/%E4%BA%94%E4%B8%80%E5%9B%BD%E9%99%85%E5%8A%B3%E5%8A%A8%E8%8A%82/810559 [4] 国际劳动节由来 http://paper.ce.cn/pad/content/202404/28/content_293674.html [5] 五一国际劳动节的起源是什么?(罗莎·卢森堡,1894 ) https://www.marxists.org/chinese/rosa-luxemburg/mia-chinese-rosa-1894.htm [6] 党史故事|五一国际劳动节是怎样被引入到中国的? - 共产党员网 https://www.12371.cn/2021/04/16/VIDE1618554904389481.shtml [7] 劳动节- 维基百科,自由的百科全书 https://zh.wikipedia.org/zh-hans/%E5%8A%B3%E5%8A%A8%E8%8A%82 [8] 新中国的第一个“五一”国际劳动节 http://cpc.people.com.cn/n1/2024/0425/c443712-40223444.html [9] [PDF] 國際勞動節由來及意義 https://www.mol.gov.tw/media/tkrfbokv/%E6%B4%BB%E5%8B%95%E8%A8%8A%E6%81%AF.pdf?mediaDL=true

今天是劳动节, 父母依然在劳动

1 May 2025 at 10:00
kamikaze472:

当时毕业的时候也尝试在当地县城找过工作, 但是连当地大型国企 大型外企, 都是单休, 最后还是去了外地打工

在县城, 像我父母这种没有文化的人, 更是不可能找到双休工作

今天睡醒家里就剩我一人了, 父母都劳动去了, 我准备中午自己做饭吃

父亲是工人, 月休 0 天, 只休法定节假日, 但不知道为啥今天没有休息 母亲是街头摆摊, 今天假期准备大干一场 我朋友父亲是码头工人, 应该是排班制, 今天工作 我朋友母亲是餐厅服务员, 今天肯定也休不了

下午准备和朋友出去逛逛, 但消费是不可能消费了, 赚钱不容易呐

现在大学生兼职的选择——计算机专业有哪些靠谱机会?

By: kenapote
1 May 2025 at 09:01
kenapote:

大家好!首先想感谢之前论坛里热心推荐电脑配置的学长学姐们,在大家的建议下入手了联想小新,现在跑代码、写项目都很流畅,真的帮大忙了!

我是一名计算机专业的在校生,平时想通过兼职积累经验+赚点生活费。目前做过家教、发传单这类基础兼职,虽然能赚零花钱,但和专业没啥关系,而且都是短期活儿。后来也尝试过帮学长学姐做毕设、给高考生分析志愿,但这些需求太季节性了(毕业季忙死,平时闲死😅)。最近还在一些平台接过编程外包,但经常遇到需求模糊或者甲方反复改需求,心累……

所以想请教下大家,尤其是计算机专业的同学,有没有更稳定、能长期做的兼职方向?最好能边赚钱边练技术的那种。目前我能想到的有: 1.远程开发/外包:比如接网站、小程序开发,但不知道去哪儿找靠谱客户; 2.技术内容创作:写编程教程、做学习笔记分享,但怕自己水平不够; 3.跟老师做项目:听说有些实验室招学生打杂,但不知道报酬如何; 4.线上实习:远程实习时间会不会和上课冲突?

求过来人指点!如果有靠谱平台推荐或者想组队接单的也欢迎滴滴~(一个人 debug 太痛苦了,需要战友😂)

再次感谢之前推荐电脑的友友们,小新真香!✨

劳动节为什么不翻译为劳工节或者工人节

By: movq
1 May 2025 at 08:23
movq:

说劳动节,好像这个节是为了劳动,或者为了歌颂劳动似的,“劳动最光荣”

其实英文是 International Workers' Day, 或者 Labour Day ,意思是工人、劳工的节日,是为了保障劳动者(工人)权益的节日

这个节日的起源,是当时的工人为了争取 8 小时工作制而进行罢工,可见是为了减少劳动,而非歌颂劳动,并非“劳动最光荣”

总结如下:

Labour Day 的起源可以总结如下:

  • 起源背景
    19 世纪中后期,随着资本主义的发展,工人阶级普遍遭受超长工时和恶劣劳动条件的剥削。工人们为争取八小时工作制和改善生活条件,陆续发起罢工和抗议[3][4]。

  • 澳大利亚的首次行动
    1856 年 4 月 21 日,澳大利亚墨尔本的石匠和建筑工人举行大规模停工,要求实施八小时工作制,这一行动成为后续国际工人运动的先声[1][5][7]。

  • 美国芝加哥大罢工
    1886 年 5 月 1 日,美国芝加哥等城市约 35 万工人举行大罢工,要求八小时工作制。期间发生了著名的“干草市场事件”( Haymarket Affair ),工人与警方冲突,造成多人伤亡。这次运动虽然遭到镇压,但极大地推动了全球工人运动的发展[1][2][3][4][5][9]。

  • 国际劳动节的确立
    为纪念美国工人的斗争,1889 年 7 月,恩格斯领导下的第二国际在巴黎召开代表大会,决定将每年的 5 月 1 日定为国际劳动节( May Day ),号召全球工人为争取合法权益和八小时工作制而团结斗争[1][3][4][5]。

  • 节日影响与传播
    1890 年 5 月 1 日,欧美多国工人首次集体庆祝这一节日。此后,五一劳动节逐渐成为全球 80 多个国家法定的节日,象征工人阶级团结、争取权益和社会进步[3][4]。

简要总结:
Labour Day 起源于 19 世纪工人为争取八小时工作制而发起的罢工运动,尤其是 1886 年美国芝加哥的大罢工。1889 年,第二国际将 5 月 1 日定为国际劳动节,以纪念工人运动和争取权益的斗争精神。此节日如今已成为全球劳动者的共同节日[1][3][4][5]。

来源 [1] 国际劳动节- 维基百科,自由的百科全书 https://zh.wikipedia.org/zh-hans/%E5%9B%BD%E9%99%85%E5%8A%B3%E5%8A%A8%E8%8A%82 [2] 五一国际劳动节起源 - 项城市人民政府 https://xiangcheng.gov.cn/sitesources/xcs/page_pc/xwdt/ssxw/articleA1FAF1E27CF14A9EA301668D58F39535.html [3] 五一国际劳动节_百度百科 https://baike.baidu.com/item/%E4%BA%94%E4%B8%80%E5%9B%BD%E9%99%85%E5%8A%B3%E5%8A%A8%E8%8A%82/810559 [4] 国际劳动节由来 http://paper.ce.cn/pad/content/202404/28/content_293674.html [5] 五一国际劳动节的起源是什么?(罗莎·卢森堡,1894 ) https://www.marxists.org/chinese/rosa-luxemburg/mia-chinese-rosa-1894.htm [6] 党史故事|五一国际劳动节是怎样被引入到中国的? - 共产党员网 https://www.12371.cn/2021/04/16/VIDE1618554904389481.shtml [7] 劳动节- 维基百科,自由的百科全书 https://zh.wikipedia.org/zh-hans/%E5%8A%B3%E5%8A%A8%E8%8A%82 [8] 新中国的第一个“五一”国际劳动节 http://cpc.people.com.cn/n1/2024/0425/c443712-40223444.html [9] [PDF] 國際勞動節由來及意義 https://www.mol.gov.tw/media/tkrfbokv/%E6%B4%BB%E5%8B%95%E8%A8%8A%E6%81%AF.pdf?mediaDL=true

🎁[送码] Codenote - 结合备忘录和便笺的 Mac App,如果你有注释代码又舍不得删除,欢迎你来尝试一下。

By: simonmao
30 April 2025 at 14:59
simonmao:

快速入口:

  1. 视频介绍
  2. App 下载

背景

我是一名 Coder ,遇到问题,就要想办法解决问题。而除了工作中的挑战,还有很多私人问题需要面对——照顾好自己,也是生活中重要的一部分,毕竟,工作不该是生活的全部。

从去年的 WWDC24 结束后,我开始在 Apple Developer 官方网站上学习 Swift 教程。但很快,三分钟热度过去了,没有合适的驱动力,让我一直徘徊到了这个月——Something is changed.

在此前几年,我曾经学习过 Flutter ,并成功将两款 App 分别上线到 App Store 和 Google Play 。跨平台开发在追求开发速度上确实拥有天然优势。

然而,Apple 自家平台的体验实在太优雅了。对于缺乏设计资源的开发者来说,依托平台原生设计去生长,反而更加自然、顺手。因此,"掌握 Apple 原生开发" 一直是我心中的一个执念。直到最近,这个心结终于被我解开了。

言归正传

SaveComment 是我在学习 SwiftUI 开发过程中萌发的一个想法。

在学习过程中,我经常需要写大量注释、临时代码。慢慢地,这些“注释代码”堆积如山,充斥着我的 Demo 项目。虽然很多注释看似有用,让我舍不得清理,但随着数量不断增加,反而严重影响了我的学习效率。

终于,我忍无可忍,决定顺便学习一下 macOS 应用开发,花了几小时实现了核心功能,又用几天时间打磨细节。最终,这个小工具逐渐成型,并从一个简单的保存注释的想法,进化成了一个轻量笔记本+便签工具。

它有了一个正式的名字:Codenote (源自 Code+Note ,但不局限于 Code )。

现在,它已经正式上架 Mac App Store 🎉,

还拥有了一个正儿八经的官网🌍: https://codenote.app 😄!

Mac App Store 地址: https://apps.apple.com/cn/app/codenote/id6744996909

目前算一个 MVP 版本,后续计划增加接入自定义 AI 模型等,欢迎大家来体验,来反馈。

功能

核心功能

快捷键对选中内容 ✍️ 做笔记,或者剪切,也能像 🗒️ 便笺 一样 📌 钉在屏幕上。

笔记管理

支持对笔记内容的高效整理与多维度分类:

  • ✅ 批量操作:支持多选笔记,统一删除、移动或打标签
  • ✅ 文件夹管理:创建文件夹组织笔记,结构清晰
  • ✅ 标签管理:添加多个标签,便于搜索与聚合
  • ✅ App 来源管理:按来源应用(如 Safari 、Xcode 等)自动归类
  • ✅ 收藏功能:一键收藏重要笔记,快速访问

分类方式

提供多种灵活的分类视角:

  • 📁 按文件夹组织
  • 🏷️ 按标签筛选
  • 💻 按 App 来源分类
  • ⭐ 收藏夹聚合常用笔记

语法高亮

内建主流编程语言的语法高亮支持,适用于技术类笔记记录,如:

  • Nginx / Apache / Shell
  • JavaScript / TypeScript
  • Java / Python / Go / Rust
  • HTML / CSS / Markdown
  • SQL / Shell / JSON 等

🎁送码福利

限量 50 个 Mac App Store 兑换码(先到先得,剩下的发邮箱):

  1. L6AAYMYWPWE9
  2. M6YNXAF47F6H
  3. LWL9YLEFT47A
  4. WK6HYXEN4MXK
  5. N3AXLL4LKF7K
  6. 4H6EEN73YYFK
  7. X6N4KNRLTKY6
  8. FJ376939KLNW
  9. T4LR677KKYTH
  10. PKJMKP79AX6X
  11. HLJKW6KMAMRJ
  12. MHH9TJH9KJPL
  13. MLE9NX9KX4EA
  14. TWFNF79KL4M7
  15. RNJH4FPJK69J
  16. 4YTRNT7AN7E7
  17. RYLT7J73WW46
  18. W3M3HEL3KRWW
  19. KYTLHM7WJEYX
  20. JRFRTP6XRA4P
  21. 9JRXHYM4F4RL
  22. 97EMYMT74N94
  23. H3NMWN7PM4EN
  24. PHETNPKHKK37
  25. N33HJAF9PJ64
  26. L369W77PMEM7
  27. E3J96RY4K6RL
  28. TA4L7WM96X7J
  29. WKPJXTENAPXK
  30. TEH47XWFPHW7
  31. 兑换了请回复一个数字,方便大家。

这是个起点,离完美还有距离。希望能收到大家宝贵的反馈。 ✨

❌
❌