• AWS IAM core concepts explained

    What are policies in IAM? What are the differences between groups and roles? What is an instance profile and when shall it be used? What are the differences between roles and instance profiles? … read more »
  • Null gotchas in Apache Pig

    Apache Pig’s concept of null was not straight forward to me, although it is clearly documented in the Pig book and highlighted in one of its early chapters: … read more »
  • YARN的任务调度机制

    最近单位的Hadoop集群发生了死锁问题 (deadlock),于是对Hadoop的调度程序发生了兴趣。YARN支持可插拔的任务调度器(严格来说也许应该叫资源分配器)。官方文档里面讲了两种:容量调度器 (capacity scheduler) 和公平调度器 (fair scheduler)。默认的是容量调度器。下面是啃完文档后的一点总结,浓缩的都是精华 :wink:… read more »
  • How does the GitHub Pages CNAME file work

    GitHub Pages support custom domains, i.e., sites hosted there can be accessed via DNS names like, in addition to the default DNS names like or I did some tests to figure out how it works. Those tests… read more »
  • Rendering table of contents in Jekyll

    Having a table of contents (TOC) makes an article more readable. Our goal is to automatically generate TOC out of the headings in an article, for a site based on Jekyll and hosted on GitHub Pages, which is the setup… read more »
  • Customizing Jekyll theme

    Jekyll supports a lot of themes, which work quite well out of the box. A theme is a pre-defined set of styles, templates, and template variables. My site is based on the default Jekyll theme: minima. I had to do… read more »
  • Sending emails from Java applications

    I have so far worked with two ways of sending emails from Java applications. The first way directly uses the JavaMail API, while the second one utilizes the Spring framework, which makes it a bit easier to work with the… read more »
  • Understanding Gradle DSL

    Most of the time, Gradle works just fine for me, but I had difficulties understanding the build script and the Gradle DSL documentation. This post documents the points which helped me to understand them. … read more »