软件工程

记一个博客刷新的Bug

赵裕(vimerzhao)
之前通过教程草草建立了一个博客,后来申请到了备案号,于是更新了代码,但是Gunicorn操作不是很熟悉,导致重启服务后出现了如下问题: 备案号时有时无,今天又要添加公安备案号,于是打算查查这个问题,发现

Android P源码构建记录

赵裕(vimerzhao)
缘由 最近在追查一个dex2oat的问题时,看源码觉得有些地方不单步调试或者加些日志,实在是不方便,另外由于最近的工作和Framework层打交道比较多,也有必要搞个源码环境,趁机深入学习一下。 虚拟机 一

Android P内联优化导致的一个诡异Bug

赵裕(vimerzhao)
问题背景 最近,我们的业务在动态加载一款第三方游戏时出现了奇怪的现象,本地开发测试体验良好,但是使用CI构建的正式包体验时会出现启动闪退。 问题分析 分析日志 首先,我们自然而然看了下Crash日志,如下: ---------

记一次诡异的Bug

赵裕(vimerzhao)
背景 上周四的时候,发了一个maven,结果报ExceptionInInitializerError错误: java.lang.ExceptionInInitializerError at repackage.aw.̍(ProGuard:43) at com.tencent.sandbox.PluginHelper.applicationAttachBaseContext(ProGuard:160) ...... Caused by: java.lang.IllegalArgumentException: Illegal pattern character 'V' at java.text.SimpleDateFormat.compile(SimpleDateFormat.java:870) at java.text.SimpleDateFormat.initialize(SimpleDateFormat.java:684) at java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:623) at java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:598) at

twint源码阅读笔记

赵裕(vimerzhao)
介绍 twint全称Twitter Intelligence Tool,是一个twitter爬虫工具。官方介绍如下: Twint is an advanced Twitter scraping tool written in Python that allows for scraping Tweets from Twitter profiles without using Twitter’s API. Twint utilizes Twitter’s search operators to let you scrape Tweets from specific users, scrape Tweets relating to certain

客户端调试日志编码之道

赵裕(vimerzhao)
日志分很多种了,这里针对的是客户端的、开发调试用的日志,为什么要加这两个限制呢? 后台日志都在服务器,开发容易操作,客户端日志大部分在本机,有的测试甚至不会捞日志,开发想帮忙都鞭长莫及 开发调试的日志,其

修改遗留代码的艺术

赵裕(vimerzhao)
导语 之前内部的一次技术分享,为了防止PPT弄丢,特意整理成了文章,由于我的PPT风格比较简洁,所以额外加了一些批注。 + 注意这里图片缩小了,可以 新标签页打开图片 查看高清图。 正文 1. 2. 3. 4. 5. 6. 7 这页其实还内

Flutter:移动端跨平台技术演进之路

赵裕(vimerzhao)
导读 本文约4688字,阅读可能需要15分钟。 最早的跨平台开发(摘自《Apache Cordova移动应用开发实战》王亚飞,王洪飞编著). 从广义上来说,跨平台技术早于移动端的出现。因此,本文标题前面也加上

你真的需要单元测试吗?

赵裕(vimerzhao)
你真的需要单元测试吗? 博主最近在接触一些Android单元测试方面的工作,发现自己并没有体会到大多数文章所宣传的“单元测试会带来工作效率的巨大提升”之类的诸多好处,于是本着批判与自我批判的精神对单元测