大象笔记

知者行之始,行者知之成

将 yolov5 内置模型导出为 pytorch mobile 格式

Google Colab 地址 使用 Colab 能利用 Google 免费提供的 GPU 资源,快速进行模型训练。比在我的弱鸡笔记本上训练,能节省大量时间。 在 Colab 上新建一个项目 https://colab.research.google.com 或者可以考虑继续沿用之前的项目。 安装 yolov5 新建一个代码块 #clone YOLOv5 and !git clone https://github.com/ultralytics/yolov5 # clone repo %cd yolov5 %pip install -qr requirements.txt # install ...

阅读全文...

Rust web 框架 axum (四): 生产服务器环境使用 Nginx 部署 axum 服务

这个周末不算忙,总算可以把一直没有上线的 Rust Axum 写的在线小工具发布了。 基本上跟 Golang Gin 的发布流程类似,本地编译好,scp 到服务器上。 然后配置好 systemd, nginx reload 就可以了。 比较省事的地方是 axum 默认会把模板文件打包到二进制文件中,不需要像 golang gin 一样增加额外配置代码。 第一个 Rust 小工具 Rust Axum 小工具: 中文标点替换成对应的英文标点符号 网页地址: https://www.sunzhongwei.com/tools3/replace-chinese-punctuation 编译优化 如果不 ...

阅读全文...

通过了微信小程序个人认证

早上收到一条微信公众平台的消息提醒: 大致内容是,现有的个人微信小程序需要完成微信认证,否则,12月24日之后将不能被搜索到,无法转发分享。。。 这还得了,只能屁颠屁颠地去小程序管理后台去完成认证了。 按照提示,到左侧导航栏找到微信认证功能,即可。 费用 个人微信小程序认证费用 30,企业小程序 300。 认证费用转嫁开发者,也是没有底线了现在。 第一个被驳回 原因是,如果你选择了个人职业,例如我选了软件开发工程师,还需要上传身份证。但是第一次填写,也没提示。审核人员就打电话过来了。说不提供身份证,就需要将职业置空,即无。 第一次见到发布程序,还需要认证我职业的。。。有任何关联性么? 我干 ...

阅读全文...

VIM 中进行英文单词拼写检查

最近写代码时,发现好多的单词拼写错误,既有自己拼写错误的,也有三方 API 中的字段拼写错误,更有产品文档中的,及 UI 设计稿中的。 有些一眼就能辨识出来,有些很难察觉,特别是比较长的单词。 例如: registration 拼写成了 registartion。 浏览器比较好,非常智能,比如正在使用的 Edge,就自动标注了第二个单词有拼写错误。 但是在 VIM 中,就很难发现,一旦上线,就是非常尴尬的 bug。 于是查了一下,发现 VIM 居然自带了单词拼写检查功能。 开启 :set spell 关闭 set nospell 效果 VIM 会在拼写错误的单词下面加上下划线。 但是,没 ...

阅读全文...

在阿里云上成功卖掉了一个闲置的域名

最近双十一,又收到好几个域名的续费通知,有的废弃很久了,一直舍不得扔掉。 毕竟好不容易做了备案,也通过了 Google Adsense 广告认证,丢了确实可惜。 但是,自己精力有限,不想花费过多的时间在不再感兴趣的项目上。心想干脆直接卖掉吧。 阿里云域名管理很方便的一点是,不想续费了,可以直接挂在上面交易,设置好一个目标价格后,可以等待买家一口价成交,省时省力,不墨迹。 没想到,挂了两天就被买走了。 这个域名是 14 年注册的,三个字拼音的域名,不太好。但是有备案,也接入了各种广告联盟,有一点点流量,可以忽略不计。挂了个 wordpress 站,及一个练手的小 Spring Boot 项目。 ...

阅读全文...

Rust web 框架 axum (三): 使用 askama html 模板

askama 是什么 Askama implements a template rendering engine based on Jinja. It generates Rust code from your templates at compile time based on a user-defined struct to hold the template's context. askama 即一套模板系统,可以集成到 rust 项目中,并不局限于 axum 中,也不局限于 HTML,任何的模板使用场景都是可以的。 类似 golang 内置的模板系统,及 php laravel 中 ...

阅读全文...

Rust web 框架 axum (二): 返回 HTML form 表单,并处理 post 请求

要实现一个小的在线网页工具,最基本的功能就是能够返回一个 HTML form 表单, 让用户能填写数据,然后提交到 rust axum 后台,再将处理后的数据展示出来。 相对 PHP,Python,Go 的 web 框架,Rust 的 web 框架就晦涩很多,下面的示例如果换成其他语言, 在没有任何基础的情况下,估计一小时也能搞定,但是使用 rust axum 这个框架,我还是折腾了一晚上。 主要原因是: axum 的文档太简陋。如果不是 ChatGPT 帮助,我估计给我一天也搞不定。Google 也搜不到太多的资料。 rust 语法晦涩,需要具备大量的基础知识 下面示例实现了一些基本的使 ...

阅读全文...

android AppCompatButton 设置按下时显示的背景图片

即一个 Android Button 在正常显示时,跟按下时,显示不同的背景图片。 通常按下时显示的是另一张高亮的图片。 之前是通过点击事件实现的,无意发现 drawable selector 可以方便的配置实现,这样代码也清晰了很多。 drawable selector 右键点击 res/drawable 目录,选择新建一个 Drawable Resource File,Root Element 是 selector。 命名为 button_bg.xml <?xml version="1.0" encoding="utf-8"?> < ...

阅读全文...

dp, sp, px 与 Android 界面布局自适应

之前写 Android 平板 App,由于没有正经写过 Android 界面布局,为了图省事, 直接用 px 像素做的布局,及字号大小设置。 好在平板是我们指定的型号,屏幕尺寸,及像素。但是自从发货到客户手中之后, 我就非常担心,一旦这款平板停产,换个更高分辨率的平板怎么办? 为了消除焦虑,我了解了一下 Android 布局的基础。 总结起来一句话: 字号用 sp,宽高用 dp。 问题简化 图片宽度用什么单位? dp 字号用什么单位?sp dp 是什么? dp 是怎么换算为 px 的? dp 是怎么换算为 px 的 android 中,dp 在渲染前,都会被转换成 px。 px = den ...

阅读全文...

Rust web 框架 axum (一): 安装及 hello world

为何要尝试 axum 最近在看两本 Rust 的教程,一本在早上上厕所时看,一本在班车上看/睡觉前看。这两个作者确实经验丰富,文笔也非常有趣,比刷抖音愉快多了。是个很好的放松方式。 但是光看不练,学习效率就很低,所以决定一边看书,一边写点 Rust 代码巩固一下。 虽然我对于 Rust 还没有实现的项目用途,但可以写一点 web 小工具,毕竟每天实际工作中每天都会遇到一些繁琐的手动操作需要自动化。之前学习 golang 就是,练手写了一个微信小程序的后台,写完后感觉对 golang 就尽在掌握了。。。这个小程序至今已积累了 30 万用户,日活 2k,也非常有成就感。 axum 简介 axum ...

阅读全文...

对话机器人 Rasa(二十八):添加逻辑的工作流/规范

总结的一些 Rasa 开发过程中的经验和技巧,持续更新中 ... 第一步:流程图/对话逻辑图 原始的流程是怎样的 新流程逻辑分支 1 是怎样的 新流程逻辑分支 2 是怎样的 新流程逻辑分支 N 是怎样的 新流程逻辑抽象合并 第二步:utter_xxx 回复内容 domain.yml 中补充新增的 utter。 因为有了 utter,剩下的任务就把逻辑串联起来。 与此同时,通过完成简单的小任务,减少项目进度焦虑。 utter_xxx 前加上 intent 方便在 domain.yml 内可以搜索到所有的逻辑,省去了去 stories / rules 文件中去查找逻辑对应关系。 例如: utt ...

阅读全文...

对于复杂业务逻辑代码的梳理方法

这两天遇到一个复杂的业务逻辑改动需求。 如果是第一次写,也许反而简单很多;但,现实是,需要在既有的逻辑代码上,去修改调整。 于是,我被难到了。。。 接到这个需求的第一天晚上,我看了半天,也整理了不少文档,硬是没有任何思路。 以为太晚了,可能大脑过于疲惫,于是拖到了第二天。但是第二天伊始,依旧没有头绪。 站立 & 纸和笔 恰好需要去车间跟设备进行现场调试,在等设备接线的过程中,我站在货架边,用纸和笔把逻辑梳理了出来。 没想到异常简单。。。 我觉得之前没有快速搞定,很大的问题在于陷入了之前代码的思维陷阱,总想着怎么在现有代码的基础上去改动。 而,用纸和笔快速梳理出来的根本原因是,先抛弃了现 ...

阅读全文...