Tuesday, March 30, 2010

Export and import database to and from remote servers through telnet

Hi, If you want to take database backup from one server and import it into another remote server use the below process.


Import command at terminal or dos
mysql -u user_login -p database_name < /path_to_the_file/my_backup.sql

Export command at terminal or dos
mysqldump -u user_login -p database_name > /path_to_the_file/my_backup.sql

Database Backup
connect to remote host with SSH from termail using below command
#ssh user@host.com
password:
After login, crate one folder to store the backup file and make it writeble, then run the beloc ommand to take backup for the whole database
#mysqldump -u dbusername -p dbname > dbbackup.sql
It will ask you the dbpassword

After download ddbackup.sql and transfer to new host where you have to set up the database..

connect to remote host with SSH
#mysql -u dbusername -p dbname -e 'source dbbackup.sql'
It wil ask you the dbpassword.


The other way, which is even cooler, and more secure, assuming you have ssh access on both machines (this, again, is a direct dump-to-import):

mysqldump -ux -px database | ssh me@newhost "mysql -ux -px database"

This will dump the data to stdout, pipe it to ssh @ the newhost, and into mysql. Of course, replace all x's with username's and password.


If you want to keep two databases equal, you can use rsync (if your system supports it) to do it by creating a simple script:

rsync you@yourserver::share/path/to/mysql/data/* /path/on/the/other/server/

that you call with a cron job every 10 minutes/1 hour/1day/...

This way, whenever your database change, rsync will find the difference and would transfer ONLY the bytes that have changed.

Ref: http://www.webhostingtalk.com/archive/index.php/t-226992.html

Saturday, March 27, 2010

Drupal Image gallery creation

http://jamestombs.co.uk/2009-05-12/create-an-album-based-image-gallery-in-drupal-6-using-cck-and-views/1045

http://www.primalmedia.com/blog/building-better-drupal-photo-gallery

Background color problem for fckeditor in Drupal

When you install fckeditor module in drupal you might get problem that editor's background color is applied from body background color. To fix this background color problem add another line in fckeditor.config.js:
FCKConfig.EditorAreaStyles = "body{background:#FFFFFF;text-align:left;}";

Other tips for fckeditor in drupal http://drupal.fckeditor.net/tricks

Friday, March 26, 2010

Get IP address of the site visitor in rails application

In RAILS_ROOT/app/controllers/show_my_ip_controller.rb

class ShowMyIpController < ApplicationController
def index
@client_ip = request.remote_ip
end
end


In RAILS_ROOT/app/views/show_my_ip/index.html.erb

Your IP address is <%= @client_ip %>

Tuesday, March 23, 2010

Commands to start apache server and mysql server in linux

To start Apache webserver in linux (LAMP)

#service httpd start
the above command will start both apache and mysql servers.

To start Mysql server in linux (LAMP)
#service mysqld start

Thursday, March 18, 2010

Working with Float values

While you are working with float numbers and you should always want to display 1 or 2 numbers only after precission ex: You like to display 5.30 instead of 5.29088388434. To display in that format we have to use below functions

In Ruby:

f=1.23456
puts sprintf('%.2f', f).sub(/0{1,2}$/, '')

In php:
$$grandtotal = $rate*$miles;
echo number_format($grandtotal,2);
?>

Monday, March 15, 2010

Multiple layouts for each Wordpress Page

The solution:
Edit ‘page.php’ to check what page your on, and then load the appropriate template.

The implementation:
If you edit page.php you’ll notice that it calls the get_header() and get_footer() functions. This is about the only bit of code that we want to keep in this file.

First Step:
First, make a copy of page.php and give it a name. This is your first template. Delete the header and footer calls from your template, because we’re going to load this into page.php, and it will have already called them.

Second Step:
Open page.php and delete everything between the header and footer calls. In this space, add a PHP conditional that uses the is_page() function.

if(is_page(107) == true) {
include ‘page_full.php’;
} else {
include ‘page_twocolumn.php’;
}

?>

Here’s an example of what I did to load multiple page layouts:

if(is_page(107) == true) {
include ‘page_films.php’;
} else if(is_page(array(518, 28, 13)) == true) {
include ‘page_full.php’;
} else {
include ‘page_twocolumn.php’;
}

?>

This sets page with ID 107 to use the template specific for the ‘films’ page. It also sets pages with ID’s 518, 28, and 13 to use the full page layout. All others use the two column layout.

That’s it!

Default timezone settings in PHP

date_default_timezone_set('Asia/Calcutta');

Tuesday, February 23, 2010

css tric to set containers height with minimum and auto values

.selector {
width:200px;
min-height:100px;
height:auto !important;
height:500px;
border:1px solid #000000;
padding:5px;
}
when you assign this class to any contaner like div or span, its minimum height is 100px if there is no content, then it is automatically exanded instead of scrolling when loaded content is more. Maximum height is 500px it is for IE browser only.

Monday, February 22, 2010

Sending emails with Gmail smtp server rather than your server's smtp

Download the phpmailer classes At http://sourceforge.net/projects/phpmailer/files/phpmailer%20for%20php5_6/

Then use the below code to send emails.
require(“includes/class.phpmailer.php”);
$mailer = new PHPMailer();
$mailer->IsSMTP();
$mailer->Host = ’ssl://smtp.gmail.com:465′;
$mailer->SMTPAuth = TRUE;
$mailer->Username = ‘{somename}@gmail.com’; // Change this to your gmail adress
$mailer->Password = ‘{password}’; // Change this to your gmail password
$mailer->From = ‘{someid}@gmail.com’; // This HAVE TO be your gmail adress
$mailer->FromName = ‘Venkat’; // This is the from name in the email, you can put anything you like here
$mailer->Body = ‘Message body’;
$mailer->Subject = ‘Message subject’;
$mailer->AddAddress(‘{toaddress email id}’); // This is where you put the email adress of the person you want to mail
if(!$mailer->Send())
{
echo “Message was not sent
”;
echo “Mailer Error: ” . $mailer->ErrorInfo;
}
else
{
echo “Message has been sent”;
}
?>

Friday, February 19, 2010

Cron job settings in server

Cron jobs are used to run a script automatically with some time interval Example if you want to send emails daily morining to all newsletter subscribers when new jobs were added to your jobs portal these cron jobs are used. Below are the steps to setup cron jobs

For php:
Login to hosting server and goto the cron job settings page and select the time interval you want to run the script then give the command to run the php file as below

php /path-to-your-phpfile.php
(OR)
/usr/local/bin/php /path-to-your-phpfile.php

For Ruby:
/usr/local/bin/ruby /home/user/domainname/script/runner /home/user/domainname/app/cron_job.rb

Understanding of Restful Architecture

RESTful interface means clean URLs, less code, CRUD interface.

CRUD means Create-READ-UPDATE-DESTROY.

You might heard about HTTP verbs, GET, POST. In REST, they add 2 new verbs, i.e, PUT, DELETE.

There are 7 default actions, those are – index, show, new, create, edit, update, destroy

GET is used when you retrieve data from database. POST is used when you create new record in database. PUT is used when you are updating any existing record in database, and DELETE is used when you are destroying any record in database. Following table may clear the concept.

Action VERB

index GET

show GET

new GET

create POST

edit GET

update PUT

destroy DELETE

Tuesday, February 16, 2010

PHP and Flash Interaction Through XML and Actionscript

Flash can interact with dynamic data using XML files and also submit data to the php code using Action Script's getURL function. The getURL function in ActionScript can be used to set the external url to links and also for the flash form submissions. You can send any variable value from within the flash file to a PHP file. For example the following code,

getURL("fromFlash.php", "_blank", "POST");

can be used to send variables from Flash to a PHP file fromFlash.php. The variable sent according to the code above use the POST method. You can use the $_POST('variable_name') to get the data from the flash file and assign that value to some other variable within the PHP file. It is so easy to do it.

To load XML data in flash you can create an XML object and use that object's Load method to load the XML file you need.

Monday, February 15, 2010

Open multiple urls at a time

To open multiple windows at a time use the below code in Javascript
window.open('http://www.yahoo.com');
window.open('http://www.gmail.com');

take the above lines in one js function and call the function when you want to open yahoo and google at a time in two different tabs.

All about Ajax and its states

Ajax (Asynchronous Javascript And XML) is used to update part of the webpage's content Asynchronously without reloading the entire page. Below are the five possible response states in Ajax
0: The request is uninitialized (before you've called open()).
1: The request is set up, but not sent (before you've called send()).
2: The request was sent and is in process (you can usually get content headers from the response at this point).
3: The request is in process; often some partial data is available from the response, but the server isn't finished with its response.
4: The response is complete; you can get the server's response and use it.

About ORM (Object Relation Mapping)

Accessing database using a layer of classes is called ORM. The rest of the application uses these classes and their objects. It never allow directly interacting with database.

1. ORM libraries map database tables to classes. If a database has a table users(plural).Our program will have a class named user(singular) stored in model folder,

2. Rows in this table correspond to objects of the class—a particular user is represented as an object of class user.
3. By using this object's attributes we can set and get the individual columns.

So an ORM layer maps tables to classes, rows to objects and columns to attributes of that object(methods).


Class methods are used to perform table-level operations.
Instance methods are used to perform operations on the individual rows.

It is all taken care by ActiveRecord class.

Zend installation steps

Zend framework requires php5 or later
1)Download the zend framework package from http://framework.zend.com/download/latest

2)Unzip the package and place it where ever you want
Here in my system /usr/var/zendframework

3)Open the zendframework/library and copy the folder path.

4)Open the php.ini file and set the include_path for this libray
Here in my system I have found include_path like include_path = ".:/usr/share/php5:/usr/share/pear , And i added the zend library path like include_path = ".:/usr/share/php5:/usr/share/pear:/var/www/ZendFramework/library"

5)Now we have create alias for zf.sh (self executable file in console for linux) ,To do this run the fallowing command in terminal.
alias zf.sh= /var/www/ZendFramework/bin
6)Run the fallowing command in terminal
zf create project myproject
7)Now directory structure has been created with the name myproject.In this directory you will be given with some sub directories in order to develop your application(project).

PHP Design Patterns

Design pattern is nothing but how a civil engineer planed before start constructing any building i.e where a kitchen is, and how it will be, where temple room, where dining hall etc., In a software engineering design pattern is nothing but a blueprint for your software to avoid tight coupling of modules means when you modify some code in one module which doesn't take effect on other modules. The most usefull and common design patterns are

Sigleton pattern: Used to restrict instantiation of a class to one object only. The real time use of this pattern is connection to database is opened only once.

Factory pattern: Used to implement loosecoupled modules.

Observer pattern: Used to maintain all dependents and notifies them automatically when any change made

Friday, February 12, 2010

Generating rsa public and private keys in linux

Open terminal and run ssh-keygen with below optional params
$ ssh-keygen -t rsa -C "venkatadapa@gmail.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/venkat/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/venkat/.ssh/id_rsa.
Your public key has been saved in /home/venkat/.ssh/id_rsa.pub.
The key fingerprint is:
01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db venkatadapa@gmail.com

Use "ssh-add path/to/my_key" If you want to change the path of the keys to store at Your public key has been saved in /home/venkat/.ssh/id_rsa.pub.

To know more about passphrases just visit http://help.github.com/working-with-key-passphrases/

After finished the above steps an hidden .ssh folder was created in that specified path containing with files id_rsa,id_rsa.pub and known_hosts. id_rsa contains private key. id_rsa_pub contains your public key.

You can use this key for your github account to manage your data from your computer.

Tuesday, February 9, 2010

Real time usage of polymorphism concept

One of the basic concepts of Object Oriented Programming is that we use polymorphism instead of conditional logic when we want to change runtime behaviour of a program. The Open Closed Principle clarifies this idea by suggesting that software should be open to extension (means can be flexible for adding new features), but closed to modification (means not able change the existng functionality).