Posts

Showing posts from December, 2016

Đọc Một Cuốn Sách tháng 12/2016: "Chiến binh cầu vồng" - Andrea Hirata

Image
Trong 25 ngày đầu tiên của tháng 12, tui đọc được vài cuốn sách, và khá phân vân không biết cuối tháng sẽ review cuốn nào. Cuốn kinh điển thì lại quá quen thuộc với mn nên viết review vô nghĩa, cuốn thấy hay thì nó lại quá nặng về chính trị (nói chuyện chính trị là dưa leo viên vào đâm cho nát ass), cuốn của tác giả nổi tiếng thì không  quá ấn tượng. May là trong 3 ngày tiếp theo, tui có đọc cuốn "Chiến binh cầu vồng" của tác giả Andrea Hirata, nên là tui sẽ review nó. Cuốn sách tôn vinh cuộc đấu tranh cho quyền được học tập của mọi con người, đồng thời cũng kể một câu chuyện tuổi thơ với tình cảm bạn bè, thầy cô đầy sắc màu và đáng nhớ.

Mở đầu là lễ khai giảng ở ngôi trường làng Muhammadiyah hòn đảo Belitong, Indonesia. Nếu không có đủ 10 em đến nhập học, trường sẽ phải đóng cửa, chấm dứt ước mơ được đến trường của những đứa trẻ chưa từng đi học và của 1 cô giáo 15 tuổi cũng chưa từng đi dạy. Nhưng may mắn thay, ngôi trường xiêu vẹo ấy cũng có đủ 10 em học sinh mới, để có …

How to use Oracle JDK 7 on CircleCI Ubuntu 14.04 machines

Image
Recently I have worked on a 'boring' Java project which uses OpenJDK 7. I want to continuous integrate that project using CircleCI and I had tried to build it on a Linux Ubuntu 14.04 (Trusty), which is the newest version that CircleCI offers. While doing so, I encountered a problem, which, after narrowed down the scope, I found that not occur when I used OracleJDK or build on Linux Ubuntu 12.04 (Precise).

I don't want to downgrade the OS version and I still have not figured out what goes wrong with OpenJDK, so I have temporarily chosen OracleJDK on Ubuntu 14.04. I also stay with version 7 because I don't want to upgrade the JDK version to version 8.
CircleCI Ubuntu 14.04 does not have OracleJDK 7 pre-installed As mentioned in CircleCI build images page, CircleCI's Ubuntu 14.04 machines has JDK 6, 7, 8 pre-installed, both OracleJDK and OpenJDK; and oraclejdk7 is the default version unless you describe a version you want in the machine section, like:


machine:
java:
ve…

Shouldn't call gradle twice in a build

Image
I often watch TV series/movies during my spare time. But, occasionally, I work with my pet projects. Recently I have added tests and fixed minor bugs for an existing project using CircleCI and coveralls.io for continuous integration and code coverage collecting.

The frustrating thing is that coveralls.io also collects coverage for builds which has failed tests while I want to track only the builds of which all tests pass. So, the record of coveralls contains more items than the number of my success builds and it makes me really disturbed.

I tried to figure out the way to achieve what happened. And here is the explanation:
1/ The flow I use Gradle build system to automatically build, test and collect code coverage. Each of my builds contains 3 main Gradle tasks:

- test for running the unit/integration tests.
- jacocoTestReport for generating test reports file (xml for machine-reading and html for human-reading), this task must be carried out after the test task
- coveralls for collecting …