Pages

Monday, March 28, 2016

Development workflow of OpenCV and HubTurbo



1. OpenCV

Overview & Pros

Uses the "Fork & Pull Request" contribution model and is very friendly for beginner to start contributing by recommending simpler form of an issue to the contributor. If there is one thing to take away contributing to OpenCV is its very well documented "Contributing guideline" which includes detailed work flow of what will happen at every stage after a pull-request is created. 


Flow chart of OpenCV contribution process

From the flow-chart above, there are several important points that could be integrated to HubTurbo:

  • very strict about ensuring build passes and demand responsiveness from contributor by active developers
  • reviewer provides straightforward example and lay out expectation clearly through each conversation via GitHub's Issue Tracker 
  • create relevant follow-up even if the pull-request is rejected or deemed not useful 

Cons

Though the project has developed quite a comprehensive work flow after countless iterations, it could benefit from using a CI to instead of relying too much manual review or dependent on contributor to write tests for each pull request

2. HubTurbo

Overview & Pros

 In comparison to OpenCV, HubTurbo ensures code written by each contributor to meet certain criteria such as code coverage, coding style and passes all tests automatically. With these requirements in place, reviewer can spend more time and effort reviewing the code instead of worrying about these requirements. 

Cons

Though there are many benefits from automated testing and code coverage, these processes could potentially mislead contributors into thinking that passing these online tests is most essential. There were several cases where these services could give erroneous reports and giving false confidence to the contributor.

Improvements

There are definitely room for improvement and takeaways from well-established project such as OpenCV:

  •  provide a more detailed "Contribution guideline" with detailed steps of what to do when something failed
  •  ideally, reviewers should point out recommended changes in one go 

Monday, February 4, 2013

How to do the work ?

Many of you might know that I am an avid reader of productivity blogs and books. There is one recurring advice that keeps popping out. You are right!! JUST DO IT. I found this advice very misleading and unhelpful at all. I myself is guilty of doing this. Therefore, I am going to get into the details of how to 'JUST DO IT" works.
  
"JUST DO IT" can be divided into 3 steps. There are:  
  1. Research
  2. Planning
  3. Action 
 
Some of you might be wondering why the hell do we need so many steps ? Aren't we suppose to cut to the chase to avoid procrastination ? I myself had fallen into the trap and jumps onto the task, only to find myself failing to keep up the momentum. In fact, when you are doing research and planning, you are actually doing the work. There is really no clear cut boundary between planning and executing your task. The main reason people fail to take action is they spend too much time on the 2 stages mentioned. 


http://leadershipfreak.files.wordpress.com/2009/12/frustration.jpg
Image from http://leadershipfreak.files.wordpress.com
 



How do you get out of this endless loop ? 

Firstly, you have to set a reasonable time limit and move on when the time is up. I know you want to get everything perfect, but there is really no point to doing all these research if you never get to act upon them. Apply time limit

The next step involve identifying the most important part of the task. For instance, if  you want to create a presentation; do not sweat the details such as choice of words. Instead, focus your research on your ideas and audiences. Get the important things done

After you have done all that. You can finally "JUST DO IT"

 

Can't we just skip those steps ? 

Many people just run out of steam after undergoing these 2 stages: planning and research. My advice, keep the time limit short. Some research and planning will greatly increase your momentum while executig the task.

Saturday, May 12, 2012

Project Based Learning

The common approach to learning something new is to understand the subject and doing it step by step. We test ourselves along the way to make sure we have mastered the basics before moving on. However, this might be the best way to learn something now, because it is time-consuming, not practical and we do not produce any real results at all.

A better approach would be to create a project and learn by doing along the way. It is crucial to relate the skills you want to learn to the real world. For instance, if you want to learn programming; you can choose to make your own calculator or game for your friends. This might look hard at first but it will drive you to producing incredible motivation.

This website is also a project to train my writing skills and express my thoughts more efficiently. It is good to get all those confusions out to start your day with a clear day ahead. What are you waiting for ? Start now and share your result.

Saturday, January 14, 2012

10 more till 100

This is the 90th post and I think it just means my writing project is doing quite well. Today we are going to talk about persistence, not just any kind of persistence, but something more subtle.


When people think of persistence, the first thing that come into your mind is a guy that work none stop on something. There is different type of persistence; slow persistence. I sometimes work on a particular project and leave it hanging due to lack of motivation. However, I will always seem to get back to it maybe after 3-4 days. That is slow persistence.


What is the sole benefit of slow persistence ? 

It makes learning something very difficult much easier
Are there times when you want to work on something seemingly impossible such as learning calculus, playing the cello or something else ? If you just keep pushing, you might eventually fizzle out and think yourself as downright untalented. However, if you just come back to the subject after maybe 1 or 2 days, you might be more eager to explore the subject with deeper insight.


What do you think ? Any comments

Monday, January 9, 2012

Week 2 January 2012

Finally I have time to write. This week is going to be a hectic one but I will try to incorporate the spirit of Big Rock first before all the pebbles. Therefore, my main goal is to collect all data for my colloquium project and also to work on the projects related to Outliers. These two things have been bugging me for a while. I just need to take the first step and start building on the momentum. Nevertheless, these are my weekly goals:

1. Colloquium ~ Mathema

- Collect all survey data by Wednesday
- delegate tasks to other members of the team 

- Start transferring all information into UCINET
- Get a list of 5 classroom activities & how to conduct -> Krishna & Hin Khai

- Complete draft for Introduction -> Partibhan & Way Hup


2. Outliers 

- discuss with other members on tuesday
- duration, topics, games involved, no of people, delegation of task
- find out all social network of schools
- what can we do in school ? Plan. Target Group.

3. Studies
- Physics - > Complete Q.c and E.p for chapter 16, complete (F) chapter 14, 15
- Chemistry -> Complete Ionic Eq E.p, (F) Chm of Carbon, Q.c of Phase Eq
- PA -> Acquire + Understand Chapter 5
- MT -> Finish A.A chapter 7, Finish All Q.C chapter 5

4. C++ programming -> Accelerated C++ on Friday
5. Read Tipping Point

Grand Project - Play with PHP & MYSQL