大象笔记

知者行之始,行者知之成

jetpack compose,xml layout 与 flutter 的选型问题

这个周末无论是去公司团结的路上,还是一家去永旺吃饭的间隙,我都在纠结这个事情。也是用这些零碎的时间片段在手机上整理了这篇笔记。 纠结的原因 计划将一个一年前用 jetpack compose 写的练手 android app 重构一下。没想到在没有任何推广,维护的情况下,积累了一些用户。 重构的原因是,有一些用户反馈的需求,我想实现一下。但是使用的 jetpack compose 版本太旧了,毕竟 compose 还处于飞速发展解决,一年一个新样子,甚至今年都成了 android studio 的默认模板。今年用新版本的 as 编译,一堆错误,甚至提示 kotlin 的版本都过低。导致没法继续 ...

阅读全文...

Gorm select 表里所有数据包括已经软删除的数据

又写了一天的 bug ... 被 ORM 折腾死。 没关系,又活了一天,已经很厉害了。。。 Bug 的根源 一个设备信息管理系统的表,里面会自动给设备生成设备 ID。 格式: 前6位为生产如期,如:211207,代表 2021年12月7日生产。 后3位为生产编号,如:001,代表当日生产的第一台设备。 编号的生成逻辑: sql like 取最新的一条 满足 211207 的记录,如果有,就判断最后三位 + 1 没有,就生成一条 001 这个逻辑跑了很久都没有出问题,但是今天在写一个新系统时,我偷懒 copy 过来了。 然后,另一个 bug 导致几条设备信息被软删除 (gorm 默认是使 ...

阅读全文...

新版本 Android Studio settings.gradle 中切换国内源

从 Android Studio Dolphin 2021.3.1 之后,国内源的切换配置就从 build.gradle 文件改到了 settings.gradle 文件。 修改之后,执行一下 Sync 就可以了。 但是如果遇到国内源没有的依赖,就需要取消前面的几个 google maven 源的注释。因为依赖是按照配置源的顺序来查找的,会优先从排在前面的源去下载。 具体配置 2025-08-17 验证通过,下载很快 pluginManagement { repositories { // 添加阿里云镜像源 maven { url 'https://ma ...

阅读全文...

Google Adsense 替代品 - 万维广告收益评测,收益还不错

上周一时兴起申请并接入了万维广告,测试了几天,效果还不错。直接上数据吧。 虽然万维广告的展示内容,很清新,也是 IT 相关的广告,点击率偏低,跟百度联盟简直是难兄难弟。但是收益相比百度可是强太多了。尝试了几个位置,无论是醒目的地方,还是不醒目的地方,点击率都差不多。所以,我现在的主力广告位变成了万维广告。 万维广告的官方网站: https://wwads.cn 可以去这里接入。 为何点击率这么低 我的分析是: 相对 Google AdSense,万维的广告主质量还是低了很多,除了亚马逊这样的大厂广告,其他小厂广告没啥技术含量,怕是很难吸引目标人群。 广告形式虽然简洁,但是看久了会觉得单调乏 ...

阅读全文...

TeamsACS 在处理 BootStrap 事件时, 如何生成的密码

TeamsACS 是一个开源的 tr069 ACS 实现。其在处理 CPE 发送的 BootStrap 事件时,逻辑有点绕。 BootStrap 处理逻辑 判断 CPE 请求的 body 非空时,如果是 BootStrap 事件,生成连接用的账号/密码。注意,这里没有直接返回给 CPE,而是通过 golang channel 缓存了起来。 判断 CPE 请求的 body 为空时,不再判断事项类型,从 golang channel 中获取之前生成的账号/密码,以 soap 格式返回给了 CPE 我不太理解 tr069 协议为何要这样设计。为何要多走一步? 返回的 SOAP XML 数据格式 ...

阅读全文...

Android Studio flamingo 使用 jetpack compose 模板新建项目

今天将 Android Studio 升级到了最新版本 Android Studio Flamingo 2022.2.1 Patch 1。 但是新建项目的时候发现找不到 Jetpack Compose 的模板选项了,印象中之前版本是明确标注了哪些模板是基于 Compose 的。 后来在 Android Studio 的官方更新说明里找到了: https://developer.android.com/studio/releases?hl=zh-cn#updates-to-npw-nmw Android Studio Flamingo Canary 6 添加了用于创建项目或模块的新模板。默认情 ...

阅读全文...

通过 Makefile 及 ssh 远程执行命令,实现服务器线上服务的自动部署

最近一直写接口文档,基于 swaggo 实现的文档服务。由于要跟前端配合,所以每天都要频繁更新接口文档,非常麻烦。之前是半自动化状态: makefile 中 scp 文档程序到服务器 手动登录服务器,再 makefile 执行 systemd reload 文档服务 (文档服务基于 golang gin 所以需要重启服务) 最近在看一个开源项目的 Makefile 时,发现可以使用 ssh 远程执行命令,这样就不需要手动登录服务器来操作了,甚好。 Makefile 代码 .PHONY: doc doc: swag init --output api_docs --tags "微 ...

阅读全文...

android 系统上关联文件类型与编辑器,用 kotlin 自动实现

起因是,我想保存一个 golang 代码源文件到 Android 手机上,方便在等车的时候继续阅读代码。但是我发现 Android 系统上居然没有一个类似纯文本编辑器的 app,小米系统内置的阅读器排版混乱,且无法编辑,默认诱导去下载 WPS。所以我想实现一个简单的纯文本编辑器,方便打开各类源码文件。 以下是 ChatGPT 给出的提示,暂未测试,存档一下。 文件类型与编辑器关联 在 Kotlin 中,可以使用以下代码来关联文件类型和编辑器: val mimeType = "application/pdf" //要关联的文件类型 val packageName = &quo ...

阅读全文...

如果一件事缺乏正反馈,如何坚持下去

上周上班路上,在听播客津津乐道的时候,听到一个嘉宾说坚持写了七个月的博客就放弃了,因为没有人看,没有正反馈,很难坚持下去。 第一次听到正向反馈这个词,我觉得很有意思。而我恰好也遇到了类似的问题。 这个博客网站已经运营了快 10 年,最初只是个 VimWiki 生成的静态网站,内容都是技术笔记,方便我自己在不同电脑上同步查看。 起初没什么流量,我也对流量不报什么希望。后来因为要学习 Laravel 框架,就边学边开发了现在这套博客。 没想到自此流量开始多起来,也因为有了些流量,有了所谓的正反馈,就有动力去记录更多的笔记。 见证了日 UV 从 50 到 7000 的过程,然后跌落至日均 3000。 ...

阅读全文...

将 github 上的指定 commit 转换为 patch 文件

为啥会有这个需求 因为目前正在用的一个开源项目已经停止为何 N 多年了,很多新功能都不支持。 然后有不少三方开发者提交了 patch,但是这些 patch 并没有合并到项目中。 所以,我 fork 了一份主项目,然后需要将这些 patch 一一打补丁进去。 生成 patch 文件 将 github commit 转换成 patch Add .patch (or .diff) at the end of the commit URL: 例如,假如一个 commit 的 github 地址是: https://github.com/genieacs/genieacs-sim/pull/18/c ...

阅读全文...

TeamsACS 对于 BootStrap Event 的处理逻辑

实际上类似于 TeamsACS 对于 PERIODIC Event 的处理逻辑 的处理逻辑, 只不过多了一个 UpdateManagementAuthInfo 的处理流程。 UpdateManagementAuthInfo 的调用参数 err = cpe.UpdateManagementAuthInfo("bootstrap-session-"+common.UUID(), 1000, false) UpdateManagementAuthInfo 的定义 主要逻辑就是由 ACS 向 CPE 发送 auth 用的 username / password。 usernam ...

阅读全文...

百度联盟 / Google AdSense 的替代品万维广告

Google AdSense 价量齐跌 疫情以来 Google AdSense 暴跌,终于等到疫情结束,又国际关系恶化,AdSense 惨不忍睹,单价/填充率都骤降。同样流量的网站广告收入只能占到微信小程序广告的一半,以前可是完全相反。估计很少企业在上面投中文广告了。我看到的大部分是微软的广告。 百度联盟摆烂无底线 至于百度联盟,基本上是没有底线的状态,不管多少展示,只要不点击,收益永远是0。更无法接受的,其展示内容一如既往的低端,不能直视,完全是电线杆上的牛皮癣广告的风格,十年如一日。如果你留意过,会发现很少有正经网站会放置百度广告。 短视频平台一统江山 我自己的切身体会是,抖音类短视频平台 ...

阅读全文...