大象笔记

知者行之始,行者知之成

windows 中同时使用 vscode 和 wsl git 命令行,每行代码被缀上 ^M 的问题

现在主力开发环境从 VIM 迁移到了 VSCode 下,但是在 WSL 命令行下使用 git 这个习惯一直改不掉,感觉 VSCode 里使用 git 不太方便。但是同时使用 VSCode 和 wsl git 遇到了一个 ^M 后缀的问题。 复现步骤 Windows 系统上,打开 vscode 编辑一个文件 a.md,在不关闭这个文件的情况下。在 wsl Ubuntu 下使用 git status 命令,会发现文件中的每行被加上了 ^M 后缀。 > git status On branch main Changes not staged for commit: modifi ...

阅读全文...

开发多页面网站的 AI 提示词经验总结

之前使用 AI 提示词开发了网站设计稿及原型图,以及一两个页面的小型网站。这次遇到一个需要开发多页面的网站,例如,除了首页,还有不同产品或解决方案的子页面。 🤨 顾虑 之前简单页面可以把发挥的空间完全交给 ai,因为内容简单,且功能常见,ai 能自行推导出适合的布局及功能项。但是,对于企业官网这个类型,由于产品和业务方向众多,且功能有确定性,就不能通过一句话的方式让 ai 准确推测出整站的内容。 一晚上,尝试了几种提示词方案,算是摸索出了一套可行的方法。 ❌ 试错一,DeepSeek 画蛇添足 用了 ai 做设计,没有银弹。简单的设计确实可以一句话让 ai 去直接工作,但是复杂的设计,还是需要 ...

阅读全文...

大赛报名系统上线一个月,我感觉急需开发的两个功能

在开发完某个大学生大赛报名系统之后,我的手机号码被加到了技术支持栏目。昨天下午就接到了两个学生咨询电话。虽然解决过程算是轻松愉快,但是晚上我总结了一下,这个时间花费的毫无价值。因为只能被动地的应付上门问题,而且这个客服工作不产生任何价值。为了以后不因此类事情占用过多时间,我觉得有必要加上两个功能。 ❓ 常见问题搜索功能 即 faq 功能。让学生遇到问题时,先自行解决。至于功能位置,可以放在这些地方: 顶部菜单 每个输入框的右侧或者下方 右下角的伪人工客服窗口。可以引入关键词搜索,或者 rasa 类的基于自然语言的机器人客服。参考:对话机器人 Rasa 中文系列教程 📝 工单功能 主要用于 ...

阅读全文...

Linux 宿主机挂载 s3 对象存储,docker 内没有生效问题

❓ 诡异的现象 Linux 宿主机上通过 mount 挂载了一个 s3 对象存储(参考:s3fs-fuse 将 Linode Object Storage 挂载到 Ubuntu Server 本地文件系统)。并且修改了 /etc/fstab 文件。 但是,在 docker 中,对应的目录还是显示的没有挂载前的目录结构和文件内容。 👌 解决方法 docker 容器重启即可。例如,命令 docker compose restart xxx 🗑 卸载 如果是卸载挂载盘,参考前文(🔗 ubuntu server 下使用 /etc/fstab 挂载的 s3 存储目录,如何卸载掉)也是同样的需要 res ...

阅读全文...

移动短信验证码又收不到了,需要到阿里云短信服务后台进行运营商报备

今天不是特别忙,看了一下后台的数据统计,感觉用户注册量没有预想的那么多。 所以担心会不会是阿里云短信验证码发送不稳定造成的,因为之前遇到过移动用户收不到短信验证码的问题。参考:签名黑名单,阿里云通知短信发送失败。 上次解决了,就没有再关注过。 但是进到短信服务后台,我还是震惊了。。。 4 月份 11 天,成功率 84.28% (失败25条);而 3 月份整个月,成功率 71.43% (失败116条)。 而且失败的短信有一定的规律性: 都是移动的号码 3 月份失败集中在 22 ~25 号,这 4 天 (成功率 30% 以下) 4 月份失败集中在 1 日这一天。(成功率 53%) 而,我之前 ...

阅读全文...

golang 开发 OA 系统,工作流引擎选型

我想开发一套企业内部使用 OA 系统,使用 golang gin 开发,让 AI 推荐了几个流程管理的库,即工作流引擎。 发现大部分找到的都是 Java Sprint Boot 的实现,但是我还是希望用 golang gin 去实现。毕竟 golang gin 目前用的最顺手,也积累了大量的内部功能库,而且服务器资源占用低。加上是集团内几个公司一块使用,使用现成的开源实现,也达不到要求,估计也很难改。还不如自己基于工作流引擎模块去自己实现。 但是看了几个感觉比较复杂。理解成本有点高,例如: GoFlow:Workflow 引擎, https://github.com/s8sg/goflow/ ...

阅读全文...

利用 AI 开发微信小程序的一些技巧总结

清明假期基于 AI 开发了一个小程序的功能,参见前文(大象成本计算器微信小程序,快速计算物品的日均成本)。虽然使用 ai 节省了不少调试界面和基础逻辑的时间,但是我依然感觉效率不是很高。 举例说明,这个小程序功能涉及到前端界面,前端 js 逻辑,以及后台 golang 的服务器接口,及 mysql 存储。如果直接让 ai 去实现,实际是在两个完全不同的前后端项目中分别开发的。最直接的问题就是,字段名称对应不上。遇到字段比较多的功能,光统一字段名称就得忙活好一会,而且枯燥乏味。 🏃‍♀️ 流程优化 于是我今天总结了一下,感觉下面的开发逻辑更合理一些,可以节省字段不统一的手工调整耗时: 工具新建 ...

阅读全文...

[Magento 2 定制化开发] 之十三:删除产品详情页的 Add to Cart 添加购物车按钮

之前通过 magento 2 的配置去掉了 Add to Cart 按钮,但是在非 main website 的产品详情页,还是能看到这个添加购物车按钮。无语。。。 我决定来点治本的方案,直接修改主题代码,不去浪费时间了解配置了。而且修改代码反而更直观更灵活一些。 特征代码 行动前,首先要找到代码的特征,从详情页查看添加购物车按钮的代码。 <button type="submit" title="Add to Cart" class="action primary tocart" id="product-addtoca ...

阅读全文...

大象成本计算器微信小程序,快速计算物品的日均成本

大象计算器小程序新增日均成本计算功能。方便计算购买的不同物品的日均成本,计算公式很简单,即,物品价格除以使用天数,得出日均均摊成本。 💡 需求来源 最近 switch 2 发布,非日版主机价格让大家大跌眼镜👓,于是我就想为啥不开发一个小工具,来算算跟 switch 1 相比,日均成本贵了多少🤔。以四年为跨度,似乎也没有贵多少😅 📱 界面效果 物品资产列表页 🧮 体验方式 长按识别或者扫码下方微信小程序码 微信中搜索🔍大象计算器,在首页找到日均成本计算功能。 ✂️ 第一版的功能取舍 开发的同时,我也找了几个竞品做为参考。但是,总体感觉竞品还是太复杂,如果以我自己作为核心用户。很多功能 ...

阅读全文...

基于瑞芯微的 Android 工控屏中 App 的调试方法

最近两天在 Android 工控屏上遇到了一个诡异的问题,经常遇到黑屏现象。黑屏的复现场景: 开机自启动我开发的 APP,在某个工控屏上 80% 的概率出现黑屏。但是切换一下显示就正常了。而后续手动点击启动,也不会遇到黑屏问题。 在 Android 系统的设置页面,随便点击几个配置项目也有小概率出现黑屏的现象。这种情况只能点击重启按钮,然后切换才能跳出黑屏问题。 手头有两台完全一样型号的工控屏,只有一台会出现黑屏的现象。 我感觉大概率是系统的问题,或者硬件的问题。但是现在又换不了这个工控屏,只能先找找是否能通过 app 里的逻辑来规避掉黑屏的问题。 但是,我通过 USB 3.0 公对公数据 ...

阅读全文...

Android 工控屏中 App 的自启动实现

搞了两块 Android 工控屏,需要系统重启后,能自动开启自己开发的这个蓝牙控制 App。找了半天没有找到系统设置,在哪里能指定某个 App 开机自启动。 找了技术支持,大体意思是,这款主板是比较复杂一点,其他款的主板是可以的,这款主板只能在APP里面去设置自启动。然后留下一句话: 把开机包名赋值给这个persist.spirit.bootapp属性就可以了,你试一下 我 X,丈二和尚摸不着头脑,这个回复也太抽象了。于是我 google 了一下,完全没有匹配的关键词。让 AI 写,也完全不行。 在 StackOverflow 上找到了解决方案: AndroidManifest.xml ...

阅读全文...

Android App 中使用自定义字体

写了这么久的 Android App,一直嫌麻烦没有使用过自定义字体,即三方的字体文件。 今天调界面调的头晕眼花,正好查查怎么搞自定义字体,放松一下心情。 没想到非常简单。 使用方法 将字体文件存放到 res/font 目录下。没有 font 目录,需要新建一个目录。 然后在 layout.xml 中或者其他布局文件中,直接使用 android:fontFamily="@font/my_font" 即可。 编译报错 'D' is not a valid file-based resource name character: File-based resource na ...

阅读全文...