大象笔记

知者行之始,行者知之成

企业内部信息化 RPA 方案调研

企业内部搞信息化,最大的障碍就是,一堆三方软件服务商提供的独立系统。相互之间没有接口对接方案,形成了众多信息孤岛。 很多时候,不方便让三方提供 API 接口。只能采用 RPA 的方案。 RPA 是 Robotic Process Automation 的缩写。其实就是模拟人的手动操作,完成大量重复的在电脑上的工作。 例如: 自动报税 自动收集多个内部系统的数据,生成一个报表,然后自动发送邮件 两套独立系统间的数据同步 RPA for Python (免费开源) https://github.com/tebelorg/RPA-Python github 上的开源项目,功能介绍简洁明了,演示视 ...

阅读全文...

在 windows 上使用 rust 调用系统弹窗

想在 Windows 上执行一段 rust 的处理程序,处理完成后,能弹窗提醒任务完成。 参考 Windows 官方的一个示例: https://learn.microsoft.com/en-us/windows/dev-environment/rust/rss-reader-rust-for-windows#showing-a-message-box 创建项目 cargo new rust_txt 依赖 Cargo.toml [package] name = "rust_txt" version = "0.1.0" edition = "2 ...

阅读全文...

芯片世界的三国演义,《芯片战争》读后感

上周发现公司不少领导的办公桌上都有同一本书,《芯片战争》。加之近期心情暴躁异常,正迫切需要阅读一本好书,来缓解压力。于是在微信读书 app 里找到了这本关于芯片发展历史的书,按同事的话说,这就是芯片的三国演义。 在周末两天运动会路途上,及体检等待的间隙,看完了这本书。俺不禁大呼过瘾,这本书不但有趣,而且从中学到了不少芯片知识,对我这种芯片小白来说,是一本极佳的科普读物。 芯片决定了战争的输赢 从越南战场, 美军九成的炸弹偏离了目标。于是出现了激光传感器加芯片制导的自动制导导弹。到海湾战争,通过自动制导导弹瞬间摧毁伊拉克通信设施,导致苏联傻眼,并承认军工全面落后。正如书中所言: 芯片就是 21 ...

阅读全文...

Kotlin JSON 序列化

需求 将一组 key / value 的数据,生成 json 序列化后的字符串,然后上传到服务器后台。 参考 kotlin 官方文档: https://book.kotlincn.net/text/serialization.html 大致逻辑就是,先定义一个 data class,然后执行序列化操作。 代码示例 import kotlinx.serialization.Serializable import kotlinx.serialization.json.Json import kotlinx.serialization.encodeToString @Serializable da ...

阅读全文...

Android APP 中使用 MQTT 协议进行数据上报

需求 Android APP 通过蓝牙读取工业设备上的运行数据,然后通过 MQTT 协议上传到服务器端,再由服务器转发给客户的云平台。 客户端是一个华为鸿蒙系统平板。非纯血鸿蒙版本,还能跑 Android Kotlin 开发 App。 服务器端使用的是开源的 EMQX 的 MQTT broker。 支持 MQTT 的三方库 最终使用的是 https://github.com/hannesa2/paho.mqtt.android 这个是在一个已经废弃的库 https://github.com/eclipse/paho.mqtt.android 的基础上继续维护的一个项目。因为 eclipse ...

阅读全文...

QMS 质量管理系统需求梳理

MES 还没分析明白,又被叫去对接内部的 QMS 质量管理系统需求。这企业数字化的工作,堪比工地小工,哪里需要哪里搬砖。毫无成就感可言。 一上午奔波大半个烟台,中午还错过了午饭,在富士康门口的路边啃了一份炒饼,今天刮大风,还啃了一嘴沙,补钙!真开心 :( QMS QMS 是质量管理系统(Quality Management System)的缩写。 目标 在出货之后,客户能够拿到产品相关的出厂报告。(没有中英文要求,即便是外国客户也依然使用中文报告。。。) 其中包括: 各个零部件的检测报告,合格证照片。 成品的检测报告,及实物照片。 这个出厂报告,由程序根据 word 或者 pdf 模板自动 ...

阅读全文...

研发人员写周报,本质上还是项目计划管理缺失

部门调整,今年主业变成了公司的数字化建设相关的内部开发。 但是,目前还在数字化的初期,具体做什么,从哪部分切入,都是一个未知数。 这周最大的变化是,恢复了之前的周报制度。(曾经用了一段时间的 redmine 项目管理软件,后来停用了) 我最难以接受的是,作为一个公司的数字化部门,周报要每个人提交一个 PPT。。。 这种管理方式怎么好意思去给其他部门推广数字化管理。。。 我看了一下企业微信上有个周报功能,所以推荐了一下是否可以使用这个。 但是我依然觉得周报不是一个好的管理手段。 周报不适合研发人员 纯粹是一种观点吧,如果是 redmine 这类项目管理软件能利用起来,实际是不需要周报这种形式 ...

阅读全文...

天下没有免费的 MES 系统

集团今年在推进各个子公司的数字化建设,在搞定一个 CRM 系统之后,下周又要迎来 MES 系统的调研开发。 我原本想借鉴 CRM 的实施方案,即,找一个成熟的开源系统,然后根据部门实际需求,在上面做二次开发即可。但是找了一下午,都没有找到一个真实的开源 MES。全都是知乎上的软文,以及 gitee 和 github 上的吸引流量的零代码 txt 项目。 不得已,记录一下这个无比痛苦的调研过程。否则这堆垃圾信息塞进脑子里,极度影响心情。 什么是 MES MES 即,Manufacturing Execution System 的缩写,中文翻译为制造执行系统。 其是一种用于管理制造过程的信息系统。 ...

阅读全文...

魔幻的 rust enum 枚举类型

在看一段 github 上文本解析库的 rust 代码时,看到这样一个 enum 的定义: #[derive(Debug)] pub enum Line { Comment(String), Metadata(String, String), Entry(DictEntry<String>), Empty, Incorrect, } 我整个人直接蒙了,为啥每个 item 后面还能备注类型?(这个时候我还没联想到 Option) 早上, 上班路上翻了一下 rust 的官方文档,找到了答案 (比翻螃蟹书方便多了)。例如一个 IP 地址的存储结构 ...

阅读全文...

企业数字化平台预算清单

目标 把公司数字化平台未来 3 年的设备及软件采购清单列出来。 包含自研的软件系统部分。 看起来是个费时费力的活,绝非一两个小时就能糊弄过去的小 case。 今天的计划又被打乱了。Android 工控屏的设备控制项目又得搁置一下。 计划即瞎猜 这种做未来几年计划的工作在我看来纯属浪费时间,但是没有办法,领导安排的任务只能出卖自己的时间。 《重来》那本书中“计划即瞎猜”一节里有句话: 放下你的臆测吧,现在就决定你这周要做什么,不必去管全年的计划。 待采购设备的厂家及型号 这个非常纠结的一个地方,因为是给未来的采购列计划,那么怎么保证 1 年过去了, 待采购的设备的型号还存在?价格能保持不变呢 ...

阅读全文...

rust 项目中 mod.rs 文件的作用

在 Rust Loco 项目中,会看到 models 及 controllers 目录下都有一个 mod.rs 文件。 查了一下,这个 mod 即 module (模块) 的简写。 mod.rs 说明,这个目录下包含一堆子模块。每个子模块的名称就是每个文件的名称。 例如,看看 loco 项目的 controllers 及 models 的代码示例: 目录结构 > tree src/controllers/ src/controllers/ ├── auth.rs ├── hello.rs ├── mod.rs ├── notes.rs └── user.rs > tree src ...

阅读全文...

rust web 框架 Loco 新建一个 HTML 页面

虽然 Loco 主推的是前后端分离的方式写页面,但是我还是喜欢后端渲染的 HTML 页面。 因为我的使用场景,大部分不适用前后端分离: 后端渲染的页面更 SEO 友好 页面需要多语言支持,而前端实现并不合适。例如如果支持 10 门语言,总不能一次加载所有语言吧。 前端技术更新过快,而且毫无意义。不想耗费过多的时间去跟进。 言归正传。 实际上 loco 官方文档中介绍 HTML template view 还是相对简单,要了解 view 的全面可以参考 loco 的一个 demo: https://github.com/loco-rs/loco/blob/master/examples/de ...

阅读全文...