Year: 2017

  • 柳暗花明的2017

    对比忙于奔命的2016年, 2017年是收获颇丰但又不失平衡的一年. 在3月份, 我们一家宣誓成为了土澳的公民. 这是我们这几年一直期待的, 当然, 事到临头心情却是复杂的. 另外在公民仪式上我们得到一份礼物, 一盆土澳特有的本地花卉. 我想着本地物种应该很有能耐吧, 就随便把它放在花园里了. 结果冬天没过完它就死了… 有了”身份”后我想着要是有机会去很”土澳”的公司工作一下一定能学到很多”精髓”, 没想到不久之后我很走运的拿到了AFL的工作offer, 没有像以往那样在最后一轮面试时落马. 工作上的收获就不赘述了, 之前的笔记有很多都是这方面的. 二宝在年初时中耳积液, 导致几乎失聪, 之前学会的咿咿呀呀也都忘了. 医生起初认为二宝是自闭儿童, 把我们愁了个不轻. 还是老婆意志力比较强, “毛病再多也得把她养大”, “我们没有别的选择”. 好在给二宝戴助听设备数月之后, 二宝的听力貌似开始恢复了, 逐渐开始响应我们的呼唤. 她并不是自闭, 只是什么都没听到, 生活在静音的世界里. 收获最大的当属大宝笑笑, 终于在老婆的威逼利诱下对家里已经买了二年多的钢琴产生了兴趣. 而且我们在居住区附近找到了大宝的钢琴老师, 让大宝把钢琴+五线谱一起学了. 几个月以后笑笑参加了老师组织的汇报演奏音乐会. 笑笑在绘画方面的进步也很大, 我让她把自己的作品扫描上传到她自己的blog, 但她似乎兴趣不大, 上一次更新停在3月… 笑笑的期末评估也很好, 所有科目都比去年的成绩好(因为去年以及前年我们陪笑笑的时间也少). 今年完成的另一件大事是我帮爸妈提交了移民申请, 希望几年后能顺利团聚. 父母的移民申请基本上是DIY的, 填写的表格可以铺满地板. 感谢老婆的支持以及”过来人”朋友的经验分享. 土澳移民的确越来越难了. 🙂

  • Internal Service in Kubernetes Cluster

    In Kubernetes(K8s) cluster, 1 or more containers form a pod and every container in the pod can access other container’s port just like apps in the same local host. For example: – pod1 – nginx1 – gunicorn1, port:8000 – pod2 – nginx2 – gunicorn2, port:8000 So nginx1 can access gunicorn1’s port using localhost:8000 and nginx2…

  • Build a Chrome Extension with VueJS

    It turns out quite easy to build a Chrome Extension. Basically the extension is a web application containing HTML, JS, images, etc. I tried to build a simple extension using VueJS recommended by colleagues. There’s just 1 limitation that affected me: The eval JS function is disabled in Chrome Extensions for security reasons. That means…

  • Kops: Add Policies for Migrated Apps

    When migrating some old applications to a Kubernetes(k8s) cluster provisioned by kops, a lot of things might break and one of them is the missing policy for the node. By default, nodes of a k8s cluster have the following permissions: ec2:Describe* ecr:GetAuthorizationToken ecr:BatchCheckLayerAvailability ecr:GetDownloadUrlForLayer ecr:GetRepositoryPolicy ecr:DescribeRepositories ecr:ListImages ecr:BatchGetImage route53:ListHostedZones route53:GetChange // The following permissions are…

  • Resolved: Arch Linux WiFi issue

    When I connected my laptop running Arch Linux to a new WiFi this morning, it worked for a brief moment then all connections were dropped. Connecting to the same WiFi with phone or Macbook works fine so the problem is at Arch LInux(AL)’s end. Then I noticed if I do a route it actually showed 2…

  • Notes: BuildKite and Kubernetes Rolling Update

    This is kind of a textbook case that container is much more efficient than VM. The CI pipeline in comparison uses AWS CloudFormation to build new VMs and drain old VMs to do a rolling update, which takes around 10 minutes for everything even if it’s just 1 line of code changed. I did a…

  • Why I like BuildKite

    BuildKite is a relative new CI toolkit I would like to replace Jenkins with. Here are some pros and cons I thought I could share: Pros: Designed with containers(docker) in mind. Hybrid architecture, console as a hosted service where agents can run anywhere with internet connectivity Build pipeline as code, also very easy to write…

  • Adding Annotation to Grafana Dashboards, with InfluxDB

    It’s very easy to add this super powerful annotations to Grafana charts. I followed the below instructions and created my first annotation in a few minutes on an existing Grafana + InfluxDB setup. https://maxchadwick.xyz/blog/grafana-influxdb-annotations 🙂