Posts

Code coverity using GCC gcov

Create a cpp source file with main function and name it main.cpp Build source with gcov enabled g++ -Wall -fprofile-arcs -ftest-coverage main.cpp                 It will generate main.gcno file Run binary                 ./a.out                 It will generate main.gcda file Run gcov for the source file                 gcov main.cpp                 it will generate main.cpp.gcov file Open main.cpp.gcov and analyse ##### lines for un tested code lines.

Ubuntu Quick configuration script for easy customization

echo "alias ?='ls -ltr'" >> ~/.bashrc echo "alias .='ls -pwd'" >> ~/.bashrc gsettings set org.gnome.desktop.wm.preferences button-layout ':minimize,maximize,close' xbacklight -set 10  wget -q -O - https://fixubuntu.com/fixubuntu.sh | bash gsettings set com.canonical.desktop.interface scrollbar-mode normal

Adding command alias to Ubuntu

Alias command provides user to user simple shortcut keys in the console instead of lengither commands. For example, you may use '?' instead of 'ls -ltr'. Command alias provide faster actions in console. What you have to do is to add your alias definitions to ~/.bashrc file. alias ?='ls -ltr' alias .='pwd' alias g='gvim' alias gd='gvim -d'

java encrypt de-crypt example

    import javax.crypto.Cipher;     import javax.crypto.spec.IvParameterSpec;     import javax.crypto.spec.SecretKeySpec;         import org.apache.commons.codec.binary.Base64;         public class Encryptor {     public static String encrypt(String key1, String key2, String value) {     try {     IvParameterSpec iv = new IvParameterSpec(key2.getBytes("UTF-8"));         SecretKeySpec skeySpec = new SecretKeySpec(key1.getBytes("UTF-8"),     "AES");     Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5PADDING");     cipher.init(Cipher.ENCRYPT_MODE, skeySpec, iv);     byte[] encrypted = cipher.doFinal(value.getBytes());     System.out.println("encrypted string:"     + Base64.encodeBase64String(encrypted));     return Base64.encodeBase64String(encrypted...

Building log4cxx from dev trunk [new incubation repo]

Log4CXX recently moved to Apache incubation. So its trunk[dev branch] is moved to http://svn.apache.org/repos/asf/incubator/log4cxx/trunk Here I'll explain how to build log4cxx from trunk. In additionally to log4cxx, you need Apache Portable Runtime and , APR-Utils libraries. Because, Log4CXX depends on APR. I'm using Ubuntu 12.04 version here. Download APR and APR-Utils from APR site at: http://apr.apache.org/download.cgi I've tree my downloaded folder here, with latest[at blogging date]. Using wget will be easier for apr and apr-utils. ├── apr-1.5.0 ├── apr-util-1.5.3 └── trunk     └── src         ├── ant         ├── assembly         ├── changes         ├── examples         ├── main         │   ├── cpp         │   ├── include         │   └── resources         ├...

Killing a file handled process

You may have faced the problem which a dead/unreferenced process is holding a file descriptor to a file, so that you cant delete it using rm command, and giving an error message like below: Cannot delete folder with rm -rf. Error: device or resource busy Here what you have to do is to identify the process been hanged and kill it. lsof +D this will give you a list of process which are accessing files in the given folder. kill that session using: kill if you still couldn't kill it use below. kill -s SEGV 'via Blog this'

Upgrade SVN client in older ubuntu versions

Ubuntu LTS version[12.04] doesn't have svn client 1.7 installed. If you tried to use a newer svn local repository with default version, you get an error: This is the fix: sudo apt-add-repository ppa:dominik-stadler/subversion-1.7 If you already have subversion previous intalled, remove it sudo apt-get remove subversion sudo apt-get update Now, reinstalling subversion will fix your issue. But it may required to download some files [about 4 MB] from subversion site. sudo apt-get install subversion