保持敬畏

这几天,终于把《三体》三部曲看完了,断断续续看了4个月。在记忆还未消失的时候,总想要写下点什么。我试着总结自己的收获,发现好像无从下手,这个故事太庞大了,里面的内容也十分丰富,有关于物理的、有关于历史的、有关于宇宙学的,也有关于人性的。而我差点就写成了三体故事概要,当我平静下来时,我脑海里出现了几个字:

保持敬畏

“保持敬畏”是我很早以前在一篇文章里面看到的,文章讲了一个真实的故事:

有两个大学生,相约一起去徒步穿越塔克拉玛干沙漠,起初学弟也不敢去,但是学长说自己长期在外徒步冒险,很有经验,所以学弟答应了。但是他们还是低估了沙漠的危险,第二天就被困在了沙漠。学长留下半瓶水说自己出去找人求救,你在这里等。一天后巡逻队的人发现了留在沙漠的学弟,把他带了回去。学弟问有没有看到自己的学长,巡逻队的人立马去找他的学长,最后在沙漠中发现了他的尸体。

Read More

我的2019年终总结

如果用一个字总结2019年的话,那就是“ ”,“
”主要体现在工作事业上面:年初从花生有信离职,随后入职杭州布洛,本以为可以长期在公司效劳,可是年底公司又因为经营问题裁员2/3。被裁之后去了阿里巴巴人工智能实验室外包岗,每天都很幸苦,基本属于996的状态,感觉身体有点吃不消,不过还是很有收获(等有空的时候单独写一篇工作总结文章)。

南

2018年Flag

写2019年总结的时候,特意翻看了一下2018年的总结,心想,可别又成了一个失信于己/于人的人,在2018年的总结里面立的Flag是在2019年制作一款独立游戏。
2018年立的Flag9月份参加 机核
的独立游戏大赛,制作了一款Love2D平台的小游戏,也算是实现了Flag。在这里,非常感谢“阿廖”和“大超”放弃国庆假期来帮助开发,还有中间给予帮助的学妹“亦嘉”和女汉子“朝怡”。虽然游戏最后没有获奖,但是3天极限开发,一边写代码一边画图的过程还是很充实(累成狗)。

Read More

Gradle缓存更新

今天Jenkins打包的时候报了下面的这个错误,查了很久,是依赖的库版本冲突导致的。

* What went wrong:
Execution failed for task ':app:transformClassesWithMultidexlistForBranchRelease'.
> com.android.build.api.transform.TransformException: Error while generating the main dex list.

* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.
Read More

Android Studio Profiler 内存泄漏分析

最近的项目中出现了内存泄漏,在踩了好多坑之后,终于解决了遇到的泄漏问题,为了防止下次忘记,所以把这次的经验记录下来。

前言

内存泄漏有很多种的情况,在安卓里面,大多是因为内部类持有了Activity或者Context的引用导致Activity或者Context无法释放,最常见的是执行了一个耗时操作,在退出Activity的时候没有关闭耗时操作,导致Activity一直被耗时操作持有。
例如网上经常会有讲到使用Handler的时候需要注意泄漏,需要使用静态内部类,并且弱引用Activity解决。这样的地方可以在写代码的时候注意到然后解决,但是有些时候我们也不知道哪里出现了内存泄漏,就需要通过工具帮助我们分析了。

Android Studio Profiler

Android Studio自带的Profiler就提供了这样的能力,打开Profiler会看到如下的界面,

Read More

AndroidStudio build failed

使用安卓AndroidStudio开发应用的时候,经常会出现编译失败的情况,有的时候,AS会告诉我们是哪里出了问题,但是有的时候只会提示一段类似这样的话:

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':chat_lib:compileDebugKotlin'.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70)
    at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
    at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62)
    at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
Read More

Jenkins Gradle 打包的问题

错误1

* What went wrong:
Could not determine java version from '10.0.2'.

解决方案: 这个问题的原因是本地有多个Java版本,卸载掉其他版本的java,保留java8就可以了。

Read More

SpringBoot 数据库连接失败

今天在测试springboot的时候遇到一个问题,数据库一直连接不上,服务器报错:

Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The
server time zone value ‘Öйú±ê׼ʱ¼ä’ is unrecognized or represents more
than one time zone. You must configure either the server or JDBC driver (via
the serverTimezone configuration property) to use a more specifc time zone
value if you want to utilize time zone support.

上网查询了一下,原因是我的表里面有一个字段使用了datetime类型,使用 mybatis-generator
生成的enty文件里面自动转化为了Date类型,需要指定时区才可以使用,所以在jdbc的url地址后面添加serverTimezone=UTC。完整的地址如下:

Read More

Mybatis报错 There is no getter for property named xx in xxx

编写接口的时候遇到一个错误

Request processing failed; nested exception is
org.mybatis.spring.MyBatisSystemException: nested exception is
org.apache.ibatis.reflection.ReflectionException: There is no getter for
property named ‘record’ in ‘class java.math.BigDecimal’

具体的mybatis配置文件如下:

Read More

IntelliJ终端乱码

使用IntelliJ编写Spring项目,终端输出乱码的解决办法: 在VM options里面填写-Dfile.encoding=UTF-8

Search by:GoogleBingBaidu