Fun at work!

Archive for December, 2013


Repost: Component Life Cycle in Flex

Repost: Component Life Cycle in Flex

These are the series of methods that are called by Flex Framework for all components:
  1. As the component is going to be in a container, the parent property of the component will be referred to the container.
  2. Component’s Constructor:
    • Setup initial properties and do tasks that are not related to display of UI or not.
    • Don’t create child components or position items.
    • Constructor is called when component is created but the other lifecycle methods don’t occur until a component is added to a container.
  3. Gets the Style setting of the component.
  4. preInitialize event on the component
    • UIComponent is in a very basic stage with no children added at this time.
  5. createChildren() method is called.
    • Creates visual children of the component.
    • Flex doesn’t size or position them at this point because it doesn’t know how much screen space it has.
  6. initialize event is dispatched by the component –
    • All the component’s children are initialized.
  7. commitProperties() method
    • Is responsible to coordinate property modifications.
    • This is needed when there are multiple properties that should be set before you take action.
    • This is called when selectedIndex or selectedChild is called
    • Can be called by calling invalidateProperties(). Each time this method is called commitProperties() is scheduled to be called next time there is a screen repaint or refresh.
  8. measure() method is called only if explicit height and width is not set in the code
    • Flex calls this method to determine how much screen size a component requires.
    • This is not called when the height and width are explicitly set in the code as flex knows offhand how much screen size it will take.
    • This method sets these four properties (or you can set it)
      • measuredMinWidth
      • measuredMinHeight
      • measuredWidth
      • measuredHeight
    • LayoutManager also gets started at this point as layour manager starts with the outermost component and to size the outer most component it should know the size of its children.
    • Can be called by calling invalidateSize(). Each time this method is called measure() is scheduled to called next time there is a screen refresh.
  9. updateDisplayList() method is called
    • Is responsible for positioning of children. You can specify your children here
    • It is passed two paramters
      • unscaledWidth
      • unscaledHeight
    • Flex containers choose never to size one of their children smaller than minimum size but you can choose to override it.
    • Can be called by calling invalidateDisplayList(). Each time this method is called updateDisplayList() is scheduled to be called next time there is a screen refresh.
  10. Dispatches creationComplete event.

Repost: FFMpeg Installation on CentOS and RedHat

Repost: FFMpeg Installation on CentOS and RedHat

Install FFmpeg on CentOS or RedHat EL 6.x

The following install steps have been proven to work on RedHat Enterprise Linux 6.2. You can check which version you are running with

# cat /etc/redhat-release

Additionally, we assume that you are connected and registered with the Red Hat network and/or updated the system with the latest updates from the repositories.

Follow this guide step by step!

Install the additional repo

# rpm -Uhv

Update repository

# yum -y update

Install all necessary packages

# yum install SDL-devel a52dec a52dec-devel alsa-lib-devel faac faac-devel faad2 faad2-devel
# yum install freetype-devel giflib gsm gsm-devel imlib2 imlib2-devel lame lame-devel libICE-devel libSM-devel libX11-devel
# yum install libXau-devel libXdmcp-devel libXext-devel libXrandr-devel libXrender-devel libXt-devel
# yum install id3tag-devel libogg libvorbis vorbis-tools mesa-libGL-devel mesa-libGLU-devel xorg-x11-proto-devel xvidcore xvidcore-devel zlib-devel
# yum install amrnb-devel amrwb-devel
# yum install libtheora theora-tools
# yum install glibc gcc gcc-c++ autoconf automake libtool
# yum install ncurses-devel
# yum install libdc1394 libdc1394-devel
# yum install yasm nasm
# yum install libvpx*
# yum install git-core
# yum install opencore-amr-devel

Install the essential codecs

# wget
# bunzip2 all-20110131.tar.bz2
# tar xvf all-20110131.tar
# mkdir /usr/local/lib/codecs/
# mkdir /usr/local/lib64/codecs/
# cp all-20110131/* /usr/local/lib/codecs/
# cp all-20110131/* /usr/local/lib64/codecs/
# chmod -R 755 /usr/local/lib/codecs/
# chmod -R 755 /usr/local/lib64/codecs/

Install LibOgg

# wget
# tar xzvf libogg-1.3.0.tar.gz
# cd libogg-1.3.0
# ./configure
# make
# make install

Install Libvorbis

# wget
# tar xzvf libvorbis-1.3.3.tar.gz
# cd libvorbis-1.3.3
# ./configure
# make
# make install

Install Libtheora

# wget
# tar xzvf libtheora-1.1.1.tar.gz
# cd libtheora-1.1.1
# ./configure
# make
# make install

Install Libvpx

# git clone
# cd libvpx
# ./configure --enable-shared --extra-cflags=-fPIC
# make
# make install

Install Aacenc

# wget
# tar xzvf vo-aacenc-0.1.2.tar.gz
# cd vo-aacenc-0.1.2
# ./configure --enable-shared
# make
# make install

Install X264

# git clone git://
# cd x264
# ./configure --enable-shared --extra-cflags=-fPIC --extra-asflags=-D__PIC__
# make
# make install

Note: (Sometimes the network might be down. Then you can also grab it via wget at

Configure Libraries

# export LD_LIBRARY_PATH=/usr/local/lib/
# echo /usr/local/lib > /etc/
# ldconfig

Compile FFmpeg (the configure options have to be on one line)

# git clone git://
# cd ffmpeg
# git checkout n1.2
# ./configure --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvpx --enable-libfaac
--enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libvo-aacenc --enable-libxvid --disable-ffplay --enable-shared --enable-gpl --enable-postproc --enable-nonfree --enable-avfilter --enable-pthreads --extra-cflags=-fPIC
# make
# make install

(The –arch=x86_64 option should only be used if you are on a 64Bit System!)

You can also use their Github repository at

That’s it. This should give you a full functional FFMpeg installation for Razuna. Test it now with;

# ffmpeg

This should give you the following back (yours might vary a bit);

FFmpeg version SVN-r20525, Copyright (c) 2000-2009 Fabrice Bellard, et al.
configuration: --enable-gpl --enable-nonfree --enable-postproc --enable-libfaad --enable-avfilter
--enable-pthreads --enable-libxvid --enable-libx264 --enable-libmp3lame --enable-libfaac
--disable-ffserver --disable-ffplay --enable-libamr-nb --enable-libamr-wb --enable-libtheora
--enable-libvorbis --disable-ffplay --enable-shared
libavutil     50. 4. 0 / 50. 4. 0
libavcodec    52.39. 0 / 52.39. 0
libavformat   52.39. 2 / 52.39. 2
libavdevice   52. 2. 0 / 52. 2. 0
libavfilter    1. 8. 0 1. 8. 0
libswscale     0. 7. 1 0. 7. 1
libpostproc   51. 2. 0 / 51. 2. 0

Repost: ffmpeg: error while loading shared libraries: cannot open shared object file

Repost: ffmpeg: error while loading shared libraries: cannot open shared object file

The “loading shared libraries” error message is received when ffmpeg is not able to locate the file This happens when either the file is missing from the server OR ffmpeg is not looking at the path the file is in. You see the following error while executing the ‘ffmpeg’ command:

[root@server ~]# ffmpeg
ffmpeg: error while loading shared libraries: cannot open shared object file: No such file or directory

Search the file on the server using the ‘find’ command

# find / -name

You need to add the path to the directory the file is in, in the ‘’ file. If for example the file is located under “/usr/local/lib” directory, execute

# vi /etc/

and add the following at the bottom of the file


Save the file and for the new changes to take effect, execute

# ldconfig

Web Real-Time Communications (WebRTC)

Web Real-Time Communications (WebRTC)

WebRTC is a free, open project that enables web browsers with Real-Time Communications (RTC) capabilities via simple JavaScript APIs. The WebRTC components have been optimized to best serve this purpose. 

Our mission: To enable rich, high quality, RTC applications to be developed in the browser via simple JavaScript APIs and HTML5.

The WebRTC initiative is a project supported by Google, Mozilla and Opera. This page is maintained by the Google Chrome team.


RHEL / CentOS 6.x KVM Virtualization Installation and Configuration Guide

RHEL / CentOS 6.x KVM Virtualization Installation and Configuration Guide

How do I setup and manage a virtualized environment with Kernel based Virtual Machine (KVM) in CentOS or Red Hat Enterpise Linux version 6 server on IBM server? Can you provide step-by-step commands of how to install and manage Virtual Machines (VMs) on a physical server using KVM for RHEL/CentOS version 6.4?

KVM is part of RHEL and CentOS Linux. You can easily install the same using the following commands. Please note that only the package names have changed in RHEL/CentOS 6.x. If you are using RHEL / CentOS 5.x, read our previous CentOS / Redhat (RHEL) v.5.x KVM Virtulization guide for more information.


Red Hat Enterprise Linux 6 Virtualization Host Configuration and Guest Installation Guide

Red Hat Enterprise Linux 6 Virtualization Host Configuration and Guest Installation Guide

This guide covers KVM packages, compatibility and restrictions. Also included are host configuration details and instructions for installing guest virtual machines of different types, PCI device configuration and SR-IOV.


Provisioning new virtual machines by virt-install command

Provision new virtual machines by virt-install command

virt-install is a command line tool for creating new KVM , Xen, or Linux container guests using the "libvirt" hypervisor management library. See the EXAMPLES section at the end of this document to quickly get started.

virt-install tool supports both text based & graphical installations, using VNC or SDL graphics, or a text serial console. The guest can be configured to use one or more virtual disks, network interfaces, audio devices, physical USB or PCI devices, among others.

The installation media can be held locally or remotely on NFS , HTTP , FTP servers. In the latter case "virt-install" will fetch the minimal files necessary to kick off the installation process, allowing the guest to fetch the rest of the OS distribution as needed. PXE booting, and importing an existing disk image (thus skipping the install phase) are also supported.

Given suitable command line arguments, "virt-install" is capable of running completely unattended, with the guest ‘kickstarting’ itself too. This allows for easy automation of guest installs. An interactive mode is also available with the –prompt option, but this will only ask for the minimum required options.

Repost: NetHogs – Monitor Per Process Network Bandwidth Usage in Real Time

NetHogs Command Line Options

Following are the nethogs command line options. Using ‘-d‘ to add a refresh rate and ‘device name‘ to monitor specific given device or devices bandwidth (default is eth0). For example, to set 5 seconds as your refresh rate, then type the command as.

# nethogs -d 5
$ sudo nethogs -d 5

To monitor specific device (eth0) network bandwidth only, use the command as.

# nethogs eth0
$ sudo nethogs eth0

To monitor network bandwidth of both eth0 and eth1 interfaces, type the following command.

# nethogs eth0 eth1
$ sudo nethogs eth0 eth1
Other Options and Usage
-d : delay for refresh rate.
-h : display available commands usage.
-p : sniff in promiscious mode (not recommended).
-t : tracemode.
-V : prints Version info.

NetHogs Interactive Controls

Following are some useful interactive controls (Keyboard Shortcuts) of nethogs program.

-m : Change the units displayed for the bandwidth in units like KB/sec -> KB -> B-> MB.
-r : Sort by magnitude of respectively traffic.
-s : Sort by magnitude of sent traffic.
-q : Hit quit to the shell prompt.

Learn More

Installing NetHogs on CentOS

NetHogs is a small ‘net top’ tool. Instead of breaking the traffic down per protocol or per subnet, like most tools do, it groups bandwidth by process. NetHogs does not rely on a special kernel module to be loaded. If there’s suddenly a lot of network traffic, you can fire up NetHogs and immediately see which PID is causing this. This makes it easy to indentify programs that have gone wild and are suddenly taking up your bandwidth. – NetHogs (

NetHogs is not available in official RHEL/CentOS repositories, so let us add EPEL repository to install NetHogs:

# rpm -Uhv

Then install NetHogs using the command:

 # yum install nethogs -y

Tag Cloud