The Google Highly Open Participation Contest

Following on from the success of the Google Summer of Code program, Google is pleased to announce a new effort to get young people involved in open source development. Google has teamed up with the open source projects such as Apache Software Foundation, Drupal, GNOME, Joomla!, MoinMoin, Mono, Moodle, Plone, Python, and SilverStripe to give student contestants the opportunity to learn more about and contribute to all aspects of open source software development, from writing code and documentation to preparing training materials and conducting user experience research.

If you’re a student age 13 or older who has not yet begun university studies, you could help out these projects. In return, you’ll learn more about all aspects of developing software – not just programming – and you’ll be eligible to win cash prizes and the all important t-shirt! You will, of course, need your parent or guardian’s permission to participate where applicable.

To Read more and take part go to http://code.google.com/opensource/ghop/2007-8/.

If you have already begun university studies like me you could always spread the word 🙂

Using GNOME remotely via SSH

Have you ever wished that you had a GUI on a remote Linux server without using VNC? Actually you can use GNOME or any other GDM on a remote server via SSH, yep I’m not joking.

You need to have SSH and X11 running on both the client and the server. In addition on the server GNOME should be installed and SSH daemon should be running.

Step 1 – Turn on X11 forwarding on the server:

Add the following if it doesn’t exist or just change no to yes in /etc/ssh/ssh_config and save it.

ForwardAgent yes
ForwardX11 yes
ForwardX11Trusted yes

Add the following if it doesn’t exist or just change to yes in /etc/ssh/sshd_config and save it.

X11Forwarding yes

Step 2 – Connect to the remote server viw SSH with X11 forwarding

In order to enable X11 forwarding when you connect to a remote server via SSH you need to provide the commandline option -X. See the example bellow.

 $ ssh -X username@server

Step 3 – Start GNOME Session

You need to start the GNOME session for the GUI to show. By default GNOME session is not started for remote connections. It might take a while for any change to appear, you should notice GNOME startup sequence appearing in the client and couple of messages in your terminal.

However I do not recommend running X11 or GNOME on a production server, but this should be handy if you want to connect to your home computer from office for example.

TopCoder Open 2008 – Open for registrations

For those of who don’t know about TopCoder; TopCoder is one of the leagues for programming competitions, and it is fast becoming a major league. They conduct online competitions at least once a week and two major online and on site competitions. Read more at topcoder.com

TopCoder Open, more commonly known as TCO is one of the two annual online and onsite competitions. It is basically open to any TopCoder member who is 18 or above. In this year’s TCO there will be four competitions: algorithm competition, component design and development competitions, marathon competition, studio competition. Only the top 120 will make the TCO.

TCOO8 is open for registrations till February 1, 2008. This time around there is a prize purse of $260,000 and the most importantly becoming the TCO08 champion.

If you do register your self as a new TC member do not forget to mention my TC member handle in the referer field; My handle is mohanjith.

Microsoft supports OpenID

Have you heard about OpenID? The simple idea that your web address is one form of identity, just like your email adddress or even your physical address? Well, back in December, we mentioned how OpenID has been gaining momentum like crazy, but today, things just went to a whole new level. Bill Gates announced that Microsoft CardSpace will support OpenID. Finally Microsoft realizes that their identity solutions were late to the party 😀

Read more at Six Apart.

OpenID or CardSpace

You might have heard about OpenID and Microsoft’s CardSpace. Both provide SSO functionality. I personally believe that OpenID is better because it works the way you want and not the way some third party wants it to work.

Few days back got into a big argument with one of my friends over whether OpenID is better than CardSpace. The outcome of the argument was that CardSpace was better because the Windows CardSpace client validates the consumer requesting the token and selects the identity; whereas in OpenID it the user that would choose which identity will be provided to the consumer.

Today I stumble upon VeriSign’s OpenID SeatBelt Firefox Plugin, it provides Windows CardSpace client like functionality for OpenID. SeatBelt has phishing detection as well. So I showed off SeatBelt to my friend and he was convinced.

To make this post complete why OpenID is better than CardSpace. To start with OpenID is better supported; it works in any operating system or platform not just Windows. Second OpenID is well documented. Third OpenID is decentralized, your machine has nothing much to do with signing in except for the session. Fourth to use OpenID the users do not have to download anything other than the browser it self, if they need protection against phishing they only have to download a tiny(224K) plug in for their browser.

If you think different please add your views to the comments, sorry Blogger doesn’t support CardSpace authentication for comments 😉

Adding social bookmarking links to blogger

I recently wanted to add social bookmarking links to all of my blog posts. As you might notice my blog is hosted on blogger, only way I could do that is by editing the template. I thought I would share how to get about editing the template such that you add social bookmarking links which will automatically add the post permalink and the title if possible.

To edit the template, Sign into your blogger.com account and goto Template -> Edit HTML and then select Expand Widget Templates. Search for <data:post.body/>, just after <data:post.body/><div style="clear: both;"> <!-- clear for photos floats --> insert the following code.

[code language='xhtml']

[/sourcecode]
Add the following code before ]]>.
[sourcecode language='css']/** Service links style **/
.service-links {
padding-top: 3px;
}
.service-links ul.links {
margin:0pt; padding:0pt;
}
.service-links ul.links li {
display:inline;
list-style-type:none;
padding: 0pt 0px;
background: none;
}
.service-links ul.links li img {
border: none;
padding: 3px;
}
.service-links ul.links li a {
border: none;
text-decoration: none;
}[/code]

Then save the template. Adding social bookmarking links and submitting your posts to social bookmarking networks would improve the visibility of your blog and help drive traffic to your blog.

WSO2 WSF/PHP with Lighttpd

I wanted to test drive WSO2 WSF/PHP on Lighttpd because I couldn’t find any documentation specific for Lighttpd, or any one complaining that it cannot be done. I set up a new VMWare image running Debian so that I can blog all the steps involved in getting WSO2 WSF/PHP working on Lighttpd running on Debian.

Step 1: Install Lighttpd, PHP5

I used apt-get to install Lighttpd and PHP5

 $ sudo apt-get install lighttpd php5 

Step 2: Download and install WSO2 WSF/PHP.

I downloaded the Debian package.

 $ axel -an 5 http://dist.wso2.org/products/wsf/php/wso2-wsf-php-1.2.0-debian.deb
$ dpkg -i wso2-wsf-php-1.2.0-debian.deb

Step 3: Enable WSO2 WSF/PHP

I created a new file /etc/php5/conf.d/wsf.ini and added the following line.

 extension=wsf.so 

Step 4: Enable FastCGI and PHP

Fastest method to run PHP on Lighttpd is FastCGI, so we will be enabling FastCGI.

 $ sudo lighty-enable-mod fastcgi

On Debian Lighttpd FastCGI configuration file contains the configuration for PHP4. We will have to edit /etc/lighttpd/conf-enable/10-fastcgi.conf to look like bellow.

server.modules   += ( "mod_fastcgi" )

## Start an FastCGI server for php5 (needs the php5-cgi package)
fastcgi.server = ( ".php" =>
((
"bin-path" => "/usr/bin/php5-cgi",
"socket" => "/tmp/php.socket",
"max-procs" => 2,
"idle-timeout" => 20,
"bin-environment" => (
"PHP_FCGI_CHILDREN" => "4",
"PHP_FCGI_MAX_REQUESTS" => "10000"
),
"bin-copy-environment" => (
"PATH", "SHELL", "USER"
),
"broken-scriptfilename" => "enable"
))
)

Step 5: Restart Lighttpd

You have to reload the Lighttpd configuration files.

 $ sudo /etc/init.d/lighttpd restart

You have successfully installed WSO2 WSF/PHP on PHP5 and Lighttpd. It is time to test whether it is a success. Simplest approach would be to see phpinfo() page. Create a php file with the following line of code and place it in the document root. Then using a web browser goto that URL. In the page search for wsf section. This contains all the configurations about the WSF extension.

I went throught to the trouble of actually consuming a SOAP web service to see whether this setup actually works and it was a success, but that is simply out of the scope of this post. These instructions should work on other Linux distributions with minor changes and any platform with few changes.

Fly WSO2 WSF/PHP with Lighttpd. Have fun.

Flying light with lighty

I moved all my sites to my all new server. There I’m running Lighttpd as the front facing web server. I do have Apache HTTP Server running for the sake of svn serving. It was not very hard to migrate sites from Apache HTTP Server to Lighttpd. Only feature I missed was .htaccess file support or substitute. I just had to migrate all the operations taking place in the .htaccess files to the Lighty configuration file.

Overall migration was smooth. I have nothing to complain, memory foot print is small as it could get. Since I’m serving only PHP and Python I’m making use of FastCGI and it is really fast. You wouldn’t believe me if I tell you the performance gains. I can serve 700 requests per second when it comes to my Geo-IP web service (I believe the limit was the resources on the test machine), the server is not even sweating. If I was running the same application on Apache HTTP Server it would barely serve 230 requests per second, 204% performance gain.

If you visit any of my sites except for the blog itself (which is hosted at Blogger.com) you would see the performance. mohanjith.net responds within a second, that’s lighting fast. All this with a Debian running on Xen with 128MB physical memory and 256MB swap.

I would recommend Lighty to any one with simple serving requirements. It saves lot of server resources.

Blogging from the GNOME blog

It feels really good to blog from the desktop it self. I used to dought that some of my friends were saying the world is moving to the desktop from the web. Now I see the truth.

To make this post I’m using GNOME Blog (gnome-blog), it is a simple desktop client which supports multiple blogging platforms including Blogger, Livejournal, MovableType and WordPress.

Main advantage of a blogging client is that you don’t have to click through a bunch of links and wait for a slow WYSIWYG editor to load.

If you are using Ubuntu just run:

$ sudo apt-get install gnome-blog

See the magic!

Edit:
Used blogger to edit the post to insert the <pre> tags