亲自体验消费降级

今年看了快一整年说消费降级的各类新闻和文章,觉得都是鬼扯,离我很遥远,没想到快年底了自己也自己消费降级了一把,整个过程很自然,写个文章记录一下。 起因Brix尸体我在2014年的时候从Amazon购买了一台微型主机:Gigabyte Brix GB-BXi5-4570R。当时有Bug价,包括运费只需要200美元,折合人民币1240左右。机器很小,不带内存和硬盘,但可更换无线网卡、加装内存、加装mSATA硬盘和2.5寸硬盘,有很强扩展性。加上CPU是四核的i5 4570R,性能强,觉得可以用很多年。 为了使用Hackintosh,买了两根8G普通电压版内存刷成低电压版,BCM94352HMB网卡,朗讯240G mSATA SSD,Dell P2715Q 4K显示器,凑在一起就成了一台超级强劲的电脑东市买骏马,西市买鞍鞯,南市买辔头,北市买长鞭。由于Iris Pro 5200显存太小无法支持4K,自己修改了BIOS增加了显存,折腾了很长时间,乐此不疲。这台小主机除了高负载下噪音很大,没什么其他的缺点了,陪伴了我3年半写代码看资料的时光。 今年8月份升级了显示器,4K显示器换成了Acer PE270K,手上的MacBook可以使用一根Type…

国服FGO尼禄祭结束

一直觉得玩手游很浪费时间,比较抵触。玩的第一个手游是皇室战争,2015年年底玩,充100左右人民币,玩了两个月觉得太浪费时间,弃了。2016月末白金了最终幻想15之后被群友推荐了国服Fate/Grand Order,玩到现在快两年,充了5200左右人民币,浪费时间浪费钱。 拉邮箱看FGO账单的时候还是有点心疼的,5000多人民币买啥不好,本来游戏挺休闲的,抽卡抽着抽着就抽上瘾了,不过自己手气还好,抽到了31个SSR。每次想弃坑的时候都会抽到1个5星。 尼禄祭活动有无限池,奖池奖励很多,有很多技能石。除开奖励之外还有高难本,考验队伍编成和练度。活动从10月24日到11月7日,集中刷了两周,刷了173池,超过了NGA的平均水平152池。 奖池拿了一堆的种火,喂了大部分给现在仓库里的从者,能满级的都尽可能满上了: SaberArcherLancerRiderCasterAssassinBerserkerExtra2018年除了年底的柳生和枪凛,就暂时没有想抽的了,应该能不花钱抽到 :)…

PostgreSQL表膨胀终结者

(译自:http://blog.dataegret.com/2018/03/postgresql-bloatbusters.html) 无论是DBA还是开发者,只要工作中使用PostgreSQL,多多少少都会遇到vacuum:DBA需要配置vacuum,开发者遇到因vacuum导致的数据库性能下降、慢查询问题。 背景vacuum对开发者来说是个黑盒,DBA知道vacuum很重要,vacuum的配置也很重要。不怎么熟悉vacuum的人只知道vacuum是清理数据库的垃圾收集器。有人会问,vacuum是怎么清理数据库的。可在官方文档中找到十分详细的答案,在这里只做个简短的概要。 处理数据时,PostgreSQL会为每一个客户端提供单独的快照。客户端对快照中的数据进行更新和删除,一些数据最终变成过期数据,但它们仍存在于数据库中,还占用表数据文件和索引数据文件的空间。因此数据文件中会存在碎片,引起整体数据库性能下降。这时候vacuum出来干活了,vacuum的主要任务就是清理表和索引中不需要的数据(死数据),为新加入的数据清理出来空间。 世界并不完美,vacuum也有存在的问题。比如,vacuum完成清理工作后,那些空间并没有真正被释放掉,只能被vacuum清理过的表和索引所利用。虽然看上去表和索引大小都已经减少了,但是实际上和vacuum清理前的大小是一样。这让很多刚开始使用Postgres的用户感到困惑。 还有,某些场景下vacuum比较无能为力,无法有效完成工作。比如执行空事务,vacuum会推迟清理死数据导致表和索引膨胀。空事务,…

选了Google One作为网络存储服务

上周手机上更新App,Path说是时候说再见了,给一个月的时间备份所有东西,更新完毕手机上多出了备份的选项: 点选备份,输入邮箱,Path会把所有动态打包成一个文件,发到邮箱里。 网络存储服务这些免费的服务说停就停,想想自己的Flickr、Dropbox上还留有大量的照片,屏幕右上角不断提示iCloud空间不足的信息,有个想把这些东西统一往一个网络存储服务里存储的想法,这个存储还要支持全平台使用。 想了一下只有Google Drive,从一开始就提供15G的空间,最近改名Google One了价格还降了不少,还多出了200G/2.99美元/月的选项,年付的话还能便宜一些。比较一下iCloud和Google One的价格: iCloud Google One Google One年付 5G 免费 - - 15G - 免费 免费 50G $0.99 - - 100G - $1.99 $1.66…

Ghost整理与升级

很长时间没有打理博客了,最近挤出时间开始整理一下 升级Ghost之前用的Ghost的版本比较老,0.7.0,当时还没有官方的Docker Image,自己写了个Image扔到上面跑。现在官方出了Docker Image,如何使用写得也比较详细,只是要升级到最新版本2.X的话,需要先升级到1.X,再升级到2.X。 Ghost的管理界面做得还不错,在里面进行博客备份,images文件夹更换路径,写了个Docker Compose挂好目录,运行1.X的Container,还原到1.X的Ghost里。从1.X的Ghost再次备份,删掉1.X的Container,运行2.X的Container,还原到2.X的Ghost里。其中还需要修改Ghost的运行配置,编辑/var/lib/ghost/config.production.json里面的url指向你真正的域名,不然无法访问。 虽然有点绕,但整个过程不到2分钟,借助Docker Compose,改Image的版本就好。 主题和配置看了一下官方的说法,…

Spring Boot 2.0在Windows 7系统下运行持续报错的解决方案

昨天Spring Boot 2.0正式发布,Milestone和RC版本用了很长时间,在自己的macOS机器上开发一直没啥问题 昨天新项目启动,直接用了Spring Boot 2.0,代码提交上去,同事在Windows 7的机器检出下来,运行时抛了一堆错误: 2018-03-01 20:34:45.025 ERROR 9632 --- [nio-8080-exec-1] o.a.catalina.core.AprLifecycleListener : An incompatible version [1.1.33] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.…

27岁

今天下班前记了一下日历,日历提示我,明天就过生日了。好快啊,很开心,不幸的一年这么快就要过去了。 去年生日过后,不幸一直缠绕着我,很多事情都不顺利,在国外出车祸,笔记本坏了接着耳机坏,飞机延误,或者没赶上,牙齿坏掉,很严重的家里变故、工作变动还影响了我整整一年。年中过后开始做很多事情没动力,没有方向,几个大叔伸手帮忙,把我从不幸中拉了出来,帮我指了好几条路。9月初我投简历到Google旗下的个人财富管理Startup,10月初onsite拿到Offer之后,所有的运气都来了,接连拿了好几个Offer。运气还是实力,我觉得运气占比更大一些。 幸运慢慢多了,工作量却没少。基本上每次过生日我都非常忙,临近年末都是最繁忙的时候,上了3周班,加班却加了80+小时。上周末降温,没穿多少跑去加班,办公室里敲代码敲得手疼。下午跑去见大叔,大叔心疼地说怎么刚去上班这段时间就加了那么多班,还加到凌晨3点多,把我吓一跳,你不去上班这天也不会塌下来。我说你不知道我要做的事情有多少有多紧急,我一来就做了好几周开发和测试,现在保证稳定之后,下周我还要去做运维。 做运维的事情,还是一个同事过来跟我说明了一下整个系统架构的情况,说目前要做的事情有阻碍,让我接受和理解一下。…

重构日记

一个老项目,大家往上面堆代码,堆到现在有100+个模块,就是上次减肥的那个项目。 最近几个跑来写后端的同事问我,刚clone下来的项目里面一些模块是用来做什么的,为什么叫这些名字。我对项目的小模块不是很喜欢,但是为了让这几位同事对现在要接手的工作有点信心,想了个听起来很合理的理由跟他解释了一下,他们似懂非懂,说出一个“哦”字都能听出勉强,心里很难受。回过头,另一个老员工问我,这个项目里的某个模块为什么叫这个名字,有什么深意。当时的感觉:〃ωo啲吢ぬ痛ぐ 直到最近有同事升级了Gradle版本到4.0.1,也就是昨天,出现了build break,一个同事说是Gradle的Bug,瞅了一眼当时就喷了,之前写Gradle文件的同事到StackOverflow上找了个通用解决办法,为了代码看上去不是复制粘贴,手打了一份不等于抄,搞了一个配置用到现在。Gradle开发团队总是堆feature往前赶不做向前兼容,搞得Gradle plugin社区怨声载道,这次升级我也天天被同事粘着缠着,非要我讲Gradle的故事。面对这次危机,我决定站出来~~成为偶像~~做点升级的事情。 后来看项目100+模块真是昏古七了,想重构,于是今早跑去跟项目负责人撒娇软磨硬泡了一上午,可以动手做,但是要把过程记录下来,于是就写个重构日记吧。…