大象笔记

知者行之始,行者知之成

python Windows GUI 方案 flet, 基于 flutter 组件

在调研 python tkinter 的 Windows GUI 客户端方案时,突然看到某个公众号文章中有人评论到为何不用 flet。 正好出差当天晚上睡得早,凌晨 3 点半就再也睡不着了,于是手机上翻看了 flet 官网上的所有文档,发现真是一个宝藏啊。 语法简单,且基于 flutter 的组件库,颜值有保障。而且还有跨平台的潜力。 安装 flet 安装方法极度简单,按照官方文档,一行 pip install flet 搞定。 Hello world import flet as ft def main(page: ft.Page): page.title = "长征 ...

阅读全文...

日常纠结之 Windows 客户端开发技术方案选项

需求背景 最近一天内接到两个 Windows 客户端的开发需求: 将 Android 上的农产品图像识别,移植到 Windows 系统上。使用客户端实现,而非网页。运行 pytorch yolov5 生成的模型 实现一个概率统计的 Windows 客户端,带本地数据库存储功能 虽然,最近忙得一塌糊涂,没有时间去动手实现,但是技术选型问题一直困扰着我,成为了我的心头大患。因为我自己也有很多小需求想用 GUI 客户端实现,苦于没有顺手的方案一直搁置中。 恰好,赶上去浙江出差,单程行车 9 个小时,给了我充足时间可以去纠结选项问题。 首先 pass 掉一切 js 相关跨平台的方案,没有为什么,就 ...

阅读全文...

台电 Android 平板上无法手势关闭 App

在开发的一个 Android App 在台电平板上出现了诡异的现象,无法手势上滑关闭。 其他 app 都没有这个问题,均可以成功关闭,只有我开发这个 app 有这个现象。。。 我一开始以为是我每秒一次的循环任务,在进入后台时也在执行导致了 app 无法杀掉,所以把这个循环操作注释掉,再次测试还是无法杀掉。这就诡异了。。。 这个说不通啊,要是这样就能防止 app 被杀掉,那国内各大厂商的 app 还不纷纷这样搞,但现实是没有那个 app 是不能杀掉的,只有本 android 高手开发的 app 会这样。。。 早上无意发现 app 概览页有个小锁标识: 变成 lock 状态时,无法杀掉 变成 u ...

阅读全文...

对话机器人 Rasa(十六):rasa command not found

在给家里台式机增加了块新 SSD 之后,终于有足够的空间可以安装 Rasa 了。。。 参照 开源对话机器人框架 Rasa (一):安装 中的流程使用 pip3 安装了rasa 之后。 执行: > rasa --version rasa: command not found 却发现 rasa 没有找到。 实际的 rasa 安装路径为: /home/zhongwei/.local/bin/rasa 说明 $HOME/.local 不在 PATH 中。 修改 ~/.bashrc 添加 export PATH=$PATH:$HOME/.local/bin 使配置生效 source ~/.b ...

阅读全文...

对话机器人 Rasa(十五):slot type 与 influence conversation

domain.yml 中的 slot 配置 以下是一段有问题的 slot 配置 slots: email: type: any influence_conversation: true mappings: - type: from_text conditions: - active_loop: email_form 训练时的错误信息 > rasa train --force InvalidSlotConfigError: An AnySlot cannot be featurized. Please use a dif ...

阅读全文...

将 WSL 由 Windows C 盘迁移至其他非系统盘

起因 WSL 默认只能安装在 Windows C 盘,而且 WSL 占用的空间只会增加不会减少,加之家里的 Dell 台式机 C 盘只有 105G,空间随时处于消耗殆尽的状态。 而最近正好在做 Rasa 语言模型训练,模型占用空间巨大,我一直没敢在这个台式机上搭建开发环境。 可是,我的笔记本虽然空间足够,AMD CPU 却是个短板,每次训练时间比台式机能慢个四五倍,且发热严重,在大夏天非常燥。加之 Python 的不环保特性,开几个服务 CPU 风扇就嗷嗷叫。开发效率极低,且影响心情。 不得已只能把开发环境挪到台式机上。 入手一块 SSD 今年 SSD 价格真是白菜价,于是在京东上下单了一个京 ...

阅读全文...

Android 使用 ViewPager2 实现手势侧滑翻页

需求 由于 Android 平板控制硬件设备,控制界面要展示的数据太多,一屏装不下。 所以需要新增一个界面,用于展示次要的信息。 交互方式是,在首屏,通过手势滑动,切换到次屏。 找到一个官方的组件 ViewPager2,看上去非常合适。 官方文档只说明了在 Activity 中使用 ViewPager2 的方式,并没有提及是否可以在 Fragment 中使用。 所以需要测试一下。 最终实现效果 ViewPager2 ViewPager2 是 Android Jetpack 中的一个库,它提供了一种以滑动方式浏览多个页面的方式。支持垂直和水平方向的滑动,并且具有更好的性能和更灵活的 API。 ...

阅读全文...

React 中使 Button 显示多行文本

即支持文本中的换行符,例如,后台接口返回的 message 是: 暴击 \n 100000 倍 需要能解析其中的换行符。 实际上只需要加上一行 css style={{ "white-space": "pre-line" }} 例如: <Button key={index} onClick={CardButtonOnClick(ctx)} value={item.payload} style={{ margin: "5px", "white-space": "pre-line&q ...

阅读全文...

个人微信公众号粉丝数终于破 500

从今年 4 月初重拾我遗弃多年的个人微信公众号"大象工具",到破 500 粉丝, 历时 3 个月。 破 500 的意义,就是没有意义 唯一的意义就是可以开通流量主广告了。。。 但是我这周刚好看到一个关注的大佬的数据,两年发推文很勤,而且都是高质量长文, 紧跟热点,例如,近期的 AI 相关的产品介绍。不少是破万的阅读量。内文也充斥着广告, 但是两年的收益也才 2000 多。这么看,这个流量主广告没多少价值。 毕竟,我一个 5k 多日 PV 的小程序,极其醒目位置的广告一天收益也不到 10 元。 发文即掉粉 期间有半数以上时间是荒废状态,因为我害怕发文就掉粉。。。 此前一个月, ...

阅读全文...

对话机器人 Rasa(十四):Botfront 自带的 MongoDB 端口问题

漏洞现象 在部署好 botfront,并创建了管理员账号之后,第二天发现账号消失了。 我本以为是本地目录权限问题,导致 mongodb 没有将数据写入磁盘。 但是,修改了本地目录权限之后,这个问题又出现了。 感觉出大问题了。 查看 mongodb 日志 通过 docker logs 查看了 mongodb 镜像的日志。 {"t":{"$date":"2023-07-10T12:33:33.424+00:00"},"s":"I", "c":"-", ...

阅读全文...

对话机器人 Rasa(十三):GUI 管理系统 Botfront 部署

Botfront 是一个非常方便的 Rasa GUI 图形化管理后台。可以在网页里: 编辑所有的 Rasa 配置文件 执行训练 使用 web 聊天组件 非常适合没有 linux 服务器操作经验的用户。 整个安装配置过程参考 https://botfront.io/docs/installation/server-cluster 即可。 这里只是记录一下文档中没有提及的细节。 版本 botfront@1.0.5 目录结构 $ tree -a . ├── .botfront │   ├── botfront.yml │   └── docker-compose-template.yml ├── ...

阅读全文...

Android BLE 蓝牙监听 STM32WB 上的自定义特性

要给 Android 平板蓝牙语音对讲 APP 上增加一个报警推送功能,即监听蓝牙控制板上的一个信号,来显示报警信息。实际上就是监听一个自定义的特性即可。 STM32 芯片的 Android SDK 封装的太猛了,捋一遍代码脑子爆炸。 所以记录一下看 SDK 源码的过程。 特性扫描 BlueSTSDK/BlueSTSDK/src/main/java/com/st/BlueSTSDK/Node.java 增加了调试日志,方便查看新增特性的 UUID mCharFeatureMap.clear(); for(BluetoothGattService service : nodeServices){ ...

阅读全文...