5) in ViewController.h, add the following to header
#import <opencv2/highgui/cap_ios.h>
#include <opencv2/opencv.hpp>

Note, the most important line is #include <opencv2/opencv.hpp>, this is important to make the stuffs works. I spent few hours and found this solve my problems, which unable to recognize cvtColor function, OK, will introduce in next steps.

6) To do some testing, by adding a video camera, reading 30 frames per second, process the images by inverting the color…

CMake, the cross-platform, open-source build system. CMake is a family of tools designed to build, test and package software. CMake is used to control the software compilation process using simple platform and compiler independent configuration files. CMake generates native makefiles and workspaces that can be used in the compiler environment of your choice.

To install CMake on Mac, you can download the precompiled binaries here. Under platforms Mac OSX 10.6 or later, I chose cmake-3.1.0-Darwin64.dmg at the time of writing.

Once downloaded, run open cmake-3.1.0-Darvin64.dmg on terminal.

A finder view shown. Drag cmake-3.1.0-Darvin64.dmg to Applications shortcut, it will copy the binary to Applications folder.

Replace it with your SIP account username, and password created in Didlogic SIP Accounts Page.

The step 3. Go to your Freeswitch installation directory, for example, installed in a Linux box the location will be: /usr/local/freeswitch/conf/sip_profiles/external

Vi didlogic.xml, and paste the contents above, and :wq! to save the file.

If your Freeswitch is open and running, go to /usr/local/freeswitch/bin/fs_cli, then type reloadxml, it will reload the xml configuration.

Now, you can make a test call.

The step 4. You may go to /usr/local/freeswitch/bin/fs_cli, type:
originate sofia/gateway/didlogic/65xxxxxxxx ''

Then your phone will get the call. You will see the caller id is the same you defined at Didlogic SIP Profiles page.

For advanced Caller ID settings in Freeswitch, I not tried, you need have a verified business custoemr in Didlogic, then you can follow this tutorial https://didlogic.com/support/setup-guides/freeswitch-own-cli, then you may be able to configure your custom CLI.

Linode is a cloud hosting platform provides varieties of Linux based OS (ubuntu, cent-os, and more). It does provide an API to dynamically provision Linode cloud, like add new node, upgrade/downgrade plan, and account API. It does provide Prepaid service by credit card. In case you purchase $20 plan, you can pay in advance the amount stored in your account, it will be deducted every first week of month.

I owns a Linode. Normally I paid one or two months fee in advance. I have to create my own reminder or randomly remember, Oh, just need to pay Linode again. I had to log in to Linode Member Dashboard to check my account balance every time.

After 9 months of Linode experience, I began finding its API and found this API very useful, its Account Balance Enquiry API.

This simple API allows me to query my current account balance, and then compare with the threshold I define, if it is lower than the threshold, then I can receive iPhone Push Notification.

I set a Cron Job to execute the following PHP script which then send the notification. The details of setting up Push Notification for iPhone is not in this topic.

I found a blog post on web links on programming stuff by amptblog. He collected a vast amount of web links on programming stuff and categorized it based on different web technologies such as HTML5, JQuery, CSS, ASP.NET MVC, Node.JS and other design and programming stuff here.

Inversion of Control, or IoC, is an abstract principle describing an aspect of some software architecture designs in which the flow of control of a system is inverted in comparison to procedural programming.

Saw IoC many times in many technical articles especially with the topics of Object-oriented design or software engineering development. However, I have no fully understand what IoC is talking about at the first pace. Therefore, I had carried out a research about this.

To understand this, let take a scenario.

Consider we have a framework, and application that runs on the framework.

In traditional aspects, application calls required libraries or API to carry out their tasks. The central control is held by central piece of code in application. In Inversion of Control, framework actively calls application to carry out tasks. It often using inheritance to realize IoC. Parent class actively calls the method from child class. Framework lets relevant parent classes work together to define the process of the tasks. At the meantime, parent class leave interface, or in Java Term, abstract method, to be implemented by child classes.

The advantage of Inversion of Control is that there is decoupling of the execution of a certain task from implementation. Secondly, it enables less hassles in system replacement.