December 1 to December 7, 2013


1) Human Computer Interaction: Completed Quiz 4 and peer grading.
2) Reactive Programming: Watched week 4 video lectures and submitted assignment 4.
3) Reactive Programming: Week5 video lectures released and will start to watch them on Wednesday.
4) Creative, Serious and Playful Science of Android Apps course starts today. Need to follow the instruction to install adt-bundle to my Mac Book Air.


5) Working on MCS Heritage Fiesta 2013 application. Completed Introduction, Gallery and Contact fragments. Outstanding items: 1) Add markers to indicate two bus stops that are near to the school. 6) Add Go back, Go forward and Reload buttons below webview. 3) Study and add YoutubePlayerFragment.

Week of September 16 to 22, 2013 (Articles I read)

Collection of Links:
  1. Android – Dashboard design pattern implementation
  2. How to create popup window in android
  3. Ad-sense Integration in Android : Display add into Android Application
  4. Android for the Busy Developer: Free 12-Lesson Course
  5. Learn Node JS Interactively
  6. Android ListView example with Image and Text
  7. Android Full App, Part 6: Customized list view for data presentation
  8. Android ListView – Tutorial and basic example
  9. Android ListView context menu: ActioBar ActionMode.CallBack
  10. Node.js: A Jumpstart for Devs
  11. Streams tagged with Android
  12. Android Tutorial: Using the ViewPager

Week of September 9 to 15, 2013


1) Linear and Integer Programming: Watched week 2 video lectures (Simplex Method).
2) Metadata: Organizing and Discovering Information: Watched week 2 video lectures (Dublin Core).
3) Introduction to Recommender System: Submitted Written Assignment 1
4) Linear and Integer Programming: Submitted Pivoting Assignment #1. Still need to do Program the Pivot: part 1 and part 2 (Will use Scala to complete the assignment because I need to brush up the language before Reactive Programming course commences in November).
5) Metadata: Organizing and Discovering Information: Submitted Homework 2 and earned 15/15 in third attempt (Thanks to the hints from TA and fellow classmates).
6) Introduction to Recommender System: Begin to watch week 2 video lectures.

MongoDB University:

7) M102: MongoDB for DBA – Downloaded Certification of Completion and joined LinkedIn M102 Alumni Group.
8) M101JS: MongoDB for Node JS Developers – Completed Homework 5 (Aggregation).
9) M101J: MongoDB for Java Developers – Completed Final Exam tonight (2013-09-12). Questions will be graded on September 24, 2013 and I aim at 9/10. I am confident of my answers except question 5. I got it wrong in M101P exam and did not bother to watch the answer video. The same question appears again and I have no idea which options to choose.

All MongoDB university courses are great and I hope many people feel the same way I do.


10) Continue to work on my simple Android Application.
— Create an activity to load Fevawork course pages in WebView. The WebView shows progress status during page loading and built-in zoom tool to enable user to resize page. Moreover, the activity listens to backspace and triggers WebView to return to previous page if previous page exists.
— TODO: Load course records from sqlite database and implement operations to add, delete update courses.

Week of September 2 to 8, 2013


1) Dropped Microeconomics Principles due to heavy schedule.
2) Linear and Integer Programming, Metadata: Organizing and Discovering Information and Introduction to Recommender Systems start this week. Video lectures are published in course websites but I haven’t had time to watch them yet.
3) Linear and Integer Programming Course: Completed Assignment 1 and Assignment 2 tonight (2013-09-04)
4) MetaData: Completed Homework 1 and scored 15/15 on my third attempt. (2013-09-05)
5) Recommender System: Watched videos of module 1

MongoDB University:

6) M102 Final Exam is graded and final mark is calculated. My final exam mark is 11 out of 12 and final course grade is 96%, good for distinction. Now, I patiently wait for course survey and invitation to LinkedIn M102 Alumi Group.
7) Completed M101J Homework 6 (Application Engineering). They give us Homework 6 of M101P and even the validation script is Python.
8) Completed M101JS Homework 4 (Performance). HW4 of M101P is reused in this course and I am a little disappointed because I expect different questions from the instructor and tutor.


9) Continue to work on my simple Android Application.
– Add 3 tabs and each tab is consisted of a list view and list view item is customized to display image view and text view.
– Add intent to call my mobile phone
– Add intent to send email to my Gmail account.

Week of August 25 to 31, 2013


1) All summer courses ended. Completed two courses and dropped three.
2) Signed up for Principles of Reactive Programming, Programming Handheld Systems with Android and Microeconomics Principles.

MongoDB University:

3) 10gen Education renamed to MongoDB University.
4) Completed M102 Final Exam. It is consisted of eleven questions and took me two days to complete. Exam result will be released on next Tuesday.
5) Completed M101J Homework 5 (Aggregation Framework). It is same as Homework 5 of M101P.
6) Completed M101JS Homework 3 (Implement add new post and new comment functionality). The asynchronous callback concept is unnatural to me to grasp right now. Give me several weeks and I should be comfortable of passing callback function to nodeJS function.


7) Begin Lesson 2 of CS253 Web Development. This week covers HTML controls, Http Request and Response that I have already learnt since 2006. However, Steve still teaches many new things that I did not know beforehand. My objective this weekend is to use Python and Webapp2 framework to write html pages and have them run in local google app engine.


8) Retake lesson 4 of Certificate in Google Android Application Development for Marketing Managers. Able to invoke Google Map API to show my home in Google Map in Marketing Jar.


9) Successfully write an Android Application to display Google Map. It should not be difficult given my Java background. Localize the application to English, Traditional Chinese and Simplified Chinese.

My First Android Widget

Last night, I followed AppWidget tutorial on the Internet and wrote my first analog clock app widget in Android. Even though I was extremely exhausted, I did not give up and finally had it installed on my phone. When I saw the minute hand moved on the home screen for the first time, the sense of satisfaction was priceless. Hopefully, I can build a few more app widgets based on this experience.

Useful Android Links

Taken from Roger Tang’s facebook post, I have put the useful Android links here:

台灣中文書的 Powerpoint 筆記

MKYong Tutorials, 又簡單又清楚




Java2S , 好多不同例子程式碼, 但係無解說

Tony’s Blog
Tony’s Blog

Bruce Cooper Sitepoint Blog
Bruce Cooper’s Technology Blog

10gen Education offers new course

Great news, 10gen will offer a new MongoDB course this August and it will be taught by the marvelous Andrew Erlichson and his teaching staff.

  1. M101JS: MongoDB for Node.js Developers

Some background of JavaScript is required. If you don’t know JavaScript, you can search JavaScript tutorial sites on Google and study the language before the class begins.

Resources on MongoDB and Node.js