Welcome
Sign Git Commit with GPG
2017-08-06
GPG, Gnu Privacy Guard, is a popular and wide used encryption tool compatible to PGP (Pretty Good Privacy) tool. By using widely-accepted asymmetric encryption methods, GPG becomes an handy utility for signing digital information with a personal or organizational credential or securing private or sensitive message with high level encryption. This post is to integrate GPG with Git for more reliable and controllable source code management.
Install Global npm Package For Current User Without Privilege
2017-07-30
NPM is the most used package manager for node.js and JavaScript ecosystems. By using the global packages mechanism, a node.js package can be easily integrated into system shell and just works like a native command line utility (or even an desktop GUI program). However, by default, the global packages are installed as shared global packages across users and requires root privilege for maintenance, which may be unavailable for general user and also expose potential conflict of packages between users. This post will cover simple configuration for npm global package for current user only.
vector of bool in C++
2017-07-12
C++ is an evolvement of C with shared design principles of performance first, yet with consideration of convenience at the perspective of programmer. However, the former generally requires to implement the most suitable and dedicated data structure (that is to optimize) for common cases. The specialization results in inconsistency. This post is mainly about the vector of bool, which is a specialization of vector according to the standard template library (STL) of C++.
Service in ROS
2017-07-12
Followed by previous post covering message in ROS, this one introduce service in ROS. Service is another information exchange mechanism provided in ROS which provides RPC (remote procedure call) style request-response pattern. The service is defined by .srv file, which can be treated as a combination of two message representing service request and service reply, respectively. Most of information in this post is refer to Services page in ROS wiki, srv page in ROS wiki and source code for ROS core module.
Message in ROS
2017-07-12
Messages are spread across the whole system of a ROS instance, which are the essence and physical base of communication and coordination in ROS system. The message is a serializable and platform agnostic (in the perspective of OS, programming language, etc) specification of structured data. Most of information in this post is refer to msg page in ROS wiki and source code for ROS core module. A directly connected concept in ROS is Topic, which is named bus for message exchange, which will be covered in later post. The Service is also based on the infrastructure of message, which will be illustrated in next post.
Configure ROS Environment
2017-07-07
ROS, the robot operation system, is a flexible environment for writing robot software. It is not a traditional operating system but a software development framework including a collection of tools, libraries, and conventions to manage and reduce the complexity of robotic systems. The following configurations are based on the following environment. base: raw Ubuntu 16.04.2 amd64 ROS release: Kinetic (to be installed)
DOT language for graph
2017-05-30
GraphViz package is a set of tools to describe, automatically layout and manipulate graphs, which is of great significance in connection and relationship analysis and illustration. The core module of GraphViz is the layout and render engines which generate neat and elegant visualization of graph in various common formats from a descriptive small language (the graph file language or the DOT language). This post will represent a brief introduction of the DOT language and show some applications that utilize the power of GraphViz.
Simple Visualization in Python
2017-04-07
Visualization of data or graph can be achieved by a variety of means in Python. This post list configuration for some simple visualizations. Before introduction of some visualization package, I’ll list some procedures for configure and launch the Jupyter notebook, which is a convenient environment for testing Python code.
Setup LaTeX environment
2017-03-26
After a reinstallation of ubuntu in last month, the original installation of texlive 2015 was gone. As the 2016 release of texlive is already available to use, I decided to install the newer version on Ubuntu 16.04 LTS. This post records the steps of installation as well as some other configurations to several dedicated components.
5