[Work Notes] Pure Public or Hybrid Cloud for Surveillance System?

The pure public cloud is no doubt building web services on a public infrastructure, while hybrid combines a private component. According to Wikipedia, the public cloud (aka external cloud) refers to services provided by a third party. A picture on Wikipedia describes this clearly. Basically, there are four deployment models on Wikipedia. A private cloud can’t fully satisfy the requirements of a surveillance system. We also won’t discuss community cloud since it’s not realistic for surveillance. ...

February 16, 2013 · 2 min · 291 words · Fran Kuo

[Work Notes] I2S Bus Channels Setting in GStreamer alsasrc Plugin

My colleague did some experiments on GStreamer alsasrc and osssrc plugins and found that alsasrc consumes a lot of CPU resource (around 16% on the chip we use). He asked me why the test tool provided by the chip vendor is quite efficient (around 1~2%). It was a big gap and I started to investigate why. After hours of checking, I found that the plugin may cause a busy wait in a while loop when the parameters are set to non-blocking mode. I made a simple code modification and the CPU rate dropped to 12%. Still frustrating, but some improvement. ...

February 8, 2013 · 2 min · 255 words · Fran Kuo

[Work Notes] RabbitMQ Setup and Test

RabbitMQ Setup and Test Server side: My desktop PC is Windows 7. Download the RabbitMQ server from http://www.rabbitmq.com/. Installation guide: http://www.rabbitmq.com/install-windows.html I use an extra Ethernet card with IP address set to 192.168.1.19, and make sure the firewall doesn’t block port 5672. Client side: (both send and listen on the same device) I use the package from https://github.com/alanxz/rabbitmq-c. Follow the guide in the link to cross-build and install on the embedded device. ...

February 7, 2013 · 1 min · 72 words · Fran Kuo

[Work Notes] The Realtime of Transport Stream on Miracast

When I google the internet with realtime and transport stream, I could not find the information I want. The word ‘realtime’ must construct on the relative thinking. For example, there is camera and screen and the camera’s video can be showed on the screen with quite small latency. We assume the latency is under 150ms or 300ms whatever and we can call this is realtime or not when we can have comparisons. ...

February 6, 2013 · 2 min · 270 words · Fran Kuo

[R&D Notes] Airplay, DLNA and Miracast

Today, a supplier visited our company to introduce their solutions with DLNA and Miracast support. After some research on these protocols, it seems there are three main standards competing in the market for wireless display and media streaming. DLNA: This has been around for a long time. Apple was originally a member of the DLNA alliance. Airplay: Apple eventually left DLNA to create its own proprietary “Airplay” protocol, building a walled garden for seamless ecosystem integration. Miracast: Created by the Wi-Fi Alliance. It appears the Android camp is rallying around Miracast to challenge Apple’s dominance in this space. It will be interesting to see how these standards evolve and which one will eventually dominate the user experience. ...

February 5, 2013 · 1 min · 121 words · Fran Kuo

[Work Notes] STL Notes

An overseas engineer uses the Boost C++ library for related project development. Seeing the STL syntax in their code made me realize I should take some time to study this — at minimum, to be able to read the code properly. From Wikipedia: http://en.wikipedia.org/wiki/Standard_Template_Library The Standard Template Library (STL) is a C++ software library that influenced many parts of the C++ Standard Library. It provides four components called algorithms, containers, functional, and iterators. ...

February 5, 2013 · 1 min · 206 words · Fran Kuo

[Work Notes] Linux Quick-Reference Notes

Patch Commands Create a patch file: diff -Naur [from-file] [to-file] > [YourFileName.patch] -N: If a file is only in one directory, treat it as present but empty in the other -a: Treat all files as text -u: Use unified output format -r: Recursively compare subdirectories SVN — Remove all .svn directories $ rm -rf `find . -type d -name .svn` Git — Remove .git Only need to remove the .git directory at the root of the project. ...

February 4, 2013 · 1 min · 86 words · Fran Kuo

[Work Notes] msgpack-idl How-To

msgpack-idl How-To Step 1: Get the msgpack-idl $ git clone git://github.com/msgpack/msgpack-idl.git Step 2: Install the required Ruby tool $ sudo apt-get install ruby1.9.1 Step 3: Go to msgpack-idl folder $ sudo gem install msgpack-idl $ sudo msgpack-idl --install java Step 4: Create a sample file sample with the following content: message Node { 1: string address 2: map<string,string> properties 3: optional string? description } message StorageNode < Node { 4: long capacity 5: optional int weight = 1 } Step 5: Generate Java code with the following commands: ...

February 4, 2013 · 1 min · 143 words · Fran Kuo

[Work Notes] Git Clone Error: "Problem with the SSL CA cert (path? access rights?)"

Our company’s git server does not support SSL verify but does support username/password authentication. Git enables SSL verification by default when accessing HTTPS URLs. You may encounter the following error: error: Problem with the SSL CA cert (path? access rights?) while accessing https://tw.ubnt.com/git/example.git/info/refs fatal: HTTP request failed To fix this, disable SSL verification globally: git config --global http.sslVerify false Then clone again: $ git clone https://tw.ubnt.com/git/example.git Cloning into 'test'... Username for 'https://tw.ubnt.com': name Password for 'https://[email protected]': password remote: Counting objects: 1054, done. remote: Compressing objects: 100% (674/674), done. remote: Total 1054 (delta 390), reused 747 (delta 290) Receiving objects: 100% (1054/1054), 14.45 MiB | 377 KiB/s, done. Resolving deltas: 100% (390/390), done. Done!

January 31, 2013 · 1 min · 113 words · Fran Kuo

[Work Notes] Protocol Buffer and Message Pack — Initial Study

When I had an engineering discussion with an overseas engineer, I found that he uses a third-party library called MessagePack for binary serialization in internet applications. More detailed information about MessagePack is here: http://msgpack.org/ I’m not sure yet what the full differences are between these two libraries, and I couldn’t find a detailed comparison online. So I’ll spend some time studying both.

January 31, 2013 · 1 min · 62 words · Fran Kuo