Friday, December 28, 2012

Statistics on OSS

From time to time, the use of OSS needs justification. What better then information based on open source development model. This includes;

  1. Large number of contributors
  2. Frequency of updates (commits)
  3. Lines of codes
I found such info from Example for HTTP Server from Apache is at

Saturday, December 15, 2012

Upgrade Sony Tablet S to Android 4.0.3 rel5

Just received notice of an upgrade. Current Android is 4.0.3 rel 1.

Info on updates is at

Thursday, December 6, 2012

Speedtest via Digi results for Digi on SE Xperia X10i with Android 2.3.3

Subscribed to Digi unlimited
[1st round] on 6 Dec 2012
Download: 558kbps, Upload: 377kbps
Ping 99ms

[2nd round] on 6 Dec 2012

Download: 1658kbps, Upload: 372kbps
Ping 90ms


Tuesday, December 4, 2012

Centos Linux and 7z

Files with the extension of .7z indicates its a 7-zip compressed files in unicode format. To access files within the 7z, you will need to uncompress or extract the 7z file. By default, compression uses LZMA or Lempel–Ziv–Markov chain algorithm, which is an algorithm used to perform lossless data compression.

The program used to access 7z files;

  1. Windows: 7-zip
  2. Centos Linux: p7zip

Main differences of 7z and tar, is that 7z is meant to be more portable. This includes dropping of the user/group permission of files. I will demonstrate based on Centos 6.

A. Creating a 7z file
Step 1: Installing p7zip
yum install p7zip

Step 2: Compress files in directory named "examples" into the file myfiles.7z
7za a myfiles.7z

Step 3: List files within myfiles.7z
7za l myfiles.7z

Example output as below (note - no user/group info)

7-Zip (A) [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
p7zip Version 9.20 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,4 CPUs)

Listing archive: scripts.7z

Path = scripts.7z
Type = 7z
Method = LZMA
Solid = +
Blocks = 1
Physical Size = 4319
Headers Size = 365

   Date      Time    Attr         Size   Compressed  Name
------------------- ----- ------------ ------------  ------------------------
2012-12-04 09:17:15 ....A          179         3954  examples/svn-auth-users
2012-12-04 09:17:15 ....A           35               examples/
2012-12-04 09:17:15 ....A         1004               examples/
2012-12-04 09:17:15 D....            0            0  examples 
------------------- ----- ------------ ------------  ------------------------
                                  1218         3954  3 files, 1 folders

Optional steps;
Verify 7z file
7za t myfiles.7z

B. Extracting a 7z file

Step 1: Extract to current directory
7za e myfiles.7z

Saturday, November 24, 2012

Contributing to Libreoffice

well, Patching of Libreoffice is a commitment from a wide range of users. Below is a response of a contributor on how he contributes. =======
When I work, I frist create a branch out of a point in master (preferably a oen that build nicely :-) ) so nwo I'm on branch 'foo' for example. I code my patch, then I submity it to gerrit via git push origin foo:refs/for/master then I checkout out master again... and keep going... When the review comes and modification to my patch are needed, I checkout out the branch foo again... the I make the modifications and 'amend' the commit (which _is_ the commit I pushed to gerrit) and then push it again using the same command. rince and repeat until the patch is ready... then I let gerrit cherry pick it on top of master.. if ok, then I can delete the foo branch locally if the cherry pick failed because of a conflict... I fetch ./g fetch and then rebase foo : git rebase origin/master (while being on the foo branch) since the cherry pick from gerrit failed, that rebase should exibit some conflict, with I resolve using git mergetool then one can re-push the patch to gerrit, again using the same command as above.. rince and repeat until the cherry pick from gerrit works If one has commit right, then the last phase can be dealt by bringing the patch to master locally and simply pushing to master

Thursday, November 22, 2012

Change MySQL database directory

Why do I need to change MySQL database directory or location?

  1. Current disk is out of space
  2. Current partition is out of space
  3. There is a better filesystem to improve disk IO performance.
Steps to do this on Centos 6 with SELinux enforced.

Step 1: Stop MySQL server

Step 2: Create the new directory

A new directory can be created in the new disk or partition.

Step 3: Copy existing database to new location
 mv /var/lib/mysql/* /srv/mysql/

Step 4: Configure MySQL server
Edit /etc/my.cnf with following



Save and close the file.

5. Configure SELinux to allow new database
View current settings

ls -lZ /var/lib/mysql
ls -lZ

Edit settings with e.g. as /media/server/mysql

semanage fcontext -a -t mysqld_db_t "/media/server/mysql(/.*)?"
chcon -R -t mysqld_db_t /media/server/mysql

restorecon -Rv /media/server/mysql

Check settings are in the config file

grep -i mysql /etc/selinux/targeted/contexts/files/file_contexts.local

6. Start up MySQL
I had to reboot the server and change selinux to permissive for all this to work.

Wednesday, November 21, 2012

Linux welcome messages

Securing the Linux terminal includes telling users that they may not access the system without authorisation.

Edit following files for this purpose;

  1. /etc/motd
  2. /etc/issue
  3. /etc/

For items 2 and 3, they only work if you are connected at the terminal or have client server setup. Those using SSH, messages can be set to point to item 3 in the configuration file /etc/ssh/sshd_config

Sunday, November 18, 2012

Howto Yii 1, a PHP framework

This framework seemed worth while to test out. Steps to get started is as follows;

Step 1: Install the framework.
From the site, follow the instructions for pre-requisite to install the Yii framework. Typically you will need

  1. Apache web browser
  2. PHP 5.1 and newer
  3. PHP PDO
  4. A database

Download Yii-1.1...tar.gz (in tar.gz format) from
Extract the tar.gz file to the web folder /var/www/html/yii1

It is also a good point to download the Yii-docs-1.1...tar.gz and extract it to follow its references and tutorials in PDF.

Step 2: Create the skeleton of a new web app.
At the prompt, access the framework's directory /var/www/html/yii1/framework

Type the following:
./yiic webapp ../testdrive

or in windows
yiic webapp ..\testdrive

Open a web browser and access the testdrive application

Step 3: Configure the timezone for the web app.
If an error on the timezone appears, complete following steps

vi /var/www/html/yii1/testdrive/protected/config/main.php

Just before the last line, add the timezone.


Access the testdrive application with the web browser, the error on timezone is gone. It does inform users the following;

You may change the content of this page by modifying the following two files:

View file: C:\Program Files\www\yii1\testdrive\protected\views\site\index.php
Layout file: C:\Program Files\www\yii1\testdrive\protected\views\layouts\main.php

Step 4. Understanding the structure
It is good to know the directories built for the testdrive web application under /var/www/html/yii1/testdrive. From here on, I will refer to the directory /var/www/html/yii1/testdrive as

/assets/  <=Empty
/css/  <=Contains 5 basic CSS files and a bg.gif file
/images/  <=Empty
/protected/  <=This is where your coding goes
/themes/  <=Several directories that is empty

Step 5. The database, mysql
Create a database named yii_testdrive, and load in the SQL from

By default it has the SQLLITE as its database, edit the file /config/main.php and comment out the following lines

'connectionString' => 'sqlite:'.dirname(__FILE__).'/../data/testdrive.db',

Uncomment the mysql lines below it and edit the database connection

'connectionString' => 'mysql:host=localhost;dbname=yii_testdrive',
'emulatePrepare' => true,
'username' => 'root',
'password' => '',
'charset' => 'utf8',

Step 6. Generating the pages based on the database

Uncomment the GII web-based code generator and change the default password to MyPassword

// If removed, Gii defaults to localhost only. Edit carefully to taste.

Open a web browser and point to the gii resource

A login page appears, type the password as

You are then presented with the following to auto generate codes based on your database.

  1. Controller Generator
  2. Crud Generator
  3. Form Generator
  4. Model Generator
  5. Module Generator

Thats all for now...will continue when time permits.

Saturday, September 29, 2012

Howto Install OpenSIS on Centos 6

Step 1: Retrieve the package
Download from
Extract opensis-ce to /vcar/www/html

Step 2: Launch web installer
Start mysqld and httpd (apache web server). Open a web browser and point to the address


Follow onscreen instructions to install database and sample database.

Friday, September 14, 2012

Installing Plone 4 on Centos 6

Plone 4 is based on Python and Zope and provides its own little database.

Installation on Centos 6.3 was pretty straight forward in the standalone mode. Alternative, mode is as ZEO Cluster or a single running instance.

Step 1: Download the Unified installer (comes with Python and Zope) for Plone.

Download from ( with a file size of approx 50MB.


Step 2: Install dependency files.
Most of these are already installed if Centos was installed with the development tools.
Add the RPMForge repo;

rpm -ivh rpmforge-release-0.5.2-2.el6.rf.i686.rpm

yum install gcc gcc-g++ make tar bzip2 gzip
yum install readline libgsf
yum install wv

If there is problem with the wv package, download wv from EPEL or and install with RPM.

rpm -ivh wv-1.2.7-2.el6.i686.rpm

Step 3: Extract & Install Plone
Enter the directory with the UnifiedInstaller (Download directory).

tar zxvf Plone-4.2.1-UnifiedInstaller.tar.gz
cd plone-4.2.1
./ standalone
cd /usr/local/Plone/zinstance

Identify which port (default 8080) will be used for Plone. If needed, change the port then apply changes by typing


Step 4: Start/Stop Plone
The Plone server can be started or stop with following command (replace the word start)

/usr/local/Plone/zinstance/bin/plonectl start

Step 5: Access Plone
Open a web browser (e.g. Firefox, Chrome) and enter following URL address;


Default password is found in the file /usr/local/Plone/zinstance/adminPassword.txt

Create a Plone instance, then read the instructions at the main page of the Plone instance.

Additional notes:
Install following packages;

  • or libreoffice (headless) for better document conversion
  • msttcorefonts for better formatting compatibility, see previous post


Wednesday, September 12, 2012

PostgreSQL 9.2 improves

Latest PostgreSQL will support 64 cores, or 3x its current capability. Transactions per second increased to about 350,000 is over 4x its current speed.

Not bad for OPEN SOURCE!


Tuesday, September 4, 2012

Howto install Alfresco 4, the Community edition on Centos 6

Alfresco provides some very interesting functions. This includes support for networking with CIFS, WebDav and IMAP.


Check following have been done.
  1. Linux must be 64bit. Why? they only provided Alfresco for Linux on 64 bits, thats why.
  2. Install LibreOffice (yum install libreoffice libreoffice-headless), version was installed
  3. Install MySQL (yum install mysql-server), in my case version 5.1.61 was installed.

Following are steps that I have taken to install Alfresco 4 on Centos 6.

Step 1. Create the database
At the CLI, login to MySQL and create database named "alfresco"

# mysql -u root -p

Step 2. Start LibreOffice as headless

soffice "-accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager" \
 -nologo -headless

Step 3. Get the software and install

Download from
Double click on the file alfresco-community....bin and follow the onscreen instructions.

I choose the "Easy" method, and included the "Share"

Alternatively, installation can be done at the Linux CLI, just switch to root user, go to the directory where the file was downloaded and type
# ./alfresco-community-4.0.x-installer-linux-x64.bin ---mode text

Step 4. Start Alfresco, based on the Tomcat server port of 8080.
Alfresco started automatically, but is needed, got the the /opt/alfresco folder and type start

Access the application with a web browser and the following URLs/

and http://localhost:8080/share

Wednesday, August 22, 2012

Howto add menu to Gnome

Centos 6.3 defaults with the Gnome desktop. After installing / creating a custom application, how do you add it to the start menu?

Answer: Install alacarte

Step 1: Install Alacarte

# yum install alacarte

Step 2: Add the new program as a menu item.

Click System ->Preferences ->Main Menu
Choose the menu and add the new item.

Tuesday, August 21, 2012

Kubuntu - USB disk does not mount

Followup from the Kubuntu 10.04 installation, for those who have opted to stay on with Kubuntu 10.04, mounting of USB disk is done manually or alternatively, install usbmount.

Using the Package Manager or at the command line, install the following packages

  1. usbmount
  2. pmount
Additionally, if you have NTFS (windows default file system, install the following package
  1. ntfs-3g
Logout, then log back in and plug-in the USB disk (or thumb drive). Dolphin should pop up saying it detected the disk. The USB disk are mounted by default in the /media folder with the name of the partition.

Tuesday, August 14, 2012

Stop 114a


Direct Apache access to SSL ports

Secure Socket Layer (SSL) provides an encrypted network connection and is seen to use the HTTPS protocol in the URL. To ensure that the web server only servers HTTPS, the following needs to be enabled before the HTTPS VirtualHost tag.

RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}:443%{REQUEST_URI}

What it means? turn off https if its https, then change the url to always use https.

Actually, you can put a lot more between the VirtualHost tag. E.g. choice of error pages to server and limiting which domain/IP address that can access the contents.

Thursday, August 2, 2012

Screen capture your Android phone

On the Xperia X10i with Android 2.3, and most other Android phones, you can screen capture for purpose of troubleshooting, development, presentation and article writing. Here is listed the instructions on MS Windows 7.

Step 1: Install the Android SDK.

Step 2: Switch the X10i debug.
Click "left" button, choose "Settings" ->"Applications" ->"Development".

Click to Check "USB Debugging".

Step 3: Plug USB cable between X10i and PC.
If asked to charge, choose that option.

Step 4: On the PC, start the Dalvik Debug Monitor (DDMS)
Click the Windows "Start" button, and type following and press "Enter" key.


Switch to the android directory and type following and press "Enter" key.


Ensure that you choose your phone from the left list. In my case its written as "XXX [SonyEricsson:X10i]". From the top menu of DDMS, click "Device" ->"Screen capture..."

Step 5: Capture the screen on the Android device (X10i)

On the X10i, select the screen to be captured (or saved).

Then on the PC, the DDMS should show the same screen as the Android, click "Copy". Start the graphics software such as GIMP or MS Paint and "paste" the screen capture. Save as the filename of your choice.

I have not used the "Save" button on DDMS, so I can't say where it saves to.

Wednesday, August 1, 2012

Bacula on Suse Linux

Anyone tried to install Bacula on Suse?
I started the search from the following site;

List of repos that can be used for the installation.

Bacula ver 5.2.1 + Suse 11

Bacula ver 5.2.1 +Suse 11&12

Webmin also list support as shown in
Bacula Backup System 1.590
DescriptionConfigure Bacula to perform backups and restores manually or on schedule, for one or many systems
AuthorJamie Cameron
Last updated2012-07-01 05:49:18

Will need to try again another day.

Wednesday, July 25, 2012

List of trainings - Linux

Linux for Web Developers - I

Objective: An intensive program to provide Web developers knowledge to manage basic development on a Linux platform.
Pre-req: Participants must already know PHP programming.
Duration: 1day
1. Introduction to Linux operating system
- Benefits of Linux, various distros, and the Centos Linux
2. Gnome, the Linux desktop
- Navigate common features of the desktop. Includes the file browsers, windows system, Systems configuration and start menu.
3. Editing text
- Use of the Gedit tool, saving files
4. The Linux Command Line Interface (CLI)
- Accessing the CLI, using BASH basic commands and text file editing
5. Getting help and the man
- Help from the windows, application, internet and man pages
6. Linux file system
- Basics of the folder convention, HOME folder, editing folders and folder permissions.
7. Software management - I
- Basics on package managers, YUM and RPM. Identify software packages installed, add and remove.
8. Manage development services - I
- Monitor status, start and stop Apache, MySql. Identify configuration files for Apache, MySql and PHP (AMP)
9. Troubleshooting the AMP in LAMP.
- Determine disk space utilisation, access Linux and Apache log files. Writing a web page to show phpinfo.

Linux for Web Developers - II

Objective: Manage tools used for web application development on Linux platform.
Include graphic editors, manage installation of software, work with Eclipse editor. Writing php codes and installing additional php modules.
Connecting to a remote linux to access the shell commands and transfering files.

Saturday, July 21, 2012

Blogger app from Google Inc needs a lot more of work.

Just installed the app on ICS.

It doesn't provide numbering list and other basic formatting.

My previous postings all appear in html edit view. No options visible to switch editing modes.

Option for tagging as labels are not very intuitive.

Possibly the developer is a single person from Google payroll or was it out sourced to India? Hmm....

Develop Android Apps with Eclipse on Centos 6

This is an update to my previous post.
[Update for Centos 6.3]

Installing Eclipse Indigo for Android on Centos 6.

Pre-installation check list:

  1. Java JDK 1.6 or higher is installed
  2. PATH and CLASSPATH has been configured 
The Centos was installed as 64bits, but Android tools require 32bit libraries. Add them via following;
yum install glibc.i686 ncurses-libs.i686 libstdc libstdc++.i686 \
   libzip.i686 libX11 i686 libXrandr.i686 SDL.i686 gegl.i686

Steps 1. Eclipse Indigo

yum install eclipse-emf eclipse-jdt
Download and install the Indigo version of Eclipse.
Default yum install from Centos 6.3 provided only the older version of Eclipse (Helios) which have too many dependency problems after install.

2. Android SDK
a) download and run installer from
Current version is named android-sdk_r20.0.3-linux.tgz size of which is about 78Mb.

tar -xvzf android-sdk_r20.0.3-linux.tgz
mv android-sdk /opt/android-sdk
chmod -R a+w /opt/android-sdk

Open the user's $HOME/.bash_profile and add before the last l

Follow instructions from

b) Run the Android SDK Manager
Currently target for API 10 (Android 2.3.3) and API 16 (Android 4.0.1).

3. Eclipse's ADT plugin
a) Start Eclipse and select Help-> Install New Software, click Add (top right)

b) At right of "Work with:", Click Add... and enter the ADT Plugin repository details

c) In Available Software, check Developer Tools and install.
Accept all license agreement.

d) Restart Eclipse

e) Eclipse may assign the Android SDK directory
Choose preferences and point to the Android SDK folder (see Section 2). 
e.g. /opt/android-sdk

4. Create your first App, see

Installing msttcorefonts on Centos 6.3

Documents received may require MS Fonts to display format correctly, and these MS Ffonts are not available by default in Centos 6.2.

Install tools to create fonts and directories (fake ones for compatibility).
yum install ttmkfdir rpmdevtools

note: ensure all RPM building tools have been installed (see my previous post).

Install ATRPMS repository and MS Fonts.

(for i686 machines, replace x86_64 with i386 as in line below)

(I am using, x86_64 for remainder of notes)
rpm -ivh atrpms-repo-6-5.el6.x86_64.rpm
yum install chkfontpath
rpmbuild -bb msttcorefonts-2.0-1.spec
(download MS Fonts and compile into packages)
rpm -ivh rpmbuild/RPMS/noarch/msttcorefonts-2.0-1.noarch.rpm
(open Libreoffice or Character Map, see if the Arial, Georgia and Times New Roman are available)

If fonts are not appearing, run following then relog-in (Do not run these if above steps work)


Installing Centos 6 on HP Probook 4420s

Finally found time to install Centos 6.2 on the HP Laptop.

Laptop specs:
CPU: i3 ...

Installed (default)
Linux kernel 2.6.32-220.el6.x86_64

Gnome 2.28.2
Mozilla Firefox 10.0.5

Add RPMFORGE software repository (libary of software)
(download the rpm)
rpm --import
rpm -ivh ~/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
yum update
(Total 371 files, 385MB downloaded)


Login as root at the terminal and first few software to be installed (type this out):

yum groupinstall "Desktop" "Desktop Platform" "X Window System" "Fonts"
yum install madwifi
yum install flash-plugin
yum install vlc
yum install libreoffice
(total 25 package, 103Mb download)
yum install libreoffice-ogltrans

Notes: wifi can only be configured easily when linux is in graphical screen/desktop.

Prepare to build from source

yum install cabextract rpm-build

Other observations
  1. The touchpad (black square at center of laptop that helps to move the mouse) is having a soft LEFT and RIGHT button (not working correctly)
    • To drag windows, press bottom half of the Touchpad until a click is felt. Then drag without leave finger from the Touchpad.
    • To RIGHT click in window, you need to press bottom half then do a second click without lifting the first finger.
    • Install from (HP) or better still to use a mouse pointer.
  2. Music
    • Default "Totem Music Player" doesn't support MP3. Need to install gstreamer-plugins-ugly
  3. Webcam
    • Runinng "Cheese" I can adjust to higher resolutions but its frames per seconds is very little. This causes the video to seem very poor quality. 
  4. Option to edit the menu bar (add new items manually) is missing. Installed alacarte package, logout then back in to enable editing of menu items.
  5. If boot was to only command line (a black screen), switch to graphical. Type init 5.

Thursday, July 5, 2012

Out of phone storage space on x10i

On the Sony Experia X10i, with Android 2.3.3 (Gingerbread) I am currently getting the message
"Phone storage space is getting low."

So, I did a backup (see HERE) then a factory reset to clear all data. Maybe some of the slowness issues on the X10i will be resolved. 
Note: Free apps may not be automatically reinstalled. I have not figured out why.

Here are steps for the factory reset.
Step 1: Start the reset
On the X10i, Left click, and in menu choose "settings".

Choose "Factory data reset"

Do not choose "Erase SD card", because all my photos and backup is there.

Click "Reset phone"
Click "Erase everything"

The phone will power off (shut down)

Step 2: Start the x10i
The phone will restart, press the middle button and unlock the phone.

Choose Language,
Choose step 2/6 and change the date and time.
Choose step 5/6, set up the google, email account. What about Sony Ericsson sync (not working)?

Sony Ericsson sync was asking to select your country, but listed only 8 names and didn't list mine. It then says service is discontinued

Click in step 6/6 click "Finish".

Backup X10i phone with Gingerbread

In cases where the X10i needs to be fully cleared, such as a fresh reinstall or upgrade, user data needs to be backup. If you are using contacts, calendar from google services, then it can be easily recovered anytime.

Several Android apps are available for backup of the Android 2.3.3 (Gingerbread) and this includes;

  1. Titanium Backup * root
  2. MyBackup pro (RERWARE, LLC), with free limited 30 trial
  3. SMS Backup & Restore (RITESH SAHU)
What to backup? Well there is the;
  1. Contact numbers,
  2. SMS,
  3. APN settings,
  4. SDCard data, 
1. Contact numbers
Step 1: Start the dialer
On the X10i launch the phone dialer. Click LEFT button, choose Backup contacts, then Memory card.

This will prompt the name and location of the back up file, choose OO. E.g.

Step 2: Verify
Once the progress bar has completed saving all the address book, browse to the SDCard and copy the vcf file to your PC or USB disk.

2. SMS
Step 1: Install from Android Play Store the app, "SMS Backup & Restore"
This saves SMS in XML format. 
Launch the app, click on the "Tools" icon at the top. Select the Backup folder which is by default

For advanced users, explorer the other options. For basic needs, I find that there isn't any need to change the other configurations.

Step 2: Do the backup.
Read and accept the screen prompts.
Click "Backup" and enter the backup file name. 
Click OK.

My 5,230 SMS was backup and verified in 45 seconds.

Click "Close"

Step 3: Donate
Oh...its optional and I have no idea who developed this app, but it does a pretty good basic backup of SMS. As for the Adds, its not too big to obstruct the buttons.

3. APN Settings
Step 1: Install from Android Play Store the app, "APN Backup & Restore"
This saves SMS in XML format. 

^^^Launch the app, click on the "Tools" icon at the top. Select the Backup folder which is by default

For advanced users, explorer the other options. For basic needs, I find that there isn't any need to change the other configurations.

Step 2: Do the backup.
Click "Backup APNs" and enter the backup file name. E.g. default filename is apns-.xml

Click "Close".
It doesn't say where its backup to, but search for it in /mnt/sdcard/ApnBackupRestore/

4. Backup SD Card
Firstly, if you already have a PC backup software, you can perform Step 1, then continue with that backup software.

Step 1: Plug the X10i USB cable.
The PC should be installed with the Sony PC Companion software. This will launch the windows explorer.

Step 2: Copy files to your PC
Using Windows Explorer, drag all files from the SD Card to your PC.

Installing PHPMYADMIN on Centos 6

PHPMyadmin is a web front end to manage MySQL databases. It can be installed on the same server as the database or on a separate server.

Step 1: Open a Linux command line terminal (CLI)
Login as root or administrator.

Step 2: Increase the software repository with rpmforge
Browse for the packages and download from


Select the 64bit version if your machine supports it.

Install the keys from DAG.
rpm --import

Install the rpmforge files to access the repository.
rpm -i rpmforge-release-0.5.2-2.el6.rf.*.rpm

Refer to for details

Step 3: Install phpmyadmin
yum --enablerepo=rpmforge install phpmyadmin

Step 4: Using a web browser point to the server installed with phpmyadmin.

where is the server's IP address.

You should be able to see the main page of phpmyadmin.

Develop Android 4 Apps with Eclipse

Before starting this article, it must be mentioned that the eclipse is preferable be on a 64-bit machine that has relatively big RAM, L2 cache, fast hard disk. This is because of the slowness and constant errors that I am encountering in the past few months with an old pc. This is why I have not been doing any development on android and it will most probably this way until I can get my hands on a better PC.

So, you want to start on Android Programming? Read on...

Installing Eclipse Indigo for Android on MS Windows 7.

Pre-installation check list:

  1. Java JDK 1.6 or higher is installed
  2. PATH and CLASSPATH has been configured 

1. Eclipse Indigo
a) download and extract Eclipse


b) Move to the Program files folder
e.g. c:\Windows\Program Files\eclipse

2. Android SDK
a) download and run installer_r18-windows.exe

Follow instructions from

b) Run the Android SDK Manager
Currently target for API 10 (Android 2.3.3) and API 15 (Android 4.0.3).
Accepted all package to install but HTC OpenSense SDK.

3. Eclipse's ADT plugin
a) Start Eclipse and select Help-> Install New Software, click Add (top right)

b) At right of "Work with:", Click Add... and enter the ADT Plugin repository details

c) In Available Software, check Developer Tools and install.
Accept all license agreement.

d) Restart Eclipse

e) Eclipse may have problem locating the Android SDK directory
Choose preferences and point to the Android SDK folder (see Section 2). 
e.g. c:\Windows\Program Files\Android\android-sdk

4. Create your first App, see

Saturday, April 28, 2012

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 65536 bytes) in ....

The error above was found on a LAMP (Centos 6, Apache, MySQL and PHP 5) environment.

Where is the problem?

134,217,728 bytes is equivalent to 128MB. These numbers indicate that a limit of some memory has been reached.

2 power of 16 = 65536
2 power of 27 = 134217728

There some sites that suggest to increase the memory limit of PHP with memory_limit directive in php.ini file. But this will only prolong the problem to another day. How are you going to keep increasing the memory limit?

Possible approach:

  1. Some where along the setup, the application is eating up memory through an infinite loop. Review location of the application file (model) that is causing the error.
  2. It states "Fatal error" and not "Php Fatal error", indicating Apache web server is sending the error instead of PHP. Check if web server was restarted after the memory_limit was increased in the /etc/php.ini file.
  3. Database configuration needs to be edited for large selects or join processing. (High performance Innodb)

Troubleshooting (approach 1):
  1. Use phpinfo() to compare the memory_limit with what was set in php.ini file. Check Loaded Configuration File, did it say which php.ini file was loaded? This file can be placed in many places.
  2. In PHP, apply the memory_get_usage() to display memory in used.
  3. For database related calls, use the function mysql_free_result() to release memory used by variables.
  4. If the memory grows large, it may be possible to remove the object from the memory via the unset() function.
Troubleshooting (approach 3):
  1. Create a large database and execute various calls via the web browser. Sample large database can be found at Wikipedia.

Monday, April 9, 2012

Installing Java on Centos 6

[Updated for Centos 6.3 32bit]

Installation of Java for compilation and the Java Runtime Environment (JRE) for a Centos 6 server. Additional Java applications can be found from rpmforge.

Step 1: At the command line, login and install

yum install java-1.6.0-openjdk-javadoc java-1.6.0-openjdk-devel
# yum install java-1.7.0-openjdk-devel.i686 java-1.7.0-openjdk-javadoc.noarch

The above results in an installation of about 360MB.

Step 2: Verify installation

# java -version
# javac -version

Step 3: Install Java plugin for web browser

yum install icedtea-web

Note Centos 6 environment:

# yum install redhat-lsb
# lsb_release -a
LSB Version:    :core-4.0-ia32:core-4.0-noarch:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-ia32:printing-4.0-noarch
Distributor ID:    CentOS
Description:    CentOS release 6.3 (Final)
Release:    6.3
Codename:    Final

LSB Version: :core-4.0-ia32:core-4.0-noarch:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-ia32:printing-4.0-noarch
Distributor ID: CentOS
Description: CentOS release 6.2 (Final)
Release: 6.2
Codename: Final

Blog Archive