[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 · ChenFu 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 · ChenFu 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 · ChenFu 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 · ChenFu 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 · ChenFu 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 · ChenFu Kuo

[工作點滴] message pack rpc install on openwrt

Message pack with RPC extension required 3 packages. msgpack msgpack-rpc mpio The msgpack and mpio are required by msgpack-rpc. The following are openwrt makefiles that I use to build the packages. msgpack library include $(TOPDIR)/rules.mk PKG_NAME:=msgpack PKG_VERSION:=0.5.7 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=http://msgpack.org/releases/cpp/ PKG_MD5SUM:=705106a9378c792fe22d285dba5c142c PKG_INSTALL:=1 include $(INCLUDE_DIR)/package.mk define Package/msgpack SECTION:=libs CATEGORY:=Libraries TITLE:=Message Pack library URL:=http://msgpack.org endef define Package/msgpack/description MessagePack is an efficient binary serialization format. It lets you exchange data among multiple languages like JSON but it’s faster and smaller. endef ...

February 4, 2013 · 2 min · 257 words · ChenFu Kuo

Linux Engineering Utility Cheatsheet

A quick compilation of useful commands and configurations I frequently use in my daily operations. Working with Patches To generate a patch from a single file or directory: diff -Naur [from-file] [to-file] > [YourFileName.patch] -N: Treat absent files as empty. -a: Treat all files as text. -u: Unified output format (best for readability). -r: Recursive directory comparison. Version Control Cleanup Removing all .svn directories recursively: rm -rf `find . -type d -name .svn` Removing Git Metadata: In a Git repository, simply deleting the root .git directory is usually sufficient to remove history and configuration. ...

February 4, 2013 · 1 min · 133 words · ChenFu 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 · ChenFu 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 · ChenFu Kuo