Get the job done with limited budget

As expected, we outsource to India and China.
I look for people who did the same work before to create a win-win situation.
A half year work for a typical employee only takes our contractor a month, because it is a matter of customization instead of creation.
The challenge for us is to precisely describe what we want, and find people.
CSTO has a good pool of talents even though the site itself could be better.
Seeking live HLS stream on Android troubled us and we solved it in a week on CSTO.
(Thanks to ZhangLong, our Android contractor)


Engineering as co-founder

Five years later, I am going back to my business blog.
I co-founded MaxxSports in 2015, and joined full-time in May 2017.
This blog will serve as preparation of our future formal technical documentation, while our streaming/recording/AI system evolves.
The live streaming and DVR have been released to users.
One of our new projects is to let the cameras follow the players in a hockey game.
OpenCV and TensorFlow is heavily involved.


Away from Vancouver

I have been away from home, Vancouver, since January 2012, very busy at work. My blog has been on hold, saddly.

Our baby girl is coming; she is late; she is supposed to arrive to the world yesterday. Our family is growing, with a big boy, now a baby girl as well!

typename vs class (Visual Studio 2010)

Under what circumstances does NOT ‘class’ replace ‘typename’?

struct C
class CC{};
typedef CC CC2;
template<class T> //using 'class' is fine
struct D
typename T::CC2 c1; //'typename' cannot be prelaced by 'class'
class T::CC c2; //using 'class' is fine
//T::CC c3; //error: 'T::CC' : dependent name is not a type
//class T::CC2 c4; //error C2242: typedef name cannot follow class/struct/union
//T::CC2 c5; //error: 'T::CC2' : dependent name is not a type
D<C> a;

Summary: if the subtype if not typedef-ed, class can do the job of typename.
Otherwise, it has to be typename.