Cloud Album
面向海外用户的私有云相册,围绕备份、整理和订阅体验持续打磨。
从真实产品研发出发,记录 iOS 客户端、MinIO 存储、海外支付与增长实验的完整过程。
产品
把技术文章沉淀成产品能力,也把产品研发过程继续写成文章。
面向海外用户的私有云相册,围绕备份、整理和订阅体验持续打磨。
从真实产品研发出发,记录 iOS 客户端、MinIO 存储、海外支付与增长实验的完整过程。
技术博客
Github贡献PR六部曲
选中自己要贡献PR的仓库,点击Github右上角的fork
git clone git@github.com:{username}/seata.git
高质量 PR 不只是把代码推送到远程,还应保持改动范围单一、提交信息清晰、测试通过并说明修改动机。开始前先阅读仓库的 CONTRIBUTING 和行为准则。
frida安装与配置
https://github.com/frida/frida/releases/download/12.8.0/frida-server-12.8.0-android-x86_64.xz
Frida 客户端与设备端服务版本应保持一致,设备 CPU 架构和权限也必须匹配。仅在自有应用或已授权目标上使用动态插桩,并保留测试范围和操作记录。
Frida获取微信消息内容
var SQLiteDatabase = Java.use("com.tencent.wcdb.database.SQLiteDatabase");
SQLiteDatabase["insert"].implementation = function (str, str2, contentValues) {
console.log('SQLiteDatabase.insert is called:', 'str=', str, 'str2=', str2, 'contentValues=', contentValues);
var result = this["insert"](str, str2, contentValues);
console.log('SQLiteDatabase.insert result=', result);
return result;
};
目标应用升级后,类名、方法签名和参数结构都可能变化,因此示例中的定位结果不能长期复用。动态分析应限定在授权测试环境,并避免记录或上传真实用户的敏感消息。
settings.gradle 在dependencyResolutionManagement添加 Xposed 会修改应用运行时行为,只应在自有设备、测试应用和获得授权的环境中使用。不同 Android、LSPosed 和目标应用版本可能导致接口变化,排查时应先记录完整版本信息。
可观测平台的价值不只是看到图表,而是把服务、版本、环境和 trace_id 等上下文关联起来。部署前应规划数据保留周期、采样率、存储容量和敏感字段脱敏。
使用signoz快速搭建可观测平台 快速部署完成后,应使用一条真实请求验证 trace、metric 和 log 是否按预期关联。若没有数据,应依次检查 SDK、Collector、网络、资源属性和时间同步。
Kubernetes证书过期更新 证书更新属于高风险运维操作,执行前必须确认集群安装方式和版本,并备份证书、配置及 etcd 数据。更新后应验证 API Server、控制器、调度器和 kubelet 的连接状态。
深入理解计算机浮点数存储
根据IEEE 754 浮点标准
V = (-1)^s * M * 2^E
s: 符号 s决定这数是负数(s=1)还是正数(s=0)
M: 尾数 M是一个二进制小数
E: 阶码 E的作用是对浮点数加权,这个权重是2的E次幂
浮点数是对实数的有限近似,并非所有十进制小数都能被二进制精确表示。理解编码结构有助于解释比较误差、溢出、下溢以及金融计算中为何需要十进制定点方案。
Spring解决RocketMQ发消息与MySQL事务一致性
Garbage-First (G1) 收集器是一种服务器式垃圾收集器,针对具有大内存的多处理器机器。它以高概率满足垃圾收集 (GC) 暂停时间目标,同时实现高吞吐量。 Oracle JDK 7 update 4 及更高版本完全支持 G1 垃圾收集器。 G1 收集器专为以下应用而设计: