<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Aditya Bhatt&#039;s Blog</title>
	<atom:link href="http://adityabhatt.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://adityabhatt.wordpress.com</link>
	<description>A 19-year old&#039;s programmer&#039;s desperate attempts to understand the world around him.</description>
	<lastBuildDate>Fri, 20 Jan 2012 16:25:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='adityabhatt.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/a5dc407d4e5f57688ec228b123dd4746?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Aditya Bhatt&#039;s Blog</title>
		<link>http://adityabhatt.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://adityabhatt.wordpress.com/osd.xml" title="Aditya Bhatt&#039;s Blog" />
	<atom:link rel='hub' href='http://adityabhatt.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Memecached: Real-Time meme sharing with node.js, now.js, and MongoDB</title>
		<link>http://adityabhatt.wordpress.com/2011/12/29/memecached-real-time-meme-sharing-with-node-js-now-js-and-mongodb/</link>
		<comments>http://adityabhatt.wordpress.com/2011/12/29/memecached-real-time-meme-sharing-with-node-js-now-js-and-mongodb/#comments</comments>
		<pubDate>Thu, 29 Dec 2011 00:50:47 +0000</pubDate>
		<dc:creator>Aditya Bhatt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[mongodb]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[now.js]]></category>
		<category><![CDATA[realtime]]></category>

		<guid isPermaLink="false">http://adityabhatt.wordpress.com/?p=232</guid>
		<description><![CDATA[Yesterday, I wrote a web-app named Memecached. It is a service which allows you to quickly generate a meme and publish it in real-time. It went viral for quite a few hours after I tweeted about it and posted it on Hacker News, with hundreds of memes being shared, sometimes a new meme every three [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=adityabhatt.wordpress.com&amp;blog=10529951&amp;post=232&amp;subd=adityabhatt&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Yesterday, I wrote a web-app named <a title="Memecached" href="http://memecached.adityabhatt.org/" target="_blank">Memecached</a>. It is a service which allows you to quickly generate a meme and publish it in real-time. It went viral for quite a few hours after I tweeted about it and posted it on Hacker News, with hundreds of memes being shared, sometimes a new meme every three seconds!</p>
<p>Memecached is extremely <strong>lightweight</strong>. The server is tiny, written entirely in exactly 50 lines of Javascript using <a title="Node.js" href="http://nodejs.org" target="_blank">node.js</a>. It uses <a title="MongoDB" href="http://mongodb.org" target="_blank">MongoDB</a> as the data store and <a title="NowJS" href="http://nowjs.com" target="_blank">now.js</a> for real-time, remote method invocation.</p>
<div id="attachment_233" class="wp-caption aligncenter" style="width: 614px"><a href="http://adityabhatt.files.wordpress.com/2011/12/memecached.png"><img class="size-full wp-image-233" title="memecached" src="http://adityabhatt.files.wordpress.com/2011/12/memecached.png?w=632" alt=""   /></a><p class="wp-caption-text">Awkward text blackened</p></div>
<p>Using it is fairly trivial &#8211; you open the page, and the latest N (25 by default) memes are streamed back and populated into the webpage. On the left is a collections of meme templates &#8211; you can click any one, enter the top and bottom text, and hit publish to see it reflected on each open client.</p>
<h2>Some Code</h2>
<p>On the server side, the now.js initialization didn&#8217;t work normally as sometimes the client &#8211; my chrome browser &#8211; would not perform a handshake (I&#8217;ve reported this in the now.js issue here: , so I had to fiddle around with the options till I found that <em>xhr-polling </em>seemed to work.</p>
<p><pre class="brush: jscript;">
var everyone = require(&quot;now&quot;).initialize(server, { socketio: {'transports': ['xhr-polling'] }} );
</pre></p>
<p>Publishing a meme involves validating the meme document, inserting it into mongo, and the passing it to all clients with:</p>
<p><pre class="brush: jscript;">
// publish meme
everyone.now.publish = function(meme) {
    if(meme.name &amp;&amp; meme.text.line1 &amp;&amp; meme.text.line2) {
        db.collection('memes', function(err, collection) {
            // add a date field and save
            meme.date = Date.now();
            collection.insert(meme, function(err) {
                if(!err)
                    everyone.now.receiveMeme(meme);
            });
        });
    }
};
</pre></p>
<p>Retrieving a recent memes&#8217; list is a trivial matter of looking up the last 25 in the &#8216;memes&#8217; collecion:</p>
<p><pre class="brush: jscript;">
// retrieve the latest few memes of a name. If there is no name, retrieve a mixture
everyone.now.getRecent = function(memeName) {
    var client = this;
    console.log(&quot;retrieving&quot;);
    db.collection('memes', function(err, collection) {
        if(memeName == undefined) {
            collection.find( {}, { sort: [[ &quot;date&quot;, &quot;desc&quot; ]], limit: 25 }).toArray( function(err, docs) {
                client.now.getContent(docs);
            });
        }
        else {
            collection.find( {&quot;name&quot;: memeName}, { sort: [[ &quot;date&quot;, &quot;desc&quot; ]], limit: 25 }).toArray( function(err, docs) {
                client.now.getContent(docs);
            });
        }
    });
};
</pre></p>
<h2>How it works</h2>
<p>All meme template images are stored on Dropbox.</p>
<ul>
<li>When a new meme is published, the server takes a JSON object from the client, containing the meme <code>name</code> and <code>text</code>. No image whatsoever.</li>
<li>The received meme object is inserted into the mongo collection <code>memes</code> with a date timestamp added to it. The object is also sent to all connected clients immediately so that they may update their timelines. This also means that no further database queries are required to retrieve new memes.</li>
<li>When a client connects, the last few (25) memes are queried from the database and sent back. This can further be optimized by having an in-memory queue of the most recent memes, in addition to the database.</li>
<li>All meme generation is done entirely <strong>client-side</strong>, by drawing the text over the images using <strong>Canvas</strong>. The client doesn&#8217;t have to download images, and the server doesn&#8217;t have to handle them at all.</li>
</ul>
<div>
<div id="readme">
<div>
<h2>How to run</h2>
<ol>
<li>First, run <code>mongod</code> to start the Mongo daemon.</li>
<li>Next, run the server: <code>node app.js</code></li>
<li>Point your browser to <code><a href="http://localhost:8080" rel="nofollow">http://localhost:8080</a></code>.</li>
<li>Bask in Memetic paradise.</li>
</ol>
</div>
</div>
</div>
<h2>Things to do</h2>
<ul>
<li><strong>Upvotes/Downvotes</strong>: This should be a ten-minute job. Just add two new keys to the &#8216;schema&#8217; of the doc.</li>
<li><strong>Sharing</strong>: Memes are rendered in Canvas. Need to get the dataUrl() and allow the user to save the image to a file.</li>
<li><strong>Line breaks</strong>: There need to be line breaks in a meme phrase. Right now, extra long sentences will make the font shrink too much to be visible.</li>
</ul><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/adityabhatt.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/adityabhatt.wordpress.com/232/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/adityabhatt.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/adityabhatt.wordpress.com/232/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/adityabhatt.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/adityabhatt.wordpress.com/232/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/adityabhatt.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/adityabhatt.wordpress.com/232/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/adityabhatt.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/adityabhatt.wordpress.com/232/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/adityabhatt.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/adityabhatt.wordpress.com/232/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/adityabhatt.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/adityabhatt.wordpress.com/232/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=adityabhatt.wordpress.com&amp;blog=10529951&amp;post=232&amp;subd=adityabhatt&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://adityabhatt.wordpress.com/2011/12/29/memecached-real-time-meme-sharing-with-node-js-now-js-and-mongodb/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/122ba5e56cd16fb1a9871d48e84ad229?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">aditya</media:title>
		</media:content>

		<media:content url="http://adityabhatt.files.wordpress.com/2011/12/memecached.png" medium="image">
			<media:title type="html">memecached</media:title>
		</media:content>
	</item>
		<item>
		<title>Introducing FaceOff and How To Write a PHP Extension For Your C++ API using SWIG</title>
		<link>http://adityabhatt.wordpress.com/2011/09/23/introducing-faceoff-and-how-to-write-a-php-extension-for-your-c-api-using-swig/</link>
		<comments>http://adityabhatt.wordpress.com/2011/09/23/introducing-faceoff-and-how-to-write-a-php-extension-for-your-c-api-using-swig/#comments</comments>
		<pubDate>Thu, 22 Sep 2011 23:24:56 +0000</pubDate>
		<dc:creator>Aditya Bhatt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[face detection]]></category>
		<category><![CDATA[kde-planet]]></category>
		<category><![CDATA[libface]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[swig]]></category>
		<category><![CDATA[web service]]></category>

		<guid isPermaLink="false">http://adityabhatt.wordpress.com/?p=218</guid>
		<description><![CDATA[FaceOff is a simple web service that takes photographs and returns coordinates of detected faces, encapsulated with JSON. It uses a PHP-wrapped libface for the processing. The source code is on GitHub. *** These days I&#8217;m into wrappers. As a personal exercise in wrapping C++ code with PHP, I decided to wrap libface, a C++ [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=adityabhatt.wordpress.com&amp;blog=10529951&amp;post=218&amp;subd=adityabhatt&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://faceoff.adityabhatt.org" target="_blank">FaceOff</a> is a simple web service that takes photographs and returns coordinates of detected faces, encapsulated with JSON. It uses a PHP-wrapped libface for the processing.<br />
The source code is on <a href="https://github.com/adityab/faceoff" target="_blank">GitHub</a>.</p>
<p style="text-align:center;">***</p>
<p>These days I&#8217;m into wrappers.</p>
<p>As a personal exercise in wrapping C++ code with PHP, I decided to wrap <a href="http://libface.sf.net" target="_blank">libface</a>, a C++ library for face detection that I worked on as my GSoC 2010 project for face tagging in digiKam. <a href="http://www.swig.org" target="_blank">SWIG</a> provides a rather simple way to do this. Here&#8217;s how to do it.</p>
<h2>The interface file</h2>
<p>SWIG gives you a &#8216;non-invasive&#8217; way to wrap an API, in that you don&#8217;t have to modify the library at all. First, you&#8217;ll need to write an interface file &#8211; <em>library_wrapped.i</em>. Here, we&#8217;ve named it libface_php.i.</p>
<pre># Wrap everything under module libface_php

%module libface_php
%{
#include "/usr/include/libface/LibFaceConfig.h"
#include "/usr/include/libface/Log.h"
#include "/usr/include/libface/LibFaceCore.h"
#include "/usr/include/libface/Face.h"
#include "/usr/include/libface/LibFaceUtils.h"
#include "/usr/include/libface/LibFace.h"
#include "/usr/include/libface/Haarcascades.h"
#include "/usr/include/libface/FaceDetect.h"
#include "/usr/include/libface/Eigenfaces.h"

#include "glue.cpp"

%}

%include std_string.i
%include std_vector.i
%include std_map.i
%include cpointer.i

%include /usr/include/libface/LibFaceConfig.h
%include /usr/include/libface/Log.h
%include /usr/include/libface/LibFaceCore.h
%include /usr/include/libface/Face.h
%include /usr/include/libface/LibFaceUtils.h
%include /usr/include/libface/LibFace.h
%include /usr/include/libface/Haarcascades.h
%include /usr/include/libface/FaceDetect.h
%include /usr/include/libface/Eigenfaces.h
%include glue.cpp</pre>
<p>The %module declares the name of the PHP extension. Once compiled, it will be named as &#8216;libface_php.so&#8217;.<br />
This, of course, assumes that libface was installed under /usr &#8211; I couldn&#8217;t find a way to tell SWIG to prefix a path automatically upon invokation. The paths can be changed accordingly.</p>
<h2>Glue</h2>
<p>Next, SWIG isn&#8217;t perfect. And there are some things which make sense in one language but not in the other. For example, pointers in C++ are converted to resources in PHP. There may not be a dead-simple mapping from a vector type to an array type, for instance. To use some language-specific data structures, we need glue code.</p>
<p>glue.cpp:</p>
<pre>#include 

using namespace std;
using namespace libface;

Face* faceAt(vector v, int index)
{
    return  (v[index]);
}</pre>
<p>So now we have the interface in place. Now comes the easy part &#8211; if all went well while writing the above; if it didn&#8217;t, you&#8217;ll have to try the next steps, test the wrapper, and then wrestle with the interface a bit (or  a lot!) more and tweak it till it works.</p>
<h2>Generating</h2>
<p>First off, we have to generate a wrapper.</p>
<pre>swig -c++ -php libface_php.i</pre>
<p>This generates a file libface_php_wrap.cpp. This is the wrapper code that needs to be built and linked with libface.<br />
Compile it:</p>
<pre>g++ `php-config --includes` -fPIC -c libface_php_wrap.cpp</pre>
<p>The -fPIC option instructs g++ to generate position-independent code.<br />
Link it with libface and generate the extension:</p>
<pre>g++ -shared libface_php_wrap.o -o libface_php.so -lface</pre>
<p>The extension we wanted has now been created &#8211; libface_php.so.<br />
Copy this to the PHP extensions directory:</p>
<pre>cp libface_php.so `php-config --extension-dir`</pre>
<p>In your system&#8217;s php.ini (/etc/php/php.ini in Arch), don&#8217;t forget to add the line:</p>
<pre>extension=libface_php.so</pre>
<p>You&#8217;re done. While doing this, a file libface_php.php was generated. This is the sole file that you will include in your php code.</p>
<p>Using it is rather simple:</p>
<pre>require ("libface_php.php");

$instance = new Libface(DETECT);
$filename = "test.png";
$detected_faces = $instance-&gt;detectFaces($filename);
$count = $detected_faces-&gt;size();

// get the coordinates of the first face
if($count &gt;= 1)
{
    $face = new Face(faceAt($detected_faces, 0)); // the face at index zero in the vector
    // Top left and bottom right coordinates
    echo "First face is : (" . $face-&gt;getX1() . "," . $face-&gt;getY1() . "),(" . $face-&gt;getX2() . "," . $face-&gt;getY2() . ")";
}</pre>
<p>That&#8217;s it. Of course, this may not be the best way to wrap it, so suggestions are welcome.</p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/adityabhatt.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/adityabhatt.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/adityabhatt.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/adityabhatt.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/adityabhatt.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/adityabhatt.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/adityabhatt.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/adityabhatt.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/adityabhatt.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/adityabhatt.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/adityabhatt.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/adityabhatt.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/adityabhatt.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/adityabhatt.wordpress.com/218/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=adityabhatt.wordpress.com&amp;blog=10529951&amp;post=218&amp;subd=adityabhatt&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://adityabhatt.wordpress.com/2011/09/23/introducing-faceoff-and-how-to-write-a-php-extension-for-your-c-api-using-swig/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/122ba5e56cd16fb1a9871d48e84ad229?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">aditya</media:title>
		</media:content>
	</item>
		<item>
		<title>SETI Algorithms project update</title>
		<link>http://adityabhatt.wordpress.com/2011/06/10/seti-algorithms-project-update/</link>
		<comments>http://adityabhatt.wordpress.com/2011/06/10/seti-algorithms-project-update/#comments</comments>
		<pubDate>Thu, 09 Jun 2011 23:40:05 +0000</pubDate>
		<dc:creator>Aditya Bhatt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[DSP]]></category>
		<category><![CDATA[gsoc]]></category>
		<category><![CDATA[SETI]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://adityabhatt.wordpress.com/?p=207</guid>
		<description><![CDATA[A quick update to list my progress with the SETI internship so far: So far, most of the existing simple DSP code has been open-sourced in the form of a new library. I&#8217;ve named the library SETIkit, and you can find it on GitHub. The progress is documented in a wiki page. The project uses [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=adityabhatt.wordpress.com&amp;blog=10529951&amp;post=207&amp;subd=adityabhatt&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A quick update to list my progress with the SETI internship so far:</p>
<p>So far, most of the existing simple DSP code has been open-sourced in the form of a new library. I&#8217;ve named the library SETIkit, and you can find it on <a href="https://github.com/setiQuest/Algorithms">GitHub</a>. The progress is documented in a <a href="http://setiquest.org/wiki/index.php/Algorithms">wiki page</a>.</p>
<p>The project uses CMake as the build system, and depends on</p>
<ul>
<li>FFTW (Fast Fourier Transform in the West)</li>
<li>GSL (GNU Scientific Library)</li>
</ul>
<div>The library is split into several modules</div>
<div>
<ul>
<li><strong>sq_utils</strong> contains several useful routines for logging, error handling, noise generation, and interop with the ATA (Allen Telescope Array) data format.</li>
<li><strong>sq_signals</strong> has functions that generate test signals. For now, we have a routine named sq_gen_sine that streams out a complex sinusoid with gaussian noise.</li>
<li><strong>sq_dsp</strong> contains a growing list of useful DSP utils:</li>
<ul>
<li>FFT</li>
<li>Power calculation</li>
<li>Hann windowing</li>
<li>Conjugate calculation</li>
<li>DC offsets, Scaling, complex rotation</li>
<li>WOLA (Weighted OverLap Add)</li>
<li>Real/Imaginary channel extraction</li>
<li>Heterodyne</li>
</ul>
<li><strong>sq_imaging </strong>is a collection of a few functions that read signal data, scale it linearly/according to the power, and write it as a PGM image.</li>
</ul>
<div>We now have all the code that is required to generate waterfall plots (more commonly known as <a href="http://en.wikipedia.org/wiki/Spectrogram">spectrograms</a>) of the SETI observation data.</div>
<div>Now there is a bunch of signal processing blocks that we use in a UNIX pipeline &#8211; programs that take signal data from one stream, do some processing, and pipe the resulting data to other programs.</div>
<div>A typical pipeline for generating waterfalls from the SETI data:</div>
</div>
<div>
<pre> cat ~/Data/2010-04-02-amc7-3693.4464-8bit-one-second.dat | ./sqsample -l 4096 | ./sqmix -c 0.0 
| ./sqwindow -l 4096 | ./sqfft -l 4096 | ./sqpower -l 4096 | ./sqreal -l 4096 
| perl -e 'while(read(STDIN,$bfr,4096*4)==4096*4) {syswrite(STDOUT,$bfr,1024*4,1536*4)}' 
| ./sqpnm -c 1024 -r 1200 -p &gt; out.pgm</pre>
</div>
<div>This takes data from a file that contains one second&#8217;s worth of observations of the AMC-7 geosynchronous satellite&#8217;s broadcasts.</div>
<div>
<ul>
<li>The <em>sqsampl</em>e block takes 2-channel (quadrature) 8-bit data from <em>stdin</em>, and writes out samples (floats) to <em>stdout </em>in the form of alternating real and imaginary values.</li>
<li>The <em>sqmix</em> block heterodynes a chosen digital frequency (here 0.0 Hz, we&#8217;ll see more later)  to DC (0 Hz). That is, you can use this to move the spectrum to the left and right.</li>
<li>The <em>sqwindow</em> block applies a hanning (or hann) window to the signal.</li>
<li>The <em>sqfft</em> block streams out the Fast Fourier Transform of the windowed signal.</li>
<li><em>sqpower </em>computes the instantaneous power signal.</li>
<li><em>sqreal</em> extracts the real part from the information.</li>
</ul>
<p>The 4096 argument to all those blocks is the number of samples they can read, write, and process in one go.</p></div>
<div>The perl code neatly arranges the signal data so that it can be visualized as an image, also giving you control over the &#8216;region&#8217; of the image you want to see. The <em>sqpnm </em>block then takes this data, scales it, and writes it out to a binary PNM/PGM image.</div>
<div>Here&#8217;s the waterfall that the above pipeline generates:</p>
<div id="attachment_212" class="wp-caption aligncenter" style="width: 605px"><a href="http://adityabhatt.files.wordpress.com/2011/06/wf.png"><img class="size-full wp-image-212" title="Waterfall" src="http://adityabhatt.files.wordpress.com/2011/06/wf.png?w=632" alt=""   /></a><p class="wp-caption-text">Waterfall Plot. Horizontal: Frequency | Vertical: Time | Brightness: Frequency Intensity.</p></div>
</div>
<div>That&#8217;s it for now.</div><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/adityabhatt.wordpress.com/207/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/adityabhatt.wordpress.com/207/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/adityabhatt.wordpress.com/207/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/adityabhatt.wordpress.com/207/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/adityabhatt.wordpress.com/207/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/adityabhatt.wordpress.com/207/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/adityabhatt.wordpress.com/207/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/adityabhatt.wordpress.com/207/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/adityabhatt.wordpress.com/207/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/adityabhatt.wordpress.com/207/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/adityabhatt.wordpress.com/207/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/adityabhatt.wordpress.com/207/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/adityabhatt.wordpress.com/207/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/adityabhatt.wordpress.com/207/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=adityabhatt.wordpress.com&amp;blog=10529951&amp;post=207&amp;subd=adityabhatt&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://adityabhatt.wordpress.com/2011/06/10/seti-algorithms-project-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/122ba5e56cd16fb1a9871d48e84ad229?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">aditya</media:title>
		</media:content>

		<media:content url="http://adityabhatt.files.wordpress.com/2011/06/wf.png" medium="image">
			<media:title type="html">Waterfall</media:title>
		</media:content>
	</item>
		<item>
		<title>I&#8217;m in! Google Summer of Code: The SETI Institute</title>
		<link>http://adityabhatt.wordpress.com/2011/04/29/im-in-google-summer-of-code-the-seti-institute/</link>
		<comments>http://adityabhatt.wordpress.com/2011/04/29/im-in-google-summer-of-code-the-seti-institute/#comments</comments>
		<pubDate>Thu, 28 Apr 2011 20:18:43 +0000</pubDate>
		<dc:creator>Aditya Bhatt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[gsoc]]></category>
		<category><![CDATA[SETI]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://adityabhatt.wordpress.com/?p=191</guid>
		<description><![CDATA[So I got this mail in my inbox from Google: Dear Aditya, Congratulations! Your proposal &#8220;Open sourcing of Exploratory Techniques for the SETI Search&#8221; as submitted to &#8220;SETI Institute&#8221; has been accepted for Google Summer of Code 2011. I&#8217;m in! I&#8217;ll be interning with the SETI Institute (Search for Extra Terrestrial Intelligence). My project&#8217;s title [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=adityabhatt.wordpress.com&amp;blog=10529951&amp;post=191&amp;subd=adityabhatt&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>So I got this mail in my inbox from Google:</p>
<blockquote><p>Dear Aditya,</p>
<p>Congratulations! Your proposal &#8220;Open sourcing of Exploratory Techniques for the SETI Search&#8221; as submitted to &#8220;SETI Institute&#8221; has been accepted for Google Summer of Code 2011.</p></blockquote>
<p>I&#8217;m in! <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>I&#8217;ll be interning with the SETI Institute (Search for Extra Terrestrial Intelligence). My project&#8217;s title is <em>Open Sourcing of Exploratory Techniques for the SETI Search</em>. The competition was tough, and so will be the work. I&#8217;m looking forward to an exciting summer with tons of code and signal analysis.</p>
<p>My mentor is Gerry Harp, who is an astrophysicist at the SETI Institute. Guided by him and Rob Ackermann, I&#8217;ll be implemeting and improving their signal search algorithms as reference implementations in C, and publishing them in the form of an official SETI library. These algorithms, together with the published SETI observation data, should enable citizen scientists and enthusiasts to analyse signals on their own, thus inching closer to Dr. Jill Tarter&#8217;s 2009 TED wish:</p>
<blockquote><p>I wish that you would empower Earthlings everywhere to become active participants in the ultimate search for cosmic company.</p></blockquote>
<p>The work will provide people with a way to analyze the data collected by the Allen Telescope Array (ATA).</p>
<p>I&#8217;ll regularly be blogging about my work.</p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/adityabhatt.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/adityabhatt.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/adityabhatt.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/adityabhatt.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/adityabhatt.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/adityabhatt.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/adityabhatt.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/adityabhatt.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/adityabhatt.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/adityabhatt.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/adityabhatt.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/adityabhatt.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/adityabhatt.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/adityabhatt.wordpress.com/191/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=adityabhatt.wordpress.com&amp;blog=10529951&amp;post=191&amp;subd=adityabhatt&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://adityabhatt.wordpress.com/2011/04/29/im-in-google-summer-of-code-the-seti-institute/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/122ba5e56cd16fb1a9871d48e84ad229?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">aditya</media:title>
		</media:content>
	</item>
		<item>
		<title>A Contract with Insanity &#8211; I</title>
		<link>http://adityabhatt.wordpress.com/2011/04/24/a-contract-with-insanity-i/</link>
		<comments>http://adityabhatt.wordpress.com/2011/04/24/a-contract-with-insanity-i/#comments</comments>
		<pubDate>Sun, 24 Apr 2011 13:59:23 +0000</pubDate>
		<dc:creator>Aditya Bhatt</dc:creator>
				<category><![CDATA[Stories]]></category>
		<category><![CDATA[boredom]]></category>
		<category><![CDATA[psych]]></category>
		<category><![CDATA[stories]]></category>
		<category><![CDATA[war]]></category>

		<guid isPermaLink="false">http://adityabhatt.wordpress.com/?p=184</guid>
		<description><![CDATA[Richard woke up to the infuriating din of the alarm clock. It was an anniversary present from his wife, and he loathed it. His love for her and a desire to avoid her overly-emotional rants – that was all that kept him from chucking it out of the window. He wasn’t looking forward to going [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=adityabhatt.wordpress.com&amp;blog=10529951&amp;post=184&amp;subd=adityabhatt&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Richard woke up to the infuriating din of the alarm clock. It was an anniversary present from his wife, and he loathed it. His love for her and a desire to avoid her overly-emotional rants – that was all that kept him from chucking it out of the window.</p>
<p>He wasn’t looking forward to going to work. No, his job wasn’t boring. It also wasn’t some bullshit about workplace politics. It didn’t matter that they called him a dick. Or a dickhead, for that matter, since he messed around with people’s heads. It was exciting work; rather, it was the nature of the job he had signed up for, that gave him the creeps. He would return home, often after midnight, ashen-faced and hyperventilating.</p>
<p>Rick was a psychiatrist. There is a reason why Seattle has the largest density of shrinks when pitched against any other American city. It has something to do with the always-gloomy weather. You never get to see sunshine. Rick used to have one of the most profitable jobs in the city, but he wasn’t too happy about it. He had left it for his current job.</p>
<p>He took a shower and dressed up for the day at work. He descended the stairs for the hall, where his wife had already served breakfast. She had eaten her share. Normally, she waited for him to dig in before she started eating, but things weren’t going well. Cursing the depressing weather, he decided that it was time for another one of those talks with her. <em>Tonight</em>. He picked up the day’s copy of <em>The Seattle Times</em>¸ dated 23<sup>rd</sup> March, 1952. He filtered out the anti-communist propaganda and scanned the precious few articles that actually had something worth reading.</p>
<p>He got into his car, a new Cadillac convertible; closing the door with more force than needed. It was a bad choice to buy a convertible in Seattle, given that wet weather, but his wife would have none of it. He started the hour-long drive. He could hear the soft patter of the raindrops on the glass, and watched the wipers swing. It was comforting, oddly relaxing in a way, and it helped him think. He tried to recall how he had landed himself in this mess.</p>
<p><em>                </em>He remembered Rod. Rod had been a close friend, a long-time patient of his. Chronic Depression. Shrinks should never get attached to their patients, but when you have a patient with an interesting personality pouring out the smallest details of his life for you (for purely diagnostic purposes), you can’t help but want to talk. It was that fateful Sunday, during one of their numerous afternoon chats, that Rod that had talked to him about a possible new job.</p>
<p>He’d said he had contacts in the government. That Rick could earn a lot more. Six figures! And the research! It was a known fact that if you did your research working under the government’s protection, you didn’t have to be at the receiving end of medical ethics lawsuits. Later, Rod admitted that he was a recruiter for the ‘agency’. They never said the name out loud. But it always meant the CIA. He had hesitated at first; later, the prospect of unlimited research funds and fat pay-checks seemed too appealing and he had to take the job.</p>
<p>He had always dreamt of publishing a ground-breaking research paper, something that would alter the scene of psychoanalytic research forever. Now, he had the chance. He was excited about it. Rick was a Harvard grad, and later had joined as a postdoc researcher there. But there was only so much you could do at Harvard. His research focused on mind-altering hallucinogens. Ever since the senate had passed that cursed new Act, the inflow of consenting test subjects had slowed down to a trickle. It wasn’t that the people were scared of tests; the act had bumped up the sheer amount of paperwork required to roughly thrice. It was suffocating for any academic and subject alike.  But working for the CIA eliminated almost all the paperwork, and he could concentrate on just the research.</p>
<p>Rick was near the place. It was a dark and dirty street, the kind where you’d expect pot-smoking scum to linger. He stopped by a shabby-looking building, with wet plaster peeling off its walls.  He parked his car alongside several others. The whole scene had a strange contrast to it; bright, expensive cars in a dirty street. As always, he paused for a moment before entering the building that was The Facility, contemplating the horrors inside.</p>
<p>He walked to the door in the brick wall. He pressed the doorbell, and after a moment, was greeted by a burly guard in uniform. The interior of the office looked the complete opposite of whatever the building looked from outside – clean, white, and smelling like a clinic. He was led to one of the examination chambers. Here, he was made to lie on a stretcher while a nurse checked his heart rate, blood pressure, and body temperature. A blood sample was also taken. This was all routine procedure, for everyone who entered the Facility, to be conducted every time. A quick way to know if the person had been drugged, was panicking, or was under pressure.</p>
<p>Once the tests were done, Rick walked to his office. He was to be assigned a new case today. He had no idea what it would be, but he knew for sure that it was going to be ugly. He unlocked the door (What was the point in having a lock? The bosses had the keys to all doors!). He cast aside his coat and hat on a chair and settled himself behind his desk.</p>
<p>The Facility ran low on ethics. They had Recruiters; people like Rod. The Recruiters would either befriend or kidnap people – civilians, doctors, soldiers, housewives, children, prisoners, rapists, homosexuals, and transsexuals – people from all walks of life, the rich and the poor. The doctors and shrinks were given posts like Rick’s, and the rest were either blackmailed into becoming Recruiters, or were used as test subjects. The doctors would give doses of barbiturates, LSD, and heroin to the subjects, over defined periods of time, and gauge their responses and behavior under the influence. Although no one ever said it out loud, since it seemed a bit preposterous, one of the driving factors behind the psychiatric research was the possibility of creating what was called a ‘Manchurian Candidate’.  This was a person who would obey any order, carry out the task, and then forget all about it once the job was done. It was perfect espionage. The usefulness of such a pawn was evident in scenarios involving assassinations and spying. A substantial amount of time and research was invested in mind-control techniques: truth serums, hypnosis, and the like. Brainwashing was studied as a rigorous science. Then there was the radiology department. A particularly hideous experiment had involved the doctors taking a blood sample in a syringe from a pregnant woman suffering from cancer. They had dissolved a radioactive mixture of caesium and a particularly lethal plutonium isotope in the blood, and injected it back into the woman. The aim was to study the effects of radioactive poisoning on childbirth in the case of a potential nuclear war. The woman was told that she was being given vitamins, and that this was all research for a new medical therapy to have healthier babies. The woman’s health deteriorated and she died shortly after giving birth to a ‘jellyfish baby’. It had working organs, a brain, a beating heart, everything; but not a single bone in its body. The pitiful, ugly mass of flesh continued swelling and contracting in its desperate attempts to breathe, and died twelve hours after birth. The woman’s death was attributed to her cancer.</p>
<p>Rick wished he could quit this work and go back to Harvard. But something, deep down inside, told him that that was a lost cause. He knew too much. Once you joined, you couldn’t leave. He could either keep working, or get shot. Or worse, get used as a test subject. The people who worked at the facility couldn’t tell anyone about their work – everyone had a story ready, just in case. Wives were lied to. So much for that bullshit about America being the land of liberty, milk, and honey. All of this was somehow supposed to be justified: <em>We’re at war!</em></p>
<p>But was there really a war? No! It was sheer paranoia, an imaginary war. A war of egos, a war of tension, of spirit, of ideology. He was disgusted by the artificiality of it all – all this research, all the military spending, the anti-communist propaganda &#8211; all of this looked like an excuse to go to war. Or was it the reverse? An imaginary war, a national mania, all induced to benefit all those arms and pharmacy corporations that had major stakes in the government? Suddenly, all those conspiracy theories the hippies used to recite made sense.</p>
<p>Rick stopped his chain of thoughts when someone knocked.</p>
<p>“Come in.”</p>
<p>His boss walked in. He was wearing a white lab coat. Heinrich Krueger was a man in his forties, donning a lab coat and a wide smile that didn’t reach his eyes. He was a German. An ex-Nazi, he had conducted hundreds of experiments on inmates in Auschwitz, the infamous death camp. The CIA had screened the archives of Nazi doctors and had covertly recruited the ones it deemed experienced to work for US interests. It wasn’t like the doctors had any choice in the matter; this work was fun for them, and if they had refused, they would certainly have been sentenced to death in the Nuremburg war crimes’ trials.</p>
<p>Krueger got straight to the point.</p>
<p>“Your new case. A man aged fifty. Here’s his file. We have some questions we want you to ask him. They’re in the file. Write down your observations.”</p>
<p>He handed Rick the file, and abruptly got up. He walked to the door and paused ever so slightly, as if he wanted to say something, but then he quietly exited and closed the door behind him.</p>
<p>Rick didn&#8217;t know it then, but that day, his world, and everything he had worked for till that point in his life, was going to be torn apart.</p>
<p><em>To be concluded.</em></p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/adityabhatt.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/adityabhatt.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/adityabhatt.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/adityabhatt.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/adityabhatt.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/adityabhatt.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/adityabhatt.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/adityabhatt.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/adityabhatt.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/adityabhatt.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/adityabhatt.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/adityabhatt.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/adityabhatt.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/adityabhatt.wordpress.com/184/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=adityabhatt.wordpress.com&amp;blog=10529951&amp;post=184&amp;subd=adityabhatt&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://adityabhatt.wordpress.com/2011/04/24/a-contract-with-insanity-i/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/122ba5e56cd16fb1a9871d48e84ad229?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">aditya</media:title>
		</media:content>
	</item>
		<item>
		<title>Go go go!</title>
		<link>http://adityabhatt.wordpress.com/2011/02/17/gogogo/</link>
		<comments>http://adityabhatt.wordpress.com/2011/02/17/gogogo/#comments</comments>
		<pubDate>Thu, 17 Feb 2011 17:05:56 +0000</pubDate>
		<dc:creator>Aditya Bhatt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[kde]]></category>
		<category><![CDATA[kde-planet]]></category>
		<category><![CDATA[sprint]]></category>
		<category><![CDATA[trip]]></category>

		<guid isPermaLink="false">http://adityabhatt.wordpress.com/?p=177</guid>
		<description><![CDATA[The Konf is the firstest *big* KDE event in India, with the awesomest people, awesomest talks. Soak yourself in the bestest geekdom! 7 days left to register. Go!<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=adityabhatt.wordpress.com&amp;blog=10529951&amp;post=177&amp;subd=adityabhatt&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The Konf is the firstest *big* KDE event in India, with the awesomest people, awesomest talks. Soak yourself in the bestest geekdom!</p>
<p>7 days left to register. Go!</p>
<p><a title="Gooooo" href="http://kde.in/conf/" target="_blank"><img class="alignnone" src="http://kde.in/files/media/badge.png" alt="" width="322" height="108" /></a></p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/adityabhatt.wordpress.com/177/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/adityabhatt.wordpress.com/177/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/adityabhatt.wordpress.com/177/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/adityabhatt.wordpress.com/177/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/adityabhatt.wordpress.com/177/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/adityabhatt.wordpress.com/177/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/adityabhatt.wordpress.com/177/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/adityabhatt.wordpress.com/177/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/adityabhatt.wordpress.com/177/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/adityabhatt.wordpress.com/177/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/adityabhatt.wordpress.com/177/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/adityabhatt.wordpress.com/177/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/adityabhatt.wordpress.com/177/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/adityabhatt.wordpress.com/177/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=adityabhatt.wordpress.com&amp;blog=10529951&amp;post=177&amp;subd=adityabhatt&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://adityabhatt.wordpress.com/2011/02/17/gogogo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/122ba5e56cd16fb1a9871d48e84ad229?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">aditya</media:title>
		</media:content>

		<media:content url="http://kde.in/files/media/badge.png" medium="image" />
	</item>
		<item>
		<title>A new year.</title>
		<link>http://adityabhatt.wordpress.com/2011/01/22/a-new-year/</link>
		<comments>http://adityabhatt.wordpress.com/2011/01/22/a-new-year/#comments</comments>
		<pubDate>Sat, 22 Jan 2011 11:36:04 +0000</pubDate>
		<dc:creator>Aditya Bhatt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[blinken]]></category>
		<category><![CDATA[gre]]></category>
		<category><![CDATA[kde]]></category>
		<category><![CDATA[kde-planet]]></category>
		<category><![CDATA[trip]]></category>

		<guid isPermaLink="false">http://adityabhatt.wordpress.com/?p=166</guid>
		<description><![CDATA[I haven&#8217;t blogged in about four-five months.﻿This was one of the busiest periods of my student life, with a ton of personal, academic, and professional stuff that used up all of my time. I gave a talk at (the last) FOSS.in, India&#8217;s biggest international open source event. Meanwhile, Nikhil Marathe made a web service using [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=adityabhatt.wordpress.com&amp;blog=10529951&amp;post=166&amp;subd=adityabhatt&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I haven&#8217;t blogged in about four-five months.﻿This was one of the busiest periods of my student life, with a ton of personal, academic, and professional stuff that used up all of my time.</p>
<p>I gave a talk at (the last) FOSS.in, India&#8217;s biggest international open source event. Meanwhile, <a href="http://kodeclutz.blogspot.com" target="_blank">Nikhil Marathe</a> made a web service using libface. It is named <a title="MugshotApp" href="http://mugshotapp.com" target="_blank">Mugshot</a>.</p>
<p>In the three days of pure geekiness that FOSS.in afforded me﻿﻿﻿﻿﻿, I decided to get my hands dirty with some code again. I and <a href="http://saidinesh5.wordpress.com" target="_blank">Sai Dinesh</a> were looking for a small KDE app to port to the N900, and in about half an hour, Blinken was &#8216;ported&#8217; (mostly involved removal of code rather than addition of it, ugly/hackish code&#8217;s <a href="http://bitbucket.org/adityab/blinken-touch" target="_blank">here</a>):﻿﻿﻿</p>
<div id="attachment_167" class="wp-caption aligncenter" style="width: 310px"><a href="http://adityabhatt.files.wordpress.com/2011/01/2010-12-16-194805.jpg"><img class="size-medium wp-image-167" title="Bilnken 'Touch'" src="http://adityabhatt.files.wordpress.com/2011/01/2010-12-16-194805.jpg?w=300&#038;h=240" alt="" width="300" height="240" /></a><p class="wp-caption-text">Bilnken &#039;Touch&#039;</p></div>
<p>And all this time, I was preparing for the GRE (Graduate Record Examination), which Indians give so that they can go to the US of A for postgraduate studies and then steal American jobs ;-P. Two days ago, I gave the exam and got a fairly satisfying score of 1460 out of 1600 (full marks in math and 660 out of 800 in verbal), so I&#8217;m happy now <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>As of now, I&#8217;ve started my sixth semester, and this time, all the courses I have are ones that I love. So I guess this is going to be one happy semester. I haven&#8217;t worked on any KDE/digiKam/libface stuff in this time, with my presence on IRC and the Mailing Lists decreasing to almost zero. I guess now I can start again. Now I&#8217;m reading b.k.o threads and upping from svn. Meanwhile, Marcel has been working tirelessly on face tagging in digiKam, picking up from where I left. I need to re-learn a lot of things and get familiar with new (and old) code again.</p>
<p>Oh, and I&#8217;m going to:</p>
<p style="text-align:center;"><a href="http://kde.in/conf/"><img class="aligncenter" title="conf.kde.in 2011" src="http://kde.in/wp-content/themes/KDE4WP/slides/banner001.png" alt="conf.kde.in 2011" width="552" height="120" /></a></p>
<p style="text-align:left;">I&#8217;ve submitted my talk proposal in the CfP; if it gets selected I&#8217;ll be talking about digiKam and it&#8217;s features. Fingers crossed.</p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/adityabhatt.wordpress.com/166/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/adityabhatt.wordpress.com/166/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/adityabhatt.wordpress.com/166/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/adityabhatt.wordpress.com/166/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/adityabhatt.wordpress.com/166/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/adityabhatt.wordpress.com/166/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/adityabhatt.wordpress.com/166/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/adityabhatt.wordpress.com/166/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/adityabhatt.wordpress.com/166/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/adityabhatt.wordpress.com/166/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/adityabhatt.wordpress.com/166/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/adityabhatt.wordpress.com/166/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/adityabhatt.wordpress.com/166/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/adityabhatt.wordpress.com/166/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=adityabhatt.wordpress.com&amp;blog=10529951&amp;post=166&amp;subd=adityabhatt&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://adityabhatt.wordpress.com/2011/01/22/a-new-year/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/122ba5e56cd16fb1a9871d48e84ad229?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">aditya</media:title>
		</media:content>

		<media:content url="http://adityabhatt.files.wordpress.com/2011/01/2010-12-16-194805.jpg?w=300" medium="image">
			<media:title type="html">Bilnken &#039;Touch&#039;</media:title>
		</media:content>

		<media:content url="http://kde.in/wp-content/themes/KDE4WP/slides/banner001.png" medium="image">
			<media:title type="html">conf.kde.in 2011</media:title>
		</media:content>
	</item>
		<item>
		<title>Aix en Provence : My first KDE sprint</title>
		<link>http://adityabhatt.wordpress.com/2010/09/03/kde-imaging-sprint-201/</link>
		<comments>http://adityabhatt.wordpress.com/2010/09/03/kde-imaging-sprint-201/#comments</comments>
		<pubDate>Fri, 03 Sep 2010 15:09:35 +0000</pubDate>
		<dc:creator>Aditya Bhatt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[digikam]]></category>
		<category><![CDATA[france]]></category>
		<category><![CDATA[kde]]></category>
		<category><![CDATA[kde-planet]]></category>
		<category><![CDATA[trip]]></category>

		<guid isPermaLink="false">http://adityabhatt.wordpress.com/?p=143</guid>
		<description><![CDATA[I returned home two days ago from the 2010 KDE Imaging sprint. It was awesome because: It was fun to &#8220;meet the people behind the email addresses&#8221;, I learned some new stuff from seeing how the others code, I&#8217;d never been outside of India before. I arrived in Marseille sometime before noon, after a journey [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=adityabhatt.wordpress.com&amp;blog=10529951&amp;post=143&amp;subd=adityabhatt&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I returned home two days ago from the 2010 KDE Imaging sprint. It was awesome because:</p>
<ul>
<li>It was fun to &#8220;meet the people behind the email addresses&#8221;,</li>
<li>I learned some new stuff from seeing how the others code,</li>
<li>I&#8217;d never been outside of India before.</li>
</ul>
<p>I arrived in Marseille sometime before noon, after a journey of more than 24 hours, barely catching about 3 hours of sleep (I still don&#8217;t get how people can sleep in an airplane). At the airport I met fellow digiKam contributor and SoK student Kunal, and managed to catch a bus to Aix en Provence, which is approximately a 20-minute ride from the airport. Aix is Gilles Caulier&#8217;s home city, and, I must say, a beautiful one.</p>
<div id="attachment_144" class="wp-caption aligncenter" style="width: 710px"><a href="http://adityabhatt.files.wordpress.com/2010/09/center.jpg"><img class="size-full wp-image-144" title="The Aix City Center" src="http://adityabhatt.files.wordpress.com/2010/09/center.jpg?w=632" alt="The Aix City Center"   /></a><p class="wp-caption-text">The Aix City Center Fountain</p></div>
<p>Most of us arrived a day earlier, and in the evening, Gilles invited us to a digiKam talk that he was to give in a local LUG meeting. In the same place where we would code the next day. It was fun chatting with the LUG folk (some of them knew English).</p>
<p>I had to crash on bed soon that night, I was sort of starved of sleep.</p>
<p>The next day, I woke up early and walked around the hotel&#8217;s neighborhood, taking pictures of whatever caught my eye. There was this really nice cathedral there, just a five-minute walk from the hotel:</p>
<div id="attachment_146" class="wp-caption aligncenter" style="width: 710px"><a href="http://adityabhatt.files.wordpress.com/2010/09/dsc01601.jpg"><img class="size-full wp-image-146" title="Cathedral" src="http://adityabhatt.files.wordpress.com/2010/09/dsc01601.jpg?w=632" alt="Cathedral"   /></a><p class="wp-caption-text">Cathedral (Photo courtesy of Marcel)</p></div>
<p>Gabriel arrived that morning, and then we proceeded to the Maison des Associations Tavan, which is the hall where we would work. We just called it &#8220;Tavan&#8221;.</p>
<p>During the coding, Marcel showed me his new revamped implementation of the face interface in digiKam, and we discussed with Gilles some of the possible reasons behind several crashy bugs in the face scan process. Marcel had committed the face thumbnailer delegate he&#8217;d been working on since a while, and I and Gilles played around with it for a bit.</p>
<p>We had a fair amount of false positives in the face detection, and while this accuracy can be improved in libface, there will always be some false positives, so we needed a &#8220;reject button&#8221; overlay on each face thumbnail to be able to dismiss these.</p>
<div id="attachment_147" class="wp-caption alignleft" style="width: 310px"><a href="http://adityabhatt.files.wordpress.com/2010/09/laugh.jpg"><img class="size-medium wp-image-147" title="Laughing at bad detections" src="http://adityabhatt.files.wordpress.com/2010/09/laugh.jpg?w=300&#038;h=225" alt="" width="300" height="225" /></a><p class="wp-caption-text">We had a good laugh when certain unthinkable things got detected as faces</p></div>
<p>I set to work on that, with help from Marcel. I wasn&#8217;t able to finish it due to some bugs in my code, but it looks like Marcel has fixed it now.</p>
<p>Michael had brought a really nice device that he had assembled and programmed himself :</p>
<div id="attachment_148" class="wp-caption alignright" style="width: 310px"><a href="http://adityabhatt.files.wordpress.com/2010/09/dsc01236.jpg"><img class="size-medium wp-image-148" title="DSC01236" src="http://adityabhatt.files.wordpress.com/2010/09/dsc01236.jpg?w=300&#038;h=225" alt="" width="300" height="225" /></a><p class="wp-caption-text">Michael&#039;s device has a GPS receiver and an Atmega 168 microcontroller. It shows the GPS coordinates on a display on the lid of the box. And there&#039;s an SD card too to which the GPS coords are logged.</p></div>
<p>Meanwhile, we discussed the feasibility of having arbitrary (as in polygonal/freeform closed curve) region tagging in digiKam, which seems an enticing idea. Some other future improvements such as having truly multithreaded batch tasks (like fingerprinting), and having a unified task manager for controlling these were discussed.</p>
<div id="attachment_149" class="wp-caption alignleft" style="width: 310px"><a href="http://adityabhatt.files.wordpress.com/2010/09/beer.jpg"><img class="size-medium wp-image-149" title="P1030874" src="http://adityabhatt.files.wordpress.com/2010/09/beer.jpg?w=300&#038;h=225" alt="" width="300" height="225" /></a><p class="wp-caption-text">Martin&#039;s special Czech beer and Andreas&#039; hard-as-rock bread.</p></div>
<p>Gabriel and Michael worked on the polishing stuff in the reverse geocoding project, and Martin continued working on the image versioning. This was the first time I saw Gabriel&#8217;s project in action. Kunal continued with QtScript integration, and we discussed interesting use-cases of this very useful and enabling project. So I guess Hot New Stuff &#8482; is coming to digiKam soon! So we&#8217;ve all been working on our projects post-GSoC too <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  Andreas Huggel was there for Exiv2 work, and Laurent Espitalier for database interop with other applications.</p>
<p>I&#8217;m looking forward to working for a long time with the digiKam team. And hopefully I&#8217;ll be able to attend the next sprint too.</p>
<div id="attachment_150" class="wp-caption aligncenter" style="width: 650px"><a href="http://adityabhatt.files.wordpress.com/2010/09/all.jpg"><img class="size-full wp-image-150" title="all" src="http://adityabhatt.files.wordpress.com/2010/09/all.jpg?w=632" alt=""   /></a><p class="wp-caption-text">The entire team.</p></div><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/adityabhatt.wordpress.com/143/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/adityabhatt.wordpress.com/143/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/adityabhatt.wordpress.com/143/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/adityabhatt.wordpress.com/143/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/adityabhatt.wordpress.com/143/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/adityabhatt.wordpress.com/143/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/adityabhatt.wordpress.com/143/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/adityabhatt.wordpress.com/143/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/adityabhatt.wordpress.com/143/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/adityabhatt.wordpress.com/143/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/adityabhatt.wordpress.com/143/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/adityabhatt.wordpress.com/143/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/adityabhatt.wordpress.com/143/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/adityabhatt.wordpress.com/143/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=adityabhatt.wordpress.com&amp;blog=10529951&amp;post=143&amp;subd=adityabhatt&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://adityabhatt.wordpress.com/2010/09/03/kde-imaging-sprint-201/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/122ba5e56cd16fb1a9871d48e84ad229?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">aditya</media:title>
		</media:content>

		<media:content url="http://adityabhatt.files.wordpress.com/2010/09/center.jpg" medium="image">
			<media:title type="html">The Aix City Center</media:title>
		</media:content>

		<media:content url="http://adityabhatt.files.wordpress.com/2010/09/dsc01601.jpg" medium="image">
			<media:title type="html">Cathedral</media:title>
		</media:content>

		<media:content url="http://adityabhatt.files.wordpress.com/2010/09/laugh.jpg?w=300" medium="image">
			<media:title type="html">Laughing at bad detections</media:title>
		</media:content>

		<media:content url="http://adityabhatt.files.wordpress.com/2010/09/dsc01236.jpg?w=300" medium="image">
			<media:title type="html">DSC01236</media:title>
		</media:content>

		<media:content url="http://adityabhatt.files.wordpress.com/2010/09/beer.jpg?w=300" medium="image">
			<media:title type="html">P1030874</media:title>
		</media:content>

		<media:content url="http://adityabhatt.files.wordpress.com/2010/09/all.jpg" medium="image">
			<media:title type="html">all</media:title>
		</media:content>
	</item>
		<item>
		<title>Sweet</title>
		<link>http://adityabhatt.wordpress.com/2010/08/21/sweet/</link>
		<comments>http://adityabhatt.wordpress.com/2010/08/21/sweet/#comments</comments>
		<pubDate>Sat, 21 Aug 2010 05:52:35 +0000</pubDate>
		<dc:creator>Aditya Bhatt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[digikam]]></category>
		<category><![CDATA[gsoc]]></category>
		<category><![CDATA[kde]]></category>
		<category><![CDATA[kde-planet]]></category>

		<guid isPermaLink="false">http://adityabhatt.wordpress.com/?p=131</guid>
		<description><![CDATA[This landed in my mailbox today: Hi Aditya Bhatt, We have processed the evaluation for your project named Face Recognition in digiKam with KDE. Congratulations, from our data it seems that you have successfully passed the Final Evaluations. Please contact your mentor to discuss the results of your evaluation and to plan your goals and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=adityabhatt.wordpress.com&amp;blog=10529951&amp;post=131&amp;subd=adityabhatt&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This landed in my mailbox today:</p>
<blockquote>
<div id=":9c">
<div id=":9d">
<div>
<div>
<p>Hi Aditya Bhatt,</p>
</div>
<div>
<p>We have processed the evaluation for your project named Face Recognition in digiKam with KDE.</p>
<p>Congratulations, from our data it seems that you have successfully  passed the Final Evaluations.   Please contact your mentor to discuss the results of your evaluation  and to plan your goals and development plan for the rest of the program</p>
</div>
<div>
<p>Greetings,<br />
The Google Open Source Programs Team</p>
</div>
</div>
</div>
</div>
</blockquote>
<p>This has been the one awesome year, from getting selected for GSoC to working with KDE and digiKam, getting paid to work on what I like to do, finally passing the final evaluations, going to a sprint in France next week, and also getting some/all exams waived in the beginning of next month. Awesome <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Looking forward to working more with digiKam, I have a lot of things I want to implement&#8230;</p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/adityabhatt.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/adityabhatt.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/adityabhatt.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/adityabhatt.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/adityabhatt.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/adityabhatt.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/adityabhatt.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/adityabhatt.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/adityabhatt.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/adityabhatt.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/adityabhatt.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/adityabhatt.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/adityabhatt.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/adityabhatt.wordpress.com/131/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=adityabhatt.wordpress.com&amp;blog=10529951&amp;post=131&amp;subd=adityabhatt&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://adityabhatt.wordpress.com/2010/08/21/sweet/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/122ba5e56cd16fb1a9871d48e84ad229?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">aditya</media:title>
		</media:content>
	</item>
		<item>
		<title>[digiKam GSoC] Face Tags progress</title>
		<link>http://adityabhatt.wordpress.com/2010/08/10/digikam-gsoc-face-tags-progress/</link>
		<comments>http://adityabhatt.wordpress.com/2010/08/10/digikam-gsoc-face-tags-progress/#comments</comments>
		<pubDate>Tue, 10 Aug 2010 21:12:35 +0000</pubDate>
		<dc:creator>Aditya Bhatt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[digikam]]></category>
		<category><![CDATA[face detection]]></category>
		<category><![CDATA[face recognition]]></category>
		<category><![CDATA[gsoc]]></category>
		<category><![CDATA[I'm going to]]></category>
		<category><![CDATA[kde]]></category>
		<category><![CDATA[kde-planet]]></category>

		<guid isPermaLink="false">http://adityabhatt.wordpress.com/?p=119</guid>
		<description><![CDATA[The GSoC deadline is coming soon, so here&#8217;s what I&#8217;ve done so far: Face detection is now almost fully integrated into digiKam, you can scan photographs in all of your albums by clicking the &#8220;Scan for faces&#8221; button in the new People Sidebar on the left. The scanner uses the same progress dialog as the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=adityabhatt.wordpress.com&amp;blog=10529951&amp;post=119&amp;subd=adityabhatt&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The GSoC deadline is coming soon, so here&#8217;s what I&#8217;ve done so far:</p>
<p>Face detection is now almost fully integrated into digiKam, you can scan photographs in all of your albums by clicking the &#8220;Scan for faces&#8221; button in the new People Sidebar on the left.</p>
<div id="attachment_120" class="wp-caption aligncenter" style="width: 710px"><a href="http://adityabhatt.files.wordpress.com/2010/08/scanning.png"><img class="size-full wp-image-120" title="Scanning your albums for people" src="http://adityabhatt.files.wordpress.com/2010/08/scanning.png?w=632" alt="Scanning your albums for people"   /></a><p class="wp-caption-text">Scanning your albums for people</p></div>
<p>The scanner uses the same progress dialog as the already-existing image fingerprint generator for the fuzzy searches uses. It has resume support, of course.</p>
<p>You can configure your detection and recognition accuracy :</p>
<div id="attachment_122" class="wp-caption aligncenter" style="width: 710px"><a href="http://adityabhatt.files.wordpress.com/2010/08/settings.png"><img class="size-full wp-image-122" title="Tune speed, accuracy, etc." src="http://adityabhatt.files.wordpress.com/2010/08/settings.png?w=632" alt="Tune speed, accuracy, etc."   /></a><p class="wp-caption-text">Tune speed, accuracy, etc.</p></div>
<p>The new People Sidebar has a rescan button and a filtered tag tree view that only shows tags below the &#8220;People&#8221; tag. So yes, we&#8217;re using normal digiKam tags to organize people, and not some separate marking.</p>
<p>By default, images with detected faces go into the &#8220;Unknown&#8221; tag. Once you tag all people in the an image, the &#8220;Unknown&#8221; tag is unassigned for it.</p>
<p>In a recent change, People Tagging now supports grouping people into categories. You could, for example, make a new sub tag of &#8220;People&#8221; named &#8220;Family&#8221;, and drag-move all family members names to it. Later, whenever a family member is tagged, the tag below &#8220;Family&#8221; will be assigned to him/her, instead of creating a new tag below the &#8220;People&#8221; tag. No, you can&#8217;t have two people with the same name (as of now).</p>
<div id="attachment_123" class="wp-caption aligncenter" style="width: 710px"><a href="http://adityabhatt.files.wordpress.com/2010/08/treeview.png"><img class="size-full wp-image-123" title="People Sidebar" src="http://adityabhatt.files.wordpress.com/2010/08/treeview.png?w=632" alt="People Sidebar"   /></a><p class="wp-caption-text">People Sidebar</p></div>
<p>Clicking on a person name in the tag tree will show you all photos that have that person in them. We also have a normal tag sidebar on the right (not shown here), using which you can select any two or more persons to see photos with all of these in them. Of course, this is standard tag behavior.</p>
<p>And here&#8217;s the region tagging in the image preview:</p>
<div id="attachment_124" class="wp-caption aligncenter" style="width: 710px"><a href="http://adityabhatt.files.wordpress.com/2010/08/preview.png"><img class="size-full wp-image-124" title="Face region tagging" src="http://adityabhatt.files.wordpress.com/2010/08/preview.png?w=632" alt="Face region tagging"   /></a><p class="wp-caption-text">Face region tagging</p></div>
<p>Most of the region tagging widget&#8217;s code is lifted straight from the nepomuk-peopletag widget and the rectangle-region tagging class is now exported by libkface. It isn&#8217;t awesome, has a few glitches, but it works. Will be improved later.</p>
<p>Dismiss a face (or non-face <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  ) by clicking on the red cross, and approve a name by pressing the tick mark, upon which the tag is immediately applied. If a face is not detected (happens), you can add your own face region tag.</p>
<p>The iconview-based tagging is to be done later this week . There were some deep changes required in digiKam model-view code which my co-mentor Marcel is working on. Once these changes are done, it should be easy to have faces as icons in the iconview, with a text entry widget below each face thumbnail, etc. The face recognition code is already there in the FaceIface interface I&#8217;ve written in digiKam, but will be used only with the iconview.</p>
<p>I probably could have done things faster, but real life gets in the way. My new semester started half a month ago, so my work pace isn&#8217;t exactly what I&#8217;d like. I&#8217;ll blog about work as soon as I finish the recognition.</p>
<p>Also, we&#8217;re releasing digiKam 2.0 on Christmas, this December. The current release is 1.3.0. The plan is to release 1.4.0 and probably 1.5.0 as bugfix/incremental releases. There will be a 2.0 beta about a month before it&#8217;s release. 2.0 will have all the 3 huge GSoC projects merged in. So that gives me a lot of time to fix things, improve/change the recognition algorithm, etc.</p>
<p>Anyway,</p>
<p>I&#8217;m going to : <a href="http://farm5.static.flickr.com/4031/4620818767_5fb7450bc0_m.jpg"><img class="aligncenter" title=":D" src="http://farm5.static.flickr.com/4031/4620818767_5fb7450bc0_m.jpg" alt=":D" width="240" height="105" /></a></p>
<p>Gilles is organizing the event in his home city, Aix en Provence, near the famous city of Marseille in France, so kudos to him.</p>
<p>I&#8217;ll be discussing parts of my project like usability issues, fixing my crappy GUI code, and will do some bugfixes. And finishing off possibly unfinished parts of my project.</p>
<p>Looking forward to meeting with the great team, and a big thank-you to Claudia and the e.V for sponsoring everything!</p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/adityabhatt.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/adityabhatt.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/adityabhatt.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/adityabhatt.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/adityabhatt.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/adityabhatt.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/adityabhatt.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/adityabhatt.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/adityabhatt.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/adityabhatt.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/adityabhatt.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/adityabhatt.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/adityabhatt.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/adityabhatt.wordpress.com/119/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=adityabhatt.wordpress.com&amp;blog=10529951&amp;post=119&amp;subd=adityabhatt&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://adityabhatt.wordpress.com/2010/08/10/digikam-gsoc-face-tags-progress/feed/</wfw:commentRss>
		<slash:comments>36</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/122ba5e56cd16fb1a9871d48e84ad229?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">aditya</media:title>
		</media:content>

		<media:content url="http://adityabhatt.files.wordpress.com/2010/08/scanning.png" medium="image">
			<media:title type="html">Scanning your albums for people</media:title>
		</media:content>

		<media:content url="http://adityabhatt.files.wordpress.com/2010/08/settings.png" medium="image">
			<media:title type="html">Tune speed, accuracy, etc.</media:title>
		</media:content>

		<media:content url="http://adityabhatt.files.wordpress.com/2010/08/treeview.png" medium="image">
			<media:title type="html">People Sidebar</media:title>
		</media:content>

		<media:content url="http://adityabhatt.files.wordpress.com/2010/08/preview.png" medium="image">
			<media:title type="html">Face region tagging</media:title>
		</media:content>

		<media:content url="http://farm5.static.flickr.com/4031/4620818767_5fb7450bc0_m.jpg" medium="image">
			<media:title type="html">:D</media:title>
		</media:content>
	</item>
	</channel>
</rss>
