Friday, May 29, 2009

Implode in Javascript - Method 1

toString() method returns one string that contains all the elements in the array separated with commas.
The toString() method is used to convert an array to a string when the array is used in string context.
In this method we cannot modify the seperator. To change seperator go to join().
The following example shows JavaScript to Use an Array's toString() Method.

<html>
<script language="JavaScript">
colors = new Array("Blue","Green","Red");
document.write(colors.toString());
</script>
</html>
Output is Blue,Green,Red

Implode in Javascript - Method 2

To make implode in javascript like php use join method.The join() method converts all the elements to strings and then concatenates all the strings into a longer string.

If an argument is provided in the parameter list, it is used to separate the elements in the string returned by the method.
Ex:
<html>
<script language="JavaScript">
fruit = new Array("1","2","3");
String = fruit.join("-");
document.write("The fruit array contains: ",String);
</script>
</html>

Output : 1-2-3

Wednesday, May 20, 2009

Steps to install memcache in drupal

1.Install the memcached binaries on your server. See How to install Memcache on Debian Etch[ http://www.lullabot.com/articles/how_install_memcache_debian_etch ] or How to install Memcache on OSX [ http://www.lullabot.com/articles/setup-memcached-mamp-sandbox-environmen... ]

2.Install the PECL memcache extension for PHP.

3. In settings.php add ini_set('memcache.hash_strategy','consistent');

4. Put your site into offline mode.

5. Download and install the memcache module [ http://drupal.org/project/memcache ]

6. If you have previously been running the memcache module, run update.php.

7. Apply the DRUPAL-5-cache-serialize.patch that comes with memcache module [memcache/patches]
I applied DRUPAL-5-3-cache-serialize.patch hence I am using drupal 5.3

8. Start at least one instance of memcache on the server.
[ex ./memcached -d -m 2048 -l 10.0.0.40 -p 11211 ]
Here 11211 is an instance of memcache, 10.0.0.40 is the IP of the server, 2048 is the allocated memory.

9. Add following in the settings.php

$conf = array(
'cache_inc' => './sites/all/modules/memcache/memcache.inc',
'memcache_servers' => array(
'localhost:11211' => 'default',
),
'memcache_bins' =>array(
'cache' => 'default',
'cache_views' => 'default',
'cache_page' => 'default',
'cache_path' => 'default',
'cache_filter' => 'default',
'cache_menu' => 'default',
),
);

10.Change memcache_stampede_semaphore time from 15 seconds to 600 in dmemcache.inc lineno:86
if ($result->expire && $result->expire <= time() && $mc->add($full_key .'_semaphore', '', FALSE, variable_get('memcache_stampede_semaphore', 600))) {
located in modules/memcache to get clear result of memcache.
Every 600 seconds cache from memcache will be cleared. If this is not set we will not see any performance benefit. Refer links… http://drupal.org/files/issues/stampede.patch. http://drupal.org/node/295738.

11. First time after install, truncate all cache tables that are memcached.

12. Bring your site back online.

13. To check the memcache status login as admin and check memcahce logs at /admin/logs/memcache.

Monday, May 11, 2009

variable_get in drupal

In drupal 5.x dont use variable_get with one argument this will cause the watchdog error. High performance site will be affected.

Use:
variable_get($variable,'0'); if you no need of second argument

R.Navaneethakrishnan