How to list Stored Procedures and Functions in MySQL database

How to check if there are any STORED PROCEDURE in MySQL database?

SHOW PROCEDURE STATUS;

Similarly for MySQL database FUNCTIONS

SHOW FUNCTION STATUS;

But it displays a list of all PROCEDURE and all FUNCTIONS, you can chop down the list by appending

## display FUNCTIONS from 'test' db
SHOW FUNCTION STATUS WHERE db LIKE ='test';

Hope it helps somebody.
Enjoy!

CodeIgniter or CakePHP? can’t decide

Can’t decide between CodeIgniter or CakePHP for my personal project. CodeIgniter is faster in terms of performance but development is slow, CakePHP‘s cake-bake makes development faster but its performance is not good. My problem is that I need both. I want it at best performance since I will be handling millions even billions of domain records AND I cannot spend more time developing my own system.

Any ideas?

Centralia Pennsylvania, a strange place

Centralia is a borough in Columbia County, Pennsylvania, United States. Its population has dwindled from over 1,000 residents in 1981 to 12 in 2005 and 9 in 2007, as a result of a mine fire burning beneath the borough since 1962. Centralia is now the least-populous municipality in Pennsylvania, with four fewer residents than the borough of S.N.P.J.

Courtesy of Centralia Pennsylvania on WikiPedia. read more about this by clicking here.

Link: Did astronaut really Twitter from space?

Did a NASA astronaut really “tweet” from space?

That’s the question bouncing around Twitter about “Astro_Mike,” or Mike Massimino, an astronaut on space shuttle Atlantis, set to land today at Kennedy Space Center.

On May 12, Massimino wrote, “From orbit: Launch was awesome!! I am feeling great, working hard, & enjoying the magnificent views, the adventure of a lifetime has begun!”

Ever since, NASA, newspapers, TV shows and blogs have been crediting him as the first person to post on the microblogging service, or “tweet,” while in orbit.

In reality, Massimino writes his updates in space and then e-mails them to Houston, where a NASA employee posts them to his Twitter profile. That often takes hours because e-mails are transmitted from the shuttle only a few times a day.

Read the whole article here

Creating and Installing crontabs using CodeIgniter

Last night, I was trying to get a crontab working in CodeIgniter, since my current project (a personal project) is using CodeIgniter now. I didn’t wanted to use the conventional approach of running crontabs and my code seperate.

Unfortunately, CodeIgniter does not have support for Crontabs and I didn’t wanted to user wget in linux crontab to initiate unwanted requests.

I spent some time and came up with a solution. It uses

  1. CodeIgniter backend
  2. Does not modify any core architecture of CodeIgniter
  3. Keeps configuration at one place

So enough of the summary and let me show you how its done.
Create a file (e.g. cron.php) in the same place as your index.php and system folder. Here is its code

/**
* @author 	    Asim Zeeshan
* @web         http://www.asim.pk/
* @date		13th May, 2009
* @copyright 	No Copyrights, but please link back in any way
*/

/*
|---------------------------------------------------------------
| CASTING argc AND argv INTO LOCAL VARIABLES
|---------------------------------------------------------------
|
*/
$argc = $_SERVER['argc'];
$argv = $_SERVER['argv'];

// INTERPRETTING INPUT
if ($argc > 1 && isset($argv[1])) {
$_SERVER['PATH_INFO'] 	= $argv[1];
$_SERVER['REQUEST_URI'] = $argv[1];
} else {
$_SERVER['PATH_INFO'] 	= '/crons/index';
$_SERVER['REQUEST_URI'] = '/crons/index';
}

/*
|---------------------------------------------------------------
| PHP SCRIPT EXECUTION TIME ('0' means Unlimited)
|---------------------------------------------------------------
|
*/
set_time_limit(0);

require_once('index.php');

/* End of file test.php */

Now, we need a controller e.g. test so the controller code could be something like this. Please note that normally we do not need to output anything from these controllers since they are doing some background work or sending emails but for the sake of giving an example, I will be output-ing something to elaborate the example.

/**
* @author 	    Asim Zeeshan
* @web         http://www.asim.pk/
* @date		13th May, 2009
* @copyright 	No Copyrights, but please link back in any way
*/</code>

class Test extends Controller {

function __construct()
{
parent::Controller();
}

function index()
{
echo "testing from index \n";
}

function test() {
echo "testing from test \n";
}
}

Now execute crontab on linux command prompt

php /full-path-to-cron-file/cron.php /test/index

Voila! all you need now, is to setup the crontab like you normally do.
This code is not shared under any license so feel free to copy/modify/use it. Please link back to this website / post in any way e.g. direct link, credits etc.

P.S. The examples above user PHP5 constructor, If you need to execute this code on PHP4, please modify the constructors.

Template Library for CodeIgniter, Simple, Fast and Easy!

If you have not noticed, I just got started on CodeIgniter. I was really disappointed today when I noticed the lack of a template system in CodeIngiter to skin my little application. They say

The Template Parser Class is not a full-blown template parsing solution. We’ve kept it very lean on purpose in order to maintain maximum performance.

Lucky for me, I got a little help here, the library is great and works well for the latest version of CI too best of all its small and does not modify the CI code in anyway. It just uses the already available code to skin the application. Sleak!

I made a couple of modifications in the original library, here are my modifications

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Template {
	var $template_data = array();
		
	function set($name, $value) {
		$this->template_data[$name] = $value;
	}
	
	function load($template = '', $view = '' , $view_data = array(), $return = FALSE) {
		$this->CI =& get_instance();
		$this->set('contents', $this->CI->load->view($view, $view_data, TRUE));			
		return $this->CI->load->view($template, $this->template_data, $return);
	}
	
	// load a default template 'template.php'
	function view($view = '' , $view_data = array(), $return = FALSE) {
		$this->CI =& get_instance();
		$this->set('contents', $this->CI->load->view($view, $view_data, TRUE));			
		return $this->CI->load->view('template', $this->template_data, $return);
	}
}

/* End of file Template.php */
/* Location: ./system/application/libraries/Template.php */

So now I use it like

$this->template->view('my_view', $view_data);

instead of

$this->template->load('template', 'my_view', $view_data);

Hope it helps somebody.