Categories
Uncategorized

The eJabberd and Tkabber stories :)

The eJabberd Story

For our on going project, I am playing with ejabberd. It is a Jabber/XMPP instant messaging server, licensed under GPLv2 (Free and Open Source), written in Erlang/OTP. Among other features, ejabberd is cross-platform, fault-tolerant, clusterable and modular. It’s just cool for developing jabber/xmpp bots on your local machine. The big guys often use it to run jabber services on their domain.

I am currently developing a jabber bot and had to install ejabberd on my Ubuntu. Installation was quite easy as I am on Linux. One single command did everything for me:

After installation, I had to check the status of the server. So I used the following command:

But I was disappointed to see the “node down” error message. I tried all the commands I knew to revive it but nothing worked right.

Then out of despair, I decided to use root privilege to do that, so I used:

Guess what ! 😀 It worked !! Man, I knew in order to start, stop, restart servers, you need root access. Who knew you’ll need root access for checking status as well? And why did the non-sudo code returned “node down” instead of a plain message asking to use root privilege ? I don’t know 🙁 It was really painful !

Now, I had to register a new user from the command line. I used the following command:

The format is:

Then I had to configure the ejabberd server to invoke admin access to the user I just created. The easiest way would have been to use nano with sudo to edit the config file. But unaware of what the name of the config file is and how to edit the config file, I explored the entire configuration directory with root access. I used the following trick:

Please Note that the /etc/ejabberd directory can be accessed only by the root user. A simple user can’t even view it’s contents.

The good thing was that I could double click on the config file and edit it with gedit without invoking further root access since I have already applied that to the nautilus window I have opened.

I edited the “%Admin Users” section to add me as an admin.

The eJabberd web admin is available at: http://localhost:5280/admin/ 🙂
The web admin panel is simply cool and you can do all sort of things using it except chatting 😉

The Tkabber

I was running my bot from command line and it hardly cared if I was connected to the internet or not. But I was having problem with the GUI xmpp client. I was using Pidgin. It was first working fine. But it required me to connect to the internet even the xmpp connection was being made to the localhost.

And even worse, later on, whenever I connected to localhost, pidgin crashed. So I was looking for alternatives. I have tried out a few other clients and a few web based clients as well. None of them suited me.

Finally, I found Tkabber. It’s based on TCL/TK and looks very very poor. From the look of it, it seems that it was developed for Unix machines. But matters not as long as it serves my purpose. It connects to the local machine even when I am not connected to the internet. It plays really funny sounds on different events. It has a nice tidy interface as well.

I like it ! 😀

That’s the story I wanted to share.. it’s nothing important… I just wrote it to pass my idle time… 🙂

Categories
PHP

PHPRackCloud: RackSpace PHP Client Library from Leevio

RackSpace Cloud hosting is one of the most popular Cloud hosting services today. For an upcoming product of Leevio, we decided to choose RackSpace for cloud service. RackSpace has a very decent API but quite unfortunately there was no language specific client library available for PHP. The people at Rackspace were developing one for Python but we are solely using PHP for our current project. So we chose to write a PHP Client library ourselves.

As a consequence, a PHP Client library has been released from Leevio and it has been approved by Rackspace. The library is as-expected released under the New BSD license and hosted on it’s own Google Code page.

And lately, we have developed a product page for PHPRackCloud at our website as well.

Official Website: http://leevio.com/phprackcloud

Download: http://code.google.com/p/phprackcloud/

Have a look at the Wiki Page for documentation. Most of the code is self explanatory and adequate examples have been included in the download package.

The team is very happy and excited because of the recognition from RackSpace. We are glad that we have been able to create something really valuable in the first month of our start up.

Don’t forget, Leevio is still too young… But I believe we have a really long way to go… 🙂 Wish us luck !

Categories
PHP

Using Memcached with PHP

Memcached could be a very efficient way to scale your web applications. Memcached lets you store data into the cache of your memory and quickly retrieve data when you need. So, it is usually very fast for data storage. But the darker side is that it’s extremely volatile. Your machine crashes or restarts and all the data are gone. Still, memcached is widely used as a caching device to store temporary data for decreasing the load on mysql database.

Memcached is supported by many of the scripting languages. PHP has excellent support it. They have a PECL extension for interacting with Memcached.

=====================
Setting Things Up
=====================

1) Install Memcached on your machine.
2) Install Memcached PECL extension for PHP.
3) Activate Memcache.

1) Installing Memcached:

To install memcached on your Ubuntu type the following command on your terminal and press enter:

To install on Windows:

1. Download memcache from code.jellycan.com/memcached/ [grab the ‘win32 binary’ version]
2. Install memcache as a service:
* Unzip and copy the binaries to your desired directory (eg. c:\memcached) [you should see one file, memcached.exe] – thanks to Stephen for the heads up on the new version
* If you’re running Vista, right click on memcached.exe and click Properties. Click the Compatibility tab. Near the bottom you’ll see Privilege Level, check “Run this program as an administrator”.
* Install the service using the command: c:\memcached\memcached.exe -d install from the command line
* Start the server from the Microsoft Management Console or by running one of the following commands: c:\memcached\memcached.exe -d start, or net start “memcached Server”

2) Installing The PECL Extension:

On Ubuntu, use the command on terminal:

On windows, you need to get the memcached PECL extension, put it into the PHP’s extension directory. You might get the file at: http://downloads.php.net/pierre/

Add the extension to php.ini.

On Linux:

On Windows:

3) Activate:

Make sure that Memcached is running as a daemon/service. If not, use the command:

Now start using memcached 🙂

Memcached Demo: How to store an array ?

The Memcached PECL extension has a built in class “Memcache” which we will use to work with Memcached.

Pretty easy… Isn’t it?