<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Praveen's Blog</title><link href="http://praveen.kumar.in/" rel="alternate"></link><link href="http://praveen.kumar.in/atom.xml" rel="self"></link><id>http://praveen.kumar.in/</id><updated>2015-04-27T19:36:00+02:00</updated><entry><title>FizzBuzz in Rust</title><link href="http://praveen.kumar.in/2015/04/27/fizzbuzz-in-rust/" rel="alternate"></link><updated>2015-04-27T19:36:00+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2015-04-27:2015/04/27/fizzbuzz-in-rust/</id><summary type="html">
&lt;div class="section" id="overview"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="#id2"&gt;Overview&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I just came across &lt;a class="reference external" href="http://www.rust-lang.org/"&gt;Rust&lt;/a&gt;, what seems to be a promising candidate for
the next big systems programming language. Eventhough "Hello, world!"
is a good first program, &lt;a class="reference external" href="http://imranontech.com/2007/01/24/using-fizzbuzz-to-find-developers-who-grok-coding/"&gt;FizzBuzz&lt;/a&gt; is the first non-trivial program
that I attempt in any new language. Let me quickly present the Rust
development workflow and a few concepts while showcasing my solution.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="cargo"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="#id3"&gt;Cargo&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a class="reference external" href="http://doc.crates.io/guide.html"&gt;Cargo&lt;/a&gt; is the tool to manage Rust projects. It makes managing
(external) dependencies, building, testing, and running Rust code
easier. An empty project can be create as follows:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;$ cargo new fizzbuzz --bin
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Upon running this, Cargo should setup a project directory,
&lt;tt class="docutils literal"&gt;fizzbuzz&lt;/tt&gt;, and create a stub &lt;tt class="docutils literal"&gt;main.rs&lt;/tt&gt;. A couple of interesting
observations that I had are:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;By default, Cargo sets up the project directory as a &lt;a class="reference external" href="http://git-scm.com/"&gt;git&lt;/a&gt;
repository. Even git is my most favorite version control tool, there
should be an option for disabling this for people who use other
tools.&lt;/li&gt;
&lt;li&gt;The configuration file uses yet another markup language called
&lt;a class="reference external" href="https://github.com/toml-lang/toml"&gt;toml&lt;/a&gt;. I'm sure that there are justifications for selecting this
markup language. But, this adds to plethora of options that we
already have for markup.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Now, you can run the newly created project by changing to the project directory.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;$ cd fizzbuzz
$ cargo run
   Compiling fizzbuzz v0.1.0 (file:///Users/praveen/Developer/Rust/Learn/fizzbuzz)
     Running `target/debug/fizzbuzz`
Hello, world!
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="logic"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="#id4"&gt;Logic&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Rust supports &lt;a class="reference external" href="https://www.haskell.org/"&gt;Haskell&lt;/a&gt; style enumerations, and pattern matching that
are used in the following solution. Below follows the listing of
&lt;tt class="docutils literal"&gt;src/lib.rs&lt;/tt&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="cp"&gt;#[derive(Debug, PartialEq)]&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="k"&gt;pub&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;enum&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;FizzBuzz&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;Value&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;u64&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;Fizz&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;Buzz&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;FizzBuzz&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;

&lt;span class="c-Doc"&gt;/// This function converts the given unsigned integer to FizzBuzz enum.&lt;/span&gt;
&lt;span class="c-Doc"&gt;///&lt;/span&gt;
&lt;span class="c-Doc"&gt;/// # Examples&lt;/span&gt;
&lt;span class="c-Doc"&gt;///&lt;/span&gt;
&lt;span class="c-Doc"&gt;/// ```rust&lt;/span&gt;
&lt;span class="c-Doc"&gt;/// use fizzbuzz::to_fizz_buzz;&lt;/span&gt;
&lt;span class="c-Doc"&gt;/// use fizzbuzz::FizzBuzz;&lt;/span&gt;
&lt;span class="c-Doc"&gt;///&lt;/span&gt;
&lt;span class="c-Doc"&gt;/// assert_eq!(FizzBuzz::Value(13), to_fizz_buzz(13));&lt;/span&gt;
&lt;span class="c-Doc"&gt;/// assert_eq!(FizzBuzz::Fizz, to_fizz_buzz(9));&lt;/span&gt;
&lt;span class="c-Doc"&gt;/// assert_eq!(FizzBuzz::Buzz, to_fizz_buzz(20));&lt;/span&gt;
&lt;span class="c-Doc"&gt;/// assert_eq!(FizzBuzz::FizzBuzz, to_fizz_buzz(30));&lt;/span&gt;
&lt;span class="c-Doc"&gt;/// ```&lt;/span&gt;
&lt;span class="k"&gt;pub&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;fn&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;to_fizz_buzz&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;u64&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;FizzBuzz&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;match&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;FizzBuzz&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;FizzBuzz&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;_&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;FizzBuzz&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;Buzz&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;_&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;FizzBuzz&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;Fizz&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;_&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;FizzBuzz&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;Value&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Some of the key take aways here:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Rust enumerations are similar to the Haskell one, where the concept of
type constructors comes in.&lt;/li&gt;
&lt;li&gt;Compiler can provide basic implementation for some traits via the
&lt;tt class="docutils literal"&gt;#[derive]&lt;/tt&gt; attribute.&lt;/li&gt;
&lt;li&gt;Unit test can be written as part of the documentation example. That
way, your documentation is always upto date. These tests can be run
using Cargo.&lt;/li&gt;
&lt;li&gt;Isn't pattern matching beautiful? Any modern language should support
pattern matching.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Now tests can be run as follows:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;$ cargo test
   Compiling fizzbuzz v0.1.0 (file:///Users/praveek6/Developer/Rust/Learn/fizzbuzz)
src/main.rs:1:1: 3:2 warning: function is never used: `main`, #[warn(dead_code)] on by default
src/main.rs:1 fn main() {
src/main.rs:2     println!("Hello, world!");
src/main.rs:3 }
     Running target/debug/fizzbuzz-63bd5327039a004c

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured

     Running target/debug/fizzbuzz-78f5b2ad74d4a952

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured

   Doc-tests fizzbuzz

running 1 test
test to_fizz_buzz_0 ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="printing"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="#id5"&gt;Printing&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Now, the &lt;tt class="docutils literal"&gt;main.rs&lt;/tt&gt; could be modified to make use of the
&lt;tt class="docutils literal"&gt;to_fizz_buzz&lt;/tt&gt; function that I implemented earlier. Here is the
listing of &lt;tt class="docutils literal"&gt;src/main.rs&lt;/tt&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="k"&gt;extern&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;crate&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;fizzbuzz&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;

&lt;span class="cp"&gt;#[allow(dead_code)]&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="k"&gt;fn&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;1.&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;101&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="n"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fizzbuzz&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;to_fizz_buzz&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nb"&gt;println&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"{:?}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;tt class="docutils literal"&gt;#[allow(dead_code)]&lt;/tt&gt; attribute was added to silence the warnin
about unused &lt;tt class="docutils literal"&gt;main&lt;/tt&gt; when running the tests.&lt;/p&gt;
&lt;p&gt;Here is the output of the program.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;$ cargo run
   Compiling fizzbuzz v0.1.0 (file:///Users/praveek6/Developer/Rust/Learn/fizzbuzz)
     Running `target/debug/fizzbuzz`
Value(1)
Value(2)
Fizz
Value(4)
Buzz
Fizz
Value(7)
Value(8)
Fizz
Buzz
Value(11)
Fizz
Value(13)
Value(14)
FizzBuzz
Value(16)
Value(17)
Fizz
Value(19)
Buzz
Fizz
...
Value(92)
Fizz
Value(94)
Buzz
Fizz
Value(97)
Value(98)
Fizz
Buzz
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
</summary><category term="rust"></category></entry><entry><title>Hello, Pelican World!</title><link href="http://praveen.kumar.in/2015/03/30/hello-pelican-world/" rel="alternate"></link><updated>2015-03-30T10:20:00+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2015-03-30:2015/03/30/hello-pelican-world/</id><summary type="html">
&lt;p&gt;This post serves as a quick reference for &lt;a class="reference external" href="http://docutils.sourceforge.net/"&gt;reStructuredText&lt;/a&gt; markups
that matters to me.&lt;/p&gt;
&lt;div class="section" id="emphasis"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="#id14"&gt;Emphasis&lt;/a&gt;&lt;/h2&gt;
&lt;div class="section" id="id1"&gt;
&lt;h3&gt;reStructuredText&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;This is regular text.

&lt;span class="ge"&gt;*Here is some text in italics.*&lt;/span&gt;

&lt;span class="gs"&gt;**and here is some in bold.**&lt;/span&gt;

&lt;span class="cp"&gt;.. There seems to be no direct support for strikethrough text. The&lt;/span&gt;
&lt;span class="cp"&gt;   closest, I could find is the following that requires customization&lt;/span&gt;
&lt;span class="cp"&gt;   of 'del' class in CSS. FIXME (2015-03-15, Praveen Kumar): Figure&lt;/span&gt;
&lt;span class="cp"&gt;   out if there is a way to neatly enclose it in &amp;lt;s&amp;gt; or &amp;lt;del&amp;gt; tag&lt;/span&gt;
&lt;span class="cp"&gt;   instead.&lt;/span&gt;

Here is a sample &lt;span class="na"&gt;:del:&lt;/span&gt;&lt;span class="nv"&gt;`strikethrough text`&lt;/span&gt;.

&lt;span class="s"&gt;``0xdeadbeef``&lt;/span&gt; is the favorite steak of a software engineer.

Less is a &lt;span class="na"&gt;:abbr:&lt;/span&gt;&lt;span class="nv"&gt;`CSS (Cascading Style Sheets)`&lt;/span&gt; pre-processor, meaning
that it extends the CSS language, adding features that allow
variables, mixins, functions and many other techniques that allow you
to make CSS that is more maintainable, themable and extendable.

You can quit Emacs using the keystroke &lt;span class="na"&gt;:kbd:&lt;/span&gt;&lt;span class="nv"&gt;`C-x C-c`&lt;/span&gt;.
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="rendering"&gt;
&lt;h3&gt;Rendering&lt;/h3&gt;
&lt;p&gt;This is regular text.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Here is some text in italics.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;and here is some in bold.&lt;/strong&gt;&lt;/p&gt;
&lt;!-- There seems to be no direct support for strikethrough text. The
closest, I could find is the following that requires customization
of 'del' class in CSS. FIXME (2015-03-15, Praveen Kumar): Figure
out if there is a way to neatly enclose it in &lt;s&gt; or &lt;del&gt; tag
instead. --&gt;
&lt;p&gt;&lt;code&gt;0xdeadbeef&lt;/code&gt; is favorite steak of a software engineer.&lt;/p&gt;
&lt;p&gt;Less is a &lt;abbr title="Cascading Style Sheets"&gt;CSS&lt;/abbr&gt; pre-processor.&lt;/p&gt;
&lt;p&gt;You can quit Emacs using the keystroke &lt;kbd&gt;C-x C-c&lt;/kbd&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="quotes"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="#id15"&gt;Quotes&lt;/a&gt;&lt;/h2&gt;
&lt;div class="section" id="id2"&gt;
&lt;h3&gt;reStructuredText&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="p"&gt;..&lt;/span&gt; &lt;span class="ow"&gt;class&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt; bg-primary
&lt;span class="cp"&gt;..&lt;/span&gt;

&lt;span class="cp"&gt;   I think it's fair to say that personal computers have become the&lt;/span&gt;
&lt;span class="cp"&gt;   most empowering tool we've ever created. They're tools of&lt;/span&gt;
&lt;span class="cp"&gt;   communication, they're tools of creativity, and they can be shaped&lt;/span&gt;
&lt;span class="cp"&gt;   by their user.&lt;/span&gt;

&lt;span class="cp"&gt;   -- Bill Gates.&lt;/span&gt;

&lt;span class="p"&gt;..&lt;/span&gt; &lt;span class="ow"&gt;class&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt; blockquote-reverse
&lt;span class="cp"&gt;..&lt;/span&gt;

&lt;span class="cp"&gt;   Computers themselves, and software yet to be developed, will&lt;/span&gt;
&lt;span class="cp"&gt;   revolutionize the way we learn.&lt;/span&gt;

&lt;span class="cp"&gt;   -- Steve Jobs&lt;/span&gt;


&lt;span class="p"&gt;..&lt;/span&gt; &lt;span class="ow"&gt;class&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt; blockquote-reverse bg-success
&lt;span class="cp"&gt;..&lt;/span&gt;

&lt;span class="cp"&gt;    | An old silent pond...&lt;/span&gt;
&lt;span class="cp"&gt;    | A frog jumps into the pond,&lt;/span&gt;
&lt;span class="cp"&gt;    | splash! Silence again.&lt;/span&gt;

&lt;span class="cp"&gt;    -- Bashō&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="id3"&gt;
&lt;h3&gt;Rendering&lt;/h3&gt;
&lt;!-- --&gt;
&lt;blockquote class="bg-primary"&gt;
&lt;p&gt;I think it's fair to say that personal computers have become the
most empowering tool we've ever created. They're tools of
communication, they're tools of creativity, and they can be shaped
by their user.&lt;/p&gt;
&lt;p class="attribution"&gt;—Bill Gates.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote class="blockquote-reverse"&gt;
&lt;p&gt;Computers themselves, and software yet to be developed, will
revolutionize the way we learn.&lt;/p&gt;
&lt;p class="attribution"&gt;—Steve Jobs&lt;/p&gt;
&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote class="blockquote-reverse bg-success"&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;An old silent pond...&lt;/div&gt;
&lt;div class="line"&gt;A frog jumps into the pond,&lt;/div&gt;
&lt;div class="line"&gt;splash! Silence again.&lt;/div&gt;
&lt;/div&gt;
&lt;p class="attribution"&gt;—Bashō&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="links"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="#id16"&gt;Links&lt;/a&gt;&lt;/h2&gt;
&lt;div class="section" id="id4"&gt;
&lt;h3&gt;reStructuredText&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;External hyperlinks, like Python_.
External hyperlinks, like `Haskell
&lt;span class="nt"&gt;&amp;lt;http://www.haskell.org/&amp;gt;&lt;/span&gt;`_.

Internal crossreferences, like example_.

Implicit references like &lt;span class="s"&gt;`Links`_&lt;/span&gt;.

&lt;span class="p"&gt;..&lt;/span&gt; &lt;span class="nt"&gt;_Python:&lt;/span&gt; http://www.python.org/

&lt;span class="p"&gt;..&lt;/span&gt; &lt;span class="nt"&gt;_example:&lt;/span&gt;

This is an example crossreference target.
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="id5"&gt;
&lt;h3&gt;Rendering&lt;/h3&gt;
&lt;p&gt;External hyperlinks, like &lt;a class="reference external" href="http://www.python.org/"&gt;Python&lt;/a&gt;.
External hyperlinks, like &lt;a class="reference external" href="http://www.haskell.org/"&gt;Haskell&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Internal crossreferences, like &lt;a class="reference internal" href="#example"&gt;example&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Implicit references like &lt;a class="reference internal" href="#links"&gt;Links&lt;/a&gt;.&lt;/p&gt;
&lt;p id="example"&gt;This is an example crossreference target.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="code"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="#id17"&gt;Code&lt;/a&gt;&lt;/h2&gt;
&lt;div class="section" id="id6"&gt;
&lt;h3&gt;reStructuredText&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="p"&gt;..&lt;/span&gt; &lt;span class="ow"&gt;code-block&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt; haskell
   &lt;span class="nc"&gt;:linenos:&lt;/span&gt;

    quickSort :: Ord a =&amp;gt; [a] -&amp;gt; [a]
    quickSort []     = []                               -- The empty list is already sorted
    quickSort (x:xs) = quickSort [a | a &amp;lt;- xs, a &amp;lt; x]   -- Sort the left part of the list
                       ++ [x] ++                        -- Insert pivot between two sorted parts
                       quickSort [a | a &amp;lt;- xs, a &amp;gt;= x]  -- Sort the right part of the list
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="id7"&gt;
&lt;h3&gt;Rendering&lt;/h3&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1
2
3
4
5&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt; &lt;span class="n"&gt;quickSort&lt;/span&gt; &lt;span class="ow"&gt;::&lt;/span&gt; &lt;span class="kt"&gt;Ord&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="ow"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="ow"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
 &lt;span class="n"&gt;quickSort&lt;/span&gt; &lt;span class="kt"&gt;[]&lt;/span&gt;     &lt;span class="ow"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;[]&lt;/span&gt;                               &lt;span class="c1"&gt;-- The empty list is already sorted&lt;/span&gt;
 &lt;span class="n"&gt;quickSort&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="kt"&gt;:&lt;/span&gt;&lt;span class="n"&gt;xs&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="ow"&gt;=&lt;/span&gt; &lt;span class="n"&gt;quickSort&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="ow"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="n"&gt;xs&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;   &lt;span class="c1"&gt;-- Sort the left part of the list&lt;/span&gt;
                    &lt;span class="o"&gt;++&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;++&lt;/span&gt;                        &lt;span class="c1"&gt;-- Insert pivot between two sorted parts&lt;/span&gt;
                    &lt;span class="n"&gt;quickSort&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="ow"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="n"&gt;xs&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;  &lt;span class="c1"&gt;-- Sort the right part of the list&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="tables"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="#id18"&gt;Tables&lt;/a&gt;&lt;/h2&gt;
&lt;div class="section" id="id8"&gt;
&lt;h3&gt;reStructuredText&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="p"&gt;..&lt;/span&gt; &lt;span class="ow"&gt;class&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt; table table-striped
&lt;span class="p"&gt;..&lt;/span&gt; &lt;span class="ow"&gt;table&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt; Truth Table

    =====  =====  ======
       Inputs     Output
    ------------  ------
      A      B    A or B
    =====  =====  ======
    False  False  False
    True   False  True
    False  True   True
    True   True   True
    =====  =====  ======


&lt;span class="p"&gt;..&lt;/span&gt; &lt;span class="ow"&gt;class&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt; table table-striped

    +------------+------------+-----------+
    &lt;span class="o"&gt;|&lt;/span&gt; Header 1   | Header 2   | Header 3  |
    +============+============+===========+
    &lt;span class="o"&gt;|&lt;/span&gt; body row 1 | column 2   | column 3  |
    +------------+------------+-----------+
    &lt;span class="o"&gt;|&lt;/span&gt; body row 2 | Cells may span columns.|
    +------------+------------+-----------+
    &lt;span class="o"&gt;|&lt;/span&gt; body row 3 | Cells may  | - Cells   |
    +------------+ span rows. | - contain |
    &lt;span class="o"&gt;|&lt;/span&gt; body row 4 |            | - blocks. |
    +------------+------------+-----------+
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="id9"&gt;
&lt;h3&gt;Rendering&lt;/h3&gt;
&lt;table border="1" class="table table-striped docutils"&gt;
&lt;caption&gt;Truth Table&lt;/caption&gt;
&lt;colgroup&gt;
&lt;col width="31%"&gt;&lt;/col&gt;
&lt;col width="31%"&gt;&lt;/col&gt;
&lt;col width="38%"&gt;&lt;/col&gt;
&lt;/colgroup&gt;
&lt;thead valign="bottom"&gt;
&lt;tr&gt;&lt;th class="head" colspan="2"&gt;Inputs&lt;/th&gt;
&lt;th class="head"&gt;Output&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;th class="head"&gt;A&lt;/th&gt;
&lt;th class="head"&gt;B&lt;/th&gt;
&lt;th class="head"&gt;A or B&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody valign="top"&gt;
&lt;tr&gt;&lt;td&gt;False&lt;/td&gt;
&lt;td&gt;False&lt;/td&gt;
&lt;td&gt;False&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;True&lt;/td&gt;
&lt;td&gt;False&lt;/td&gt;
&lt;td&gt;True&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;False&lt;/td&gt;
&lt;td&gt;True&lt;/td&gt;
&lt;td&gt;True&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;True&lt;/td&gt;
&lt;td&gt;True&lt;/td&gt;
&lt;td&gt;True&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table border="1" class="table table-striped docutils"&gt;
&lt;colgroup&gt;
&lt;col width="34%"&gt;&lt;/col&gt;
&lt;col width="34%"&gt;&lt;/col&gt;
&lt;col width="31%"&gt;&lt;/col&gt;
&lt;/colgroup&gt;
&lt;thead valign="bottom"&gt;
&lt;tr&gt;&lt;th class="head"&gt;Header 1&lt;/th&gt;
&lt;th class="head"&gt;Header 2&lt;/th&gt;
&lt;th class="head"&gt;Header 3&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody valign="top"&gt;
&lt;tr&gt;&lt;td&gt;body row 1&lt;/td&gt;
&lt;td&gt;column 2&lt;/td&gt;
&lt;td&gt;column 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;body row 2&lt;/td&gt;
&lt;td colspan="2"&gt;Cells may span columns.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;body row 3&lt;/td&gt;
&lt;td rowspan="2"&gt;Cells may
span rows.&lt;/td&gt;
&lt;td rowspan="2"&gt;&lt;ul class="first last simple"&gt;
&lt;li&gt;Cells&lt;/li&gt;
&lt;li&gt;contain&lt;/li&gt;
&lt;li&gt;blocks.&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;body row 4&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="images"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="#id19"&gt;Images&lt;/a&gt;&lt;/h2&gt;
&lt;div class="section" id="id10"&gt;
&lt;h3&gt;reStructuredText&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="p"&gt;..&lt;/span&gt; &lt;span class="ow"&gt;class&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt; pull-left img-thumbnail img-padding
&lt;span class="p"&gt;..&lt;/span&gt; &lt;span class="ow"&gt;figure&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt; http://upload.wikimedia.org/wikipedia/commons/3/3a/Greek_lc_lamda_thin.svg
   &lt;span class="nc"&gt;:alt:&lt;/span&gt; &lt;span class="nf"&gt;Lambda&lt;/span&gt;

   Lambda is beautiful!
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="id11"&gt;
&lt;h3&gt;Rendering&lt;/h3&gt;
&lt;div class="pull-left img-thumbnail img-padding figure"&gt;
&lt;object data="http://upload.wikimedia.org/wikipedia/commons/3/3a/Greek_lc_lamda_thin.svg" type="image/svg+xml"&gt;
Lambda&lt;/object&gt;
&lt;p class="caption"&gt;Lambda is beautiful!&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Lorem ipsum dolor sit amet, per ei laoreet erroribus. Ea enim
definiebas vix, ea sea labores invenire vituperatoribus. No labitur
delenit evertitur mel, invidunt prodesset dissentiunt an his. Nec
sensibus molestiae philosophia in. Quot lorem reprehendunt mei id, te
pri partiendo temporibus. Vim ei illud malis maiestatis.&lt;/p&gt;
&lt;p&gt;Tota percipitur ut cum. Quo no dictas mollis petentium, te civibus
denique vel, ad his porro verear diceret. Ne sea alii nullam audiam,
liber antiopam mei at. Doming definitionem pro an, pri an mucius
consequuntur vituperatoribus. Vel an paulo moderatius. An mea
consequat contentiones.&lt;/p&gt;
&lt;p&gt;Homero impedit vocibus et nam, mea id verear maiestatis. Mel an dicant
graeco, sed eu novum nominati dissentiunt, has in fierent delectus
salutatus. Mel an odio eruditi maiorum, et eum congue soleat
inciderint. No tamquam invenire est, sed mentitum intellegat an. An
his sumo habemus omittantur, ex verear accommodare vel. Cum id quot
epicurei incorrupte.&lt;/p&gt;
&lt;p&gt;Sea in erant diceret reprimique. Nibh nobis suavitate est et,
sadipscing voluptatibus his ei. Mei iisque scripserit ex. Eu usu
dolores hendrerit, his nihil recusabo ex. Sanctus laoreet ullamcorper
ea nec, eum et movet quando.&lt;/p&gt;
&lt;p&gt;Lorem ipsum dolor sit amet, per ei laoreet erroribus. Ea enim
definiebas vix, ea sea labores invenire vituperatoribus. No labitur
delenit evertitur mel, invidunt prodesset dissentiunt an his. Nec
sensibus molestiae philosophia in. Quot lorem reprehendunt mei id, te
pri partiendo temporibus. Vim ei illud malis maiestatis.&lt;/p&gt;
&lt;p&gt;Tota percipitur ut cum. Quo no dictas mollis petentium, te civibus
denique vel, ad his porro verear diceret. Ne sea alii nullam audiam,
liber antiopam mei at. Doming definitionem pro an, pri an mucius
consequuntur vituperatoribus. Vel an paulo moderatius. An mea
consequat contentiones.&lt;/p&gt;
&lt;p&gt;Homero impedit vocibus et nam, mea id verear maiestatis. Mel an dicant
graeco, sed eu novum nominati dissentiunt, has in fierent delectus
salutatus. Mel an odio eruditi maiorum, et eum congue soleat
inciderint. No tamquam invenire est, sed mentitum intellegat an. An
his sumo habemus omittantur, ex verear accommodare vel. Cum id quot
epicurei incorrupte.&lt;/p&gt;
&lt;p&gt;Sea in erant diceret reprimique. Nibh nobis suavitate est et,
sadipscing voluptatibus his ei. Mei iisque scripserit ex. Eu usu
dolores hendrerit, his nihil recusabo ex. Sanctus laoreet ullamcorper
ea nec, eum et movet quando.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="misc"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="#id20"&gt;Misc&lt;/a&gt;&lt;/h2&gt;
&lt;div class="section" id="id12"&gt;
&lt;h3&gt;reStructuredText&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="p"&gt;..&lt;/span&gt; &lt;span class="ow"&gt;panel&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt; Test panel

    A test panel is a predetermined group of medical tests as an aid in
    the diagnosis and treatment of disease.

    Test panels (sometimes called profiles) are typically composed of
    individual laboratory tests which are related in some way: by the
    medical condition they are intended to help diagnose (cardiac risk
    panel), by the specimen type (complete blood count, CBC), by the tests
    most frequently requested by users (comprehensive chemistry profile),
    by the methodology employed in the test (viral panel by polymerase
    chain reaction), or by the types of components included (urine drug
    screen).
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="id13"&gt;
&lt;h3&gt;Rendering&lt;/h3&gt;
&lt;div class="panel panel-default"&gt;
&lt;div class="panel-heading"&gt;
&lt;h3 class="panel-title"&gt;Test panel&lt;/h3&gt;
&lt;/div&gt;
&lt;div class="panel-body"&gt;
    A test panel is a predetermined group of medical tests as an aid in
the diagnosis and treatment of disease.

Test panels (sometimes called profiles) are typically composed of
individual laboratory tests which are related in some way: by the
medical condition they are intended to help diagnose (cardiac risk
panel), by the specimen type (complete blood count, CBC), by the tests
most frequently requested by users (comprehensive chemistry profile),
by the methodology employed in the test (viral panel by polymerase
chain reaction), or by the types of components included (urine drug
screen).
  &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</summary><category term="blog"></category><category term="pelican"></category><category term="python"></category><category term="rst"></category></entry><entry><title>Org-Mode, LaTeX and Minted - Syntax Highlighting</title><link href="http://praveen.kumar.in/2012/03/10/org-mode-latex-and-minted-syntax-highlighting/" rel="alternate"></link><updated>2012-03-10T22:20:00+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2012-03-10:2012/03/10/org-mode-latex-and-minted-syntax-highlighting/</id><summary type="html">&lt;p&gt;I use &lt;a class="reference external" href="http://orgmode.org/"&gt;Org-Mode&lt;/a&gt; excessively for taking notes,
publishing, and even presentation. As a programmer, most of the stuff
I write has snippets of source code from various languages.  I always
feel that well formatted, syntax highlighted code is easy to read in
published documents. It is possible to mark a block as source code in
Org-Mode.&lt;/p&gt;
&lt;p&gt;When exporting an Org file to &lt;a class="reference external" href="http://www.latex-project.org/"&gt;LaTeX&lt;/a&gt;, Org-Mode provides options to
format the source code block using one of two popular source code
formatting TeX packages namely &lt;a class="reference external" href="http://www.ctan.org/tex-archive/macros/latex/contrib/listings/"&gt;Listings&lt;/a&gt;
and &lt;a class="reference external" href="http://www.ctan.org/tex-archive/macros/latex/contrib/minted"&gt;Minted&lt;/a&gt;.  I
personally was not that thrilled by Listings. Minted uses &lt;a class="reference external" href="http://pygments.org/"&gt;Pygments&lt;/a&gt;, a Python based syntax highlighter.  I
already use Pygments in a couple of other scenario. Also, Minted
looked more modern compared to Listings. So, I decided to use Minted
as my primary code highlighting tool for LaTeX.&lt;/p&gt;
&lt;p&gt;To use Minted automatically for LaTeX documents that are exported from
an Org file, the following has to be added to your Emacs startup file.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="ss"&gt;'org-latex&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;setq&lt;/span&gt; &lt;span class="nv"&gt;org-export-latex-listings&lt;/span&gt; &lt;span class="ss"&gt;'minted&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;add-to-list&lt;/span&gt; &lt;span class="ss"&gt;'org-export-latex-packages-alist&lt;/span&gt; &lt;span class="o"&gt;'&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;""&lt;/span&gt; &lt;span class="s"&gt;"minted"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Additionally, make sure that you have Pygments installed on your system.&lt;/p&gt;
&lt;pre class="literal-block"&gt;
$ easy_install Pygments
&lt;/pre&gt;
&lt;p&gt;With this, code blocks (&lt;tt class="docutils literal"&gt;#+begin_src&lt;/tt&gt; ... &lt;tt class="docutils literal"&gt;#+end_src&lt;/tt&gt;) in an Org
file will have a Minted (syntax highlighted) LaTeX environment.&lt;/p&gt;
&lt;p&gt;Here is how this sample &lt;a class="reference external" href="http://www.erlang.org/"&gt;Erlang&lt;/a&gt; code will
look like in the resulting PDF.&lt;/p&gt;
&lt;pre class="literal-block"&gt;
#+begin_src erlang
  %% A process whose only job is to keep a counter.

  -module(counter).
  -export([start/0, codeswitch/1]).

  start() -&amp;gt; loop(0).

  loop(Sum) -&amp;gt;
    receive
       {increment, Count} -&amp;gt;
          loop(Sum+Count);
       reset -&amp;gt;
          loop(0);
       {counter, Pid} -&amp;gt;
          Pid ! {counter, Sum},
          loop(Sum);
       code_switch -&amp;gt;
          ?MODULE:codeswitch(Sum)
    end.

  codeswitch(Sum) -&amp;gt; loop(Sum).
#+end_src
&lt;/pre&gt;
&lt;div class="figure" style="width: 575px; height: auto; max-width: 100%;"&gt;
&lt;img alt="Screenshot of Minted Output" src="http://praveen.kumar.in/images/MintedErlang.png" style="width: 575px; height: auto; max-width: 100%;"/&gt;
&lt;p class="caption"&gt;Screenshot&lt;/p&gt;
&lt;/div&gt;
</summary><category term="emacs"></category><category term="latex"></category><category term="programming"></category></entry><entry><title>Building Hadoop and HBase for HBase Maven application development</title><link href="http://praveen.kumar.in/2011/06/20/building-hadoop-and-hbase-for-hbase-maven-application-development/" rel="alternate"></link><updated>2011-06-20T23:02:40+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2011-06-20:2011/06/20/building-hadoop-and-hbase-for-hbase-maven-application-development/</id><summary type="html">
&lt;div class="section" id="introduction"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="#id4"&gt;1   Introduction&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a class="reference external" href="http://hbase.apache.org/"&gt;HBase&lt;/a&gt; 0.90.3 needs
&lt;a class="reference external" href="http://hadoop.apache.org/"&gt;Hadoop&lt;/a&gt; common 0.20-append branch in
order to not lose data. More information about this can be found
&lt;a class="reference external" href="http://hbase.apache.org/book/notsoquick.html#hadoop"&gt;"Getting
Started"&lt;/a&gt;
section of HBase guide. However, there is no official release of Hadoop
common 0.20-append binary. In order to have consistent and right bits on
your cluster and your development platform, you need to "compile your
own binary version" of Hadoop common from the 0.20-append branch source
and your own version of HBase 0.90.3 using that Hadoop common binary.&lt;/p&gt;
&lt;p&gt;This article provides an overview of building Hadoop and HBase for
developing HBase applications that are managed using
&lt;a class="reference external" href="http://maven.apache.org/"&gt;Maven&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="interpreting-maven-terminology"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="#id5"&gt;2   Interpreting Maven terminology&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A brief description about a few ambiguous terms is provided in this
section to avoid potential confusion.&lt;/p&gt;
&lt;div class="section" id="maven-repository-vs-repository-manager"&gt;
&lt;h3&gt;2.1   Maven repository vs repository manager&lt;/h3&gt;
&lt;p&gt;Maven repository refers to &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;~/.m2/repository&lt;/span&gt;&lt;/tt&gt;, whereas Maven
repository manager refers to an artifact repository manager like &lt;a class="reference external" href="http://archiva.apache.org/"&gt;Apache
Archiva&lt;/a&gt; or
&lt;a class="reference external" href="http://www.jfrog.com/products.php"&gt;Artifactory&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="installing-vs-deploying-artifacts"&gt;
&lt;h3&gt;2.2   Installing vs deploying artifacts&lt;/h3&gt;
&lt;p&gt;Installing an artifact is installing it in the Maven repository, whereas
deploying an artifact means publishing the artifact in a Maven
repository manager. For more information, please refer to &lt;a class="reference external" href="http://www.sonatype.com/books/mvnref-book/reference/lifecycle-sect-common-goals.html#lifecycle-sect-install-phase"&gt;Maven
reference&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="installing-artifacts-vs-binaries"&gt;
&lt;h3&gt;2.3   Installing artifacts vs binaries&lt;/h3&gt;
&lt;p&gt;Installing artifacts refers to installing them in Maven repository,
whereas installing binaries refers to installing the entire binary
distribution on the cluster.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="prerequisites"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="#id6"&gt;3   Prerequisites&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;You need the following components for this process.&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="http://www.oracle.com/technetwork/java/javase/overview/index-jsp-136246.html"&gt;Oracle Java SE
6&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://www.oracle.com/technetwork/java/javase/downloads/index-jdk5-jsp-142662.html"&gt;Oracle Java SE
5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://subversion.apache.org/"&gt;Apache Subversion&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://ant.apache.org/"&gt;Apache Ant&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://forrest.apache.org/"&gt;Apache Forrest 0.8&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://maven.apache.org/"&gt;Apache Maven&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;A Maven repository manager (Optional)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you are using a Maven repository manager, then make sure that you
configure the authentication settings for the repository manager in
&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;~/.m2/settings&lt;/span&gt;&lt;/tt&gt; file.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nt"&gt;&amp;lt;settings&amp;gt;&lt;/span&gt;
  ...
  &lt;span class="nt"&gt;&amp;lt;servers&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;server&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;id&amp;gt;&lt;/span&gt;yourrepo.internal&lt;span class="nt"&gt;&amp;lt;/id&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;username&amp;gt;&lt;/span&gt;USER&lt;span class="nt"&gt;&amp;lt;/username&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;password&amp;gt;&lt;/span&gt;PASSWORD&lt;span class="nt"&gt;&amp;lt;/password&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/server&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/servers&amp;gt;&lt;/span&gt;
  ...
&lt;span class="nt"&gt;&amp;lt;/settings&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;tt class="docutils literal"&gt;yourrepo.internal&lt;/tt&gt; is the ID that you will be referring to later from
Ant and Maven build configurations.&lt;/p&gt;
&lt;p&gt;&lt;tt class="docutils literal"&gt;USER&lt;/tt&gt; and &lt;tt class="docutils literal"&gt;PASSWORD&lt;/tt&gt; are the username and password of an account
with deployment role in your Maven repository manager.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="building-hadoop-common"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="#id7"&gt;4   Building Hadoop common&lt;/a&gt;&lt;/h2&gt;
&lt;div class="section" id="checkout-hadoop-common"&gt;
&lt;h3&gt;4.1   Checkout Hadoop common&lt;/h3&gt;
&lt;p&gt;Checkout Hadoop common from 0.20-append branch.&lt;/p&gt;
&lt;pre class="literal-block"&gt;
$ svn co http://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20-append/ hadoop-common-0.20-append
&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="section" id="create-build-properties"&gt;
&lt;h3&gt;4.2   Create build.properties&lt;/h3&gt;
&lt;p&gt;Hadoop uses Apache Ant as a build tool. In order to build
&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;hadoop-common&lt;/span&gt;&lt;/tt&gt;, you need to create a
&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;hadoop-common-0.20-append/build.properties&lt;/span&gt;&lt;/tt&gt; file that looks something
like this.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="na"&gt;resolvers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;internal&lt;/span&gt;
&lt;span class="na"&gt;version&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;0.20-append-r1057313-yourversion&lt;/span&gt;
&lt;span class="na"&gt;project.version&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;${version}&lt;/span&gt;
&lt;span class="na"&gt;hadoop.version&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;${version}&lt;/span&gt;
&lt;span class="na"&gt;hadoop-core.version&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;${version}&lt;/span&gt;
&lt;span class="na"&gt;hadoop-hdfs.version&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;${version}&lt;/span&gt;
&lt;span class="na"&gt;hadoop-mapred.version&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;${version}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Note that at the time of creation of this article, the latest revision
that was available in 0.20-append branch was r1057313.&lt;/p&gt;
&lt;p&gt;Also, try to assign a meaningful suffix in place of &lt;tt class="docutils literal"&gt;yourversion&lt;/tt&gt; so
that you can distinguish between the official artifacts and the
artifacts that are deployed by you.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="optional-configure-your-repository-manager"&gt;
&lt;h3&gt;4.3   OPTIONAL: Configure your repository manager&lt;/h3&gt;
&lt;p&gt;Please follow this step only if you are running a Maven repository
manager for team collaboration and you want to deploy the Hadoop common
artifacts to that repository manager.&lt;/p&gt;
&lt;p&gt;Edit &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;hadoop-common-0.20.append/build.xml&lt;/span&gt;&lt;/tt&gt; and add two new targets.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nt"&gt;&amp;lt;target&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"mvn-deploy-internal"&lt;/span&gt; &lt;span class="na"&gt;depends=&lt;/span&gt;&lt;span class="s"&gt;"mvn-taskdef, bin-package, set-version, simpledeploy-internal"&lt;/span&gt;
   &lt;span class="na"&gt;description=&lt;/span&gt;&lt;span class="s"&gt;"To deploy hadoop core and test jar's to apache maven repository"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;target&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"simpledeploy-internal"&lt;/span&gt; &lt;span class="na"&gt;unless=&lt;/span&gt;&lt;span class="s"&gt;"staging"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;artifact:pom&lt;/span&gt; &lt;span class="na"&gt;file=&lt;/span&gt;&lt;span class="s"&gt;"${hadoop-core.pom}"&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"hadoop.core"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;artifact:pom&lt;/span&gt; &lt;span class="na"&gt;file=&lt;/span&gt;&lt;span class="s"&gt;"${hadoop-test.pom}"&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"hadoop.test"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;artifact:pom&lt;/span&gt; &lt;span class="na"&gt;file=&lt;/span&gt;&lt;span class="s"&gt;"${hadoop-examples.pom}"&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"hadoop.examples"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;artifact:pom&lt;/span&gt; &lt;span class="na"&gt;file=&lt;/span&gt;&lt;span class="s"&gt;"${hadoop-tools.pom}"&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"hadoop.tools"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;artifact:pom&lt;/span&gt; &lt;span class="na"&gt;file=&lt;/span&gt;&lt;span class="s"&gt;"${hadoop-streaming.pom}"&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"hadoop.streaming"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;

   &lt;span class="nt"&gt;&amp;lt;artifact:install-provider&lt;/span&gt; &lt;span class="na"&gt;artifactId=&lt;/span&gt;&lt;span class="s"&gt;"wagon-http"&lt;/span&gt; &lt;span class="na"&gt;version=&lt;/span&gt;&lt;span class="s"&gt;"${wagon-http.version}"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;artifact:deploy&lt;/span&gt; &lt;span class="na"&gt;file=&lt;/span&gt;&lt;span class="s"&gt;"${hadoop-core.jar}"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
       &lt;span class="nt"&gt;&amp;lt;remoteRepository&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"yourrepo.internal"&lt;/span&gt; &lt;span class="na"&gt;url=&lt;/span&gt;&lt;span class="s"&gt;"http://yourreposerver.com:port/path"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
       &lt;span class="nt"&gt;&amp;lt;pom&lt;/span&gt; &lt;span class="na"&gt;refid=&lt;/span&gt;&lt;span class="s"&gt;"hadoop.core"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;/artifact:deploy&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;artifact:deploy&lt;/span&gt; &lt;span class="na"&gt;file=&lt;/span&gt;&lt;span class="s"&gt;"${hadoop-test.jar}"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
       &lt;span class="nt"&gt;&amp;lt;remoteRepository&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"yourrepo.internal"&lt;/span&gt; &lt;span class="na"&gt;url=&lt;/span&gt;&lt;span class="s"&gt;"http://yourreposerver.com:port/path"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
       &lt;span class="nt"&gt;&amp;lt;pom&lt;/span&gt; &lt;span class="na"&gt;refid=&lt;/span&gt;&lt;span class="s"&gt;"hadoop.test"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;/artifact:deploy&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;artifact:deploy&lt;/span&gt; &lt;span class="na"&gt;file=&lt;/span&gt;&lt;span class="s"&gt;"${hadoop-examples.jar}"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
       &lt;span class="nt"&gt;&amp;lt;remoteRepository&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"yourrepo.internal"&lt;/span&gt; &lt;span class="na"&gt;url=&lt;/span&gt;&lt;span class="s"&gt;"http://yourreposerver.com:port/path"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
       &lt;span class="nt"&gt;&amp;lt;pom&lt;/span&gt; &lt;span class="na"&gt;refid=&lt;/span&gt;&lt;span class="s"&gt;"hadoop.examples"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;/artifact:deploy&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;artifact:deploy&lt;/span&gt; &lt;span class="na"&gt;file=&lt;/span&gt;&lt;span class="s"&gt;"${hadoop-tools.jar}"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
       &lt;span class="nt"&gt;&amp;lt;remoteRepository&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"yourrepo.internal"&lt;/span&gt; &lt;span class="na"&gt;url=&lt;/span&gt;&lt;span class="s"&gt;"http://yourreposerver.com:port/path"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
       &lt;span class="nt"&gt;&amp;lt;pom&lt;/span&gt; &lt;span class="na"&gt;refid=&lt;/span&gt;&lt;span class="s"&gt;"hadoop.tools"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;/artifact:deploy&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;artifact:deploy&lt;/span&gt; &lt;span class="na"&gt;file=&lt;/span&gt;&lt;span class="s"&gt;"${hadoop-streaming.jar}"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
       &lt;span class="nt"&gt;&amp;lt;remoteRepository&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"yourrepo.internal"&lt;/span&gt; &lt;span class="na"&gt;url=&lt;/span&gt;&lt;span class="s"&gt;"http://yourreposerver.com:port/path"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
       &lt;span class="nt"&gt;&amp;lt;pom&lt;/span&gt; &lt;span class="na"&gt;refid=&lt;/span&gt;&lt;span class="s"&gt;"hadoop.streaming"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;/artifact:deploy&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/target&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Note that &lt;tt class="docutils literal"&gt;yourrepo.internal&lt;/tt&gt; is the same ID that you have configured
authentication for in the &lt;tt class="docutils literal"&gt;~m2/settings.xml&lt;/tt&gt; file earlier.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="build-and-install-deploy-hadoop-common-artifacts"&gt;
&lt;h3&gt;4.4   Build and install/deploy Hadoop common artifacts&lt;/h3&gt;
&lt;p&gt;Now, build and install/deploy Hadoop common artifacts using the Maven
ant tasks.&lt;/p&gt;
&lt;div class="section" id="install-artifacts"&gt;
&lt;h4&gt;4.4.1   Install artifacts&lt;/h4&gt;
&lt;p&gt;If you &lt;strong&gt;do not&lt;/strong&gt; have a repository manager, and &lt;strong&gt;skipped the previous
step&lt;/strong&gt;, then use the &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;mvn-install&lt;/span&gt;&lt;/tt&gt; target and &lt;strong&gt;skip&lt;/strong&gt; the "Deploy
artifacts" section. Otherwise, jump directly to "Deploy artifacts"
section.&lt;/p&gt;
&lt;pre class="literal-block"&gt;
$ ant mvn-install
&lt;/pre&gt;
&lt;p&gt;This target will generate Hadoop common artifacts and Maven POM files,
and install them in your local Maven repository (&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;~/.m2/repository&lt;/span&gt;&lt;/tt&gt;).&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="deploy-artifacts"&gt;
&lt;h4&gt;4.4.2   Deploy artifacts&lt;/h4&gt;
&lt;p&gt;If you have an internal repository manager, you should deploy the
artifacts on it that you have specified in &lt;tt class="docutils literal"&gt;build.xml&lt;/tt&gt; of the previous
step. To achieve this, run &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;mvn-deploy-internal&lt;/span&gt;&lt;/tt&gt; task.&lt;/p&gt;
&lt;pre class="literal-block"&gt;
$ ant mvn-deploy-internal
&lt;/pre&gt;
&lt;p&gt;This target will generate the artifacts and Maven POM files, and publish
them to your repository manager that you have specified in
&lt;tt class="docutils literal"&gt;build.xml&lt;/tt&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="generate-the-binary-tarball-to-install-on-the-cluster"&gt;
&lt;h3&gt;4.5   Generate the binary tarball to install on the cluster&lt;/h3&gt;
&lt;p&gt;You need to generate a binary tarball to install on the cluster. This is
achieved by running &lt;tt class="docutils literal"&gt;tar&lt;/tt&gt; target.&lt;/p&gt;
&lt;pre class="literal-block"&gt;
$ ant tar -Djava5.home=&amp;lt;Java 5 SE Home&amp;gt; -Dforrest.home=&amp;lt;Forrest 0.8 Home&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Please note that you need Java SE/EE 5 and Apache Forrest 0.8 for this
step. Substituting Java SE/EE 5 or Apache Forrest 0.9 will result in a
build failure.&lt;/p&gt;
&lt;p&gt;This will generate the
&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;hadoop-common-0.20-append-r1057313-yourversion.tar.gz&lt;/span&gt;&lt;/tt&gt; tarball in
&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;hadoop-common-0.20-append/build/&lt;/span&gt;&lt;/tt&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="install-hadoop-binaries-on-the-cluster"&gt;
&lt;h3&gt;4.6   Install Hadoop binaries on the cluster&lt;/h3&gt;
&lt;p&gt;Copy the tarball that was generated in the previous step to your
cluster, and unpack them in desired location.&lt;/p&gt;
&lt;p&gt;This ensures that you have a consistent Hadoop installation because you
are not mixing and matching artifacts from a Hadoop common official
release and artifacts that you built.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="building-hbase"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="#id8"&gt;5   Building HBase&lt;/a&gt;&lt;/h2&gt;
&lt;div class="section" id="checkout-hbase"&gt;
&lt;h3&gt;5.1   Checkout HBase&lt;/h3&gt;
&lt;p&gt;Checkout HBase from 0.90.3 tag.&lt;/p&gt;
&lt;pre class="literal-block"&gt;
$ svn co http://svn.apache.org/repos/asf/hbase/tags/0.90.3 hbase-0.90.3
&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="section" id="modify-hbase-and-hadoop-versions"&gt;
&lt;h3&gt;5.2   Modify HBase and Hadoop versions&lt;/h3&gt;
&lt;p&gt;Now, edit &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;hbase-0.90.3/pom.xml&lt;/span&gt;&lt;/tt&gt; and modify HBase and Hadoop versions.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;...
&lt;span class="nt"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;org.apache.hbase&lt;span class="nt"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;hbase&lt;span class="nt"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;packaging&amp;gt;&lt;/span&gt;jar&lt;span class="nt"&gt;&amp;lt;/packaging&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;version&amp;gt;&lt;/span&gt;0.90.3-yourversion&lt;span class="nt"&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;
...
 &lt;span class="nt"&gt;&amp;lt;hadoop.version&amp;gt;&lt;/span&gt;0.20-append-r1057313-yourversion&lt;span class="nt"&gt;&amp;lt;/hadoop.version&amp;gt;&lt;/span&gt;
...
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Note that you should be using the same revision number for Hadoop that
you have assigned while building Hadoop.&lt;/p&gt;
&lt;p&gt;Also, try to assign a meaningful suffix in place of &lt;tt class="docutils literal"&gt;yourversion&lt;/tt&gt; so
that you can distinguish between the official artifacts and the
artifacts that are deployed by you.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="optional-specify-the-url-of-your-repository-manager"&gt;
&lt;h3&gt;5.3   OPTIONAL: Specify the URL of your repository manager&lt;/h3&gt;
&lt;p&gt;If you are running an internal repository manager for team
collaboration, it is the time to specify in the
&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;hbase-0.90.3/pom.xml&lt;/span&gt;&lt;/tt&gt;. Add the following section to it.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nt"&gt;&amp;lt;project&amp;gt;&lt;/span&gt;
  ...
  &lt;span class="nt"&gt;&amp;lt;distributionManagement&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;repository&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;id&amp;gt;&lt;/span&gt;yourrepo.internal&lt;span class="nt"&gt;&amp;lt;/id&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;name&amp;gt;&lt;/span&gt;Your internal repository&lt;span class="nt"&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;url&amp;gt;&lt;/span&gt;http://yourreposerver.com:port/path&lt;span class="nt"&gt;&amp;lt;/url&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/repository&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/distributionManagement&amp;gt;&lt;/span&gt;
  ...
&lt;span class="nt"&gt;&amp;lt;/project&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Note that &lt;tt class="docutils literal"&gt;yourrepo.internal&lt;/tt&gt; is the same ID that you have configured
authentication for in the &lt;tt class="docutils literal"&gt;~m2/settings.xml&lt;/tt&gt; file earlier.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="build-and-install-deploy-hbase-artifacts"&gt;
&lt;h3&gt;5.4   Build and install/deploy HBase artifacts&lt;/h3&gt;
&lt;p&gt;Now, build and install/deploy HBase artifacts using the Maven goals.&lt;/p&gt;
&lt;div class="section" id="id1"&gt;
&lt;h4&gt;5.4.1   Install artifacts&lt;/h4&gt;
&lt;p&gt;If you &lt;strong&gt;do not&lt;/strong&gt; have a repository manager, and &lt;strong&gt;skipped the previous
step&lt;/strong&gt;, then use the &lt;tt class="docutils literal"&gt;install&lt;/tt&gt; goal and &lt;strong&gt;skip&lt;/strong&gt; the "Deploy
artifacts" section. Otherwise, jump directly to "Deploy artifacts"
section.&lt;/p&gt;
&lt;pre class="literal-block"&gt;
$ mvn install
&lt;/pre&gt;
&lt;p&gt;This goal will generate HBase artifacts and Maven POM files, and install
them in your local Maven repository (&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;~/.m2/repository&lt;/span&gt;&lt;/tt&gt;). &lt;strong&gt;Ignore the
rest of this section.&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="id2"&gt;
&lt;h4&gt;5.4.2   Deploy artifacts&lt;/h4&gt;
&lt;p&gt;If you have a repository manager, you should deploy the artifacts on
your internal server that you have specified in &lt;tt class="docutils literal"&gt;pom.xml&lt;/tt&gt; of the
previous step. To achieve this, invoke &lt;tt class="docutils literal"&gt;deploy&lt;/tt&gt; goal.&lt;/p&gt;
&lt;pre class="literal-block"&gt;
$ mvn deploy
&lt;/pre&gt;
&lt;p&gt;This goal will generate the artifacts and Maven POM files, and publish
them to your internal repository manager that you have specified in
&lt;tt class="docutils literal"&gt;pom.xml&lt;/tt&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="id3"&gt;
&lt;h3&gt;5.5   Generate the binary tarball to install on the cluster&lt;/h3&gt;
&lt;p&gt;You need to generate a binary tarball to install on the cluster. This is
achieved by invoking &lt;tt class="docutils literal"&gt;assembly:single&lt;/tt&gt; goal.&lt;/p&gt;
&lt;pre class="literal-block"&gt;
$ mvn assembly:single
&lt;/pre&gt;
&lt;p&gt;This will generate the
&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;hbase-0.90.3/target/hbase-0.90.3-yourversion.tar.gz&lt;/span&gt;&lt;/tt&gt; tarball.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="install-hbase-binaries-on-the-cluster"&gt;
&lt;h3&gt;5.6   Install HBase binaries on the cluster&lt;/h3&gt;
&lt;p&gt;Copy the tarball that was generated in the last step to your cluster and
unpack them in the desired location.&lt;/p&gt;
&lt;p&gt;This ensures that you have a consistent HBase installation with the
right version of Hadoop artifacts that you have built. There is no need
of replacing any artifact by hand because, Maven automatically pulled
the right version of the artifact that you have built.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="optional-using-the-hbase-artifact-in-your-hbase-application"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="#id9"&gt;6   OPTIONAL: Using the HBase artifact in your HBase application&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Now you can edit the &lt;tt class="docutils literal"&gt;pom.xml&lt;/tt&gt; of your HBase application to use the
version of HBase that you have built (0.90.3-yourversion)&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="feedback"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="#id10"&gt;7   Feedback&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I tried to provide only as much information in the article as possible
without overloading the scope of it. I have also taken basic care to
ensure that the above mentioned commands are accurate. However, there
might be some typos or copy paste errors. If you find something that
doesn't work for you please let me know and I'll fix them.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="credits"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="#id11"&gt;8   Credits&lt;/a&gt;&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Thanks to &lt;a class="reference external" href="http://www.michael-noll.com/"&gt;Michael G. Noll&lt;/a&gt; for his
&lt;a class="reference external" href="http://www.michael-noll.com/blog/2011/04/14/building-an-hadoop-0-20-x-version-for-hbase-0-90-2/"&gt;blog
post&lt;/a&gt;
on building Hadoop.&lt;/li&gt;
&lt;li&gt;Thanks to &lt;a class="reference external" href="https://twitter.com/#!/jpallas"&gt;Joe Pallas&lt;/a&gt; for his
suggestions on this process and review of this article.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="disclaimer"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="#id12"&gt;9   Disclaimer&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;This article is provided for informational purpose only and I will not
be liable for any errors, omissions, or delays in this information or
any losses, injuries, or damages arising from its use.&lt;/p&gt;
&lt;/div&gt;
</summary><category term="hadoop"></category><category term="hbase"></category><category term="maven"></category><category term="java"></category></entry><entry><title>Making Mac applications to make use of memories larger than 4 GB</title><link href="http://praveen.kumar.in/2011/06/19/making-mac-applications-to-make-use-of-memories-larger-than-4-gb/" rel="alternate"></link><updated>2011-06-19T19:10:42+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2011-06-19:2011/06/19/making-mac-applications-to-make-use-of-memories-larger-than-4-gb/</id><summary type="html">&lt;p&gt;Today, I upgraded the memory on my Macbook Pro (2010)
from 4 GB to 8 GB. One of the main reasons for the memory upgrade was to
be able to run &lt;a class="reference external" href="http://windows.microsoft.com/en-US/windows7/products/home"&gt;Mircosoft Windows
7&lt;/a&gt; virtual
machine using &lt;a class="reference external" href="http://www.virtualbox.org/"&gt;Oracle VirtualBox&lt;/a&gt;.
However, I noticed that VirtualBox was not able to see more than 4 GB
of memory even after the upgrade while the system reported that there
was 8 GB of installed memory.&lt;/p&gt;
&lt;p&gt;A quick research showed that Mac OS X 10.6 (Snow
Leopard) uses 32-bit kernel by default. This limits the applications to
use only 4 GB of memory. In order for the applications to use larger
memories, one need to use the 64-bit kernel (provided that you are
on a 64-bit platform). There is an &lt;a class="reference external" href="http://support.apple.com/kb/HT3773"&gt;Apple support
page&lt;/a&gt; that describes how to
select the desired kernel.&lt;/p&gt;
&lt;p&gt;I changed the defaults to use 64-bit kernel.&lt;/p&gt;
&lt;pre class="literal-block"&gt;
$ sudo systemsetup -setkernelbootarchitecture x86\_64
&lt;/pre&gt;
&lt;p&gt;This configuration is stored in the file
&lt;tt class="docutils literal"&gt;/Library/Preferences/SystemConfiguration/com.apple.Boot.plist&lt;/tt&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;?xml version="1.0" encoding="UTF-8"?&amp;gt;
&lt;span class="cp"&gt;&amp;lt;!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;plist&lt;/span&gt; &lt;span class="na"&gt;version=&lt;/span&gt;&lt;span class="s"&gt;"1.0"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;dict&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;key&amp;gt;&lt;/span&gt;Kernel Architecture&lt;span class="nt"&gt;&amp;lt;/key&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;string&amp;gt;&lt;/span&gt;x86_64&lt;span class="nt"&gt;&amp;lt;/string&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;key&amp;gt;&lt;/span&gt;Kernel Flags&lt;span class="nt"&gt;&amp;lt;/key&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;string&amp;gt;&amp;lt;/string&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/dict&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/plist&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;After making this change and rebooting, VirtualBox was able to see the
whole memory.&lt;/p&gt;
</summary><category term="mac"></category><category term="virtualization"></category></entry><entry><title>Plotting a weight chart using Emacs Org-Mode and Gnuplot</title><link href="http://praveen.kumar.in/2011/06/19/plotting-a-weight-chart-using-emacs-org-mode-and-gnuplot-2/" rel="alternate"></link><updated>2011-06-19T08:07:54+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2011-06-19:2011/06/19/plotting-a-weight-chart-using-emacs-org-mode-and-gnuplot-2/</id><summary type="html">&lt;p&gt;I discovered about &lt;a class="reference external" href="http://orgmode.org"&gt;Org-Mode&lt;/a&gt; a couple of years
ago. Since then, I have started using it for various tasks. One of the
recent usage is to track my daily weight. This article describes how to
use Org-Mode and Gnuplot to plot your weight measurements.&lt;/p&gt;
&lt;p&gt;Here is the list of software that I use in my setup.&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="http://www.apple.com/macosx/"&gt;Mac OS X 10.6&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://www.gnu.org/software/emacs"&gt;GNU Emacs 23.3.1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://orgmode.org"&gt;Org-Mode 7.5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://gnuplot.info"&gt;Gnuplot 4.4&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://xafs.org/BruceRavel/GnuplotMode"&gt;Gnuplot mode 0.6.0&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For the purpose of this article, it is assumed that you have a similar
setup that works for you.&lt;/p&gt;
&lt;p&gt;As part of my daily measurement, I track three measurements namely,
weight, body fat percentage and body water percentage. This data can be
represented in an Org table that has four columns as follows. Please
note that the data provided below is hypothetical.&lt;/p&gt;
&lt;pre class="literal-block"&gt;
#+PLOT: script:"Weight.plt"
| Date       | Weight |  BF% |  BW% |
|------------+--------+------+------|
| 05/01/2011 |  145.2 | 30.3 | 50.3 |
| 05/02/2011 |  145.1 | 29.4 | 50.7 |
| 05/03/2011 |  144.2 | 30.1 | 50.4 |
| 05/04/2011 |  144.0 | 29.0 | 50.8 |
| 05/05/2011 |  144.1 | 28.7 | 51.0 |
| 05/06/2011 |  144.2 | 29.2 | 50.7 |
| 05/07/2011 |  144.4 | 27.8 | 51.4 |
| 05/08/2011 |  143.7 | 27.6 | 51.5 |
| 05/09/2011 |  143.2 | 28.5 | 51.0 |
| 05/10/2011 |  142.8 | 30.1 | 50.4 |
| 05/11/2011 |  142.2 | 30.1 | 50.4 |
| 05/12/2011 |  142.4 | 29.8 | 50.5 |
| 05/13/2011 |  142.2 | 29.9 | 50.5 |
| 05/14/2011 |  141.2 | 27.4 | 51.6 |
| 05/15/2011 |  141.5 | 27.2 | 51.7 |
|------------+--------+------+------|
| 05/16/2011 |  141.2 | 28.8 | 51.0 |
| 05/17/2011 |  140.8 | 28.9 | 50.9 |
| 05/18/2011 |  140.2 | 29.5 | 50.7 |
| 05/19/2011 |  140.5 | 26.8 | 51.9 |
| 05/20/2011 |  140.4 | 28.1 | 51.3 |
| 05/21/2011 |  139.2 | 26.7 | 51.9 |
| 05/22/2011 |  137.1 | 27.0 | 51.7 |
| 05/23/2011 |  137.5 | 27.0 | 51.7 |
| 05/24/2011 |  137.4 | 28.5 | 51.1 |
| 05/25/2011 |  136.8 | 29.6 | 50.6 |
| 05/26/2011 |  136.3 | 28.8 | 51.0 |
| 05/27/2011 |  136.3 | 28.2 | 51.2 |
| 05/28/2011 |  136.3 | 28.9 | 50.9 |
| 05/29/2011 |  136.2 | 28.0 | 51.3 |
| 05/30/2011 |  135.9 | 28.8 | 50.9 |
| 05/31/2011 |  135.5 | 28.2 | 51.2 |
|------------+--------+------+------|
| 06/01/2011 |  135.1 | 28.2 | 51.2 |
| 06/02/2011 |  135.5 | 28.2 | 51.2 |
| 06/03/2011 |  134.8 | 28.9 | 50.9 |
| 06/04/2011 |  134.4 | 29.6 | 50.6 |
| 06/05/2011 |  134.2 | 27.9 | 51.3 |
| 06/06/2011 |  134.4 | 28.1 | 51.3 |
| 06/07/2011 |  133.2 | 29.2 | 50.8 |
| 06/08/2011 |  133.1 | 28.8 | 51.0 |
| 06/09/2011 |  133.0 | 28.6 | 51.0 |
| 06/10/2011 |  133.2 | 27.8 | 51.4 |
| 06/11/2011 |  132.2 | 27.9 | 51.4 |
| 06/12/2011 |  132.0 | 27.9 | 51.4 |
| 06/13/2011 |  132.1 | 28.9 | 51.0 |
| 06/14/2011 |  131.0 | 29.0 | 50.9 |
| 06/15/2011 |  130.2 | 27.6 | 51.5 |
|------------+--------+------+------|
&lt;/pre&gt;
&lt;p&gt;I use the following Gnuplot script, &lt;tt class="docutils literal"&gt;Weight.plt&lt;/tt&gt; that plots the
weight, body fat percentage, absolute body fat, body water percentage
and absolute body water.&lt;/p&gt;
&lt;!-- code-block: gnuplot

# Weight plotter.

set terminal aqua title "Weight plot"
set xdata time
set timefmt '"%m/%d/%Y"'
set xlabel 'Date'

set multiplot

set size 1, 0.33

# Weight.
set origin 0, 0.66
set ylabel 'Weight in lb'
plot '$datafile' using 1:2 title 'Weight' with lines linecolor 2

set size 0.5, 0.33

# Body fat.
# Percentage.
set origin 0, 0.33
set ylabel 'Body fat %'
plot '$datafile' using 1:3 title 'Body fat %' with lines linecolor 1
# Absolute.
set origin 0.5, 0.33
set ylabel 'Body fat in lb'
plot '$datafile' using 1:($3 * $2 / 100) title 'Body fat' with lines linecolor 1

# Body water.
# Percentage.
set origin 0, 0
set ylabel 'Body water %'
plot '$datafile' using 1:4 title 'Body water %' with lines linecolor 3
# Absolute.
set origin 0.5, 0
set ylabel 'Body water in lb'
plot '$datafile' using 1:($4 * $2 / 100) title 'Body water' with lines linecolor 3

unset multiplot --&gt;
&lt;p&gt;Here is the screenshot of the generated plot. Click the thumbnail to get
the actual size.&lt;/p&gt;
&lt;div class="figure" style="width: 1074px; height: auto; max-width: 100%;"&gt;
&lt;img alt="Weight Chart" src="http://praveen.kumar.in/images/OrgModeWeightChart.png" style="width: 1074px; height: auto; max-width: 100%;"/&gt;
&lt;p class="caption"&gt;Weight Chart&lt;/p&gt;
&lt;/div&gt;
</summary><category term="emacs"></category><category term="org-mode"></category><category term="fitness"></category></entry><entry><title>Permanence</title><link href="http://praveen.kumar.in/2011/06/12/permanence/" rel="alternate"></link><updated>2011-06-12T20:34:04+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2011-06-12:2011/06/12/permanence/</id><summary type="html">&lt;p&gt;I enjoy reading &lt;a class="reference external" href="http://xkcd.com/"&gt;XKCD&lt;/a&gt;. One of the recent comic
that I enjoyed the most was published last week, titled
"&lt;a class="reference external" href="http://xkcd.com/910/"&gt;Permanence&lt;/a&gt;", that was about naming
servers.&lt;/p&gt;
&lt;p&gt;One of the reasons that I enjoyed this the most was due
to the fact that I can totally correlate this comic to my behavior in
naming things. I have an obsession of naming my laptops, servers, PCs,
gadgets and more based on Greek mythological names. I am not sure
how I developed this obsession. I think that it was mainly influenced by
the games &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Zeus:_Master_of_Olympus"&gt;Zeus: Master of
Olympus&lt;/a&gt; and
&lt;a class="reference external" href="http://en.wikipedia.org/wiki/Age_of_Mythology"&gt;Age of Mythology&lt;/a&gt;,
the two games that I played a lot almost 8 years ago.&lt;/p&gt;
&lt;p&gt;Here are some of the names of my stuff and the reason why I picked that
name.&lt;/p&gt;
&lt;div class="section" id="macbook-pro-mac-os-x"&gt;
&lt;h2&gt;Macbook Pro (Mac OS X)&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;strong&gt;Name:&lt;/strong&gt; &lt;em&gt;aphrodite - Aphrodite (Ἀφροδίτη (Áphroditē))&lt;/em&gt; is the
goddess of love and beauty.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reason:&lt;/strong&gt; This is my most favorite name. I use it for the personal
machine that I spend time on.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="primary-development-machine-solaris-11"&gt;
&lt;h2&gt;Primary development machine (Solaris 11)&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;strong&gt;Name:&lt;/strong&gt; &lt;em&gt;athena - Athena or Athene (Ἀθηνᾶ (Athēnâ))&lt;/em&gt; is the goddess
of wisdom, warfare, battle strategy, heroic endeavour, handicrafts
and reason.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reason:&lt;/strong&gt; I use this name for my primary development machine
at work and the primary trait that I care is wisdom.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="messaging-server-development-server-solaris-10"&gt;
&lt;h2&gt;Messaging Server development server (Solaris 10)&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;strong&gt;Name:&lt;/strong&gt; &lt;em&gt;angelia - Angelia (Αγγελία)&lt;/em&gt; is the spirit of messages,
tidings and proclamations.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reason:&lt;/strong&gt; It mainly deals with messages.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="microsoft-windows-vm"&gt;
&lt;h2&gt;Microsoft Windows VM&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;strong&gt;Name:&lt;/strong&gt; &lt;em&gt;erebos - Erebos (Ἔρεβος (Érebos))&lt;/em&gt; is the god of darkness
and shadow.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reason:&lt;/strong&gt; No comments.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="apple-iphone"&gt;
&lt;h2&gt;Apple iPhone&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;strong&gt;Name:&lt;/strong&gt; &lt;em&gt;Dionysus - Dionysus (Διόνυσος)&lt;/em&gt; is the god of wine,
drunken orgies and wild vegetation.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reason:&lt;/strong&gt; It mainly represents the idea of socializing and parties.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="apple-ipad"&gt;
&lt;h2&gt;Apple iPad&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;strong&gt;Name:&lt;/strong&gt; &lt;em&gt;Ananke - Ananke (Ἀνάγκη (Anánkē))&lt;/em&gt; is the goddess of
inevitability, compulsion and necessity.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reason:&lt;/strong&gt; Well, iPad is a compulsion and necessity of the current
generation, especially of magnified amplitude for people in the
Valley.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="buffalo-wireless-router"&gt;
&lt;h2&gt;Buffalo wireless router&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;strong&gt;Name:&lt;/strong&gt; &lt;em&gt;aether - Aether (Αιθήρ)&lt;/em&gt; is the primeval god of the upper
air.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reason:&lt;/strong&gt; For the power of sending/receiving tons of data over the
air.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="apple-ipod-nano"&gt;
&lt;h2&gt;Apple iPod Nano&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;strong&gt;Name:&lt;/strong&gt; &lt;em&gt;Terpsichore - Terpsichore (Τερψιχόρη)&lt;/em&gt; "delight of
dancing" was one of the nine Muses, ruling over dance and the
dramatic chorus.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reason:&lt;/strong&gt; Associated with fitness.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="apple-tv"&gt;
&lt;h2&gt;Apple TV&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;strong&gt;Name:&lt;/strong&gt; &lt;em&gt;Hedone - Hedone (Ἡδονή)&lt;/em&gt;, is the spirit of pleasure,
enjoyment and delight.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reason:&lt;/strong&gt; Associated with entertainment/enjoyment.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="canon-eos-50d-camera"&gt;
&lt;h2&gt;Canon EOS 50D camera&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;strong&gt;Name:&lt;/strong&gt; &lt;em&gt;Hyperion - Hyperion (Ὑπερίων (Hyperíōn))&lt;/em&gt; is the titan of
light. With Theia, he is the father of Helios (the sun), Selene (the
moon) and Eos (the dawn).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reason:&lt;/strong&gt; What suits a camera better than the name of the titan of
light!&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="honda-civic-car"&gt;
&lt;h2&gt;Honda Civic car&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;strong&gt;Name:&lt;/strong&gt; &lt;em&gt;Hermes - Hermes (Ἡρμῆς (Hērmē̂s))&lt;/em&gt; is the god of travel,
messengers, trade, thievery, cunning wiles, language, writing,
diplomacy, athletics, and animal husbandry.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reason:&lt;/strong&gt; If the god of travel is with you, you are the master of
roads.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="citizen-skyhawk-at-watch"&gt;
&lt;h2&gt;Citizen Skyhawk AT watch&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;strong&gt;Name:&lt;/strong&gt; &lt;em&gt;Chronos - Chronos (Χρόνος (Chrónos))&lt;/em&gt; is the Keeper of
Time. Not to be confused with the Titan Cronus, the father of Zeus.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reason:&lt;/strong&gt; What suits a clock that is so meticulous in keeping the
accurate time using atomic time better than this name?&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="fuji-ccr3-road-bike"&gt;
&lt;h2&gt;Fuji CCR3 road bike&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;strong&gt;Name:&lt;/strong&gt; &lt;em&gt;Aura - Aura (Αὔρα (Aúra))&lt;/em&gt; is the titan of the breeze and
the fresh, cool air of early morning.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reason:&lt;/strong&gt; Mainly reflects the feeling that I get when I ride.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="predator-sneaky-pete-cue"&gt;
&lt;h2&gt;Predator Sneaky Pete cue&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;strong&gt;Name:&lt;/strong&gt; &lt;em&gt;Oupis - Oupis (Ουπις)&lt;/em&gt;, aiming aspect of archery.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reason:&lt;/strong&gt; That was the closest Greek mythological name that I was
able to find related to pool.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="atomic-smoke-skis"&gt;
&lt;h2&gt;Atomic Smoke skis&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;strong&gt;Name:&lt;/strong&gt; &lt;em&gt;Chione - Chione (Χιόνη)&lt;/em&gt; is the goddess of snow and
daughter of Boreas.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reason:&lt;/strong&gt; Isn't that obvious?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You decide if I am crazy or not.&lt;/p&gt;
&lt;/div&gt;
</summary><category term="biking"></category><category term="programming"></category><category term="skiing"></category><category term="pool"></category><category term="photography"></category></entry><entry><title>Making GNU Emacs detect custom error messages - A Maven Example</title><link href="http://praveen.kumar.in/2011/03/09/making-gnu-emacs-detect-custom-error-messages-a-maven-example/" rel="alternate"></link><updated>2011-03-09T01:04:07+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2011-03-09:2011/03/09/making-gnu-emacs-detect-custom-error-messages-a-maven-example/</id><summary type="html">&lt;p&gt;GNU &lt;a class="reference external" href="http://www.gnu.org/software/emacs"&gt;Emacs&lt;/a&gt;'s compilation mode is
capable of detecting error messages from various standard compilers and
build tools. However, it is fairy common for one to run into a format of
error message that Emacs can't handle by default.&lt;/p&gt;
&lt;p&gt;As you know, Emacs is highly extensible and it provides
&lt;a class="reference external" href="http://www.gnu.org/software/emacs/manual/html_node/emacs/Compilation-Mode.html"&gt;compilation-error-regexp-alist&lt;/a&gt;
for accomplishing this. I have done this a couple of times earlier and I
had to do it one more time lately for adding regular expression for
&lt;a class="reference external" href="http://maven.apache.org/"&gt;Maven&lt;/a&gt; error messages. Construction of
these regular expressions is not fun for everyone. However,
regexp-builder makes it easier to construct the regular expression
interactively.&lt;/p&gt;
&lt;p&gt;In summary, here is the customization that has to be added to
&lt;tt class="docutils literal"&gt;.emacs&lt;/tt&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;add-to-list&lt;/span&gt; &lt;span class="ss"&gt;'compilation-error-regexp-alist&lt;/span&gt;
             &lt;span class="ss"&gt;'maven&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;add-to-list&lt;/span&gt;
 &lt;span class="ss"&gt;'compilation-error-regexp-alist-alist&lt;/span&gt;
 &lt;span class="o"&gt;'&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;maven&lt;/span&gt;
   &lt;span class="s"&gt;"\\[ERROR\\] \\(.+?\\):\\[\\([0-9]+\\),\\([0-9]+\\)\\].\*"&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Here is what Emacs's inbuilt documentation says about
&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;compilation-error-regular-expression-alist&lt;/span&gt;&lt;/tt&gt;:&lt;/p&gt;
&lt;p&gt;Because the
&lt;a class="reference external" href="http://www.gnu.org/software/emacs/manual/html_node/emacs/Compilation-Mode.html"&gt;documentation&lt;/a&gt;
around &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;compilation-error-regexp-alist&lt;/span&gt;&lt;/tt&gt; isn't very intuitive for most,
I have decided to make this screencast that describes how to approach
this from scratch. Sorry about the typos! For best quality, watch it in
HD.&lt;/p&gt;
&lt;div class="embed-responsive embed-responsive-16by9"&gt;
&lt;iframe allowfullscreen="" frameborder="0" height="293" src="http://www.youtube.com/embed/U_t5vLr_jVc?hd=1" title="Using Emacs Regexp Builder" width="480"&gt;
&lt;/iframe&gt;
&lt;/div&gt;
&lt;br/&gt;&lt;div class="highlight"&gt;&lt;pre&gt;compilation-error-regexp-alist is a variable defined in `compile.el'.
Its value is shown below.

Documentation:
Alist that specifies how to match errors in compiler output.
On GNU and Unix, any string is a valid filename, so these
matchers must make some common sense assumptions, which catch
normal cases.  A shorter list will be lighter on resource usage.

Instead of an alist element, you can use a symbol, which is
looked up in `compilation-error-regexp-alist-alist'.  You can see
the predefined symbols and their effects in the file
`etc/compilation.txt' (linked below if you are customizing this).

Each elt has the form (REGEXP FILE [LINE COLUMN TYPE HYPERLINK
HIGHLIGHT...]).  If REGEXP matches, the FILE'th subexpression
gives the file name, and the LINE'th subexpression gives the line
number.  The COLUMN'th subexpression gives the column number on
that line.

If FILE, LINE or COLUMN are nil or that index didn't match, that
information is not present on the matched line.  In that case the
file name is assumed to be the same as the previous one in the
buffer, line number defaults to 1 and column defaults to
beginning of line's indentation.

FILE can also have the form (FILE FORMAT...), where the FORMATs
(e.g. "%s.c") will be applied in turn to the recognized file
name, until a file of that name is found.  Or FILE can also be a
function that returns (FILENAME) or (RELATIVE-FILENAME . DIRNAME).
In the former case, FILENAME may be relative or absolute.

LINE can also be of the form (LINE . END-LINE) meaning a range
of lines.  COLUMN can also be of the form (COLUMN . END-COLUMN)
meaning a range of columns starting on LINE and ending on
END-LINE, if that matched.

TYPE is 2 or nil for a real error or 1 for warning or 0 for info.
TYPE can also be of the form (WARNING . INFO).  In that case this
will be equivalent to 1 if the WARNING'th subexpression matched
or else equivalent to 0 if the INFO'th subexpression matched.
See `compilation-error-face', `compilation-warning-face',
`compilation-info-face' and `compilation-skip-threshold'.

What matched the HYPERLINK'th subexpression has `mouse-face' and
`compilation-message-face' applied.  If this is nil, the text
matched by the whole REGEXP becomes the hyperlink.

Additional HIGHLIGHTs take the shape (SUBMATCH FACE), where
SUBMATCH is the number of a submatch and FACE is an expression
which evaluates to a face name (a symbol or string).
Alternatively, FACE can evaluate to a property list of the
form (face FACE PROP1 VAL1 PROP2 VAL2 ...), in which case all the
listed text properties PROP# are given values VAL# as well.

You can customize this variable.

For more information check the manuals.
&lt;/pre&gt;&lt;/div&gt;
</summary><category term="elisp"></category><category term="emacs"></category><category term="maven"></category><category term="programming"></category></entry><entry><title>GNU Emacs and MIT Scheme on Mac OS X</title><link href="http://praveen.kumar.in/2011/03/06/gnu-emacs-and-mit-scheme-on-mac-os-x/" rel="alternate"></link><updated>2011-03-06T21:16:13+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2011-03-06:2011/03/06/gnu-emacs-and-mit-scheme-on-mac-os-x/</id><summary type="html">&lt;p&gt;Today, I planned to go back to the basics by taking &lt;a class="reference external" href="http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/"&gt;6.001 Structure and
Interpretation of Computer
Programs&lt;/a&gt;
offered by MIT OpenCourseWare. I'll save the reason behind it for
another post.&lt;/p&gt;
&lt;p&gt;For running the programs that are used in the class, I decided to use
&lt;a class="reference external" href="http://www.gnu.org/software/mit-scheme/"&gt;MIT/GNU Scheme&lt;/a&gt;. I am
running &lt;a class="reference external" href="http://www.gnu.org/software/emacs/"&gt;GNU Emacs 23&lt;/a&gt; on my Mac
OS X. After some research, I figured out the best way of doing this is
through
&lt;a class="reference external" href="http://www.gnu.org/software/mit-scheme/documentation/mit-scheme-user/GNU-Emacs-Interface.html#GNU-Emacs-Interface"&gt;xscheme&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;First, download the &lt;a class="reference external" href="http://www.gnu.org/software/mit-scheme/"&gt;MIT/GNU Scheme
binary&lt;/a&gt; for Mac OS X and
copy it to your Applications directory. Then configure Emacs to use the
downloaded binary by adding the following lines to your &lt;tt class="docutils literal"&gt;.emacs&lt;/tt&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;setq&lt;/span&gt; &lt;span class="nv"&gt;scheme-program-name&lt;/span&gt; &lt;span class="s"&gt;"/Applications/mit-scheme.app/Contents/Resources/mit-scheme"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="ss"&gt;'xscheme&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Now write your Scheme program.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="c1"&gt;; Compute the square root of a given number using successive&lt;/span&gt;
&lt;span class="c1"&gt;; approximation.&lt;/span&gt;

&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;define &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;sqrt &lt;/span&gt;&lt;span class="nv"&gt;value&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;define &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;is-good-enough?&lt;/span&gt; &lt;span class="nv"&gt;guess&lt;/span&gt; &lt;span class="nv"&gt;value&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;&amp;lt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;abs &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;- &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;* &lt;/span&gt;&lt;span class="nv"&gt;guess&lt;/span&gt; &lt;span class="nv"&gt;guess&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nv"&gt;value&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="mf"&gt;0.0000001&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

  &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;define &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;try&lt;/span&gt; &lt;span class="nv"&gt;guess&lt;/span&gt; &lt;span class="nv"&gt;value&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;is-good-enough?&lt;/span&gt; &lt;span class="nv"&gt;guess&lt;/span&gt; &lt;span class="nv"&gt;value&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="nv"&gt;guess&lt;/span&gt;
        &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;try&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;/ &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;+ &lt;/span&gt;&lt;span class="nv"&gt;guess&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;/ &lt;/span&gt;&lt;span class="nv"&gt;value&lt;/span&gt; &lt;span class="nv"&gt;guess&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nv"&gt;value&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;

  &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;try&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="nv"&gt;value&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;sqrt &lt;/span&gt;&lt;span class="mf"&gt;4.0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Invoke the Scheme process by &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;'M-x&lt;/span&gt; &lt;span class="pre"&gt;run-scheme'&lt;/span&gt;&lt;/tt&gt;. Send the Scheme
buffer to the Scheme process by &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;'M-o'&lt;/span&gt;&lt;/tt&gt; and now you are able to run
Scheme programs from Emacs.&lt;/p&gt;
&lt;p&gt;Below is the screenshot of Scheme running under my Emacs session.&lt;/p&gt;
&lt;div class="figure" style="width: 637px; height: auto; max-width: 100%;"&gt;
&lt;img alt="MIT Scheme under GNU Emacs" src="http://praveen.kumar.in/images/MITSchemeUnderGNUEmacs.png" style="width: 637px; height: auto; max-width: 100%;"/&gt;
&lt;p class="caption"&gt;MIT Scheme under GNU Emacs&lt;/p&gt;
&lt;/div&gt;
</summary><category term="emacs"></category><category term="elisp"></category><category term="scheme"></category><category term="mac"></category><category term="programming"></category></entry><entry><title>Apache Software Foundation</title><link href="http://praveen.kumar.in/2011/03/05/apache-software-foundation/" rel="alternate"></link><updated>2011-03-05T20:30:00+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2011-03-05:2011/03/05/apache-software-foundation/</id><summary type="html">&lt;p&gt;Recently, I started playing with a lot of Open Source products from
&lt;a class="reference external" href="http://www.apache.org/foundation/how-it-works.html"&gt;Apache Software
Foundation&lt;/a&gt;. It
all started with &lt;a class="reference external" href="http://hadoop.apache.org/"&gt;Hadoop&lt;/a&gt;,
&lt;a class="reference external" href="http://hbase.apache.org/"&gt;HBase&lt;/a&gt; and
&lt;a class="reference external" href="http://cassandra.apache.org/"&gt;Cassandra&lt;/a&gt;. Day after day, I am
getting my hands dirty on more Apache Foundation's products like
&lt;a class="reference external" href="http://ant.apache.org/"&gt;Ant&lt;/a&gt;, &lt;a class="reference external" href="http://maven.apache.org/"&gt;Maven&lt;/a&gt;,
&lt;a class="reference external" href="http://archiva.apache.org/"&gt;Archiva&lt;/a&gt; and
&lt;a class="reference external" href="http://incubator.apache.org/thrift/"&gt;Thrift&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;When trying to build HBase from source, I noticed that the project was
using &lt;a class="reference external" href="http://subversion.apache.org/"&gt;Subversion&lt;/a&gt; for version
control. I found it quite odd to see a modern project like HBase not
using a distributed version control tool like
&lt;a class="reference external" href="http://mercurial.selenic.com/"&gt;Mercurial&lt;/a&gt; or
&lt;a class="reference external" href="http://git-scm.com/"&gt;Git&lt;/a&gt;. Soon, I realized that all Apache
projects' source code were maintained in Subversion. Then, I made a
comment to my co-worker that, "Maybe Apache Foundation took over
Subversion too!", soon to realize that it was true. We learned that
Subversion became an Apache &lt;a class="reference external" href="http://incubator.apache.org/"&gt;Incubator&lt;/a&gt;
project in 2009 and became an Apache top-level project in 2010.&lt;/p&gt;
&lt;p&gt;I am really amazed by the number of projects that are now part of the
Apache Software Foundation. Go Apache!&lt;/p&gt;
</summary><category term="programming"></category><category term="open source"></category></entry><entry><title>Halford - Foothill - Moody - Page Mill - Alpine 32 mile loop</title><link href="http://praveen.kumar.in/2010/10/02/halford-foothill-moody-page-mill-alpine-32-mile-loop/" rel="alternate"></link><updated>2010-10-02T11:54:37+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2010-10-02:2010/10/02/halford-foothill-moody-page-mill-alpine-32-mile-loop/</id><summary type="html">&lt;p&gt;I went on a solo bicycle ride this morning. I found everything except
the climb on Moody that connects to Page Mill easy. I had to get down a
couple of times during the final stretch of Moody climb. I think that I
am doing something wrong. Need to work on my climbs.&lt;/p&gt;
&lt;s&gt;Here is the map of the ride.&lt;/s&gt;</summary><category term="biking"></category><category term="maps"></category></entry><entry><title>Halford - Sunnyvale Saratoga - Fruitvale 20 mile loop</title><link href="http://praveen.kumar.in/2010/09/19/halford-sunnyvale-saratoga-fruitvale-20-mile-loop/" rel="alternate"></link><updated>2010-09-19T15:22:06+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2010-09-19:2010/09/19/halford-sunnyvale-saratoga-fruitvale-20-mile-loop/</id><summary type="html">&lt;p&gt;Just finished solo ride of Halford Avenue - Sunnyvale Saratoga Road -
Fruitvale Rd loop. It is a steady easy climb to 600 feet and back.&lt;/p&gt;
&lt;s&gt;Here is the map of the ride.&lt;/s&gt;</summary><category term="biking"></category><category term="maps"></category></entry><entry><title>Halford/Foothill/Arastradero 30 mile loop</title><link href="http://praveen.kumar.in/2010/09/18/halfordfoothillarastradero-30-mile-loop/" rel="alternate"></link><updated>2010-09-18T15:08:28+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2010-09-18:2010/09/18/halfordfoothillarastradero-30-mile-loop/</id><summary type="html">&lt;p&gt;Today, I went for a longer bicycle ride with one of my friends from
college, &lt;a class="reference external" href="http://twitter.com/ravi_b_shankar"&gt;Ravi Shankar&lt;/a&gt;. I have
picked the following loop based on Ed Rak's advice. We took 2 hours and
15 minutes to do this one.&lt;/p&gt;
&lt;p&gt;There were a lot of bicyclists on Foothill Expressway! Apart from some
climbing at Arasterado, the ride was very smooth. Alpine is a downhill
rideI really enjoyed this ride.&lt;/p&gt;
&lt;p&gt;Last night, I created a rough map by hand. After returning from the
ride, I spent some time on &lt;a class="reference external" href="http://www.mapmyride.com/"&gt;MapMyRide.com&lt;/a&gt;
and created a detailed map for this loop.&lt;/p&gt;
&lt;s&gt;Here is the map of the ride.&lt;/s&gt;
&lt;br/&gt;&lt;s&gt;Here is the course fly-by video.&lt;/s&gt;</summary><category term="biking"></category><category term="maps"></category></entry><entry><title>Introduction to Test-Driven Development in C++ using Boost Test Library</title><link href="http://praveen.kumar.in/2010/04/30/introduction-to-test-driven-development-in-c-using-boost-test-library/" rel="alternate"></link><updated>2010-04-30T21:12:40+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2010-04-30:2010/04/30/introduction-to-test-driven-development-in-c-using-boost-test-library/</id><summary type="html">&lt;div class="pull-left img-thumbnail img-padding figure align-left" style="width: 240px; height: auto; max-width: 100%;"&gt;
&lt;img alt="TDD" src="http://praveen.kumar.in/images/TDD.jpg" style="width: 240px; height: auto; max-width: 100%;"/&gt;
&lt;/div&gt;
&lt;p&gt;I have been following &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Test-driven_development"&gt;Test-Driven
Development&lt;/a&gt;
for a few years now. Even though TDD is widespread, often I come across
a few friends who aren’t very familiar with TDD approach. It took a
while for me to really appreciate TDD since I was introduced to it. When
I demonstrated TDD in action, I got a few of my friends interested.&lt;/p&gt;
&lt;p&gt;We have our &lt;a class="reference external" href="http://unittest.red-bean.com/"&gt;own test framework&lt;/a&gt; that
we use in our project which was primarily developed by &lt;a class="reference external" href="http://malvasiabianca.org/"&gt;David
Carlton&lt;/a&gt;. It works very well for our
needs. However, for my personal projects, I wanted to try something that
is more widely used in the industry. I started using
&lt;a class="reference external" href="http://sourceforge.net/apps/mediawiki/cppunit/index.php?title=Main_Page"&gt;CppUnit&lt;/a&gt;
for a while until I found &lt;a class="reference external" href="http://www.boost.org/doc/libs/1_42_0/libs/test/doc/html/index.html"&gt;Boost Test
Library&lt;/a&gt;
coming a long way. Now, I use Boost Test Library for all my personal
projects. It is very easy to setup tests and I really like it.&lt;/p&gt;
&lt;p&gt;I also wanted to write a quick introduction to Boost Test Library. So, I
thought that I will put down a screencast that will solve two purposes
of demonstrating Boost Test Library and serve as an introduction to TDD.
This is not an extensive demo or an introduction. I have chosen a really
simple problem that is often asked in preliminary rounds of technical
interviews. But, it is a good place to start. I don’t guarantee that the
solution is efficient. But, it is correct to my knowledge. Please feel
free to suggest issues or improvements. Please note that a HD version of
this video is available when viewed on &lt;a class="reference external" href="http://www.vimeo.com/"&gt;Vimeo’s
site&lt;/a&gt;.&lt;/p&gt;
&lt;div class="embed-responsive embed-responsive-4by3"&gt;
&lt;iframe allowfullscreen="" frameborder="0" height="300" mozallowfullscreen="" src="http://player.vimeo.com/video/11370903?title=0&amp;amp;byline=0&amp;amp;portrait=0" webkitallowfullscreen="" width="400"&gt;
&lt;/iframe&gt;
&lt;/div&gt;&lt;div class="section" id="problem"&gt;
&lt;h2&gt;Problem&lt;/h2&gt;
&lt;p&gt;Implement a function &lt;code&gt;int atoi(const std::string &amp;amp;val)&lt;/code&gt; that converts
the given string in decimal notation to its integer value. Return 0 if
the input is not a valid integer.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="cp"&gt;#include &amp;lt;string&amp;gt;&lt;/span&gt;

&lt;span class="cp"&gt;#define BOOST_TEST_MODULE atoi&lt;/span&gt;
&lt;span class="cp"&gt;#define BOOST_TEST_DYN_LINK&lt;/span&gt;

&lt;span class="cp"&gt;#include &amp;lt;boost/test/unit_test.hpp&amp;gt;&lt;/span&gt;

&lt;span class="k"&gt;namespace&lt;/span&gt; &lt;span class="n"&gt;impl&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;atoi&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;val&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;multiplier&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kt"&gt;bool&lt;/span&gt; &lt;span class="n"&gt;negative&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;const_reverse_iterator&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;val&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rbegin&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
         &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;val&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rend&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;  &lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="sc"&gt;'9'&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="sc"&gt;'0'&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="sc"&gt;'0'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;multiplier&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="n"&gt;multiplier&lt;/span&gt; &lt;span class="o"&gt;*=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sc"&gt;'-'&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;val&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rend&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="n"&gt;negative&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;negative&lt;/span&gt; &lt;span class="o"&gt;?&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nl"&gt;result&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="c1"&gt;// namespace impl&lt;/span&gt;

&lt;span class="n"&gt;BOOST_AUTO_TEST_CASE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;unit_position&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;BOOST_CHECK_EQUAL&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;impl&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;atoi&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"6"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;BOOST_AUTO_TEST_CASE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tenth_position&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;BOOST_CHECK_EQUAL&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;impl&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;atoi&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"45"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="mi"&gt;45&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;BOOST_AUTO_TEST_CASE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;large_number&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;BOOST_CHECK_EQUAL&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;impl&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;atoi&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"123456789"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="mi"&gt;123456789&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;BOOST_AUTO_TEST_CASE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;negative_number&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;BOOST_CHECK_EQUAL&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;impl&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;atoi&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"-876"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;876&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;BOOST_AUTO_TEST_CASE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sign_in_wrong_position&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;BOOST_CHECK_EQUAL&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;impl&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;atoi&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"72-56"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;BOOST_AUTO_TEST_CASE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;invalid&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;BOOST_CHECK_EQUAL&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;impl&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;atoi&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"abcd"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;# g++ -g -lboost_unit_test_framework -o atoi atoi.cpp &amp;amp;&amp;amp; ./atoi --log_level=test_suite --report_level=short
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
</summary><category term="boost"></category><category term="c++"></category><category term="emacs"></category><category term="programming"></category><category term="tdd"></category></entry><entry><title>Simple GNU Emacs keyboard macro demonstration</title><link href="http://praveen.kumar.in/2010/04/03/simple-gnu-emacs-keyboard-macro-demonstration/" rel="alternate"></link><updated>2010-04-03T14:15:36+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2010-04-03:2010/04/03/simple-gnu-emacs-keyboard-macro-demonstration/</id><summary type="html">&lt;p&gt;My obsession for &lt;a class="reference external" href="http://www.gnu.org/software/emacs/"&gt;GNU Emacs&lt;/a&gt; has
grown over years to an extent where I managed to get a significant
amount of users to adopt Emacs. In the past 10 years, I have learned a
lot of nice tricks that I can do on Emacs to improve my productivity.
So, I have decided to create a series of screencasts demonstrating some
of those.&lt;/p&gt;
&lt;p&gt;I will start with a very simple one, &lt;a class="reference external" href="http://www.gnu.org/software/emacs/manual/html_node/emacs/Keyboard-Macros.html"&gt;macros&lt;/a&gt;.
Quoting from Emacs documentation, "A keyboard macro is a command
defined by an Emacs user to stand for another sequence of keys. For
example, if you discover that you are about to type &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;C-n&lt;/span&gt; &lt;span class="pre"&gt;M-d&lt;/span&gt; &lt;span class="pre"&gt;C-d&lt;/span&gt;&lt;/tt&gt;
forty times, you can speed your work by defining a keyboard macro to
do &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;C-n&lt;/span&gt; &lt;span class="pre"&gt;M-d&lt;/span&gt; &lt;span class="pre"&gt;C-d&lt;/span&gt;&lt;/tt&gt;, and then executing it 39 more times.&lt;/p&gt;
&lt;p&gt;In this demo, I have taken a real world example where you have to add
C++ class member variables and accessors. There are other efficient ways
to do such tasks in GNU Emacs. I personally use
&lt;a class="reference external" href="http://code.google.com/p/yasnippet/"&gt;yasnippets&lt;/a&gt; to do these things.
However, this approach is shown just to demonstrate keyboard macros. To
supplement this video, please take a look at the keyboard macro
documentation that is available within Emacs.&lt;/p&gt;
&lt;div class="embed-responsive embed-responsive-4by3"&gt;
&lt;iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/L6qSWqKz3eQ" width="420"&gt;
&lt;/iframe&gt;
&lt;/div&gt;</summary><category term="emacs"></category><category term="programming"></category><category term="tips"></category></entry><entry><title>Mozilla Thunderbird 3 and Google Contacts addon issue</title><link href="http://praveen.kumar.in/2010/03/28/mozilla-thunderbird-3-and-google-contacts-addon-issue/" rel="alternate"></link><updated>2010-03-28T17:58:28+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2010-03-28:2010/03/28/mozilla-thunderbird-3-and-google-contacts-addon-issue/</id><summary type="html">&lt;p&gt;Yesterday, I upgraded my Ubuntu 9.10 to Ubuntu &lt;a class="reference external" href="http://releases.ubuntu.com/10.04/"&gt;10.04 beta
1&lt;/a&gt; (Lucid Lynx). Lucid comes with
&lt;a class="reference external" href="http://www.mozillamessaging.com/en-US/thunderbird/"&gt;Thunderbird 3&lt;/a&gt;.
After upgrading, using Thunderbird 3 once and rebooting, Thunderbird
started up with empty profile and showed the account creation window.
When I looked into the home directory, I noticed that my
&lt;code&gt;.thunderbird&lt;/code&gt; is moved to &lt;code&gt;.thunderbird.upstream&lt;/code&gt; and the new
&lt;code&gt;.thunderbird&lt;/code&gt; is created with an empty profile. Moving the
&lt;code&gt;.thunderbird.upstream&lt;/code&gt; back to &lt;code&gt;.thunderbird&lt;/code&gt; will work fine the
first time and on the next startup, Thunderbird will repeat the same and
start with an empty profile.&lt;/p&gt;
&lt;p&gt;After banging my head against this issue for a while and some help from
&lt;code&gt;#ubuntu-mozillateam&lt;/code&gt;, I figured out that &lt;a class="reference external" href="https://addons.mozilla.org/en-US/thunderbird/addon/7307"&gt;Google Contacts
addon&lt;/a&gt; is
causing this problem. When Thunderbird starts up, Google Contacts addon
creates a &lt;code&gt;.mozilla-thunderbird&lt;/code&gt; directory which is the directory for
Thunderbird 2. Thunderbird 3 doesn't like this directory and it does all
this renaming stuff. Uninstalling the Google Contacts addon fixed this
issue for me.&lt;/p&gt;
&lt;p&gt;The lesson that I learned from this experience is to start Thunderbird
in safe mode, &lt;code&gt;thunderbird --safe-mode&lt;/code&gt; that will help you to isolate
issues that are caused by faulty extensions.&lt;/p&gt;
</summary><category term="linux"></category><category term="tips"></category></entry><entry><title>Getting untruncated command line options passed to a Solaris process</title><link href="http://praveen.kumar.in/2010/02/24/getting-untruncated-command-line-options-passed-to-a-solaris-process/" rel="alternate"></link><updated>2010-02-24T17:41:23+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2010-02-24:2010/02/24/getting-untruncated-command-line-options-passed-to-a-solaris-process/</id><summary type="html">&lt;p&gt;If you have ever wanted to get the command line options that were passed
to a running Solaris process, you might have noticed that the output of
command line arguments from &lt;code&gt;ps&lt;/code&gt; is truncated to 80 characters.
Looking into &lt;code&gt;/usr/include/sys/procfs.h&lt;/code&gt; will reveal the reason why!
This is because of the restriction in &lt;code&gt;struct psinfo&lt;/code&gt;. Here are the
relevant fields from the definition of &lt;code&gt;struct psinfo&lt;/code&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="cp"&gt;#define    PRFNSZ      16  &lt;/span&gt;&lt;span class="cm"&gt;/* Maximum size of execed filename */&lt;/span&gt;&lt;span class="cp"&gt;&lt;/span&gt;
&lt;span class="cp"&gt;#define    PRARGSZ     80  &lt;/span&gt;&lt;span class="cm"&gt;/* number of chars of arguments */&lt;/span&gt;&lt;span class="cp"&gt;&lt;/span&gt;

&lt;span class="k"&gt;typedef&lt;/span&gt; &lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="n"&gt;psinfo&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
         &lt;span class="cm"&gt;/* Fields omitted */&lt;/span&gt;
         &lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="n"&gt;pr_fname&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;PRFNSZ&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;    &lt;span class="cm"&gt;/* name of exec'ed file */&lt;/span&gt;
         &lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="n"&gt;pr_psargs&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;PRARGSZ&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;  &lt;span class="cm"&gt;/* initial characters of arg list */&lt;/span&gt;
         &lt;span class="cm"&gt;/* Fields omitted */&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="kt"&gt;psinfo_t&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;So, due to the 80 characters restriction in &lt;code&gt;psinfo::pr_psargs&lt;/code&gt;, the
kernel will not be keeping track of arguments beyond the limit. Now, the
only way to get the information is from the process' memory of &lt;code&gt;argv&lt;/code&gt;.
In order to do this, you should have access to read the processes'
memory. This is the trick employed by both &lt;code&gt;pargs&lt;/code&gt; and BSD version of
&lt;code&gt;ps&lt;/code&gt; with &lt;code&gt;-ww&lt;/code&gt; switch.&lt;/p&gt;
&lt;p&gt;To get the full length command line arguments passed to a process, you
can do one of the following.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;$ /usr/ucb/ps eww
$ pargs -l
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;One catch here is that, if the process has modified the &lt;code&gt;argv&lt;/code&gt; since
it was started, the output reported by both &lt;code&gt;ps&lt;/code&gt; and &lt;code&gt;pargs&lt;/code&gt; will
show the modified data and not the initial arguments that were passed
in. However, modifying &lt;code&gt;argv&lt;/code&gt; within a program is not a standard
practice and hence the chance of encountering such a scenario is remote.&lt;/p&gt;
</summary><category term="programming"></category><category term="solaris"></category><category term="tips"></category></entry><entry><title>Dumping core file from set-UID, set-GID 'ed processes in Solaris</title><link href="http://praveen.kumar.in/2010/02/23/dumping-core-file-from-set-uid-set-gid-ed-processes-in-solaris/" rel="alternate"></link><updated>2010-02-23T16:52:44+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2010-02-23:2010/02/23/dumping-core-file-from-set-uid-set-gid-ed-processes-in-solaris/</id><summary type="html">&lt;p&gt;I had a &lt;a class="reference external" href="/2008/06/05/dumping-core-file-from-set-uid-set-gid-ed-processes-in-linux/"&gt;previous
post&lt;/a&gt;
on how to turn on core files for set-UID, set-GID processes under Linux.
Recently we ran into the same problem on Solaris. To turn on core files
for set-id processes, use &lt;code&gt;coreadm&lt;/code&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;$ pfexec coreadm -e global-setid
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Please keep in mind that these core files can have information that
non-privileged user isn't supposed to know. Quoting from Solaris man
page:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;A process that is or ever has been setuid or setgid since its last
exec(2) presents security issues that relate to dumping
core. Similarly, a process that initially had superuser privileges and
lost those privileges through setuid(2) also presents security issues
that are related to dumping core. A process of either type can contain
sensitive information in its address space to which the current
nonprivileged owner of the process should not have access. If setid
core files are enabled, they are created mode 600 and owned by the
superuser.
&lt;/pre&gt;&lt;/div&gt;
</summary><category term="programming"></category><category term="solaris"></category><category term="tips"></category></entry><entry><title>Random links for week 7</title><link href="http://praveen.kumar.in/2010/02/20/random-links-for-week-7/" rel="alternate"></link><updated>2010-02-20T11:40:02+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2010-02-20:2010/02/20/random-links-for-week-7/</id><summary type="html">&lt;ul class="simple"&gt;
&lt;li&gt;Last week, I filed my 2009 Federal and State taxes through
&lt;a class="reference external" href="http://turbotax.intuit.com/"&gt;TurboTax&lt;/a&gt;. I found a promotion from
&lt;a class="reference external" href="https://www.fidelity.com/"&gt;Fidelity&lt;/a&gt; that offered &lt;a class="reference external" href="http://l.kumar.in/turbotax"&gt;25%
discount&lt;/a&gt; on all TurboTax products. If
you are a TurboTax user, you can take advantage of it. You need not
be a Fidelity customer to use this promotion. This is not a
recommendation or endorsement for TurboTax. Take the discount if you
are an existing user or you decided to try TurboTax.&lt;/li&gt;
&lt;li&gt;Last weekend, I went to &lt;a class="reference external" href="http://www.skirose.com/"&gt;Mt.Rose&lt;/a&gt; for
skiing with &lt;a class="reference external" href="http://www.facebook.com/lukehornof"&gt;Luke Hornof&lt;/a&gt;.
This was second ski trip. The first one was Sierra at Tahoe. Mt.Rose
was a smaller resort compared to Sierra. However, I liked it much
better for the experience that I had. The lift lines were smaller and
the people were much friendlier. The ski rental shop people were very
helpful and paid good attention in getting the right equipment and
settings. The ski instructor Scott was one of the most knowledgeable
ski instructor and was an excellent skier! Overall, it was a very
positive experience and I will go there again. I am also planning to
take a bunch of private lessons from Scott.&lt;/li&gt;
&lt;li&gt;During the ski trip, we stayed at &lt;a class="reference external" href="http://www.carson-city.nv.us/"&gt;Carson
City&lt;/a&gt;. It was a small city, not so
busy! The people were cool and very nice. Luke and I were hoping
around bars, pool clubs and hookah lounges on a quest with a
hypothetical question and it was fun. I liked this place. But, I am
not sure if I will visit this one again.&lt;/li&gt;
&lt;/ul&gt;
</summary><category term="skiing"></category><category term="tax"></category></entry><entry><title>Chainloading OpenSolaris from GRUB 2</title><link href="http://praveen.kumar.in/2010/02/20/chainloading-opensolaris-from-grub-2/" rel="alternate"></link><updated>2010-02-20T01:28:41+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2010-02-20:2010/02/20/chainloading-opensolaris-from-grub-2/</id><summary type="html">&lt;p&gt;I have a triple boot system with OpenSolaris, Ubuntu 9.10 and Microsoft
Windows XP. I upgraded my Ubuntu 9.10 GRUB to GRUB 2 today. GRUB2
automatically added an entry for Microsoft Windows XP. However, it
didn't detect the OpenSolaris that was installed. I had to manually
configure OpenSolaris chainloading in GRUB 2. If you are in a similar
situation, this will be helpful for you to configure your GRUB 2.&lt;/p&gt;
&lt;p&gt;Find your OpenSolaris partition.&lt;/p&gt;
&lt;pre class="literal-block"&gt;
$ sudo fdisk -l

Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00099420

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1       12158    97659103+   7  HPFS/NTFS
/dev/sda2   *       12159       24314    97643070   bf  Solaris
/dev/sda3           24317       38913   117250402+   f  W95 Ext'd (LBA)
/dev/sda5           24317       38297   112302351   83  Linux
/dev/sda6           38298       38913     4947988+  82  Linux swap / Solaris
&lt;/pre&gt;
&lt;p&gt;In my case, it is /&lt;tt class="docutils literal"&gt;dev/sda2&lt;/tt&gt;. Once you have found it, edit
&lt;tt class="docutils literal"&gt;/etc/grub.d/40_custom&lt;/tt&gt; and add the following entry for OpenSolaris. A
key difference between GRUB and GRUB 2 is the device numbering. In GRUB,
&lt;tt class="docutils literal"&gt;sda2&lt;/tt&gt; is &lt;tt class="docutils literal"&gt;(hd0,1)&lt;/tt&gt;. However, in GRUB 2, &lt;tt class="docutils literal"&gt;sda2&lt;/tt&gt; is &lt;tt class="docutils literal"&gt;(hd0,2)&lt;/tt&gt;.
Keep this in mind when you are configuring your GRUB 2.&lt;/p&gt;
&lt;pre class="literal-block"&gt;
# Chainload OpenSolaris GRUB.
menuentry "Chainload OpenSolaris GRUB" {
    set root=(hd0,2)
    chainloader +1
}
&lt;/pre&gt;
&lt;p&gt;Now your &lt;tt class="docutils literal"&gt;/etc/grub.d/40_custom&lt;/tt&gt; should look like the following.&lt;/p&gt;
&lt;pre class="literal-block"&gt;
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

# Chainload OpenSolaris GRUB.
menuentry "Chainload OpenSolaris GRUB" {
    set root=(hd0,2)
    chainloader +1
}
&lt;/pre&gt;
&lt;p&gt;Then run &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;update-grub&lt;/span&gt;&lt;/tt&gt; to regenerate &lt;tt class="docutils literal"&gt;/boot/grub/grub.cfg&lt;/tt&gt;.&lt;/p&gt;
&lt;pre class="literal-block"&gt;
$ sudo update-grub
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.31-19-generic
Found initrd image: /boot/initrd.img-2.6.31-19-generic
Found memtest86+ image: /boot/memtest86+.bin
Found Microsoft Windows XP Professional on /dev/sda1
done
&lt;/pre&gt;
&lt;p&gt;You will not find anything about OpenSolaris in the output message.
However, you can examine &lt;tt class="docutils literal"&gt;/boot/grub/grub.cfg&lt;/tt&gt; to find if an entry is
added for OpenSolaris.&lt;/p&gt;
&lt;pre class="literal-block"&gt;
$ tail -10 /boot/grub/grub.cfg
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

# Chainload OpenSolaris GRUB.
menuentry "Chainload OpenSolaris GRUB" {
    set root=(hd0,2)
    chainloader +1
}
### END /etc/grub.d/40_custom ###
&lt;/pre&gt;
</summary><category term="linux"></category><category term="solaris"></category><category term="tips"></category></entry><entry><title>Enabling virtual consoles in OpenSolaris</title><link href="http://praveen.kumar.in/2010/02/19/enabling-virtual-consoles-in-opensolaris/" rel="alternate"></link><updated>2010-02-19T21:23:58+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2010-02-19:2010/02/19/enabling-virtual-consoles-in-opensolaris/</id><summary type="html">&lt;p&gt;&lt;a class="reference external" href="http://www.opensolaris.org/"&gt;OpenSolaris&lt;/a&gt; was lacking virtual
console for a while. This support was made available since build
snv_124. However, due to various bugs, it is turned off by default. To
enable virtual consoles, do the following.&lt;/p&gt;
&lt;pre class="literal-block"&gt;
$ pfexec svcadm enable vtdaemon
$ pfexec svcadm enable console-login:vt2
$ pfexec svcadm enable console-login:vt3
$ pfexec svcadm enable console-login:vt4
$ pfexec svcadm enable console-login:vt5
$ pfexec svcadm enable console-login:vt6
&lt;/pre&gt;
&lt;p&gt;To enable hot keys for switching virtual consoles, do the following.&lt;/p&gt;
&lt;pre class="literal-block"&gt;
$ pfexec svccfg -s vtdaemon setprop options/hotkeys=true
$ pfexec svcadm refresh vtdaemon
$ pfexec svcadm restart vtdaemon
&lt;/pre&gt;
&lt;p&gt;Console security is enabled by default. What it means is that if you
leave a virtual console and move to another one, the previous virtual
console will be locked and you will have to provide the password to
unlock it. If you don't like that, turn the security off.&lt;/p&gt;
&lt;pre class="literal-block"&gt;
$ pfexec svccfg -s vtdaemon setprop options/secure=false
$ pfexec svcadm refresh vtdaemon
$ pfexec svcadm restart vtdaemon
&lt;/pre&gt;
&lt;p&gt;If you have already logged into an X session while doing this, logout
and wait for Xorg to restart. After that, you should be able to switch
between the virtual consoles by pressing the hotkey &lt;tt class="docutils literal"&gt;Alt + Ctrl + F#&lt;/tt&gt;,
where # =&amp;gt; 1 to 7. Console 1 is the primary console, 2-6 are virtual
consoles and 7 is the Xorg.&lt;/p&gt;
</summary><category term="solaris"></category><category term="tips"></category></entry><entry><title>Tack sharp eyes</title><link href="http://praveen.kumar.in/2010/01/18/tack-sharp-eyes/" rel="alternate"></link><updated>2010-01-18T14:21:27+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2010-01-18:2010/01/18/tack-sharp-eyes/</id><summary type="html">&lt;div class="pull-left img-thumbnail img-padding figure" style="width: 620px; height: auto; max-width: 100%;"&gt;
&lt;img alt="Tack Sharp Eye" src="http://praveen.kumar.in/images/TackSharpEye.jpg" style="width: 620px; height: auto; max-width: 100%;"/&gt;
&lt;/div&gt;
&lt;p&gt;One of the key things that I try to do when I take portraits is to focus
on the eye of the subject. This is a well documented technique and works
very well. Also, each lens has a sweet spot aperture for which the
picture is really crisp. I find that it is at f/2.8 for my Canon 50 mm
f/1.4 and f/4 for my Canon 70-200 mm f/2.8L. When I play with these
sweet spots, I seem to get impressive tack sharp eyes. This is a crop
from one of the self portraits that I shot with my Canon 50 mm at f/2.8.
Next time, don't shoot full wide for crisp results. Go ahead and try
stopping down your aperture and find your sweet spot.&lt;/p&gt;
</summary><category term="photography"></category><category term="tips"></category></entry><entry><title>Beginning Alpine Skiing</title><link href="http://praveen.kumar.in/2009/12/30/beginning-alpine-skiing/" rel="alternate"></link><updated>2009-12-30T14:58:12+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2009-12-30:2009/12/30/beginning-alpine-skiing/</id><summary type="html">&lt;div class="pull-left img-thumbnail img-padding figure" style="width: 537px; height: auto; max-width: 100%;"&gt;
&lt;img alt="Skiing" src="http://praveen.kumar.in/images/Skiing.jpg" style="width: 537px; height: auto; max-width: 100%;"/&gt;
&lt;/div&gt;
&lt;p&gt;This winter, I decided to give &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Alpine_skiing"&gt;Alpine
Skiing&lt;/a&gt; a try. As I live
in the San Francisco Bay Area, Lake Tahoe is the natural choice for me
to go for skiing. Me and three of my friends went to Tahoe the Christmas
weekend. We stayed in &lt;a class="reference external" href="http://theridgesierra.com/"&gt;The Ridge Sierra&lt;/a&gt;
at Stateline, NV.&lt;/p&gt;
&lt;p&gt;I had never skied before. So, I decided to take beginner lessons. We
were considering two resorts, &lt;a class="reference external" href="http://www.skiheavenly.com/"&gt;Heavenly Ski
Resort&lt;/a&gt; and &lt;a class="reference external" href="http://www.sierraattahoe.com/"&gt;Sierra at
Tahoe&lt;/a&gt;. Heavenly was located very
close to where we were staying and Sierra at Tahoe was a 30 minutes
drive. As some of us felt that Heavenly is expensive and we got good
recommendation about Sierra at Tahoe from a ski rental shop, we decided
to go for Sierra at Tahoe. They had a 2.5 hour beginner lesson, ski
rental and a full day restricted lift ticket for $89.&lt;/p&gt;
&lt;p&gt;We reached the resort at 10 am on the day after Christmas and the resort
was crowded. It was a sunny day. We first had to check-in at their
computers, pay for the package and proceed to the ski rentals. I got a
153 cm ski. It was awkward for me to walk with the ski boots in the
beginning. The lesson started at 11:00 am. We had an instructor named
Scott. We were taught about how to put on the skis, how to remove it,
how to get back from a fall,
&lt;a class="reference external" href="http://en.wikipedia.org/wiki/Snowplough_turn"&gt;wedging&lt;/a&gt; (French fries
and Pizzas), stopping using wedge, climbing up hill without lift,
getting on and off the lifts, making turns, stopping using C turn,
slowing down using S turn, etc. I fell down a few times. Soon, I grasped
some of the basics and managed to avoid falling by stopping using a turn
or slowing down using a wedge.&lt;/p&gt;
&lt;p&gt;After the first day lessons, we took the lift to the bunny slopes about
10 times and applied some of the things that we learned on that day. I
was able to appreciate some of the things that I didn't quite get during
the lessons. There were a few times, I fell when I get off from the
chair lift. One thing that I noticed was that the times that I fell was
only when there were four people riding the lift. When there were lesser
people on the lift, I didn't have an issue in getting off the lift. At
the end of the day, we were so happy that we did reasonably well for the
first timer. We wanted to come on the next day as well. But, my friends
were warning me that we will feel so tired that we won't be able to make
it. So, we decided to defer the decision until the next day morning.&lt;/p&gt;
&lt;p&gt;The next day, I didn't feel a thing. Two out of four of us opted out.
Myself and Riaz Khan decided to head out for the second day lessons. It
was bright and sunny when we left Stateline. However, once we crossed
South Lake Tahoe, it was snowing heavily. We were wondering if we should
turn around and call it off. But, we were too super enthusiastic to turn
around. Finally, we got the message that it was an awesome day to ski
from the ticketing lady. Also Sierra at Tahoe was running a promotion
and upgraded our previous day ticket to a 3-pak at just $61 more. This
time, we opted for the afternoon class and took the lift to the bunny
slopes quite a few times in the morning. I got a chance to talk with
various strangers while I was on the lift. One of such strangers was a
Australian named Mark. He said that he will travel to the North America
this season and will go back to Australia when it is winter there as he
loves skiing. He identified me as an Indian and asked me why most of the
Indians are either Software Engineer or a Doctor!&lt;/p&gt;
&lt;p&gt;I liked the teaching style of Scott and opted for his class on the
second day as well. But, he insisted that I get a different instructor
to get another perspective on the skiing basics as everyone has a
different teaching style and approach. However, we anyway went ahead
with Scott. The second class was all about making turns to slow down. We
were taken to a higher slope, a 5 mile trail marked as green circle. We
were coming down this slope using S turns to slow us down. We were still
skiing wedged at this point. We did quite well for a beginner on his
second day. I fell only once the entire stretch and I slowly gained the
confidence to negotiate steeper slopes using turns. We then completed
another very satisfying day at Tahoe.&lt;/p&gt;
&lt;p&gt;We (Riaz Khan) are planning to go for another trip soon to get our next
level lessons. Scott told that we were ready for parallel skiing and
turns in our next lessons. I am very eagerly looking for our next trip
to Tahoe.&lt;/p&gt;
&lt;p&gt;I didn't take any of my cameras to the ski resort as I don't want to get
side tracked into photography. So, there are no pictures of me at the
ski resort.&lt;/p&gt;
&lt;p&gt;I want to share some thoughts for the beginners about the gears. Buy a
snow pant. It is a very good investment. I am happy that I bought
Coumbia Titaninum snow pants. They make to feel very comfortable and
warm. Invest in a branded water/wind-proof gloves. I bought &lt;a class="reference external" href="http://www.thenorthface.com/catalog/sc-gear/mens-montana-glove.html"&gt;North Face
Montana&lt;/a&gt;
and it was really awesome. Some of my friends got cheaper gloves. But
they were complaining that their fingers were freezing after they fell a
few times in the snow as water went inside it. Look for pockets in the
gloves to use hand warmers if needed. Next, get good goggles. You might
need it on a very sunny day and even more on a snowy day. You might want
to get one with good UV-A/B protection. So spend those extra dollars to
get a branded goggles, because the last thing that you want to
compromise is on your eye sight. Get a beanie.&lt;/p&gt;
&lt;p&gt;Keep some energy bars and water with you. Going to the restaurant on a
crowded day will waste your time that could otherwise be spent in
skiing. If you have energy bars, you can finish your meal while you are
on the chair lift.&lt;/p&gt;
&lt;p&gt;Finally, keep snow chains in your car as the weather might change
drastically and there are some parts of the highway where they might
make snow chains mandatory. Even though we had a FWD sedan (Nissan
Altima), we didn't use snow chains during this trip. But, we carried the
chains in the car.&lt;/p&gt;
</summary><category term="skiing"></category><category term="travel"></category></entry><entry><title>Random links for week 50</title><link href="http://praveen.kumar.in/2009/12/12/random-links-for-week-50/" rel="alternate"></link><updated>2009-12-12T11:18:55+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2009-12-12:2009/12/12/random-links-for-week-50/</id><summary type="html">&lt;ul class="simple"&gt;
&lt;li&gt;We were troubleshooting an interesting problem with
&lt;a class="reference external" href="http://gcc.gnu.org/"&gt;GCC&lt;/a&gt;/&lt;a class="reference external" href="http://www.gnu.org/software/gdb/"&gt;gdb&lt;/a&gt;
that caused gdb to report an argument passed by reference as if it
was passed by value. In the process, I was digging up some
&lt;a class="reference external" href="http://en.wikipedia.org/wiki/DWARF"&gt;DWARF&lt;/a&gt; information. Ever
wondered what exactly gcc is adding to support the debuggers when you
use '-g' switch? Michael J. Eager has an excellent "&lt;a class="reference external" href="http://dwarfstd.org/Debugging%20using%20DWARF.pdf"&gt;Introduction to
DWARF Debugging
Format&lt;/a&gt;"
article.&lt;/li&gt;
&lt;li&gt;I Found that &lt;a class="reference external" href="http://docs.sun.com/app/docs/doc/819-3683"&gt;Sun Studio
dbx&lt;/a&gt; can handle
binaries created by GCC with DWARF-2 debugging information very well.
Sun Wiki has a page describing the &lt;a class="reference external" href="http://wikis.sun.com/display/SunStudio/Dwarf+Differences+between+Sun+Studio+and+GCC+compilers"&gt;DWARF
differences&lt;/a&gt;
between Sun Studio and GCC compilers.&lt;/li&gt;
&lt;li&gt;Last week, the launch of Russian missile, Bulava caused quite a stir
in Norway. Russian strategic nuclear forces &lt;a class="reference external" href="http://russianforces.org/blog/2009/12/no_luck_for_bulava.shtml"&gt;blog
claims&lt;/a&gt;
that the test was a failure. However, I see some comments that
suggests that the spiral motion was a feature instead of a bug. Here
is the &lt;a class="reference external" href="http://www.youtube.com/watch?v=lYvM68AtlbA"&gt;video&lt;/a&gt; of one
of those UFO (later identified as Bulava) sightings.&lt;/li&gt;
&lt;li&gt;To include a little more variety in my exercise routines, I am
planning to include some
&lt;a class="reference external" href="http://en.wikipedia.org/wiki/Plyometrics"&gt;Plyometrics&lt;/a&gt;.
Currently, I am improving my weighted
&lt;a class="reference external" href="http://en.wikipedia.org/wiki/Squat_%28exercise%29"&gt;squats&lt;/a&gt; by
going for high intensity squats. Squats is one of the exercise that I
hate. However, in terms of fitness routines, I find doing something
that I hate pays off very well.&lt;/li&gt;
&lt;/ul&gt;
</summary><category term="fitness"></category><category term="gnu"></category><category term="programming"></category></entry><entry><title>Random links for week 46</title><link href="http://praveen.kumar.in/2009/11/14/random-links-for-week-46/" rel="alternate"></link><updated>2009-11-14T20:40:19+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2009-11-14:2009/11/14/random-links-for-week-46/</id><summary type="html">&lt;ul class="simple"&gt;
&lt;li&gt;Editing big chunks of text in Firefox text area is a pain. I am using
&lt;a class="reference external" href="https://addons.mozilla.org/en-US/firefox/addon/4125"&gt;"It's all
Text"&lt;/a&gt;
Firefox add-on to edit text from a text area in external editors like
Emacs, Vim, etc. I have configured my add-on to use
&lt;a class="reference external" href="http://www.emacswiki.org/emacs/EmacsClient"&gt;emacsclient&lt;/a&gt;. I use
this heavily when I have to edit text in TWiki, Bugzilla, Wordpress,
etc. This post is written in Emacs using this add-on.&lt;/li&gt;
&lt;li&gt;Speaking of TWiki, I discovered last week that there is an Emacs
major mode for editing TWiki markup. It is
&lt;a class="reference external" href="http://www.neilvandyke.org/erin-twiki-emacs/"&gt;erin.el&lt;/a&gt;, named
after Erin Gray. It has some WYSIWYG capabilities and a markup
sampler. I will start using it to see how useful it would be.&lt;/li&gt;
&lt;li&gt;I started using
&lt;a class="reference external" href="http://orgmode.org/worg/org-contrib/babel/org-babel.php"&gt;Org-babel&lt;/a&gt;,
that lets you to execute source code in various languages within
Org-mode documents. It is really cool! It can also do cool syntax
highlighting in the exported files.&lt;/li&gt;
&lt;li&gt;I store my daily weight measurements as an Org table in Emacs. I was
using &lt;a class="reference external" href="http://www.gnuplot.info/"&gt;Gnuplot&lt;/a&gt; to plot these values to
track progress. Last week, I learned about &lt;a class="reference external" href="http://www.r-project.org/"&gt;R
project&lt;/a&gt; and started experimenting a
bit with it as well. Data visualization really helps.&lt;/li&gt;
&lt;li&gt;From next week, I am adding &lt;a class="reference external" href="http://en.wikipedia.org/wiki/High-intensity_interval_training"&gt;HIIT
cardio&lt;/a&gt;
sessions to my exercise routine. I am going to have my HIIT sessions
on non-lifting days, which seems to be the most recommended strategy.
I don't love cardio as much as lifting weights. But, I am eagerly
looking for experimenting with HIIT.&lt;/li&gt;
&lt;/ul&gt;
</summary><category term="emacs"></category><category term="fitness"></category></entry><entry><title>Random links for week 45</title><link href="http://praveen.kumar.in/2009/11/07/random-links-for-week-45/" rel="alternate"></link><updated>2009-11-07T09:51:28+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2009-11-07:2009/11/07/random-links-for-week-45/</id><summary type="html">&lt;ul class="simple"&gt;
&lt;li&gt;I have an &lt;a class="reference external" href="http://www.apple.com/appletv/"&gt;Apple TV&lt;/a&gt; and I run
&lt;a class="reference external" href="http://xbmc.org/"&gt;XBMC&lt;/a&gt; and
&lt;a class="reference external" href="http://www.boxee.tv/homepage/"&gt;Boxee&lt;/a&gt; on my Apple TV using
&lt;a class="reference external" href="http://code.google.com/p/atvusb-creator/"&gt;Patchstick&lt;/a&gt;. Apple
&lt;a class="reference external" href="http://www.apple.com/pr/library/2009/10/29appletv.html"&gt;introduced Apple TV
3.0&lt;/a&gt;
Software last week. Somehow, the software just got upgraded
automatically causing me to lose XBMC and Boxee. Patchstick isn't
available for Apple TV 3.0 yet. So, I had to &lt;a class="reference external" href="http://patchstick.wikispaces.com/Oops,+I+updated+to+firmware+3.0"&gt;downgrade
it&lt;/a&gt;
using another Patchstick product (Canadian based).&lt;/li&gt;
&lt;li&gt;I am using &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Whey"&gt;Whey&lt;/a&gt; protein
supplement as my post workout drink for a while now. Recently, I came
across &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Casein"&gt;Casein&lt;/a&gt; protein
supplements and started using it too. I take Whey after workout and
take Casein before going to bed (only on workout days). Here is &lt;a class="reference external" href="http://www.wannabebig.com/supplements/whey-protein-vs-casein-protein-the-battle-continues/"&gt;an
article&lt;/a&gt;
that compares Whey and Casein.&lt;/li&gt;
&lt;li&gt;I am using &lt;a class="reference external" href="http://zagadka.vm.bytemark.co.uk/magit/"&gt;magit&lt;/a&gt; mode
in Emacs with my git repositories. It is quite helpful most of the
times.&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://en.wikipedia.org/wiki/DTrace"&gt;DTrace&lt;/a&gt; is a powerful tool
for tracing a process. Recently, we have started working on defining
&lt;a class="reference external" href="http://wikis.sun.com/display/DTrace/Statically+Defined+Tracing+for+User+Applications"&gt;Statically Defined
Tracing&lt;/a&gt;
for our system. I feel that it is a quite powerful way to approach
system tracing.&lt;/li&gt;
&lt;/ul&gt;
</summary><category term="emacs"></category><category term="fitness"></category><category term="solaris"></category></entry><entry><title>Random links for week 44</title><link href="http://praveen.kumar.in/2009/10/31/random-links-for-week-44/" rel="alternate"></link><updated>2009-10-31T00:51:01+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2009-10-31:2009/10/31/random-links-for-week-44/</id><summary type="html">&lt;ul class="simple"&gt;
&lt;li&gt;Since I updated to
&lt;a class="reference external" href="http://hub.opensolaris.org/bin/view/Main/"&gt;OpenSolaris&lt;/a&gt; update
snv_124, I am facing issues with Indic fonts rendering. I have
created &lt;a class="reference external" href="http://defect.opensolaris.org/bz/show_bug.cgi?id=11733"&gt;a
bug&lt;/a&gt;
describing the problem. The root cause of the problem isn't
diagonized yet. If someone knows what could be wrong, please let me
know.&lt;/li&gt;
&lt;li&gt;I keep hearing a lot about &lt;a class="reference external" href="http://www.haskell.org/"&gt;Haskell&lt;/a&gt;
lately and wanted to get introduced to &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Functional_programming"&gt;functional
programming&lt;/a&gt;
through Haskell. David Carlton and friends recently started a
&lt;a class="reference external" href="http://code.google.com/p/haskell-study/"&gt;Haskell study group&lt;/a&gt;. It
was a great opportunity and wonderful setting for learning Haskell! I
just joined the group. We are studying &lt;a class="reference external" href="http://www.realworldhaskell.org/blog/"&gt;Real World
Haskell&lt;/a&gt;. The book is
available
&lt;a class="reference external" href="http://book.realworldhaskell.org/read/index.html"&gt;online&lt;/a&gt;. I am
currently on chapter 3 and it is engaging. Please feel free to join
the &lt;a class="reference external" href="http://www.red-bean.com/mailman/listinfo/haskell-study"&gt;mailing
list&lt;/a&gt;, if
interested.&lt;/li&gt;
&lt;li&gt;My latest &lt;a class="reference external" href="http://www.gnu.org/software/emacs/"&gt;Emacs&lt;/a&gt; addiction is
&lt;a class="reference external" href="http://orgmode.org/"&gt;Org-Mode&lt;/a&gt;. I started using Org-Mode to
maintain my GTD workflow. I am also using it as my note taking tool
and daily/weekly status reporting tool at work. Org-Mode is very
powerful! Give it a try and you will find out.&lt;/li&gt;
&lt;li&gt;I just got back into the habit of going to gym regularly after a
couple of busy months at work. This time, one of my primary goal is
to able to do unassisted chin-ups. Here is &lt;a class="reference external" href="http://www.intense-workout.com/pull_ups.html"&gt;an
article&lt;/a&gt; on how to
increase one's chin-ups. Currently, I am focusing on negatives.&lt;/li&gt;
&lt;li&gt;I am a big fan of Hyderabadi Chicken Biryani. I came across &lt;a class="reference external" href="http://www.youtube.com/watch?v=QjvQ7T01tLo"&gt;this
great recipe&lt;/a&gt; on
YouTube and tried it out a couple of times. The one I prepared
yesterday turned out really great! If you are a Biryani fan, I would
strongly recommend this recipe.&lt;/li&gt;
&lt;/ul&gt;
</summary><category term="cooking"></category><category term="emacs"></category><category term="haskell"></category><category term="solaris"></category><category term="weight training"></category></entry><entry><title>Fix mouse cursor jumping to top left corner of screen on OpenSolaris</title><link href="http://praveen.kumar.in/2009/09/12/fix-mouse-cursor-jumping-to-top-left-corner-of-screen-on-opensolaris/" rel="alternate"></link><updated>2009-09-12T12:12:03+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2009-09-12:2009/09/12/fix-mouse-cursor-jumping-to-top-left-corner-of-screen-on-opensolaris/</id><summary type="html">&lt;p&gt;-&amp;gt; &lt;strong&gt;Update 2009-11-07:&lt;/strong&gt; This issue is fixed in OpenSolaris build
snv_126. &amp;lt;-&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://opensolaris.org/os/"&gt;OpenSolaris&lt;/a&gt; &lt;a class="reference external" href="http://pkg.opensolaris.org/dev/en/index.shtml"&gt;dev
repository&lt;/a&gt; update
snv_116 introduced an &lt;a class="reference external" href="http://www.x.org/wiki/"&gt;XOrg&lt;/a&gt;
&lt;a class="reference external" href="http://defect.opensolaris.org/bz/show_bug.cgi?id=9862"&gt;bug&lt;/a&gt; that
caused the mouse cursor to jump to the top left corner of the screen
very frequently. Apparently, there is some floating point math issue is
involved using MMX/SSE2 instructions. I was living with the workaround
posted on
&lt;a class="reference external" href="http://defect.opensolaris.org/bz/show_bug.cgi?id=9862"&gt;bugzilla&lt;/a&gt;. I
was hoping that the bug would soon be fixed in the subsequent updates.
Yesterday, I updated to build
&lt;a class="reference external" href="http://mail.opensolaris.org/pipermail/opensolaris-announce/2009-September/001256.html"&gt;snv_122&lt;/a&gt;
and found that the issue still exists. Hence, I am posting about the
workaround to fix this issue.&lt;/p&gt;
&lt;pre class="literal-block"&gt;
$ pfexec bash
# cp -p /usr/X11/bin/i386/Xorg /usr/X11/bin/i386/Xorg.orig
# echo 'xf86SigioReadInput+9?w 770f 9090 9090' | mdb -w /usr/X11/bin/i386/Xorg
&lt;/pre&gt;
&lt;p&gt;This bug is currently tracked in
&lt;a class="reference external" href="http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6849925"&gt;bugster&lt;/a&gt;.&lt;/p&gt;
</summary><category term="solaris"></category><category term="tips"></category></entry><entry><title>Random links for week 36</title><link href="http://praveen.kumar.in/2009/09/06/random-links-for-week-36/" rel="alternate"></link><updated>2009-09-06T00:19:23+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2009-09-06:2009/09/06/random-links-for-week-36/</id><summary type="html">&lt;ul class="simple"&gt;
&lt;li&gt;My (ex-)manager &lt;a class="reference external" href="http://www.bactrian.org/~carlton/"&gt;David Carlton&lt;/a&gt;
has &lt;a class="reference external" href="http://malvasiabianca.org/archives/2009/09/change-of-scene/"&gt;decided to leave
us&lt;/a&gt;
to join &lt;a class="reference external" href="http://www.playdom.com/"&gt;Playdom&lt;/a&gt;. I learned a lot in the
past two years working with him. We are going to miss him a lot!
Playdom is fortunate to have such a talented individual on board. I
am sure he will be bringing a multitude of perspectives into the game
development at Playdom. I wish him all the very best in his new
exciting game development career.&lt;/li&gt;
&lt;li&gt;I am using &lt;a class="reference external" href="http://git-scm.com/"&gt;git&lt;/a&gt; as my primary version
control system at work. Lately, more of my friends have shown
interest towards using git. For them, I would recommend knowing &lt;a class="reference external" href="http://whygitisbetterthanx.com/"&gt;why
git is better than other version control
systems&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Recently, I have started editing multiple files with the same name
(under different directories) simultaneously on my
&lt;a class="reference external" href="http://www.gnu.org/"&gt;GNU&lt;/a&gt;
&lt;a class="reference external" href="http://www.gnu.org/software/emacs/"&gt;Emacs&lt;/a&gt; more often. This got
me confused easily and made me prone to making mistakes by editing
wrong files. Here is a cool way to &lt;a class="reference external" href="http://www.gnu.org/software/emacs/manual/html_node/emacs/Uniquify.html"&gt;make buffer names
unique&lt;/a&gt;
in GNU Emacs.&lt;/li&gt;
&lt;li&gt;Due to certain changes that are happening recently in our team, being
agile is more of a necessity that ever before. I am seriously
thinking of attending &lt;a class="reference external" href="http://www.agileopencalifornia.com/"&gt;Agile Open
California&lt;/a&gt;. Agile Open
California is a coalition of agile practitioners and advocates with
an intention to provide an opportunity for learning, networking and
growth to the Agile community in California and others who are
interested.&lt;/li&gt;
&lt;li&gt;We are currently working on transitioning our software to 64-bit on
Solaris. We run into interesting problems each day. &lt;a class="reference external" href="http://dlc.sun.com/pdf/816-5138/816-5138.pdf"&gt;Solaris 64-bit
developer's guide&lt;/a&gt;
is a source of must know information for anyone who is working on
developing 64-bit applications on Unix like platforms, especially
Solaris.&lt;/li&gt;
&lt;li&gt;Since I returned from India after my recent vacation, I haven't got
much chance to workout in the gym. I would like to use this
opportunity for refreshing my appreciation of the basics of &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Weight_training"&gt;weight
training&lt;/a&gt; and get a
fresh start as early as next week.&lt;/li&gt;
&lt;/ul&gt;
</summary><category term="emacs"></category><category term="solaris"></category><category term="programming"></category><category term="tips"></category><category term="weight training"></category></entry><entry><title>Per-user Mercurial Installation</title><link href="http://praveen.kumar.in/2009/09/05/per-user-mercurial-installation/" rel="alternate"></link><updated>2009-09-05T04:58:48+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2009-09-05:2009/09/05/per-user-mercurial-installation/</id><summary type="html">&lt;p&gt;Recently, I had to install
&lt;a class="reference external" href="http://mercurial.selenic.com/wiki/"&gt;Mercurial&lt;/a&gt; on one of our Solaris
10 development machines without root access. The installation procedure
was a little bit tricky. So, I thought it would be helpful to share the
experience.&lt;/p&gt;
&lt;p&gt;First, I downloaded Mercurial source and extracted it. This is a
standard procedure for installing any package from source.&lt;/p&gt;
&lt;pre class="literal-block"&gt;
$ wget http://mercurial.selenic.com/release/mercurial-1.3.tar.gz
$ tar -zxvf mercurial-1.3.tar.gz
$ cd mercurial-1.3
&lt;/pre&gt;
&lt;p&gt;The installation mechanism is directly controlled by the &lt;tt class="docutils literal"&gt;Makefile&lt;/tt&gt;.
Per-user installation can be selected by choosing &lt;tt class="docutils literal"&gt;Makefile&lt;/tt&gt; target
&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;install-home&lt;/span&gt;&lt;/tt&gt;, &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;install-home-bin&lt;/span&gt;&lt;/tt&gt; or &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;install-home-doc&lt;/span&gt;&lt;/tt&gt;. The
target &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;install-home&lt;/span&gt;&lt;/tt&gt; is a collection of &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;install-home-bin&lt;/span&gt;&lt;/tt&gt; and
&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;install-home-doc&lt;/span&gt;&lt;/tt&gt; targets. The target &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;install-home-bin&lt;/span&gt;&lt;/tt&gt;
builds/installs Mercurial binaries and the target &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;install-home-doc&lt;/span&gt;&lt;/tt&gt;
builds/installs Mercurial documentation. To build the documentation, we
would need &lt;a class="reference external" href="http://www.methods.co.nz/asciidoc/"&gt;ASCIIDOC&lt;/a&gt; and
&lt;a class="reference external" href="https://fedorahosted.org/xmlto/"&gt;XMLTO&lt;/a&gt;. So, I decided to skip
building the documentation. The target that I chose was
&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;install-home-bin&lt;/span&gt;&lt;/tt&gt;. The installation prefix can be controlled by the
environment variable &lt;tt class="docutils literal"&gt;HOME&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;The build process uses C compiler to compile Mercurial extensions
written in C and linker to create the shared libraries. We need to
specify the desired compiler and linker through &lt;tt class="docutils literal"&gt;CC&lt;/tt&gt; and &lt;tt class="docutils literal"&gt;LD&lt;/tt&gt;
environment variables respectively. When using GCC, we need to specify
&lt;tt class="docutils literal"&gt;CFLAGS&lt;/tt&gt; to build relocatable objects. If the Python library is
located in a non-standard location, we have to specify &lt;tt class="docutils literal"&gt;LDFLAGS&lt;/tt&gt;
appropriately as well. Here is how my compilation line looked like.&lt;/p&gt;
&lt;pre class="code bash literal-block"&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;make install-home-bin &lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/home/praveen/chaos.SunOS &lt;span class="nv"&gt;CC&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;gcc &lt;span class="nv"&gt;CFLAGS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"-fPIC"&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;    &lt;span class="nv"&gt;LDSHARED&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"gcc -shared"&lt;/span&gt; &lt;span class="nv"&gt;LDFLAGS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"-L/opt/csw/lib -Wl,-R/opt/csw/lib"&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;Once installed, I had to configure my &lt;tt class="docutils literal"&gt;PATH&lt;/tt&gt; and &lt;tt class="docutils literal"&gt;PYTHONPATH&lt;/tt&gt; with
the location of installation. To make this persistent, I had to add it
to &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;~/.bashrc&lt;/span&gt;&lt;/tt&gt; file.&lt;/p&gt;
&lt;pre class="code bash literal-block"&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;PYTHONPATH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/chaos.SunOS/lib/python
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;PATH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;/chaos.SunOS/bin:&lt;span class="nv"&gt;$PATH&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;Now I verified that Mercurial worked fine by running the following.&lt;/p&gt;
&lt;pre class="literal-block"&gt;
$ hg debuginstall
Checking encoding (ascii)...
Checking extensions...
Checking templates...
Checking patch...
Checking commit editor...
Checking username...
 No username found, using 'praveen@HOSTCENSORED' instead
 (specify a username in your .hgrc file)
No problems detected
&lt;/pre&gt;
&lt;p&gt;Happy distributed version controlling!&lt;/p&gt;
</summary><category term="mercurial"></category><category term="solaris"></category></entry><entry><title>GNOME Metacity dual screen issue in OpenSolaris 2009.06</title><link href="http://praveen.kumar.in/2009/06/03/gnome-metacity-dual-screen-issue-in-opensolaris-2009-06/" rel="alternate"></link><updated>2009-06-03T10:51:34+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2009-06-03:2009/06/03/gnome-metacity-dual-screen-issue-in-opensolaris-2009-06/</id><summary type="html">&lt;p&gt;With the latest OpenSolaris 2009.06, maximizing windows managed by
Metacity (GNOME) will maximize the windows across both screens. This is
due to an issue that &lt;a class="reference external" href="http://defect.opensolaris.org/bz/show_bug.cgi?id=8748"&gt;Metacity was trying to use a wrong Xinerama
type&lt;/a&gt;. This
issue is fixed in the mercurial repository. However, the fix was not on
time to make it into the final release of OpenSolaris 2009.06. But,
there is a quick workaround for this issue. Here is the set of
instructions.&lt;/p&gt;
&lt;div class="section" id="backup-your-current-metacity"&gt;
&lt;h2&gt;Backup your current metacity&lt;/h2&gt;
&lt;pre class="code bash literal-block"&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;pfexec cp /usr/bin/metacity /usr/bin/metacity.orig
&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="section" id="download-the-fixed-metacity-binary-from-developer-s-site-and-replace-the-original-binary"&gt;
&lt;h2&gt;Download the fixed Metacity binary from developer's site and replace the original binary&lt;/h2&gt;
&lt;pre class="code bash literal-block"&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;wget http://www.gnome.org/~erwannc/bugs/8748/metacity -O /tmp/metacity
&lt;span class="nv"&gt;$ &lt;/span&gt;pfexec cp /tmp/metacity /usr/bin/metacity
&lt;/pre&gt;
&lt;p&gt;[STRIKEOUT:&lt;strong&gt;Note:&lt;/strong&gt; Don't do this in one step using
&lt;tt class="docutils literal"&gt;wget &lt;span class="pre"&gt;-O&lt;/span&gt; /usr/bin/metacity&lt;/tt&gt;. This broke my system.]&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="optional-by-now-your-new-metacity-should-have-already-started-working-if-not-replace-the-current-instance-by-hand"&gt;
&lt;h2&gt;&lt;strong&gt;(Optional)&lt;/strong&gt; By now, your new Metacity should have already started working. If not, replace the current instance by hand&lt;/h2&gt;
&lt;pre class="code bash literal-block"&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;metacity --replace
&lt;/pre&gt;
&lt;p&gt;Happy dual-screening on your OpenSolaris 2009.06!&lt;/p&gt;
&lt;/div&gt;
</summary><category term="solaris"></category><category term="tips"></category></entry><entry><title>Creating OpenSolaris live USB sticks</title><link href="http://praveen.kumar.in/2009/06/02/creating-opensolaris-live-usb-sticks/" rel="alternate"></link><updated>2009-06-02T06:37:50+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2009-06-02:2009/06/02/creating-opensolaris-live-usb-sticks/</id><summary type="html">&lt;p&gt;&lt;a class="reference external" href="http://www.opensolaris.com/"&gt;OpenSolaris&lt;/a&gt; 2009.06 was announced
yesterday. You can download the live CD image (ISO) from
&lt;a class="reference external" href="http://dlc.sun.com/osol/opensolaris/2009/06/osol-0906-x86.iso"&gt;here&lt;/a&gt;.
Here is the set of instructions to create a live USB stick from the live
CD that you have downloaded.&lt;/p&gt;
&lt;div class="section" id="install-distro-construct"&gt;
&lt;h2&gt;Install distro-construct&lt;/h2&gt;
&lt;pre class="code bash literal-block"&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;pfexec pkg install SUNWdistro-const
&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="section" id="generate-the-usb-image-from-cd-image"&gt;
&lt;h2&gt;Generate the USB image from CD image&lt;/h2&gt;
&lt;pre class="code bash literal-block"&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;pfexec usbgen osol-0906-x86.iso osol-0906-x86-usb.img /tmp/osol
&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="section" id="copy-the-generated-usb-image-on-to-the-usb-stick"&gt;
&lt;h2&gt;Copy the generated USB image on to the USB stick&lt;/h2&gt;
&lt;pre class="code bash literal-block"&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;pfexec usbcopy osol-0906-x86-usb.img
&lt;/pre&gt;
&lt;p&gt;On executing the above command, you will be shown the list of removable
media and asked to select the one to use with usbcopy. If you have
inserted only one USB media, you will see only one entry to choose from.
Please note that you may have to unmount the USB media from your GNOME
file manager or command line, before usbcopy starts.&lt;/p&gt;
&lt;p&gt;Once usbcopy completes, your OpenSolaris live USB sticks are ready to
boot a live environment and perform installation. I will be in Community
One West, Deep Dive sessions today (Jun 2, 2009) at Intercontinental
Hotel, San Francisco. If anyone needs to make their USB media an
OpenSolaris live media, please contact me.&lt;/p&gt;
&lt;/div&gt;
</summary><category term="solaris"></category><category term="tips"></category></entry><entry><title>Setting up FTPS using vsftpd for Wordpress plugins auto upgrade</title><link href="http://praveen.kumar.in/2009/05/31/setting-up-ftps-using-vsftpd-for-wordpress-plugins-auto-upgrade/" rel="alternate"></link><updated>2009-05-31T14:20:50+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2009-05-31:2009/05/31/setting-up-ftps-using-vsftpd-for-wordpress-plugins-auto-upgrade/</id><summary type="html">&lt;p&gt;One of the handy features in the latest Wordpress is the support to
upgrade plugins in one click through the Wordpress administration
interface. It needs &lt;a class="reference external" href="http://en.wikipedia.org/wiki/FTP"&gt;FTP&lt;/a&gt; or
&lt;a class="reference external" href="http://en.wikipedia.org/wiki/FTPS"&gt;FTPS&lt;/a&gt; access to the server where
you have hosted your Wordpress installation. But turning on FTP for
users (non-anonymous) is a bad idea. Using FTP involves transferring
user passwords as plain text during authentication. This is a great
security concern and the primary reason for why one shouldn't turn on
FTP for user accounts. However, Wordpress also supports FTPS, FTP over
SSL. This shouldn't be confused with &lt;a class="reference external" href="http://en.wikipedia.org/wiki/SSH_File_Transfer_Protocol"&gt;SSH
FTP&lt;/a&gt; or
&lt;a class="reference external" href="http://en.wikipedia.org/wiki/FTP_over_SSH#FTP_over_SSH_.28not_SFTP.29"&gt;Secure
FTP&lt;/a&gt;.
FTPS uses TLS or SSL for authentication and commands. Let us see how to
setup FTPS on a server using &lt;a class="reference external" href="http://vsftpd.beasts.org/"&gt;vsftpd&lt;/a&gt;.&lt;/p&gt;
&lt;div class="section" id="install-vsftpd"&gt;
&lt;h2&gt;Install vsftpd&lt;/h2&gt;
&lt;p&gt;Using the package manager for your distribution, install vsftpd. On
Debian and Ubuntu, it can be installed by the following command.&lt;/p&gt;
&lt;pre class="code bash literal-block"&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;sudo apt-get install vsftpd
&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="section" id="configure-ftps"&gt;
&lt;h2&gt;Configure FTPS&lt;/h2&gt;
&lt;p&gt;Edit &lt;tt class="docutils literal"&gt;/etc/vsftpd.conf&lt;/tt&gt; and do the following.&lt;/p&gt;
&lt;div class="section" id="comment-out-anonymous-enable-line"&gt;
&lt;h3&gt;Comment out anonymous_enable line&lt;/h3&gt;
&lt;pre class="literal-block"&gt;
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
#anonymous_enable=YES
&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="section" id="uncomment-local-enable-and-write-enable-lines"&gt;
&lt;h3&gt;Uncomment &lt;tt class="docutils literal"&gt;local_enable&lt;/tt&gt; and &lt;tt class="docutils literal"&gt;write_enable&lt;/tt&gt; lines&lt;/h3&gt;
&lt;pre class="literal-block"&gt;
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="section" id="override-the-umask-for-local-users-to-022-by-uncommenting-the-local-umask-line"&gt;
&lt;h3&gt;Override the umask for local users to 022 by uncommenting the &lt;tt class="docutils literal"&gt;local_umask&lt;/tt&gt; line&lt;/h3&gt;
&lt;pre class="literal-block"&gt;
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=022
&lt;/pre&gt;
&lt;p&gt;NOTE: Failing to do this, will make the plugin directory unreadable by
your webserver and you will start getting PHP include errors. If this
happens, you have to disable the plugin and remove the directory or
change the permission of the directory to 755.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="turn-on-ssl-by-adding-the-following-lines-this-is-disable-plain-ftp-and-allow-only-ftps"&gt;
&lt;h3&gt;Turn on SSL by adding the following lines. This is disable plain FTP and allow only FTPS&lt;/h3&gt;
&lt;pre class="literal-block"&gt;
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=YES
ssl_sslv3=YES
&lt;/pre&gt;
&lt;p&gt;It is assumed that the RSA certificate and key are in the standard
locations &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;/etc/ssl/certs/ssl-cert-snakeoil.pem&lt;/span&gt;&lt;/tt&gt; and
&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;/etc/ssl/private/ssl-cert-snakeoil.key&lt;/span&gt;&lt;/tt&gt; respectively. If not, create
these and put them there.&lt;/p&gt;
&lt;pre class="literal-block"&gt;
# This option specifies the location of the RSA certificate to use for SSL
# encrypted connections.
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
# This option specifies the location of the RSA key to use for SSL
# encrypted connections.
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="restart-vsftpd"&gt;
&lt;h2&gt;Restart vsftpd&lt;/h2&gt;
&lt;p&gt;Restart vsftpd by issuing the following command.&lt;/p&gt;
&lt;pre class="code bash literal-block"&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;sudo /etc/init.d/vsftpd restart
&lt;/pre&gt;
&lt;p&gt;Now your vsftpd is ready to serve FTPS connections.&lt;/p&gt;
&lt;/div&gt;
</summary><category term="linux"></category><category term="tips"></category><category term="wordpress"></category></entry><entry><title>Turning off loud system beep in OpenSolaris Gnome and GDM</title><link href="http://praveen.kumar.in/2009/04/01/turning-off-loud-system-beep-in-opensolaris-gnome-and-gdm/" rel="alternate"></link><updated>2009-04-01T14:33:41+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2009-04-01:2009/04/01/turning-off-loud-system-beep-in-opensolaris-gnome-and-gdm/</id><summary type="html">&lt;p&gt;Since OpenSolaris started using Gnome 2.24, I started getting loud
system beeps those were produced on the PC speaker device that by-passes
the audio device. Gnome uses kbd to generate this beep. This beep is so
loud that it is really annoying. Also it hurts one's ears when listening
to music using a headset. The volume of the beep can't be controlled by
the system volume control. To turn off the beep or control the volume,
one must use the &lt;tt class="docutils literal"&gt;xset(1)&lt;/tt&gt; utility. The beep can be turned off by
issuing the command &lt;tt class="docutils literal"&gt;xset &lt;span class="pre"&gt;-b&lt;/span&gt;&lt;/tt&gt; or &lt;tt class="docutils literal"&gt;xset b off&lt;/tt&gt; in (Gnome) terminal.
One can also control the volume through &lt;tt class="docutils literal"&gt;xset b&lt;/tt&gt;. However this is not
persistent across logins. You will lose this setting once you log off
and log on. Theoretically adding this to &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;~/.xprofile&lt;/span&gt;&lt;/tt&gt; should work to
make it persistent. It used to work till snv_101a. However for unknown
root cause, it doesn't work anymore.&lt;/p&gt;
&lt;div class="section" id="gnome"&gt;
&lt;h2&gt;Gnome&lt;/h2&gt;
&lt;p&gt;In order to make this persistent, one should edit the Gconf properties
for Metacity. First install the SUNWgnome-config-editor package by
issuing the command &lt;tt class="docutils literal"&gt;pfexec pkg install &lt;span class="pre"&gt;SUNWgnome-config-editor&lt;/span&gt;&lt;/tt&gt;. Then
invoke &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;gconf-editor&lt;/span&gt;&lt;/tt&gt; from a terminal. Go to
&lt;tt class="docutils literal"&gt;apps &lt;span class="pre"&gt;-&amp;gt;&lt;/span&gt; metacity &lt;span class="pre"&gt;-&amp;gt;&lt;/span&gt; general&lt;/tt&gt; and uncheck &lt;tt class="docutils literal"&gt;audible_bell&lt;/tt&gt; property
and exit &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;gconf-editor&lt;/span&gt;&lt;/tt&gt;. This should disable the system beep for all
applications under Gnome and make the change persistent.&lt;/p&gt;
&lt;div class="figure" style="width: 708px; height: auto; max-width: 100%;"&gt;
&lt;img alt="GConf Beep Off" src="http://praveen.kumar.in/images/GConfBeepOff.png" style="width: 708px; height: auto; max-width: 100%;"/&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="gdm"&gt;
&lt;h2&gt;GDM&lt;/h2&gt;
&lt;p&gt;To turn off the beep when GDM starts, invoke the GDM setup by issuing
the command &lt;tt class="docutils literal"&gt;pfexec /usr/sbin/gdmsetup&lt;/tt&gt; from a terminal. Then, go to
&lt;tt class="docutils literal"&gt;Accessibility&lt;/tt&gt; tab and uncheck &lt;tt class="docutils literal"&gt;Login screen ready&lt;/tt&gt; entry under
&lt;tt class="docutils literal"&gt;Sounds&lt;/tt&gt; section.&lt;/p&gt;
&lt;div class="figure" style="width: 531px; height: auto; max-width: 100%;"&gt;
&lt;img alt="GDM Beep Off" src="http://praveen.kumar.in/images/GDMBeepOff.png" style="width: 531px; height: auto; max-width: 100%;"/&gt;
&lt;/div&gt;
&lt;/div&gt;
</summary><category term="gnome"></category><category term="solaris"></category><category term="tips"></category></entry><entry><title>Getting (some) Things Done</title><link href="http://praveen.kumar.in/2008/12/13/getting-some-things-done/" rel="alternate"></link><updated>2008-12-13T12:38:28+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2008-12-13:2008/12/13/getting-some-things-done/</id><summary type="html">&lt;p&gt;Recently I found myself in a situation where I felt that I have more
things to do than the time available in hand. The number of unread
e-mails and pending tasks were growing in a faster rate day by day. I
missed to act upon a few important e-mails. This new situation had
increased my stress and caused a sense of unaccomplishment in spite of
being reasonably productive. My positive sense of being in control was
going down day by day. That is when I started to realize that there is
something basically wrong in the way I handled things.&lt;/p&gt;
&lt;p&gt;On the other hand, I see some of my
&lt;a class="reference external" href="http://www.bactrian.org/~carlton/"&gt;manager&lt;/a&gt;'s activities through his
&lt;a class="reference external" href="http://twitter.com/davidcarlton"&gt;Twitter updates&lt;/a&gt; and &lt;a class="reference external" href="http://malvasiabianca.org/"&gt;blog
posts&lt;/a&gt;. The wide range of stuff he does
is mind-boggling. He might have ten-folds of things to do than I have.
However I saw a sense of completion in most of the things he did. I
discussed with him about this in one of the &lt;a class="reference external" href="http://malvasiabianca.org/archives/2008/02/one-on-ones/"&gt;1-1
meetings&lt;/a&gt; we
had. From his answers, I realized that instead of trying to manage my
time, I should try to manage the things that I do. He recommended to
read "&lt;a class="reference external" href="http://en.wikipedia.org/wiki/Getting_Things_Done"&gt;Getting Things
Done&lt;/a&gt;" by David
Allen. I promptly bought the book. However due to bad management of
things I do, I was not able to start on the book until a couple of
months later.&lt;/p&gt;
&lt;p&gt;After reading through a couple of chapters of the book, I was still
trying to understand some of the concepts that the book. I decided to
experiment the concepts that I learned so far practically. To start
with, I have chosen to apply the techniques on my e-mail system. The
first thing I did was to review my mailing list subscriptions and get
myself removed from the lists that I felt not so important. Then I went
on created tags on &lt;a class="reference external" href="http://www.mozilla.com/en-US/thunderbird/"&gt;Mozilla
Thunderbird&lt;/a&gt; to organize
my mails according to some predefined GTD categories. Then it was time
to go through all the unread mails by acting on them or moving them to
an appropriate category. Once I got my e-mail Inbox to zero unread
mails, I had a better sense of control of my e-mail. From then on I
started applying GTD workflow for my e-mail processing and I get my
e-mail Inbox to zero count many times a day. There will be a detailed
post about the setup of my e-mail system sometime in the future.&lt;/p&gt;
&lt;p&gt;Applying GTD to my e-mail was a significant success. For a couple of
months from then, I was applying GTD techniques only on my e-mails. I
realized that it was time to start applying them on the other things
that I do as well. In the meantime, &lt;a class="reference external" href="http://www.sun.com/"&gt;my
employer&lt;/a&gt; was offering a day long class room
session on "Getting Things Done - Mastering the workflow" training
conducted by &lt;a class="reference external" href="http://www.mozilla.com/en-US/thunderbird/"&gt;David Allen's
company&lt;/a&gt;. I was very eager
to attend the session to get some first hand sight of how to apply these
techniques for everything I do. My manager was kind enough to approve my
request for the class room session. I took this session last week that
gave me more insight to things like mind sweep, weekly reviews, higher
altitude reviews, etc.&lt;/p&gt;
&lt;p&gt;I bought some stationery supplies last week to manage the paper
materials I have. I sat down for my first mind sweep and weekly review
last Sunday. The outcome was a very decent set of "Next Actions". I
tracked them electronically using
&lt;a class="reference external" href="http://www.rousette.org.uk/projects/"&gt;Tracks&lt;/a&gt;. I was very happy to
see I have already done many significant things that I was
procrastinating for a while. One of more visible things that I did was
to clean up workspace. I can't wait to have my next weekly review
tomorrow. I will come up with a detailed post on how I do my weekly
reviews and capture things, next actions after a month. That will give
me more experience to share about getting things done.&lt;/p&gt;
</summary><category term="gtd"></category></entry><entry><title>Oh No, Not Again</title><link href="http://praveen.kumar.in/2008/11/14/oh-no-not-again/" rel="alternate"></link><updated>2008-11-14T19:11:46+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2008-11-14:2008/11/14/oh-no-not-again/</id><summary type="html">&lt;p&gt;My employer (Sun Microsystems, Inc.) has
&lt;a class="reference external" href="http://www.sun.com/aboutsun/pr/2008-11/sunflash.20081114.1.xml"&gt;announced&lt;/a&gt;
another round of layoffs, which will eliminate as much as 18% of Sun's
workforce (around 6000 jobs), will save the company $700 million to $800
million. We have also announced the departure of the head of Software
Group, Rich Green. With this we are restructuring the Software Group
into Application Platform Software, Systems Platforms and Cloud
Computing &amp;amp; Developer Platforms. The recession of world wide economy is
putting enormous pressure on technology companies like us. We would hope
that this downturn would end soon before causing irreversible damage to
many companies. However I feel that we have just entered into the
difficult stage of the slowdown and we will be seeing more challenges
awaiting us.&lt;/p&gt;
&lt;p&gt;Disclaimer: All the views expressed herein are mine. I am not talking
for my employer, Sun Microsystems, Inc.&lt;/p&gt;
</summary><category term="sun"></category></entry><entry><title>Identifying what is holding up your boot speed in Linux</title><link href="http://praveen.kumar.in/2008/08/02/identifying-what-is-holding-up-your-boot-speed-in-linux/" rel="alternate"></link><updated>2008-08-02T14:48:52+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2008-08-02:2008/08/02/identifying-what-is-holding-up-your-boot-speed-in-linux/</id><summary type="html">&lt;p&gt;For a while now, I was not happy with the speed my Debian GNU/Linux
booted. It was taking approximately 1:10 minutes to drop me in the GDM
prompt. Today, I decided that I will try to probe into what exactly is
happening. I have already heard of
&lt;a class="reference external" href="http://www.bootchart.org/"&gt;bootchart&lt;/a&gt; a few years ago. However I
never had a chance to use it. So, I installed bootchart. I am not going
to talk in detail about the installation. It is available in Debian and
Ubuntu repositories. If you are using some other distribution, you can
either find it in the repository or compile it from the source.&lt;/p&gt;
&lt;p&gt;After installation, reboot the system and add
&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;'init=/sbin/bootchartd'&lt;/span&gt;&lt;/tt&gt; to the &lt;tt class="docutils literal"&gt;'kernel'&lt;/tt&gt; command line arguments
in Grub. This will use bootchartd as init and bootstartd will in turn
start the original init. If alternative init environment like
&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;init-ng&lt;/span&gt;&lt;/tt&gt; is used, there might be additional arguments needed. Please
consult the bootchartd man page for more information. Once the systems
boots, the data collected is available in &lt;tt class="docutils literal"&gt;/var/log/bootchart.tgz&lt;/tt&gt;.
Run &lt;tt class="docutils literal"&gt;bootchart&lt;/tt&gt; to generate &lt;tt class="docutils literal"&gt;bootchart.png&lt;/tt&gt; from
&lt;tt class="docutils literal"&gt;/var/log/bootchart.tgz&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;After doing this, I figured out that &lt;tt class="docutils literal"&gt;udevadm&lt;/tt&gt; is taking almost 30
seconds. I later figured out that the udev rule that tries to rename
&lt;tt class="docutils literal"&gt;'wlan0'&lt;/tt&gt; to &lt;tt class="docutils literal"&gt;'eth1'&lt;/tt&gt; is the culprit (search on Google). Then I
commented the &lt;tt class="docutils literal"&gt;'eth1'&lt;/tt&gt; line in
&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;/etc/udev/rules.d/70-persistent-net.rules&lt;/span&gt;&lt;/tt&gt;, rebooted and did the
bootchart thing again. I was happy to see that a portion of around 30
seconds is now removed from my boot time. That's great!&lt;/p&gt;
&lt;div class="section" id="bootchart-before-the-fix"&gt;
&lt;h2&gt;Bootchart Before the Fix&lt;/h2&gt;
&lt;div class="figure" style="width: 1780px; height: auto; max-width: 100%;"&gt;
&lt;img alt="Bootchart Before the Fix" src="http://praveen.kumar.in/images/BootchartBefore.png" style="width: 1780px; height: auto; max-width: 100%;"/&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="bootchart-after-the-fix"&gt;
&lt;h2&gt;Bootchart After the Fix&lt;/h2&gt;
&lt;div class="figure" style="width: 1022px; height: auto; max-width: 100%;"&gt;
&lt;img alt="Bootchart After the Fix" src="http://praveen.kumar.in/images/BootchartAfter.png" style="width: 1022px; height: auto; max-width: 100%;"/&gt;
&lt;/div&gt;
&lt;/div&gt;
</summary><category term="debian"></category><category term="linux"></category><category term="tips"></category></entry><entry><title>AT&amp;T Store Apple iPhone 3G preorder status checking</title><link href="http://praveen.kumar.in/2008/07/24/att-store-apple-iphone-3g-preorder-status-checking/" rel="alternate"></link><updated>2008-07-24T23:18:07+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2008-07-24:2008/07/24/att-store-apple-iphone-3g-preorder-status-checking/</id><summary type="html">&lt;p&gt;I have pre-ordered Apple iPhone 3G from my neighboring AT&amp;amp;T store last
Sunday (Jul 20). I have done this as purchasing from the Apple Store
wouldn't let me to apply my FAN discounts on the plan. Applying it
latter would reflect only after a couple of billing cycles. Also I don't
wanna get into the crazy line. I didn't join the true Apple cult yet. I
was just curious about the status of the pre-order and I checked the
status online and found that the status query mechanism can be exploited
to post automated queries. Here is a small ruby script that I wrote to
check bulk statuses. This would also give you a clue on where you are in
preorder line.&lt;/p&gt;
&lt;p&gt;This script is intended to be used to check your order status only.
Please note that this comes with absolutely no warranty and I can't be
held responsible for the misuse of the script. AT&amp;amp;T may change their
query mechanism if they know about this exploit.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="c1"&gt;#!/usr/bin/env ruby&lt;/span&gt;

&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;'rubygems'&lt;/span&gt;
&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;'open-uri'&lt;/span&gt;
&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;'openssl'&lt;/span&gt;

&lt;span class="c1"&gt;# FIXME (2008-07-24, praveen): This is nasty. I don't know of any other&lt;/span&gt;
&lt;span class="c1"&gt;# simpler way to skip SSL certificate verification.&lt;/span&gt;
&lt;span class="no"&gt;OpenSSL&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;SSL&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;VERIFY_PEER&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;OpenSSL&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;SSL&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;VERIFY_NONE&lt;/span&gt;


&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Order&lt;/span&gt;
  &lt;span class="kp"&gt;attr_reader&lt;/span&gt; &lt;span class="ss"&gt;:order_number&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:zip_code&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:valid&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:canceled&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;\&lt;/span&gt;
  &lt;span class="ss"&gt;:customer_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:order_date&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:shipped&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:ship_date&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:ship_carrier&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;\&lt;/span&gt;
  &lt;span class="ss"&gt;:tracking_number&lt;/span&gt;

  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;initialize&lt;/span&gt; &lt;span class="n"&gt;order_number&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;zip_code&lt;/span&gt;
    &lt;span class="vi"&gt;@order_number&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;order_number&lt;/span&gt;
    &lt;span class="vi"&gt;@zip_code&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;zip_code&lt;/span&gt;
    &lt;span class="vi"&gt;@valid&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kp"&gt;false&lt;/span&gt;
    &lt;span class="vi"&gt;@canceled&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kp"&gt;false&lt;/span&gt;

    &lt;span class="n"&gt;order_status_uri&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;URI&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parse&lt;/span&gt; &lt;span class="s2"&gt;"https://www.wireless.att.com/order_status/\&lt;/span&gt;
&lt;span class="s2"&gt;order_status_results.jsp?fromwhere=order_status&amp;amp;vMethod=ordernum&amp;amp;\&lt;/span&gt;
&lt;span class="s2"&gt;vNumber=&lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;order_number&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;amp;ZipCode=&lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;zip_code&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;amp;x=40&amp;amp;y=14"&lt;/span&gt;
    &lt;span class="n"&gt;order_status&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;order_status_uri&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="n"&gt;order_status&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;scan&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"We're sorry, but the information you entered \&lt;/span&gt;
&lt;span class="s2"&gt;was not recognized by our systems."&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;to_s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;empty?&lt;/span&gt;
      &lt;span class="vi"&gt;@valid&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kp"&gt;false&lt;/span&gt;
      &lt;span class="k"&gt;return&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
    &lt;span class="vi"&gt;@valid&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kp"&gt;true&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="n"&gt;order_status&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;scan&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Canceled"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;].&lt;/span&gt;&lt;span class="n"&gt;to_s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;empty?&lt;/span&gt;
      &lt;span class="vi"&gt;@canceled&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kp"&gt;true&lt;/span&gt;
      &lt;span class="k"&gt;return&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
    &lt;span class="vi"&gt;@canceled&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kp"&gt;false&lt;/span&gt;

    &lt;span class="vi"&gt;@customer_name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;
      &lt;span class="n"&gt;order_status&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;scan&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;/Customer:\s*\w*/&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;to_s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;gsub!&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;/Customer:\s*/&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="vi"&gt;@order_date&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;
      &lt;span class="n"&gt;order_status&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;scan&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;/Date Ordered:.*/&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;to_s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;gsub!&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;/Date Ordered:\s*/&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;""&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="vi"&gt;@order_date&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;gsub!&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;/\s/&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;""&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="vi"&gt;@shipped&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;
      &lt;span class="n"&gt;order_status&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;scan&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;/\&amp;lt;td width="5%".*/&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="o"&gt;].&lt;/span&gt;&lt;span class="n"&gt;scan&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;/[01]/&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;to_s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;to_i&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;?&lt;/span&gt;
    &lt;span class="kp"&gt;true&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kp"&gt;false&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="vi"&gt;@shipped&lt;/span&gt;
      &lt;span class="k"&gt;return&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
    &lt;span class="vi"&gt;@ship_date&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;order_status&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;scan&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;/\&amp;lt;td width="6%".*/&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
    &lt;span class="vi"&gt;@ship_date&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;gsub!&lt;/span&gt; &lt;span class="sr"&gt;/^.*\&amp;lt;p\&amp;gt;/&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;""&lt;/span&gt;
    &lt;span class="vi"&gt;@ship_date&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;gsub!&lt;/span&gt; &lt;span class="sr"&gt;/\&amp;lt;\/p\&amp;gt;.*$/&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;""&lt;/span&gt;
    &lt;span class="vi"&gt;@ship_carrier&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;order_status&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;scan&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;/\&amp;lt;td width="6%".*/&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
    &lt;span class="vi"&gt;@ship_carrier&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;gsub!&lt;/span&gt; &lt;span class="sr"&gt;/^.*\&amp;lt;p\&amp;gt;/&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;""&lt;/span&gt;
    &lt;span class="vi"&gt;@ship_carrier&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;gsub!&lt;/span&gt; &lt;span class="sr"&gt;/\&amp;lt;\/p\&amp;gt;.*$/&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;""&lt;/span&gt;
    &lt;span class="vi"&gt;@tracking_number&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;
      &lt;span class="n"&gt;order_status&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;scan&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;/\http:\/\/fedex.com\/Tracking\?tracknumbers=\d*/&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;to_s&lt;/span&gt;
    &lt;span class="vi"&gt;@tracking_number&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;gsub!&lt;/span&gt; &lt;span class="sr"&gt;/\http:\/\/fedex.com\/Tracking\?tracknumbers=/&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;""&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;

  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;print&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="vi"&gt;@valid&lt;/span&gt;
      &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="vi"&gt;@order_number&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ljust&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; ------------------------ NOT FOUND \&lt;/span&gt;
&lt;span class="s2"&gt;------------------------"&lt;/span&gt;
      &lt;span class="k"&gt;return&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="vi"&gt;@canceled&lt;/span&gt;
      &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="vi"&gt;@order_number&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ljust&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; ------------------------ CANCELLED \&lt;/span&gt;
&lt;span class="s2"&gt;------------------------"&lt;/span&gt;
      &lt;span class="k"&gt;return&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="vi"&gt;@shipped&lt;/span&gt;
      &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="vi"&gt;@order_number&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ljust&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; &lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="vi"&gt;@customer_name&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;slice&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;..&lt;/span&gt;&lt;span class="mi"&gt;14&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ljust&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; \&lt;/span&gt;
&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="vi"&gt;@order_date&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; &lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="s1"&gt;'Yes'&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ljust&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; &lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="vi"&gt;@ship_date&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; &lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="vi"&gt;@ship_carrier&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ljust&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; \&lt;/span&gt;
&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="vi"&gt;@tracking_number&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;
      &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="vi"&gt;@order_number&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ljust&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; &lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="vi"&gt;@customer_name&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;slice&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;..&lt;/span&gt;&lt;span class="mi"&gt;14&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ljust&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; \&lt;/span&gt;
&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="vi"&gt;@order_date&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; &lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="s1"&gt;'No'&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ljust&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; &lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="s1"&gt;'NA'&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ljust&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; &lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="s1"&gt;'NA'&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ljust&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; \&lt;/span&gt;
&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="s1"&gt;'NA'&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ljust&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="no"&gt;ARGV&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;length&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;
  &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"Usage: ./order-status.rb ZIP BEGIN END&lt;/span&gt;

&lt;span class="s2"&gt;  ZIP      ZIP code of the AT&amp;amp;T store where the order is placed.&lt;/span&gt;
&lt;span class="s2"&gt;  BEGIN    Order number to begin searching for.&lt;/span&gt;
&lt;span class="s2"&gt;  END      Order number to end searching for.&lt;/span&gt;

&lt;span class="s2"&gt;Example: ./order-status.rb 94025 12000 12100&lt;/span&gt;
&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;span class="k"&gt;else&lt;/span&gt;
  &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"Que Order# &lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="s1"&gt;'Name'&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ljust&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; Order Dt Ship? Ship Dt  Carrie Tracking"&lt;/span&gt;
  &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"----------------------------------------------------------------------"&lt;/span&gt;
  &lt;span class="n"&gt;queue&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
  &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;order_number&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="no"&gt;ARGV&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;]..&lt;/span&gt;&lt;span class="no"&gt;ARGV&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
    &lt;span class="n"&gt;o&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Order&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;new&lt;/span&gt; &lt;span class="n"&gt;order_number&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="no"&gt;ARGV&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;valid&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;canceled&lt;/span&gt;
      &lt;span class="n"&gt;queue&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;shipped&lt;/span&gt;
      &lt;span class="n"&gt;display_queue&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;shipped&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="s2"&gt;"NA"&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;queue&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;
      &lt;span class="n"&gt;display_queue&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"NA"&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
    &lt;span class="nb"&gt;print&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;display_queue&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;to_s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ljust&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; "&lt;/span&gt;
    &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;print&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;div class="section" id="sample-output"&gt;
&lt;h2&gt;Sample Output&lt;/h2&gt;
&lt;p&gt;Data is scrambled to protect identity.&lt;/p&gt;
&lt;pre class="code text literal-block"&gt;
praveen@athena:~/scratch/ruby$ ./order-status.rb [ZIP] XX208 XX250
./order-status.rb:9: warning: already initialized constant VERIFY_PEER
Que Order# Name            Order Dt Ship? Ship Dt  Carrie Tracking
----------------------------------------------------------------------
NA  XX208  ***IVEL         07/15/08 Yes   07/18/08 F      981870058XXX
1   XX209  ***EPHINE       07/15/08 No    NA       NA     NA
2   XX210  ***PBELL        07/15/08 No    NA       NA     NA
3   XX211  ***ISSA         07/15/08 No    NA       NA     NA
NA  XX212  ------------------------ NOT FOUND ------------------------
NA  XX213  ***N            07/15/08 Yes   07/18/08 F      981870063XXX
NA  XX214  ***E            07/15/08 Yes   07/18/08 FDE11  978403293XXX
4   XX215  ***DIRI         07/15/08 No    NA       NA     NA
NA  XX216  ***TT           07/15/08 Yes   07/24/08 F      981871193XXX
5   XX217  ***E            07/15/08 No    NA       NA     NA
6   XX218  ***TT           07/15/08 No    NA       NA     NA
7   XX219  ***ESH          07/15/08 No    NA       NA     NA
8   XX220  ***D            07/15/08 No    NA       NA     NA
9   XX221  ***ECCA         07/15/08 No    NA       NA     NA
10  XX222  ***ENIA         07/15/08 No    NA       NA     NA
NA  XX223  ***TEH          07/15/08 Yes   07/18/08 F      981870054XXX
11  XX224  ***TER          07/15/08 No    NA       NA     NA
NA  XX225  ***TER          07/15/08 Yes   07/24/08 F      981847797XXX
NA  XX226  ------------------------ CANCELLED ------------------------
NA  XX227  ***DA           07/16/08 Yes   07/24/08 FDE51  982002804XXX
NA  XX228  ------------------------ CANCELLED ------------------------
NA  XX229  ***HEESH        07/16/08 Yes   07/18/08 F      981846745XXX
12  XX230  ***ER           07/16/08 No    NA       NA     NA
13  XX231  ***A            07/16/08 No    NA       NA     NA
14  XX232  ***EL           07/16/08 No    NA       NA     NA
15  XX233  ***SWORTH       07/16/08 No    NA       NA     NA
16  XX234  ***SWORTH       07/16/08 No    NA       NA     NA
17  XX235  ***SWORTH       07/16/08 No    NA       NA     NA
18  XX236  ***RGE          07/16/08 No    NA       NA     NA
19  XX237  ***AB           07/16/08 No    NA       NA     NA
20  XX238  ***QUIEL        07/16/08 No    NA       NA     NA
NA  XX239  ***RY           07/16/08 Yes   07/18/08 F      981870059XXX
&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Credit:&lt;/strong&gt; The credit also goes to an anonymous guy who wrote a similar
script that I came across in a forum (I forgot the exact place). Most of
the regexp ideas were shamelessly stolen from his original script. This
is my first non-trivial Ruby script. I don't know much about Ruby. This
was a learning script as well. Please bear with newbie mistakes and
coding conventions. If you have any comments on the code, I will be more
than happy to hear from you.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update (2008-07-29):&lt;/strong&gt; AT&amp;amp;T finally decided to do something about the
vulnerability. They are using "Captcha" now. So, this script might not
work anymore. However I am pretty close to the head of the queue. I
might get my phone in a couple of days or so. So, I don't worry about
this anymore...&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update (2008-08-02):&lt;/strong&gt; My phone shipped today.&lt;/p&gt;
&lt;/div&gt;
</summary><category term="iphone"></category><category term="programming"></category><category term="ruby"></category></entry><entry><title>Completely clueless</title><link href="http://praveen.kumar.in/2008/07/23/completely-clueless/" rel="alternate"></link><updated>2008-07-23T13:59:47+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2008-07-23:2008/07/23/completely-clueless/</id><summary type="html">&lt;p&gt;On my OpenSolaris. What could be more exciting than this?&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;praveen@athena:~$ /opt/sfw/bin/emacs
Fatal error (11).Segmentation Fault (core dumped)

praveen@athena:~$ file core
core:           ELF 32-bit LSB core file 80386 Version 1, from 'emacs'
&lt;/pre&gt;&lt;/div&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;praveen@athena:~$ gdb -c core /opt/sfw/bin/emacs
GNU gdb 6.3.50_2004-11-23-cvs
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-pc-solaris2.11"...(no debugging symbols found)

Core was generated by `/opt/sfw/bin/emacs'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /opt/sfw/lib/libXaw3d.so.5...(no debugging symbols found)...done.
Loaded symbols for /opt/sfw/lib/libXaw3d.so.5
Reading symbols from /usr/lib/libXmu.so...done.
Loaded symbols for /usr/lib/libXmu.so
Reading symbols from /usr/lib/libXt.so.4...done.
Loaded symbols for /usr/lib/libXt.so.4
Reading symbols from /usr/lib/libSM.so.6...done.
Loaded symbols for /usr/lib/libSM.so.6
Reading symbols from /usr/lib/libICE.so.6...done.
Loaded symbols for /usr/lib/libICE.so.6
Reading symbols from /usr/lib/libXext.so.0...done.
Loaded symbols for /usr/lib/libXext.so.0
Reading symbols from /usr/lib/libtiff.so.3...done.
Loaded symbols for /usr/lib/libtiff.so.3
Reading symbols from /usr/lib/libjpeg.so.62...done.
Loaded symbols for /usr/lib/libjpeg.so.62
Reading symbols from /usr/lib/libpng12.so.0...done.
Loaded symbols for /usr/lib/libpng12.so.0
Reading symbols from /lib/libz.so.1...done.
Loaded symbols for /lib/libz.so.1
Reading symbols from /lib/libm.so.2...done.
Loaded symbols for /lib/libm.so.2
Reading symbols from /opt/sfw/lib/libungif.so.4...done.
Loaded symbols for /opt/sfw/lib/libungif.so.4
Reading symbols from /usr/lib/libXpm.so.4...done.
Loaded symbols for /usr/lib/libXpm.so.4
Reading symbols from /usr/lib/libX11.so...Segmentation Fault (core dumped)

praveen@athena:~$ file core
core:           ELF 32-bit LSB core file 80386 Version 1, from 'gdb'
&lt;/pre&gt;&lt;/div&gt;
</summary><category term="emacs"></category><category term="gdb"></category><category term="solaris"></category></entry><entry><title>Modifying Control and Caps Lock keys under OpenSolaris and Linux</title><link href="http://praveen.kumar.in/2008/06/14/modifying-control-and-caps-lock-keys-under-opensolaris-and-linux/" rel="alternate"></link><updated>2008-06-14T16:07:46+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2008-06-14:2008/06/14/modifying-control-and-caps-lock-keys-under-opensolaris-and-linux/</id><summary type="html">&lt;p&gt;Since I started using Emacs, I started using the Control key more than I
had used it before. That is when I started using my Caps Lock key as
Control key. In the beginning, I swapped the Control key and the Caps
Lock key. However while doing pair programming on my computer, my
colleagues found this setup a bit unfriendly. So, I decided to give up
my Caps Lock key and started using Caps Lock as an additional Control
key. Under Linux, Gnome has an option to do this using the "Keyboard
Preferences" application. However I was not able to find this option in
OpenSolaris Gnome. So, I have to take the old &lt;tt class="docutils literal"&gt;xmodmap&lt;/tt&gt; way of doing
this. This works under Linux as well. I hope that this would work on all
UNIX variants that uses &lt;tt class="docutils literal"&gt;xmodmap&lt;/tt&gt;. But I haven't verified it
personally.&lt;/p&gt;
&lt;p&gt;To make Caps Lock key as an additional Control key, add the following to
&lt;tt class="docutils literal"&gt;.Xmodmap&lt;/tt&gt; file in your home directory. This configuration is
automatically applied when you restart your X (Gnome) session. For the
first time, you can manually apply this by running
&lt;tt class="docutils literal"&gt;xmodmap &lt;span class="pre"&gt;~/.Xmodmap&lt;/span&gt;&lt;/tt&gt;.&lt;/p&gt;
&lt;pre class="literal-block"&gt;
!
! Make Caps Lock as an additional Control.
!
remove Lock = Caps_Lock
add Control = Caps_Lock
&lt;/pre&gt;
&lt;p&gt;Please note that &lt;tt class="docutils literal"&gt;!&lt;/tt&gt; is the commenting character for &lt;tt class="docutils literal"&gt;xmodmap&lt;/tt&gt;
files.&lt;/p&gt;
&lt;p&gt;But if you want to retain the Caps Lock function and swap it back to
Control key, add the following to your &lt;tt class="docutils literal"&gt;.Xmodmap&lt;/tt&gt; file.&lt;/p&gt;
&lt;pre class="literal-block"&gt;
!
! Swap Caps Lock and Control.
!
remove Lock = Caps_Lock
remove Control = Control_L
keysym Control_L = Caps_Lock
keysym Caps_Lock = Control_L
add Lock = Caps_Lock
add Control = Control_L
&lt;/pre&gt;
</summary><category term="emacs"></category><category term="linux"></category><category term="solaris"></category><category term="tips"></category></entry><entry><title>Privacy issue in Chennai Passport Office status enquiry page</title><link href="http://praveen.kumar.in/2008/06/06/privacy-issue-in-chennai-passport-office-status-enquiry-page/" rel="alternate"></link><updated>2008-06-06T22:08:48+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2008-06-06:2008/06/06/privacy-issue-in-chennai-passport-office-status-enquiry-page/</id><summary type="html">&lt;p&gt;-&amp;gt; &lt;strong&gt;I have no affiliation with the Passport Office. I wouldn't be able
to answer any questions about passport statuses. Please don't ask me
about your case.&lt;/strong&gt; &amp;lt;-&lt;/p&gt;
&lt;p&gt;The site of Regional Passport Office of Chennai has a
&lt;a class="reference external" href="http://passport.tn.nic.in/status_enquiry.asp"&gt;page&lt;/a&gt; to inquire about
the passport application case status. If you just enter the passport
application file number, the status of the case is provided. The output
has information about the full name of the applicant, passport number,
date of birth and the date of delivery of the passport. Please note that
the input that is needed to fetch this data is just the application file
number. No other verification information needed. This is a serious
privacy issue. You can't let your passport number and date of birth to
be seen by random people. On the worse side, one can write a script to
go through a list of file numbers and collect a database of these
valuable information.&lt;/p&gt;
&lt;p&gt;If I am correct, when I used this facility in 2003, I had to enter the
application file number and my date of birth to fetch the information
about any case. This was providing some level of authentication before
disclosing the information about a case. Maybe this feature was broken
and nobody noticed it. I have sent a mail to the Regional Passport
Officer about this issue. I hope that they fix this issue soon.&lt;/p&gt;
</summary><category term="india"></category><category term="privacy"></category></entry><entry><title>Dumping core file from set-UID, set-GID 'ed processes in Linux</title><link href="http://praveen.kumar.in/2008/06/05/dumping-core-file-from-set-uid-set-gid-ed-processes-in-linux/" rel="alternate"></link><updated>2008-06-05T20:08:46+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2008-06-05:2008/06/05/dumping-core-file-from-set-uid-set-gid-ed-processes-in-linux/</id><summary type="html">&lt;p&gt;Lately I was encountering segmentation fault with one of our processes
and found that it was not dumping core file even though we asked it by
using appropriate &lt;code&gt;ulimit&lt;/code&gt; setting. It was set-UIDed root. Then I
discovered that the default behavior of set-UID, set-GID processes is
not to dump core unless explicitly asked by &lt;code&gt;prctl(2)&lt;/code&gt;. In order to
dump core, the following has to be done.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="n"&gt;prctl&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="n"&gt;PR_SET_DUMPABLE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;I haven't dealt a lot with set-UIDed processes. This was a valuable
information to be leaned. Here is more information about this option.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;PR_SET_DUMPABLE
       (Since Linux 2.3.20) Set the  state  of  the  flag  determining
       whether  core dumps are produced for this process upon delivery
       of a signal whose default behavior is to produce a  core  dump.
       (Normally  this flag is set for a process by default, but it is
       cleared when a set-user-ID or set-group-ID program is  executed
       and  also  by various system calls that manipulate process UIDs
       and GIDs).  In kernels up to and including 2.6.12, arg2 must be
       either  0 (process is not dumpable) or 1 (process is dumpable).
       Between kernels 2.6.13 and 2.6.17, the value 2 was also permit‐
       ted, which caused any binary which normally would not be dumped
       to be dumped readable by root only; for security reasons,  this
       feature  has  been  removed.   (See  also  the  description  of
       /proc/sys/fs/suid_dumpable in proc(5).)
&lt;/pre&gt;&lt;/div&gt;
</summary><category term="linux"></category><category term="programming"></category></entry><entry><title>Remote file editing on GNU Emacs using TRAMP</title><link href="http://praveen.kumar.in/2008/03/29/remote-file-editing-on-gnu-emacs-using-tramp/" rel="alternate"></link><updated>2008-03-29T07:54:50+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2008-03-29:2008/03/29/remote-file-editing-on-gnu-emacs-using-tramp/</id><summary type="html">&lt;p&gt;I have been using &lt;a class="reference external" href="http://www.gnu.org/"&gt;GNU&lt;/a&gt;
&lt;a class="reference external" href="http://www.gnu.org/software/emacs/"&gt;Emacs&lt;/a&gt; for programming for
nearly 9 years now. It is exciting to keep discovering new extensions to
Emacs throughout. I have heard of
&lt;a class="reference external" href="http://www.emacswiki.org/cgi-bin/wiki/AngeFtp"&gt;Ange-FTP&lt;/a&gt; before that
can be used for remote file editing using FTP. However, I have never
tried remote file editing on a local Emacs session. In most of the
scenarios, I was dealing with editing files on the remote machines by
invoking Emacs locally on those machines. But this time, I felt that
invoking GNU Emacs (22) on my tiny
&lt;a class="reference external" href="http://en.wikipedia.org/wiki/Virtual_private_server"&gt;VPS&lt;/a&gt; would be
an overkill. So, I decided to try out remote file editing from a local
Emacs session.&lt;/p&gt;
&lt;p&gt;Even though I knew that I can do this with AgneFTP, I didn't really care
to read the info about it as I don't run FTP on my server. The first hit
on Google when I searched about remote file editing on Emacs was
&lt;a class="reference external" href="http://www.gnu.org/software/tramp/"&gt;TRAMP&lt;/a&gt; (Transparent Remote
[file] Access, Multiple Protocol). I am using GNU Emacs 23 trunk
snapshot. TRAMP is included by default in GNU Emacs 22+. Configuration
of TRAMP was quite simple. I had to load the module and set the protocol
for remote access. Just a two liner in my &lt;code&gt;.emacs&lt;/code&gt; did the trick.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="ss"&gt;'tramp&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;add-to-list&lt;/span&gt; &lt;span class="ss"&gt;'tramp-default-method-alist&lt;/span&gt; &lt;span class="o"&gt;'&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"praveen.kumar.in"&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt; &lt;span class="s"&gt;"ssh"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The three entries for &lt;code&gt;tramp-default-method-alist&lt;/code&gt; element are
&lt;code&gt;host&lt;/code&gt;, &lt;code&gt;user&lt;/code&gt; and &lt;code&gt;protocol&lt;/code&gt;. You can fill in the
host, the user or both. Another interesting use of TRAMP is editing
files as root on local machine. This can be quite handy as well. Take
a look at &lt;a class="reference external" href="http://www.gnu.org/software/tramp/"&gt;TRAMP user guide&lt;/a&gt;
for full configuration options. Once I added these lines, I was able
to open &lt;code&gt;/home/praveen/.bashrc&lt;/code&gt; on my server using the file name
as &lt;code&gt;/praveen.kumar.in:~/.bashrc&lt;/code&gt; in the normal &lt;code&gt;find-file&lt;/code&gt;
(&lt;kbd&gt;C-x C-f&lt;/kbd&gt;) function. Happy remote editing!&lt;/p&gt;
</summary><category term="emacs"></category><category term="tips"></category></entry><entry><title>Breaking a long silence!</title><link href="http://praveen.kumar.in/2008/03/28/breaking-a-long-silence/" rel="alternate"></link><updated>2008-03-28T22:27:25+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2008-03-28:2008/03/28/breaking-a-long-silence/</id><summary type="html">&lt;p&gt;I have been a highly inactive blogger these days. It doesn't mean that I
have too many things to take care of. For some reason, I felt that I
lost interest in blogging for some time now. Every week I would have
found at least a couple things to write about. I would also start a new
post. However, I would end up canceling it after I had typed a few
lines. Maybe I turned too lazy to write something. But not anymore! I
decided to break the long period of inactivity.&lt;/p&gt;
&lt;p&gt;As a part of the new start, I have just upgraded my journal to use
&lt;a class="reference external" href="http://wordpress.org/"&gt;Wordpress&lt;/a&gt;
&lt;a class="reference external" href="http://wordpress.org/latest.zip"&gt;2.5&lt;/a&gt;. I have also decided to throw
away my old clumsy theme. I temporarily use the "Wordpress Classic"
theme. I am planning to tweak the same theme to match my color
preferences. I am also thinking if I should try modifying the "Wordpress
Default" theme to use fluid width and use it. But I won't be doing it
before next weekend. I would reserve a couple of posts to talk about
Wordpress 2.5 and my thoughts about Wordpress theming.&lt;/p&gt;
&lt;p&gt;What it means is that you (looks like I have at least 10 regular readers
of my blog still) would be seeing regular activities in my journal from
now on. I am also curious to know about the ones who are subscribed to
my feed. If you don't mind, please leave me a comment. Thanks for your
support, readers!&lt;/p&gt;
</summary><category term="wordpress"></category></entry><entry><title>What a lousy weekend!</title><link href="http://praveen.kumar.in/2008/02/03/what-a-lousy-weekend/" rel="alternate"></link><updated>2008-02-03T01:17:28+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2008-02-03:2008/02/03/what-a-lousy-weekend/</id><summary type="html">&lt;div class="figure" style="width: 776px; height: auto; max-width: 100%;"&gt;
&lt;img alt="Netflix Lousy Movies" src="http://praveen.kumar.in/images/NetflixLousyMovies.jpg" style="width: 776px; height: auto; max-width: 100%;"/&gt;
&lt;/div&gt;
</summary><category term="notags"></category></entry><entry><title>CppUnit CompilerOutputter error output and Emacs</title><link href="http://praveen.kumar.in/2008/01/20/cppunit-compileroutputter-error-output-and-emacs/" rel="alternate"></link><updated>2008-01-20T04:04:46+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2008-01-20:2008/01/20/cppunit-compileroutputter-error-output-and-emacs/</id><summary type="html">&lt;p&gt;I am casually evaluating
&lt;a class="reference external" href="http://cppunit.sourceforge.net/cppunit-wiki"&gt;CppUnit&lt;/a&gt; lately. It is
pretty good. I was using the CompileOutputter as the outputter for
CppUnit tests. However, the default settings for gcc is not Emacs
friendly for multi-directory projects. To overcome this, I had to set
the location format of the CompilerOuputter to &lt;code&gt;"%p:%l:"&lt;/code&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="n"&gt;CppUnit&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;CompilerOutputter&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;outputter&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;CppUnit&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;CompilerOutputter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;runner&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;;(),&lt;/span&gt; &lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;cerr&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="n"&gt;outputter&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;setLocationFormat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s"&gt;"%p:%l:"&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="n"&gt;runner&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;setOutputter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="n"&gt;outputter&lt;/span&gt;  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kt"&gt;bool&lt;/span&gt; &lt;span class="n"&gt;wasSuccessful&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;runner&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;run&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;I didn't see any other documentation for this apart from the
&lt;code&gt;CompilerOutputter.h&lt;/code&gt; itself that says the following.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="cm"&gt;/* The location format is a string in which the occurence of the following character&lt;/span&gt;
&lt;span class="cm"&gt;* sequence are replaced:&lt;/span&gt;
&lt;span class="cm"&gt;*&lt;/span&gt;
&lt;span class="cm"&gt;* - "%l" =&amp;gt; replaced by the line number&lt;/span&gt;
&lt;span class="cm"&gt;* - "%p" =&amp;gt; replaced by the full path name of the file ("G:\\prg\\vc\\cppunit\\MyTest.cpp")&lt;/span&gt;
&lt;span class="cm"&gt;* - "%f" =&amp;gt; replaced by the base name of the file ("MyTest.cpp")&lt;/span&gt;
&lt;span class="cm"&gt;*/&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
</summary><category term="c++"></category><category term="tdd"></category></entry><entry><title>How to unit test C++ private and protected member functions?</title><link href="http://praveen.kumar.in/2008/01/02/how-to-unit-test-c-private-and-protected-member-functions/" rel="alternate"></link><updated>2008-01-02T23:51:52+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2008-01-02:2008/01/02/how-to-unit-test-c-private-and-protected-member-functions/</id><summary type="html">&lt;p&gt;In the unit testing world, sometimes we encounter a situation where we
need to unit test private or protected member functions. There is a lot
of arguments surrounding this topic. Some claim that if a private member
function needs testing, it implies that there is a need for refactoring.
However, I strongly feel that protected member functions are still APIs
and people often are in a situation where they need to unit test some of
them. One of the simple ways that I found was to declare the test suite
class to be the friend of that is to be tested. It is better to scope
the declaration in an &lt;code&gt;#ifdef&lt;/code&gt; block.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Foo&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;public&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;
&lt;span class="cp"&gt;#ifdef UNITTEST&lt;/span&gt;
    &lt;span class="k"&gt;friend&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;FooTest&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="cp"&gt;#endif&lt;/span&gt;
    &lt;span class="p"&gt;...&lt;/span&gt;

  &lt;span class="k"&gt;protected&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;
    &lt;span class="p"&gt;...&lt;/span&gt;

  &lt;span class="k"&gt;private&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;
    &lt;span class="p"&gt;...&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;It would be even better to come up with an helper macro like the
following.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="cp"&gt;#ifdef UNITTEST&lt;/span&gt;
&lt;span class="cp"&gt;#define ASSIST_UNIT_TEST( class__ ) friend class class__##Test&lt;/span&gt;
&lt;span class="cp"&gt;#else&lt;/span&gt;
&lt;span class="cp"&gt;#define ASSIST_UNIT_TEST( class__ )&lt;/span&gt;
&lt;span class="cp"&gt;#endif&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;And use the above macro in the class to be tested.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Foo&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;public&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;ASSIST_UNIT_TEST&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="n"&gt;Foo&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;...&lt;/span&gt;

  &lt;span class="k"&gt;protected&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;
    &lt;span class="p"&gt;...&lt;/span&gt;

  &lt;span class="k"&gt;private&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;
    &lt;span class="p"&gt;...&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;We can have the macro &lt;code&gt;UNITTEST&lt;/code&gt; to define only for the unit test
code. During this exercise, I found that I dearly missed &lt;code&gt;__CLASS__&lt;/code&gt;
macro in C++ badly! I documented this approach in the &lt;a class="reference external" href="http://cppunit.sourceforge.net/cppunit-wiki/FrequentlyAskedQuestions#head-732d82a79b83c9556201ce6484c56de8c465cd60"&gt;cppunit
FAQ&lt;/a&gt;
page.&lt;/p&gt;
&lt;p&gt;I have also tried to create a wrapper class that derives from the class
to be tested and override the protected functions so that they are in
the public scope of the derived class. This can help testing only
protected member functions. However there is a lot of new code involved
in the wrapper class to invoke the base class' appropriate function. So,
I consider this ineffective and error prone.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;PS:&lt;/strong&gt; If someone knows a better approach to do this in C++ please let
me know.&lt;/p&gt;
</summary><category term="c++"></category><category term="tdd"></category></entry><entry><title>Fix one; break two!</title><link href="http://praveen.kumar.in/2007/12/21/fix-one-break-two/" rel="alternate"></link><updated>2007-12-21T22:18:04+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2007-12-21:2007/12/21/fix-one-break-two/</id><summary type="html">&lt;p&gt;I am using Lenovo Thinkpad T60 that has &lt;a class="reference external" href="http://ati.amd.com/products/MobilityRadeonx1300/index.html"&gt;ATI Mobility Radeon
X1300&lt;/a&gt; on
it. I run Debian GNU/Linux sid on my laptop. Even though I am not
extensively using a lot of 3D applications on my laptop, I am forced to
use AMD's proprietary fglrx driver so that I can have my dual screen
setup running with AMD's big desktop. I have used NVIDIA's proprietary
driver on Linux three years ago. It was much better even three years
back compared to the crippled fglrx driver that AMD distributes
currently.&lt;/p&gt;
&lt;p&gt;I am so much annoyed with the driver releases that AMD makes. I was so
unhappy that fglrx driver didn't have
&lt;a class="reference external" href="http://en.wikipedia.org/wiki/AIGLX"&gt;AIGLX&lt;/a&gt; support. This kept me
away from Compiz that I was running on my old laptop in spite of the
fact that I just had a mediocre Intel graphics adapter. Finally AMD
added the much awaited AIGLX support in &lt;a class="reference external" href="https://a248.e.akamai.net/f/674/9206/0/www2.ati.com/drivers/linux/linux_8.42.3.html"&gt;fglrx
8.42&lt;/a&gt;.
However, I was not able to run Compiz using that driver on my box as
there was a bug that made it crippled with XOrg 1.4. That is not all of
it. Scrolling in most of the applications had become very slow. I can't
do anything but to wait for the next driver release where things would
be fixed.&lt;/p&gt;
&lt;p&gt;Then came the &lt;a class="reference external" href="http://ati.amd.com/support/drivers/linux/previous/linux-r-cat711.html"&gt;fglrx
8.43&lt;/a&gt;
release. I didn't see a significant stuff in the driver apart from their
change of version number. Now the driver is known as "ATI Catalyst" and
the version number uses y.mm format. I got ATI Catalyst 7.11. They
didn't even care to fix the bug that crippled the driver with XOrg 1.4.
The scrolling speed issue is not fixed as well. The first application to
communicate with the driver would hang eternally till you kill it. Wait,
that is not all! It also brings a shiny memory leak issue in the OpenGL
applications. What now? Wait for the next ATI Catalyst.&lt;/p&gt;
&lt;p&gt;Here comes &lt;a class="reference external" href="https://a248.e.akamai.net/f/674/9206/0/www2.ati.com/drivers/linux/catalyst_712_linux.html"&gt;ATI Catalyst
7.12&lt;/a&gt;.
They have fixed OpenGL memory leak issue. But the XOrg 1.4, scrolling
speed, first application to communicate to the driver still stays. I got
an added bonus. This driver breaks the support for wide screen
resolutions for certain displays. Well, I was the unfortunate. My
Thinkpad can't run 1400x1050 anymore with this driver. It fell back
automatically to 1024x768. It looked horrible! I had no option than to
switch back to 7.11 and wait for 8.1, where they will 'Fix one; break
two' again.&lt;/p&gt;
&lt;p&gt;Here are the few thoughts that came to my mind after this whole
experience.&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;I would never buy a ATI graphics card given the state of their Linux
driver. I am planning to go for NVIDIA GeForce 8800 GT for the gaming
PC that I would get assembled shortly. Can't AMD realize that they
are losing at least a bunch of customers because of their awful Linux
driver?&lt;/li&gt;
&lt;li&gt;It is clear that AMD's driver release follows Iterative approach with
an iteration cycle close to 4/5 weeks. If AMD can't either add
significant stuff to the driver or test the driver thoroughly, why
don't they revisit the iteration cycle? It makes no sense to me to
release a quick degrading versions. Each incremental release should
evolve consistently.&lt;/li&gt;
&lt;li&gt;How many developers are working on the driver as of now? I guess it
is one or maybe two. Does AMD find it difficult to hire developers
for their Linux driver? I would expect that AMD should have atleast 4
developers dedicated to their driver development.&lt;/li&gt;
&lt;/ul&gt;
</summary><category term="linux"></category></entry><entry><title>Name change - Praveen Ravi Kumar</title><link href="http://praveen.kumar.in/2007/12/20/name-change-praveen-ravi-kumar/" rel="alternate"></link><updated>2007-12-20T21:08:23+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2007-12-20:2007/12/20/name-change-praveen-ravi-kumar/</id><summary type="html">&lt;p&gt;One of the major headaches that I had after moving to the US was due to
the way my name was handled in various places. I am from Tamil Nadu in
India. In Tamil Nadu, we don't have an official concept of last name.
Instead, we have a concept known as "Initial" where we use father name's
first letter in front of the name. My name is Praveen Kumar and my
father's name is Ravi Kumar. So, I was called "R Praveen Kumar".
However, when I applied for an Indian passport back in 2003, I was asked
to expand my initials as my last name. So, my name has become "Praveen
Kumar Ravi Kumar" where "Praveen Kumar" was the first name and "Ravi
Kumar" was the last name. Needless to say, we don't have a middle name
concept.&lt;/p&gt;
&lt;p&gt;After I moved to the US, when I applied for a Social Security Card in
the Social Security Office, the officer made "Praveen/Kumar/Ravi Kumar"
as my first, middle and last names respectively. Living in the US with a
last name that has two parts clearly caused a lot of confusion for me in
the past five months. Also, I didn't prefer "Kumar" to repeat twice in
my name. So, I decided that I would adopt "Praveen/Ravi/Kumar" as my
first, middle and last name respectively. It was not a straight forward
procedure.&lt;/p&gt;
&lt;p&gt;I had to file a petition in one of the Supreme Courts of California for
a name change. As a part of this process, I had to advertise "Order to
show cause" notice in a local newspaper for four consecutive weeks and
attend a court hearing. In the meantime, I also had to publish an
advertisement back in the area of my permanent residence in India. The
latter procedure is required for getting my Indian passport updated with
my new name. All these procedures burnt around USD 500 out of my pocket.
Finally, I was granted a "Decree showing Name Change" by Fremont Hall of
Justice a couple of weeks back.&lt;/p&gt;
&lt;p&gt;Once I received the order, I had to go to the Social Security Office to
get a new Social Security Card showing my new name. After a week, I got
my Driver's license updated with my new name in the DMV office. Finally,
I had to notify my financial institutions and other places about my name
change. I also applied for a new Indian passport. It was really annoying
to get all these done. But I love the simplicity in Praveen Ravi Kumar!&lt;/p&gt;
</summary><category term="law"></category></entry><entry><title>My first car</title><link href="http://praveen.kumar.in/2007/12/20/my-first-car/" rel="alternate"></link><updated>2007-12-20T20:43:40+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2007-12-20:2007/12/20/my-first-car/</id><summary type="html">&lt;p&gt;I have bought (a month and a half back) a used Honda Civic LX 2001. The
color is &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Burgundy_(color)"&gt;Burgundy&lt;/a&gt;.
This is an automatic transmission vehicle. I was actually looking for a
manual transmission vehicle (mostly Mitsubushi Lancer Rally). However,
it was not that easy to find a good manual transmission car for low
mileage within my budget. I bought this car from one of my colleagues.
Initially I was not happy with the acceleration of the car. However, I
started loving this car pretty soon. I was a bit scared to buy my first
car. But, it has turned out to be really a nice one. It is more than a
month and there are no issues so far. A couple of weeks back, I had to
give her a &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Jump_start_(vehicle)"&gt;jump
start&lt;/a&gt; as I
drained out my battery by leaving my headlights turned on.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Xorg 7.3 and AMD ATI driver fglrx 8.40.4 issue</title><link href="http://praveen.kumar.in/2007/09/26/xorg-73-and-amd-ati-driver-fglrx-8404-issue/" rel="alternate"></link><updated>2007-09-26T11:32:15+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2007-09-26:2007/09/26/xorg-73-and-amd-ati-driver-fglrx-8404-issue/</id><summary type="html">&lt;p&gt;&lt;a class="reference external" href="http://www.x.org/wiki/"&gt;Xorg&lt;/a&gt; 7.3 is now available in Debian sid. I
am using &lt;a class="reference external" href="http://ati.amd.com/support/drivers/linux/linux-radeon.html"&gt;fglrx
8.40.4&lt;/a&gt;
for my ATI Mobility Radeon X1300. Looks like fglrx 8.40.4 works only
with XFree86 4.3 and X.Org 6.7, 6.8, 6.9, 7.0, 7.1, 7.2. When I
restarted my X after the upgrade, it failed to start with the following
message.&lt;/p&gt;
&lt;pre class="literal-block"&gt;
(II) LoadModule: "fglrx"
(II) Loading /usr/lib/xorg/modules/drivers//fglrx_drv.so
(II) Module fglrx: vendor="FireGL - ATI Technologies Inc."
        compiled for 7.1.0, module version = 8.39.4
        Module class: X.Org Video Driver
        ABI class: X.Org Video Driver, version 1.0
(EE) module ABI major version (1) doesn't match the server's version (2)
(II) UnloadModule: "fglrx"
(II) Unloading /usr/lib/xorg/modules/drivers//fglrx_drv.so
(EE) Failed to load module "fglrx" (module requirement mismatch, 0)
&lt;/pre&gt;
&lt;p&gt;I can't wait till I get updated driver from AMD. I have asked X to
ignore ABI versions. If you are using gdm, edit &lt;tt class="docutils literal"&gt;/etc/gdm/gdm.conf&lt;/tt&gt; to
have the following lines at the end.&lt;/p&gt;
&lt;pre class="literal-block"&gt;
[server-Standard]
command=/usr/bin/X -audit 0 -ignoreABI
&lt;/pre&gt;
</summary><category term="linux"></category></entry><entry><title>Font issues in shiny Gnome 2.20 under Debian</title><link href="http://praveen.kumar.in/2007/09/25/font-issues-in-shiny-gnome-220-under-debian/" rel="alternate"></link><updated>2007-09-25T20:59:38+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2007-09-25:2007/09/25/font-issues-in-shiny-gnome-220-under-debian/</id><summary type="html">&lt;p&gt;I have just upgraded to &lt;a class="reference external" href="http://www.gnome.org/start/2.20/notes/en/"&gt;Gnome
2.20&lt;/a&gt; in Debian sid. It
just got released last Friday (Sep 21). Debian developers have impressed
me this time with the speed they brought it to sid. Some packages are
not yet available due to some dependencies and other usual stuff. The
control center has gone through a major revamp. Looks like the new
control center queries the X driver for DPI settings. Most of the X
drivers still doesn't report the DPI properly. Because of this, I was
getting unusually huge fonts after my upgrade. To fix this, choose the
DPI manually under "System -&amp;gt; Preferences -&amp;gt; Appearance -&amp;gt; Fonts -&amp;gt;
Details".&lt;/p&gt;
</summary><category term="linux"></category></entry><entry><title>இருவது20 உலகக் கோப்பை இறுதிப் போட்டிக்கு இந்தியா storms</title><link href="http://praveen.kumar.in/2007/09/22/india-storms-into-twenty20-world-cup-final/" rel="alternate"></link><updated>2007-09-22T12:49:21+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2007-09-22:2007/09/22/india-storms-into-twenty20-world-cup-final/</id><summary type="html">&lt;p&gt;சனிக்கிழமை காலைல எழுந்திருச்ச உடனே நம்ம ரூமி (அதுதாங்க room mate),
"&lt;a class="reference external" href="http://www.cricinfo.com/"&gt;Cricinfo&lt;/a&gt;ல India Vs Australia match
commentry பாருடா!" அப்பிடின்னாரு. "அமா! இவனுங்க என்னாத ஆடி, என்னாத
ஜெயிச்சி!" அப்படின்னு சொலிகிட்டு, மத்த வேலைய பார்த்துகிட்டே scoreஅ track
பண்ணேன். ரொம்ப நாளைக்கு அப்புறமா ஒரு நல்ல cricket match பார்த்த
(cricinfoல தாங்க) திருப்தி! இது வரைக்கும் பல matchகல TVல live show
பார்திருக்கேண். ஆனா பாருங்க, அது எதுலையும் இல்லாத ஒரு thrill இந்த ஒரு
matchல இருந்தது. இந்தியா semi-final வரைக்கும் கூட போவாங்கனு யாரும்
எதிர்பார்கலை. Tournament ஆரம்பிச்சதிலிருந்து யாருக்கிட்டையும் தோக்காத
ஆடிக்கிடிருந்தாங்க South Africa. அவங்களை பாவம் ஒரே matchல கெலிச்சி வெளிய
அனுப்பிசிட்டு உள்ள வந்தோமில்ல, அதையே இன்னும் நம்ப முடியல்லை! அதுக்குள்ள
Australiaவையும் ஊத்தி மூடி வீட்டுகு அனுபிச்சாசி. Finalsல ஆடப் போறது
இந்தியாவும் பாக்கிஸ்தானும். இதுல ஒரு comedy பாருங்க, இந்த ரெண்டு
teamமையும் இந்த வருஷம் நடந்த ODI World Cup மொதல் roundலையே ஊட்டுக்கு
அனுப்பிச்சி total damage பண்ணிட்டாங்க. பத்தாத குறைக்கு press, fans
எல்லாரும் players மேல செம காண்டா ஆயிட்டாங்க. இதெல்லாம் தாண்டி இப்போ இந்த
ரெண்டு teamமும் Twenty20 finals வந்தது பாராட்ட வேண்டிய விஷயம். ஆனா இதுல
match fixing எதுனா இருக்குமோன்னு light ஒரு doubt வரத தவிர்க்க முடியல.&lt;/p&gt;
&lt;p&gt;இதுல note பண்ண வேண்டிய matter என்னன்னா, இந்தியா first roundல வெளிய
வந்திருந்தா கூட ஒன்னும் பெருசா feel பண்ணியிருக்க மாட்டோம். இப்போ finalல
மட்டும் பாக்கிஸ்தான் கிட்ட தோத்தாங்கன்னா சங்கு தான்டியேய்! ஏலே Dhoni,
Yuvaraj பாத்து ஆடுங்க, சொல்லிபுட்டோம்! World cupஅ கெலிக்காம உரப்பாக்க
வந்திங்க, ஊட்ட கீட்ட எல்லாம் அடிச்சு காலி பண்ணிடுவோம்!&lt;/p&gt;
&lt;p&gt;ஆனா, எனக்கு என்னமோ இந்த final matchஅ பத்தி யோசிச்சா, Chennai 600026
படத்தோட climax நியாபகத்துக்கு வந்து slightடா ஒரு hint தரமாதிரி தோனுது!&lt;/p&gt;
&lt;blockquote&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;Dhoni: டேய் பஜ்ஜி, leg sideல போடாதடா! அவன் (Nazir) தான்
அடிக்கிறான்னு தெரியுது இல்ல...&lt;/div&gt;
&lt;div class="line"&gt;Harbajan: டேய் மச்சி, அவன் எங்க போட்டாலும் அடிகிறான்டா!&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;பின்குறிப்பு:&lt;/strong&gt; அப்பாடா! ரொம்ப நாளா தமிழ்ல ஒரு entry போடாத குறைய
போக்கியாச்சு!&lt;/p&gt;
</summary><category term="cricket"></category><category term="tamil"></category></entry><entry><title>Domain name change</title><link href="http://praveen.kumar.in/2007/09/22/domain-name-change/" rel="alternate"></link><updated>2007-09-22T07:25:08+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2007-09-22:2007/09/22/domain-name-change/</id><summary type="html">&lt;p&gt;I am planning to migrate my primary domain from praveen.ws to kumar.in.
As a first step my blog is moved from the &lt;a class="reference external" href="http://www.praveen.ws/journal/"&gt;old
place&lt;/a&gt; to here. If you have a direct
bookmark to my blog, please update it accordingly. If you have
subscribed to &lt;a class="reference external" href="http://feeds.feedburner.com/praveen-journal"&gt;my RSS&lt;/a&gt;
feed through &lt;a class="reference external" href="http://www.feedburner.com/"&gt;Feedburner&lt;/a&gt;, you don't need
to do anything. I have taken care of my Feedburner feed to use my new
blog instead of my old one. I have mostly migrated most of the stuff
from the old domain to the new one. But you might see some visual
changes here over the weekend as I tweak it. I have decided to give up
using some of the Wordpress plugins like IP2Country, user agent, nested
comments and subscribe to comments that I used in my previous domain.&lt;/p&gt;
</summary><category term="internet"></category></entry><entry><title>Java Microsystems, Inc., JavaOS and JavaFire</title><link href="http://praveen.kumar.in/2007/08/23/java-microsystems-inc-javaos-and-javafire/" rel="alternate"></link><updated>2007-08-23T11:15:27+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2007-08-23:2007/08/23/java-microsystems-inc-javaos-and-javafire/</id><summary type="html">&lt;p&gt;I really don't understand the point how &lt;a class="reference external" href="http://blogs.sun.com/jonathan/entry/java_is_everywhere"&gt;changing the ticker symbol from
SUNW to JAVA&lt;/a&gt;
is going to bring a great difference to Sun's brandname. I would suggest
some more brilliant changes like Java Microsystems, Inc., JavaOS,
JavaFire, JavaOffice, JMC (Java Managament Center), Java Java (well,
that is a Cafe in MPK campus), The Java newspaper (oops! that is not our
brand; you gotta watch out!).&lt;/p&gt;
&lt;p&gt;Jokes apart! I personally don't think that it is a brilliant idea to
change the name of the ticker from SUNW to JAVA. I don't see a positive
brand assoicated with Java anywhere. We practically saw the brand name
of Java in JDS. Do we want to repeat that mistake again? I feel that Sun
brand is more powerful than Java is. When I was a teenager, I knew
StarOffice as a product of Sun Microsystems and not Sun Microsystems as
a creator of StarOffice. The same is true with Java. Looking at
&lt;a class="reference external" href="http://blogs.sun.com/jonathan/entry/java_is_everywhere#comments"&gt;comments on Jonathan's
blog&lt;/a&gt;,
I am not the only guy who is unhappy about this. I am expecting that
there would be a justification post made by Jonathan soon. It is a bad
idea to name your ticker after a language or technology that could be
easily extinct in a few years from now. SUNW = JAVA makes the same sense
as IBM = COBOL, RHT = LNX, NOVL = MONO and APPL = IPOD.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Disclaimer:&lt;/strong&gt; I am not speaking for my employer in this post. The
views expressed herein are mine and should not be attributed to anyone
else.&lt;/p&gt;
</summary><category term="sun"></category></entry><entry><title>Lenovo Thinkpad T60</title><link href="http://praveen.kumar.in/2007/07/27/lenovo-thinkpad-t60/" rel="alternate"></link><updated>2007-07-27T04:25:22+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2007-07-27:2007/07/27/lenovo-thinkpad-t60/</id><summary type="html">&lt;div class="pull-left img-thumbnail img-padding figure" style="width: 300px; height: auto; max-width: 100%;"&gt;
&lt;img alt="Lenovo Thinkpad T60" src="http://praveen.kumar.in/images/ThinkpadT60.jpg" style="width: 300px; height: auto; max-width: 100%;"/&gt;
&lt;/div&gt;
&lt;p&gt;I got a new Lenovo Thinkpad T60 from my office. I am amazed to see the
difference between this one and my previous laptop, Toshiba Satellite
A80. Thinkpad is built so professionaly that I love the look and feel of
the laptop. I got an ATI graphics card, fingerprint reader, faster RPM
hard drive and a wonderful display that supports 1400x1050 resolution. I
will soon write a post on getting Debian GNU/Linux on Thinkpad T60.&lt;/p&gt;
</summary><category term="pc"></category></entry><entry><title>Hello, Bay Area!</title><link href="http://praveen.kumar.in/2007/07/25/hello-bay-area/" rel="alternate"></link><updated>2007-07-25T04:06:56+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2007-07-25:2007/07/25/hello-bay-area/</id><summary type="html">&lt;p&gt;Finally, one of the most anticipated move in my career is here. I have
been to Bay Area a couple of times before. They were real short trips
ranging from one to two months. But this time, I was moving to Bay Area
for an indefinite/unknown duration. As days approached for my departure
from Bangalore, there were a lot of mixed feelings and thoughts going on
in my mind. I had to go through a lot of stress due to my habit of last
minute packing of my luggage. Finally, I departed Bangalore on Jul 23.&lt;/p&gt;
&lt;p&gt;I flew on &lt;a class="reference external" href="http://www.singaporeair.com/"&gt;Singapore Airlines&lt;/a&gt; to San
Franscisco via Singapore and Seoul. The flight was much comfortable this
time compared to the last two flights that I took on &lt;a class="reference external" href="http://www.ba.com/"&gt;British
Airways&lt;/a&gt;. As I had quit smoking, I had no pain in
hunting for smoking lounges at airports and I had no urge/craving for
nicotine in the flight. I got a sound sleep in the flight that I
normally lack when I fly. I wonder if lack of nicotine supply helped me
in getting sound sleep now-a-days. The connection durations at Singapore
and Seoul were so perfect that you would neither feel it too short to
catch the next flight nor feel so long that you will be bored waiting in
the airport.&lt;/p&gt;
&lt;p&gt;I touched down San Francisco airport on Jul 24 1:20 pm for the third
time. This time, the airport looked very familiar to me. Unfortunately
there was a huge line in front of the immigration check. Thanks to some
unexpected power failure in San Franscisco that took the immigration
servers down. I had to wait for more than 45 minutes for the servers to
be fixed. Finally, they let me in without fingerprinting and photograph
as there were no signs of the server recovering and the line started
getting out of control. Overall the flight this time was a pleasant
experience without any major hassles. I am staying in Mariott Residence
Inn, Newark for a month. I gotta find an apartment quickly and call it
my new home in &lt;a class="reference external" href="http://en.wikipedia.org/wiki/San_Francisco_Bay_Area"&gt;Bay
Area&lt;/a&gt;.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Adieu, my darling!</title><link href="http://praveen.kumar.in/2007/07/14/adieu-my-darling/" rel="alternate"></link><updated>2007-07-14T16:08:27+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2007-07-14:2007/07/14/adieu-my-darling/</id><summary type="html">&lt;p&gt;My darling,&lt;/p&gt;
&lt;p&gt;I still remember the first night that I embraced you. It just started as
an infactuation. Over time, I slowly developed a strong love towards
you. In the past seven years, you have been throughout my life. You
shared my success, sarrow, joy, tear, fear, celeberation, and what not
with me. Slowly, you became an integral part of my life. At times, I
felt that I can't live without you. A lot of my friends didn't like our
relationship. My family wanted me to completly forget about you. I tried
a couple of times to get away from you. But you have attracted me again
towards you and I failed. This time, I am realizing that you are
creating too much of pain to me. You damaged my health and breath. You
spoiled my room and groom. You wasted my time and dime. You broke my
heart and what not! Slowly you are dominating me. I feel that I lost my
self-respect to you. I can't take it anymore. So, I decided to ditch you
once for all. Enough of association between us. I am not your man
anymore. Now I am happy that I need not catch quick breaks to meet up
with you. I am happy that I need not bother about annoying people on the
elevator after I kiss you. I need not worry about the way I will carry
the match or a lighter beyond the airport security check to light you. I
need not be scared of long meetings without breaks. I need not care to
figure out if a hotel or an airport allows smoking inside. I need not
worry about taking the stairs. Now I am free from most of the pains that
you imparted on me.&lt;/p&gt;
&lt;p&gt;Adieu.&lt;/p&gt;
&lt;p&gt;Praveen Jul 14, 2007.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; I was successfully able to withstand through the Hell week
(first week after the quit). I got severe cravings sometimes during this
week. However with the help of some alternative intake of nicotine, I
was able to maintain my quit status. This time, I will do whatever it
takes to maintain life time quit status. My advice for others who are
trying to quit is to take the quit one day at a time.&lt;/p&gt;
</summary><category term="smoking"></category></entry><entry><title>Career update</title><link href="http://praveen.kumar.in/2007/07/04/career-update/" rel="alternate"></link><updated>2007-07-04T01:03:50+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2007-07-04:2007/07/04/career-update/</id><summary type="html">&lt;p&gt;Some of you might have wondered about the update that I &lt;a class="reference external" href="http://praveen.kumar.in/2007/06/10/visiting-chennai/"&gt;announced in a
couple of posts
earlier&lt;/a&gt;. All
sort of speculations like marriage, new job, stealthy startup, etc.,
were around. Let me put an end to those through this post.&lt;/p&gt;
&lt;p&gt;I am moving to the United States permanently. I have been offered a
permanent transfer to &lt;a class="reference external" href="http://www.sun.com"&gt;Sun Microsystems&lt;/a&gt;, &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Menlo_Park%2C_California"&gt;Menlo
Park&lt;/a&gt;. I will
continue working for my wonderful &lt;a class="reference external" href="http://www.sun.com/streamingsystem"&gt;Sun Streaming
System&lt;/a&gt; project, but in a
different team. I came to Chennai last week for my &lt;a class="reference external" href="http://en.wikipedia.org/wiki/L-1_visa"&gt;L-1B
visa&lt;/a&gt; stamping. The visa is
issued and I am ready to fly now. I am leaving on Jul 23. I will be
staying in a company leased accommodation for a month after which I
would be finding a home for me in the most expensive &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Bay_Area"&gt;Bay
Area&lt;/a&gt;. I would also buy a car
(probably new). Suggestions on housing and car are most welcome!&lt;/p&gt;
</summary><category term="job"></category><category term="sun"></category></entry><entry><title>All EB categories become current!</title><link href="http://praveen.kumar.in/2007/06/15/all-eb-categories-become-current/" rel="alternate"></link><updated>2007-06-15T03:13:27+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2007-06-15:2007/06/15/all-eb-categories-become-current/</id><summary type="html">
&lt;div class="panel panel-default"&gt;
&lt;div class="panel-heading"&gt;
&lt;h3 class="panel-title"&gt;Update&lt;/h3&gt;
&lt;/div&gt;
&lt;div class="panel-body"&gt;
    The July visa bulletin is obsoleted by an unprecedented update in the
middle of the month. USCIS has `announced
&lt;http: bulletin="" bulletin_3263.html="" frvi="" travel.state.gov="" visa=""&gt;`__
that all the employment visa applications won't be received till
October
2007. Some claim that backlog clearance effort has used up almost 60,000
visas unexpectedly. The application received in July will be sent back
to the applicants.
  &lt;/http:&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;I woke up with a pleasant surprise today when I saw the &lt;a class="reference external" href="http://travel.state.gov/visa/frvi/bulletin/bulletin_3258.html"&gt;USCIS visa
bulletin for July
2007&lt;/a&gt;
in my mailbox. The &lt;a class="reference external" href="http://en.wikipedia.org/wiki/United_States_Permanent_Resident_Card"&gt;immigrant
visa&lt;/a&gt;
number retrogression is gone and all EB categories became current all of
a sudden! I can't resist asking myself, "What turned the table in just
two months?". &lt;a class="reference external" href="http://travel.state.gov/visa/frvi/bulletin/bulletin_3236.html"&gt;June
2007&lt;/a&gt;
saw a significant movement in the priority dates for EB2 and EB3. July
2007 is going to say goodbye to all those retrogression. This means that
people who got their LC approved and were waiting for a long time can
file their I-485! However, I am wondering how long is it going to take
for the visa numbers to retrogress again. I am also wondering about the
severity of the retrogression. Analyzing this needs more skills than
Wall Street analysts.&lt;/p&gt;
</summary><category term="immigration"></category></entry><entry><title>Visiting Chennai</title><link href="http://praveen.kumar.in/2007/06/10/visiting-chennai/" rel="alternate"></link><updated>2007-06-10T03:02:19+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2007-06-10:2007/06/10/visiting-chennai/</id><summary type="html">&lt;p&gt;I will be visiting &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Chennai"&gt;Chennai&lt;/a&gt;
shortly. I will be there during June 23 and 24. I am planning to make
the most of that weekend. A lot of people to visit and a lot of stones
to be turned around. Chennai guys, plan for a blast. An important update
is about to be announced after the Chennai visit.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Is H1B misused by Indian/US outsourcing firms?</title><link href="http://praveen.kumar.in/2007/05/16/is-h1b-misused-by-indianus-outsourcing-firms/" rel="alternate"></link><updated>2007-05-16T23:22:40+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2007-05-16:2007/05/16/is-h1b-misused-by-indianus-outsourcing-firms/</id><summary type="html">
&lt;div class="panel panel-default"&gt;
&lt;div class="panel-heading"&gt;
&lt;h3 class="panel-title"&gt;Disclaimer&lt;/h3&gt;
&lt;/div&gt;
&lt;div class="panel-body"&gt;
    This post represents my personal views on a strongly controversial
topic. First, my employer, Sun Microsystems cannot be held responsible
for whatever I have mentioned here. Second, this post is mainly
influenced by the letter from the Senators available in the open
domain and any dispute to the post should not be addressed to me. I
will make sure that I will update this post if and only if I know
about the response given by these companies to the letter.
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;On May 16, two US Senators, &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Richard_Durbin"&gt;Charles E.
Grassley&lt;/a&gt; (Republician)
and &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Richard_Durbin"&gt;Richard J. Durbin&lt;/a&gt;
(Democrat) questioned about the suspected misuse of &lt;a class="reference external" href="http://en.wikipedia.org/wiki/H1B_visa"&gt;H1B
visas&lt;/a&gt; by the outsourcing
firms (mainly Indian) like &lt;a class="reference external" href="http://www.infosys.com/"&gt;Infosys&lt;/a&gt;,
&lt;a class="reference external" href="http://www.tcs.com/"&gt;TCS&lt;/a&gt;, &lt;a class="reference external" href="http://www.wipro.com/"&gt;Wipro&lt;/a&gt;,
&lt;a class="reference external" href="http://www.patni.com/"&gt;Patni&lt;/a&gt;, etc. H1B visas are mainly intended to
improve the competitiveness in the workforce and they should be used
when there is no US workforce available to fill those vacancies.
However, it is evident that the outsourcing companies use this visa for
a different purpose. They mainly use this visa to facilitate the
outsourcing of jobs from US to offshore. This really is a genuine
concern and the outsourcing companies are bound to answer this.&lt;/p&gt;
&lt;p&gt;The H1B visa holders from such companies are mostly posted on the client
site and there is a major complaint that they receive lesser than the
prevailing wages. Also the employer is not trying to fill the position
using US workforce before they try to hire a H1B candidate for that.
This should never be entertained because of the fact that it doesn't
really to any value add to the competitiveness of the workforce. When
there is a lot of requests coming in from companies like Microsoft to
increase the H1B quota, it appears that 20000 (around 30%) of H1B visas
are used by the top 9 Indian outsourcing firms. If one adds the number
from US outsourcing firms who have major presence in India(like
&lt;a class="reference external" href="http://www.accenture.com/"&gt;Accenture&lt;/a&gt; and
&lt;a class="reference external" href="http://www.cognizant.com/"&gt;CTS&lt;/a&gt;), the count is going to be still
higher.&lt;/p&gt;
&lt;p&gt;Here is the letter issued by the Senators to Infosys.&lt;/p&gt;
&lt;!-- --&gt;
&lt;blockquote&gt;
&lt;p&gt;May 14, 2007&lt;/p&gt;
&lt;p&gt;Mr. Nanden M. Nilekani
Chief Executive Officer
Infosys Technologies Limited
6607 Kaiser Drive Fremont
California 94555&lt;/p&gt;
&lt;p&gt;Dear Mr. Nilekani:&lt;/p&gt;
&lt;p&gt;As members of the Senate Judiciary Committee Subcommittee on
Immigration, Border Security and Refugees, we have a responsibility to
oversee and evaluate our country's visa policies. We have been concerned
about reported fraud and abuse of the H-1B and L visa programs, and
their impact on American workers. We are also concerned that the program
is not being used as Congress intended.&lt;/p&gt;
&lt;p&gt;While some Members of Congress have focused on increasing the annual cap
of the H-1B program, we believe it is important to understand how H-1B
visas are being used by companies in the United States. We have received
helpful data from the U.S. Citizenship and Immigration Service with
regard to H-1B visa approvals in 2006 for the top 200 participating
companies. Your company was one of the top companies on the list.
Therefore, we are requesting your cooperation in providing additional
statistics and information on your use of H-1B visa workers.&lt;/p&gt;
&lt;p&gt;First, some groups, such as the Programmers Guild, have analyzed the
wages paid to H-1B visa holders. They have found that the average annual
salary of foreign workers is significantly lower than that of new U.S.
graduates.&lt;/p&gt;
&lt;p&gt;Second, a number of consulting firms reportedly recruit foreign workers
and then outsource the individuals to other job sites or companies. Many
of the top 20 companies that used H-1B visas in 2006 are firms, such as
yours, that specialize in offshore outsourcing.&lt;/p&gt;
&lt;p&gt;Third, a number of firms have allegedly laid off American workers while
continuing to employ H-1B visa holders. The American people are
concerned about such lay offs at a time when the demand for visa
issuances and the recruitment of foreign workers appear to be
increasing.&lt;/p&gt;
&lt;p&gt;Because of these concerns, we seek your cooperation in answering the
following questions:&lt;/p&gt;
&lt;p&gt;NUMBERS&lt;/p&gt;
&lt;p&gt;How many United States citizens do you employ in the United States?&lt;/p&gt;
&lt;p&gt;Is your company an H-1B dependent employer?&lt;/p&gt;
&lt;p&gt;How many visa petitions did you submit to the Citizenship and
Immigration Service for Fiscal Year 2007?&lt;/p&gt;
&lt;p&gt;Of the total number of petitions requested, how many have been approved
for Fiscal Year 2007, if known?&lt;/p&gt;
&lt;p&gt;How many H-1B visa holders is your company currently employing? What
percentage of your total workforce are H-1B visa holders?&lt;/p&gt;
&lt;p&gt;What is the average age of the H-1B visa holders that your company
currently employs?&lt;/p&gt;
&lt;p&gt;What is the average number of years of experience of your employed H-1B
visa holders?&lt;/p&gt;
&lt;p&gt;Please describe your efforts to recruit Americans for the positions for
which you employ H-1B workers.&lt;/p&gt;
&lt;p&gt;WAGES&lt;/p&gt;
&lt;p&gt;What is the average wage of your company's H-1B visa holders? What is
the median wage? What is the highest and the lowest salaries for those
H-1B visa holders currently employed by your company?&lt;/p&gt;
&lt;p&gt;What is the average wage of your company's workers who are United States
citizens in the same occupations?&lt;/p&gt;
&lt;p&gt;OUTSOURCING&lt;/p&gt;
&lt;p&gt;Of the 4,908 visas your company received in 2006, how many of those
workers are currently employed and paid by Infosys Technologies Limited?&lt;/p&gt;
&lt;p&gt;Of the 4,908 visas your company received in 2006, how many were
outsourced to other companies and how many employees' salaries were paid
for by a firm other than Infosys Technologies Limited?&lt;/p&gt;
&lt;p&gt;LAYOFFS&lt;/p&gt;
&lt;p&gt;Has your company experienced any layoffs in the United States in the
past year? Any layoffs in 2005? If so, how many people lost their jobs?&lt;/p&gt;
&lt;p&gt;If your company has laid off workers in the United States, what job
positions were part of that layoff?&lt;/p&gt;
&lt;p&gt;If your company has laid off workers in the United States, how many of
those workers were H-1B visa holders?&lt;/p&gt;
&lt;p&gt;If your company has laid off workers in the United States, did any H-1B
visa holders replace those dislocated workers, or take over any of the
laid off employee's job responsibilities?&lt;/p&gt;
&lt;p&gt;We appreciate your cooperation, and respectfully request that you
respond to our questions no later than May 29, 2007.&lt;/p&gt;
&lt;p&gt;Sincerely,&lt;/p&gt;
&lt;p&gt;Charles E. Grassley United States Senator&lt;/p&gt;
&lt;p&gt;Richard J. Durbin United States Senator&lt;/p&gt;
&lt;/blockquote&gt;
</summary><category term="ethics"></category><category term="immigration"></category></entry><entry><title>Preventing directory listing in Apache</title><link href="http://praveen.kumar.in/2007/05/14/preventing-directory-listing-in-apache/" rel="alternate"></link><updated>2007-05-14T00:16:40+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2007-05-14:2007/05/14/preventing-directory-listing-in-apache/</id><summary type="html">&lt;p&gt;To prevent directory listing in Apache, add the following line to
&lt;tt class="docutils literal"&gt;.htaccess&lt;/tt&gt; in the top level of the directory you want to do it.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nb"&gt;Options&lt;/span&gt; -Indexes
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;To allow directory listing for specific subdirectories, you can add the
following in the &lt;tt class="docutils literal"&gt;.htaccess&lt;/tt&gt; of the subdirectory to override the
parent directory's default setting.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nb"&gt;Options&lt;/span&gt; +Indexes
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;To get this working, you would need override support in the Apache
configuration.&lt;/p&gt;
</summary><category term="apache"></category></entry><entry><title>URL redirection using PHP</title><link href="http://praveen.kumar.in/2007/05/13/url-redirection-using-php/" rel="alternate"></link><updated>2007-05-13T00:10:03+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2007-05-13:2007/05/13/url-redirection-using-php/</id><summary type="html">&lt;p&gt;Here is an one-liner PHP code for URL redirection instantly.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;
  &lt;span class="nb"&gt;header&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s1"&gt;'Location: http://www.yoursite.com/new_page.html'&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;&lt;span class="x"&gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Make sure that you don't do send any HTML before doing this. The
following is not going to work.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nt"&gt;&amp;lt;html&amp;gt;&lt;/span&gt;
...
&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;
&lt;span class="cp"&gt;  header( 'Location: http://www.yoursite.com/new_page.html' ) ;&lt;/span&gt;
&lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;
...
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
</summary><category term="notags"></category></entry><entry><title>Random links</title><link href="http://praveen.kumar.in/2007/05/12/random-links/" rel="alternate"></link><updated>2007-05-12T22:23:45+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2007-05-12:2007/05/12/random-links/</id><summary type="html">&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="http://wiki.openmoko.org"&gt;OpenMoko, Free your mobile&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://wiki.services.openoffice.org/wiki/Extensions_repository"&gt;OpenOffice.org
extensions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://fullcirclemagazine.org/"&gt;Full Circle, Free Ubuntu
magazine&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://dwell.co.uk/product.php?prod=101717"&gt;The match lighter&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</summary><category term="notags"></category></entry><entry><title>Sun Streaming System is launched</title><link href="http://praveen.kumar.in/2007/04/27/sun-streaming-system-is-launched/" rel="alternate"></link><updated>2007-04-27T20:07:59+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2007-04-27:2007/04/27/sun-streaming-system-is-launched/</id><summary type="html">
&lt;div class="panel panel-default"&gt;
&lt;div class="panel-heading"&gt;
&lt;h3 class="panel-title"&gt;Disclaimer&lt;/h3&gt;
&lt;/div&gt;
&lt;div class="panel-body"&gt;
    The following post is my personal view and my
employer, Sun Microsystems should not be held responsible for any
content or their consequences.
  &lt;/div&gt;
&lt;/div&gt;
&lt;div class="pull-left img-padding figure" style="width: 254px; height: auto; max-width: 100%;"&gt;
&lt;img alt="Sun Streaming System" src="http://praveen.kumar.in/images/SunStreamingSystem.jpg" style="width: 254px; height: auto; max-width: 100%;"/&gt;
&lt;/div&gt;
&lt;p&gt;Whenever my friends asked me about the details of the project that I am
working for at Sun Microsystems, I was not able to disclose more
information to them. But I am free to do it finally as the product that
I am working on is announced to the public.&lt;/p&gt;
&lt;p&gt;Sun has
&lt;a class="reference external" href="http://www.sun.com/featured-articles/2007-0426/feature/index.jsp"&gt;announced&lt;/a&gt;
the availability of &lt;a class="reference external" href="http://www.sun.com/servers/networking/streamingsystem/"&gt;Sun Streaming
System&lt;/a&gt;. The
image you see on the right is a system that could support 160,000
streams at 2 Mbps and a storage of 72 TB.&lt;/p&gt;
&lt;p&gt;The massive network throughput of the system is made possible by SunFire
x4950 Streaming Switch. It has 8 lines cards, each having four 10 Gbps
ports. The switch has a memory up to 2 TB. Thus a fully populated switch
has 2 TB of memory and 320 Gbps ingress and 320 Gbps egress throughput.&lt;/p&gt;
&lt;p&gt;The wonderful storage capability of the system is powered by &lt;a class="reference external" href="http://www.sun.com/servers/x64/x4500/"&gt;SunFire
x4500&lt;/a&gt; a.k.a. Thumper. It has
48 disk drives in a 4 RU box. With 750 GB SATA drives, a Thumper can
offer 36 TB of raw storage. This is one of the highest density disk
storage available in the market today.&lt;/p&gt;
&lt;p&gt;On a fully populated configuration the system can pump out video at 320
Gbs and have a storage capacity of 1152 TB fed in at 320 Gbps. The
system is extremely scalable. One can modify the configuration of the
system to include components as they wish to support a given load
scenario. For instance if the operator wants to provide more stored
video, add more Thumper to the system. If the operator wants to support
more trick plays per second, add additional session controllers and so
on. I am sure that this is going to create a revolution in the IPTV
segment.&lt;/p&gt;
&lt;p&gt;I really feel proud to be a part of the team behind Sun Streaming
System.&lt;/p&gt;
</summary><category term="job"></category><category term="sun"></category></entry><entry><title>Google maps humor</title><link href="http://praveen.kumar.in/2007/04/20/google-maps-humor/" rel="alternate"></link><updated>2007-04-20T19:20:46+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2007-04-20:2007/04/20/google-maps-humor/</id><summary type="html">&lt;p&gt;I always love the sense of humor that Google has. This time a direction
from New York, USA to London, UK. Have a look at the 24th point
(highlighted in blue).&lt;/p&gt;
&lt;div class="figure" style="width: 504px; height: auto; max-width: 100%;"&gt;
&lt;img alt="US to UK" src="http://praveen.kumar.in/images/GoogleMapsUSToUK.jpg" style="width: 504px; height: auto; max-width: 100%;"/&gt;
&lt;/div&gt;
</summary><category term="notags"></category></entry><entry><title>Cell Info Display on Motorola ROKR E6 - How To</title><link href="http://praveen.kumar.in/2007/04/02/cell-info-display-on-motorola-rokr-e6-how-to/" rel="alternate"></link><updated>2007-04-02T01:52:18+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2007-04-02:2007/04/02/cell-info-display-on-motorola-rokr-e6-how-to/</id><summary type="html">&lt;p&gt;One of the most handy features on a GSM phone is the Cell Info display.
It shows the name of the current cell that one is hanging out. I was
struggling to get it configured on my new Motorola ROKR E6. It was not
that straight forward. So, I decided to put a mini How To on this topic.&lt;/p&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;Go to message screen.&lt;/li&gt;
&lt;li&gt;Select "Service Setup" from the options using the button on the left
bottom screen.&lt;/li&gt;
&lt;li&gt;Select "Info Service" option.&lt;/li&gt;
&lt;li&gt;Turn the service on.&lt;/li&gt;
&lt;li&gt;Go to "Active Channels" option.&lt;/li&gt;
&lt;li&gt;Select "Delete Channel" option using the button on the left bottom
screen and delete existing channel.&lt;/li&gt;
&lt;li&gt;Select "Add Channel" option.&lt;/li&gt;
&lt;li&gt;Type 50 and add the channel (Channel: 50).&lt;/li&gt;
&lt;li&gt;Save and exit.&lt;/li&gt;
&lt;li&gt;You got the Cell Info on your ROKR E6 working now!&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; It is known that Cell Info display is broadcasted on channel
50 in Europe and Asia. If you can't get it working using channel 50,
please call your operator to find out what channel it is being provided
in your area.&lt;/p&gt;
</summary><category term="cellphone"></category></entry><entry><title>Goodbye, Nokia 5500! Hello, Motorola ROKR E6!!</title><link href="http://praveen.kumar.in/2007/03/31/goodbye-nokia-5500-hello-motorola-rokr-e6/" rel="alternate"></link><updated>2007-03-31T01:38:46+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2007-03-31:2007/03/31/goodbye-nokia-5500-hello-motorola-rokr-e6/</id><summary type="html">&lt;p&gt;Finally I have decided to put an end to all my frustrations with &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Nokia_5500"&gt;Nokia
5500 Sport&lt;/a&gt;. I have given it
to the Nokia Care center to get the keypad replaced. It is going to take
20 days for getting it back. I have decided to sell it off once I get
it. In the meantime, I grabbed a &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Motorola_ROKR_E6"&gt;Motorola ROKR
E6&lt;/a&gt;. I chose this one
because it runs on Linux and supports a lot of mods. This is my first
move out of Nokia to any other mobile vendor. It is going to take some
time for me to get familiar with the new device. Thanks to Nokia 5500
that shattered my love for Nokia!&lt;/p&gt;
</summary><category term="cellphone"></category></entry><entry><title>Boycotting products advertised by Indian cricketers</title><link href="http://praveen.kumar.in/2007/03/25/boycotting-products-advertised-by-indian-cricketers/" rel="alternate"></link><updated>2007-03-25T22:02:01+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2007-03-25:2007/03/25/boycotting-products-advertised-by-indian-cricketers/</id><summary type="html">&lt;p&gt;It was an embarrassing moment for Indian cricket when they were knocked
out from the initial round of World Cup. On records, India has one of
the most strong and experienced batting line up. But the reality is
totally different. Indian cricketers once again proved that they can't
deliver when badly needed. A lot of Indian fans are showing violent
responses. I don't quite agree it. We are the ones who made them heroes.
Indian cricketers should try to concentrate on the game with at least
one tenth of the interest that they are showing towards advertising.&lt;/p&gt;
&lt;p&gt;I have decided to boycott all the products that are advertised by Indian
cricketers as the response to their poor performance in the World Cup.
The initial round of products that I started boycotting right away are&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Pepsi&lt;/li&gt;
&lt;li&gt;Boost&lt;/li&gt;
&lt;li&gt;Indian Oil Extra Premium petrol&lt;/li&gt;
&lt;li&gt;Parachute hair cream&lt;/li&gt;
&lt;li&gt;ITC cookies&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Anybody who are not happy with Indian cricketers can follow this method,
that I think would directly impact their future performance.&lt;/p&gt;
</summary><category term="cricket"></category></entry><entry><title>Proxy settings in xchat-gnome</title><link href="http://praveen.kumar.in/2007/03/17/proxy-settings-in-xchat-gnome/" rel="alternate"></link><updated>2007-03-17T20:14:28+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2007-03-17:2007/03/17/proxy-settings-in-xchat-gnome/</id><summary type="html">&lt;p&gt;After a long break, today I planned to hang around on some of my
favorite channels on &lt;a class="reference external" href="http://en.wikipedia.org/wiki/IRC"&gt;IRC&lt;/a&gt;. I
normally use xchat to do IRC. But this time, my xchat was replaced by
&lt;a class="reference external" href="http://xchat-gnome.navi.cx/"&gt;xchat-gnome&lt;/a&gt;. It inherited all the
settings from my previous xchat configuration. When I invoked
xchat-gnome, it tried to use one of the proxy servers that I have
configured before. I was wondering where xchat-gnome is picking up that
proxy server setting from! It was not obeying the gnome proxy settings.
It doesn't have an UI to configure the proxy settings. It was a bit of
strange behavior. When I searched about this problem, I found that
xchat-gnome has proxy support. But there is no UI to configure the
proxy. Here is how you do the proxy setup in xchat-gnome.&lt;/p&gt;
&lt;p&gt;Most of the settings of xchat-gnome are stored as variables. It gives an
option to edit the variables to configure various settings through the
&lt;code&gt;/set&lt;/code&gt; command. Here is the list of variables that are related to the
proxy configuration.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;net_proxy_auth - Toggle proxy authentication.
net_proxy_host - Proxy host to use.
net_proxy_pass - Password to use if proxy authentication is turned on.
net_proxy_port - Port to use for proxy host.
net_proxy_type - Type of proxy to use (0=disabled, 1=Wingate, 2=Socks4,3=Socks5, 4=HTTP, 5=MS Proxy (ISA).
net_proxy_use - What to use proxies for (if set). (0=all, 1=IRC Only, 2=DCC Only).
net_proxy_user - Username to use if proxy authentication is turned on.
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;For instance, if you want don't want to use any proxy, issue the command
&lt;code&gt;/set net_proxy_type 0&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;More list of xchat-gnome configuration variables are available
&lt;a class="reference external" href="http://xchat-win32.berlios.de/setvars.html"&gt;here&lt;/a&gt;.&lt;/p&gt;
</summary><category term="irc"></category></entry><entry><title>A trip to Manila</title><link href="http://praveen.kumar.in/2007/03/13/a-trip-to-manila/" rel="alternate"></link><updated>2007-03-13T18:09:03+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2007-03-13:2007/03/13/a-trip-to-manila/</id><summary type="html">&lt;p&gt;Last week I returned from a short business trip to Manila. I couldn't
visit any places due to the tight schedule/budget.&lt;/p&gt;
&lt;p&gt;This time I flew on Singapore Airlines. Singapore Airlines is much
better than British Airways in terms of service, quality and comfort of
the flight. The worthy mention is their inflight entertainment system
that is capable of delivering on demand (near) videos compared to the
broadcast videos in British Airways. Singapore airport is one of the
best airports I have seen. Plenty of shopping options.&lt;/p&gt;
&lt;p&gt;I was staying in Makati. The traffic in Makati is 10 times worse than
the traffic in Bangalore. The climate is much like the typical Indian
climate. The overall stay experience was very good apart from my dislike
towards the food. I managed to find a couple of Indian/Afghan
restaurants around my hotel. But they were quite expensive.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>SSH instead of Telnet - A must know fact!</title><link href="http://praveen.kumar.in/2007/02/14/ssh-instead-of-telnet-a-must-know-fact/" rel="alternate"></link><updated>2007-02-14T21:02:49+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2007-02-14:2007/02/14/ssh-instead-of-telnet-a-must-know-fact/</id><summary type="html">&lt;p&gt;I was in a position to appreciate why SSH should be used instead of
Telnet in my high school. It is a shame to find out that some systems
still come with Telnet enabled out of the box. Solaris 10 and 11
&lt;a class="reference external" href="http://www.informationweek.com/news/showArticle.jhtml?articleID=197005473&amp;amp;subSection=Breaking+News"&gt;Zero-Day
bug&lt;/a&gt;
recently found out just makes to laugh loud (well not ROFL yet)!&lt;/p&gt;
</summary><category term="security"></category></entry><entry><title>Home -&gt; Cyberhome via BSNL</title><link href="http://praveen.kumar.in/2007/01/21/home-cyberhome-via-bsnl/" rel="alternate"></link><updated>2007-01-21T00:24:20+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2007-01-21:2007/01/21/home-cyberhome-via-bsnl/</id><summary type="html">&lt;p&gt;After I have moved from BTM Layout to RT Nagar, I was a sort of
handicapped because of lack of Internet at home. I used
&lt;a class="reference external" href="http://www.airtelworld.com"&gt;Airtel&lt;/a&gt; broadband when I was at BTM
Layout. When I tried to transfer my Airtel broadband to my new home, I
found that Airtel doesn't have copper in RT Nagar. So, I had to opt for
another ISP. The only two possible options that I had here was
&lt;a class="reference external" href="http://www.sify.com"&gt;Sify&lt;/a&gt; and &lt;a class="reference external" href="http://www.bsnl.co.in"&gt;BSNL&lt;/a&gt;.
Sify provides Internet service through optical fiber backbone and
twisted pair cables in the last mile access. I have already used Sify
when I was in Chennai. I was never happy with their quality and service.
BSNL uses ADSL. Lately, I started hearing very good feedback on BSNL
service. I have applied for BSNL. But it was a long wait. I got my
broadband connection a couple of days back. It was almost 6 months since
I have applied for it. The indicative speed of my plan is 256 kbps to 2
Mbps. During day time, I get close to 256 kbps. In the night, I am
getting around 1.5+ Mbps.&lt;/p&gt;
&lt;pre class="literal-block"&gt;
praveen@aphrodite:~$ axel -a -n 32 http://feeds.gigavox.com/~r/gigavox/channel/osc/~5/57358285/OSC.OSCON-AlexMartelli-2006.07.28.mp3
Initializing download: http://feeds.gigavox.com/~r/gigavox/channel/osc/~5/57358285/OSC.OSCON-AlexMartelli-2006.07.28.mp3
File size: 26022272 bytes
Opening output file OSC.OSCON-AlexMartelli-2006.07.28.mp3
Starting download
...
Downloaded 24.8 megabytes in 2:21 seconds. (180.10 KB/s)
&lt;/pre&gt;
&lt;p&gt;One thing that I should look for is the 2.5 GB cap of monthly bandwidth.
I can enjoy unlimited downloads/uploads during 2 am to 8 am IST. But
&lt;a class="reference external" href="http://www.bsnl.co.in/service/dataone_tariff.htm"&gt;INR. 500&lt;/a&gt; per
month for this plan is really cheap, I would say. BSNL has certainly
revolutionized the Internet service in India. So, finally I have
converted my home a cyberhome via BSNL.&lt;/p&gt;
</summary><category term="internet"></category></entry><entry><title>Undoing a wrong commit in Subversion</title><link href="http://praveen.kumar.in/2007/01/18/undoing-a-wrong-commit-in-subversion/" rel="alternate"></link><updated>2007-01-18T02:44:10+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2007-01-18:2007/01/18/undoing-a-wrong-commit-in-subversion/</id><summary type="html">&lt;p&gt;Assume that you have done an accidental commit of a wrong version into
the &lt;tt class="docutils literal"&gt;svn&lt;/tt&gt; repository and wondering how to revert that commit, this tip
is for you.&lt;/p&gt;
&lt;p&gt;Let us take a case where one has committed a revision &lt;tt class="docutils literal"&gt;543&lt;/tt&gt; of a file
&lt;tt class="docutils literal"&gt;something.cc&lt;/tt&gt; to the trunk and he discovers that the commit is an
invalid one and he wants to revert to the revision &lt;tt class="docutils literal"&gt;542&lt;/tt&gt;. For most of
the novice &lt;tt class="docutils literal"&gt;svn&lt;/tt&gt; users, the command is not quite obvious. One should
use &lt;tt class="docutils literal"&gt;svn merge&lt;/tt&gt; to achieve this.&lt;/p&gt;
&lt;pre class="code text literal-block"&gt;
$ svn merge -r 543:542 http://your-svn-server/your-repository/trunk
U something.cc

$ svn stat
M something.cc

$ svn diff
...
# Verify if the change is reverted
...

$ svn commit -m "Undoing the wrong commit in revision 543"
Sending        something.cc
Transmitting file data .
Committed revision 545.
&lt;/pre&gt;
&lt;p&gt;Please note that you should use the &lt;tt class="docutils literal"&gt;svn&lt;/tt&gt; URI in the &lt;tt class="docutils literal"&gt;svn merge&lt;/tt&gt;
instead of using your local path for that file. It also should be noted
that the revision &lt;tt class="docutils literal"&gt;543&lt;/tt&gt; would still live in the repository. You can't
make it to disappear as &lt;tt class="docutils literal"&gt;svn&lt;/tt&gt; is designed not to lose any data. But
the trunk is free of the buggy commit. It is not possible to achieve
this using any other way like updating to the required revision and
trying to commit it.&lt;/p&gt;
</summary><category term="programming"></category><category term="subversion"></category></entry><entry><title>Dual monitor setup on GNU/Linux using Xinerama</title><link href="http://praveen.kumar.in/2007/01/17/dual-monitor-setup-on-gnulinux-using-xinerama/" rel="alternate"></link><updated>2007-01-17T00:46:56+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2007-01-17:2007/01/17/dual-monitor-setup-on-gnulinux-using-xinerama/</id><summary type="html">
&lt;div class="panel panel-default"&gt;
&lt;div class="panel-heading"&gt;
&lt;h3 class="panel-title"&gt;Update:&lt;/h3&gt;
&lt;/div&gt;
&lt;div class="panel-body"&gt;
    This is the legacy way to setup dual monitor on \*nix. To modern way
is to use `XRandR &lt;http: projects="" wiki="" www.x.org="" xrandr=""&gt;`__.  The
latest Gnome has XRandR support in it's Display configuration
applet. Please consult other sources on how to use XRandR.
  &lt;/http:&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;A dual monitor setup is supposed to increase the productivity of a
person. I wanted to go for dual monitor setup on my Toshiba Satellite
A80 laptop. The layout I wanted was to run the Laptop's built-in LCD as
my primary display sitting on my left side and a 21" CRT monitor as my
secondary display sitting on my right. My laptop's LCD would run at
1024x768 and my CRT would run at 1600x1024. I am using Ubuntu Edgy on my
laptop. My laptop uses Intel Mobile 915GM Express graphics controller. I
decided to use Xinerama to achieve this.&lt;/p&gt;
&lt;div class="section" id="configuration-of-xorg"&gt;
&lt;h2&gt;Configuration of Xorg&lt;/h2&gt;
&lt;p&gt;The snippet from my &lt;code&gt;xorg.conf&lt;/code&gt; for the dual monitor setup is here.
Please note that the following is not the complete &lt;code&gt;xorg.conf&lt;/code&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;Section "Device"
  Identifier  "Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller 0"
  Driver      "i810"
  BusID       "PCI:0:2:0"
  Option "MonitorLayout" "CRT,LFP"
  VideoRam    65536
  Screen      0
        Option        "CacheLines" "1024"
  Option "DevicePresence" "true"
EndSection

Section "Device"
  Identifier  "Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller 1"
  Driver      "i810"
  BusID       "PCI:0:2:0"
# Option "MonitorLayout" "CRT,LFP"
  VideoRam    65536
  Screen      1
        Option        "CacheLines" "1024"
  Option "DevicePresence" "true"
EndSection

Section "Monitor"
  Identifier  "Laptop LCD"
  Option      "DPMS"
EndSection

Section "Monitor"
  Identifier "External CRT"
  Option "DPMS"
EndSection

Section "Screen"
  Identifier  "Laptop LCD"
  Device      "Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller 0"
  Monitor     "Laptop LCD"
  DefaultDepth    24
  SubSection "Display"
      Depth       1
      Modes       "1024x768"
  EndSubSection
  SubSection "Display"
      Depth       4
      Modes       "1024x768"
  EndSubSection
  SubSection "Display"
      Depth       8
      Modes       "1024x768"
  EndSubSection
  SubSection "Display"
      Depth       15
      Modes       "1024x768"
  EndSubSection
  SubSection "Display"
      Depth       16
      Modes       "1024x768"
  EndSubSection
  SubSection "Display"
      Depth       24
      Modes       "1024x768"
  EndSubSection
EndSection

Section "Screen"
  Identifier  "External CRT"
  Device      "Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller 1"
  Monitor     "External CRT"
  DefaultDepth    24
  SubSection "Display"
      Depth       1
      Modes       "1600x1200"
  EndSubSection
  SubSection "Display"
      Depth       4
      Modes       "1600x1200"
  EndSubSection
  SubSection "Display"
      Depth       8
      Modes       "1600x1200"
  EndSubSection
  SubSection "Display"
      Depth       15
      Modes       "1600x1200"
  EndSubSection
  SubSection "Display"
      Depth       16
      Modes       "1600x1200"
  EndSubSection
  SubSection "Display"
      Depth       24
      Modes       "1600x1200"
  EndSubSection
EndSection

Section "ServerLayout"
  Identifier  "Xinerama2M"
  Screen 0 "Laptop LCD"
  Screen 1 "External CRT" RightOf "Laptop LCD"
  InputDevice "Generic Keyboard"
  InputDevice "Configured Mouse"
  InputDevice     "stylus" "SendCoreEvents"
  InputDevice     "cursor" "SendCoreEvents"
  InputDevice     "eraser" "SendCoreEvents"
  InputDevice "Synaptics Touchpad"
  Option      "Xinerama" "true"
EndSection
&lt;/pre&gt;&lt;/div&gt;
&lt;div class="section" id="switching-between-dual-and-single-monitor-setup"&gt;
&lt;h3&gt;Switching between dual and single monitor setup&lt;/h3&gt;
&lt;p&gt;As long as I am at my desk, I can happily use my dual monitor setup. But
when I am out, I will miss a display on my right. If I retain the same
configuration then, the display manager is going to place windows in the
missing display which would make my life difficult. Configuring the
above was pretty straight forward. But having a selectable single
monitor and dual monitor setup is the key for better usability. I
preferred to do this selection in my Grub when I boot. Here is the way
that I followed to do it.&lt;/p&gt;
&lt;p&gt;I had two versions of &lt;code&gt;xorg.conf&lt;/code&gt; namely &lt;code&gt;xorg.conf.1m&lt;/code&gt; (the plain
old single monitor setup) and &lt;code&gt;xorg.conf.xinerama2m&lt;/code&gt; (the dual monitor
setup using Xinerama). Please note that you can retain both
configurations in a single file and you can select the layout during
runtime using the &lt;code&gt;-layout&lt;/code&gt; parameter to &lt;code&gt;X&lt;/code&gt;. But I didn't prefer it
as it would put me in more complications for my desired setup. The key
idea is to make &lt;code&gt;xorg.conf&lt;/code&gt; as a sym-link for the appropriate
configuration file for the selection. For achieving this, I had to
modify my &lt;code&gt;/etc/init.d/gdm&lt;/code&gt; script. The snippet of code that I have
added to the script is as follows.&lt;/p&gt;
&lt;pre class="code bash literal-block"&gt;
&lt;span class="c"&gt;# Selection of Xorg layout
&lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt; grep -i &lt;span class="s2"&gt;"Xorg-1m"&lt;/span&gt; /proc/cmdline &amp;gt; /dev/null&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
    ln -sf /etc/X11/xorg.conf.1m /etc/X11/xorg.conf
&lt;span class="k"&gt;else&lt;/span&gt;
    ln -sf /etc/X11/xorg.conf.xinerama2m /etc/X11/xorg.conf
&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;The assumption that I make here is that I would use dual monitor setup
as my default setup and I would pass a kernel command line &lt;code&gt;Xorg-1m&lt;/code&gt;
explicitly if I want to run in a single monitor setup. So, for offering
this selection, I need to edit my &lt;code&gt;/boot/grub/menu.lst&lt;/code&gt; to add a new
entry for single monitor setup. The snippet of the added lines follows.&lt;/p&gt;
&lt;pre class="code text literal-block"&gt;
title       Ubuntu, kernel 2.6.17-10-generic (SINGLE MONITOR)
root        (hd0,1)
kernel      /boot/vmlinuz-2.6.17-10-generic root=/dev/sda2 ro vga=791 splash Xorg-1m
initrd      /boot/initrd.img-2.6.17-10-generic
quiet
boot
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
</summary><category term="linux"></category><category term="productivity"></category></entry><entry><title>Testing if a process or thread is alive</title><link href="http://praveen.kumar.in/2007/01/10/testing-if-a-process-or-thread-is-alive/" rel="alternate"></link><updated>2007-01-10T20:06:21+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2007-01-10:2007/01/10/testing-if-a-process-or-thread-is-alive/</id><summary type="html">&lt;p&gt;If one wants to check if a given thread or a process is alive in the
system, here is the way of doing it. This code snippet is guaranteed
to work on Linux NPTL threads. What we need as an input to this
function is the tid (thread id) given by the kernel. You can get the
tid of a thread by issuing &lt;code&gt;gettid()&lt;/code&gt; system call. In case of a
process, &lt;code&gt;gettid()&lt;/code&gt; is going to return the pid (process id) of
the process.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="kt"&gt;bool&lt;/span&gt;
&lt;span class="nf"&gt;isalive&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="kt"&gt;pid_t&lt;/span&gt; &lt;span class="n"&gt;tid&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="n"&gt;kill&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="n"&gt;tid&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;ESRCH&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;errno&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="cm"&gt;/* The thread or process is not alive */&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nb"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nb"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;It should be noted that just checking for the return value of &lt;code&gt;kill()&lt;/code&gt;
is not going to be sufficient as it is going to be -1 even if the thread
or the process exists but the calling process has no permission to send
signal to it (&lt;code&gt;errno&lt;/code&gt; is set to &lt;code&gt;EPERM&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;People say that &lt;code&gt;pthread_kill()&lt;/code&gt; could also used to achieve the
same purpose. But I ran into issues when trying that approach. Also
&lt;code&gt;pthread_kill()&lt;/code&gt; approach can't be used on processes. The
&lt;code&gt;kill()&lt;/code&gt; approach is uniform to both processes and threads. But
one overhead in this approach is knowing or finding the tid of the
thread of interest.  Note that the tid used in &lt;code&gt;kill()&lt;/code&gt; is not
the &lt;code&gt;pthread_t&lt;/code&gt; type but it is &lt;code&gt;pid_t&lt;/code&gt; type.&lt;/p&gt;
</summary><category term="threads"></category><category term="programming"></category></entry><entry><title>5 things most people don't know about me</title><link href="http://praveen.kumar.in/2007/01/04/5-things-most-people-dont-know-about-me/" rel="alternate"></link><updated>2007-01-04T13:23:29+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2007-01-04:2007/01/04/5-things-most-people-dont-know-about-me/</id><summary type="html">&lt;p&gt;Joining the &lt;a class="reference external" href="http://www.grep.be/blog/2007/01/03#5_things"&gt;tagging
game&lt;/a&gt; of the Debian
crew, I am revealing the 5 things that I think most people don't know
about me.&lt;/p&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;I wanted to study Law&lt;/li&gt;
&lt;li&gt;I wrote my first C program at the age of 11&lt;/li&gt;
&lt;li&gt;I used to do advocacy against Smoking&lt;/li&gt;
&lt;li&gt;I can withstand 3 days without sleeping&lt;/li&gt;
&lt;li&gt;I would like to turn back to Agriculture some day&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;It is &lt;a class="reference external" href="http://karthikeyanr.wordpress.com/"&gt;KK&lt;/a&gt;'s turn now!&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Solaris and Linux multi-netboot</title><link href="http://praveen.kumar.in/2006/12/22/solaris-and-linux-multi-netboot/" rel="alternate"></link><updated>2006-12-22T03:17:52+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-12-22:2006/12/22/solaris-and-linux-multi-netboot/</id><summary type="html">&lt;p&gt;I am right now working on an interesting requirement. We need to netboot
a few diskless clients from a server that is running on GNU/Linux. A few
clients would run GNU/Linux on then and a few will run Solaris on them.
I am exploring about the possibility of netbooting multiple operating
systems from the same server. I am sure that some could have tried this
already. But there is no straight forward howto on this topic. One more
challenge here is going to have Solaris to have it's &lt;code&gt;/root&lt;/code&gt; and
&lt;code&gt;/usr&lt;/code&gt; on a RAM disk instead of an NFS mount. The RAM disk would be a
real big one like 512MB with all the essential software in it. We
already have this setup for GNU/Linux clients. I have no idea how RAM
disks are used with Solaris kernel. This is going to be an interesting
experiment to carry out. You can soon expect an howto on this topic in
my blog.&lt;/p&gt;
</summary><category term="linux"></category><category term="solaris"></category></entry><entry><title>Feed is now powered by FeedBurner</title><link href="http://praveen.kumar.in/2006/12/19/feed-is-now-powered-by-feedburner/" rel="alternate"></link><updated>2006-12-19T11:10:29+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-12-19:2006/12/19/feed-is-now-powered-by-feedburner/</id><summary type="html">&lt;p&gt;I have setup a &lt;a class="reference external" href="http://feedburner.com"&gt;FeedBurner&lt;/a&gt; account today. My
&lt;a class="reference external" href="http://feeds.feedburner.com/praveen-journal"&gt;feeds&lt;/a&gt; are now
&lt;a class="reference external" href="http://feeds.feedburner.com/praveen-journal"&gt;available&lt;/a&gt; through
FeedBurner. The old feeds are still available. I am planning to remove
them after a month. Please start using the &lt;a class="reference external" href="http://feeds.feedburner.com/praveen-journal"&gt;new
feed&lt;/a&gt; now.&lt;/p&gt;
</summary><category term="blog"></category><category term="wordpress"></category></entry><entry><title>தூறல்</title><link href="http://praveen.kumar.in/2006/12/18/thooral/" rel="alternate"></link><updated>2006-12-18T23:43:31+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-12-18:2006/12/18/thooral/</id><summary type="html">&lt;p&gt;&lt;strong&gt;மனதை நெகிழ வைத்த ஒரு கதை. எழுதியவர் யாரோ!&lt;/strong&gt;&lt;/p&gt;
&lt;div class="panel panel-default"&gt;
&lt;div class="panel-heading"&gt;
&lt;h3 class="panel-title"&gt;Note&lt;/h3&gt;
&lt;/div&gt;
&lt;div class="panel-body"&gt;
    I don't know who is the original author of this story. `This post
&lt;http: 03="" 2009="" blog-post_09.html="" www.vettipayal.com=""&gt;`__ claims
that the author of `that blog &lt;http: www.vettipayal.com=""&gt;&lt;/http:&gt;`__ is
the original author. But I can't verify the claim. I give credits
to the original author whoever (s)he was.
  &lt;/http:&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;டிசம்பர் மாத குளிரோடு லேசான தூறலும் சேர்ந்து பெங்களூர் மாநகரை ஊட்டி
போலாக்கிக் கொண்டிருந்தது...&lt;/p&gt;
&lt;p&gt;வழக்கம் போல் 7 மணி பஸ்ஸிற்காக கோரமங்களா பார்க்கிங் லாட் அருகே நின்று
கொண்டிருந்தேன். எலக்ட்ரானிக் சிட்டி போய் சேர எப்படியும் ஒரு மணி
நேரத்திற்கு மேலாகும். நல்ல வேளை இந்த i-pod இருப்பதால் ஓரளவிற்கு சமாளிக்க
முடிகிறது.&lt;/p&gt;
&lt;p&gt;இந்த மழை ஏன் இங்க பெஞ்சி உயிர வாங்குதுனு தெரியல... மழை வரலைனு
யாகமெல்லாம் நடத்தறானுங்க... அங்க வராம இங்க வந்து நம்ம உயிர வாங்குது.
அதுவும் ஆபிஸ் போற நேரத்துல.&lt;/p&gt;
&lt;p&gt;அருகே கம்பெனி ஐடி கார்டை மாட்டிக் கொண்டு நான்கு, ஐந்து பேர் நின்று
கொண்டிருந்தனர். இவனுங்களுக்கு எல்லாம் பெரிய சாப்ட்வேர் இஞ்சினியர்னு
பெருமை. இந்த ஐடி கார்டை கம்பெனிக்குள்ள மாட்டினா போதாதா? லைசன்ஸ் வாங்குன
நாய் மாதிரி எப்பவும் கழுத்துல மாட்டிக்கிட்டு திரியறானுங்க.&lt;/p&gt;
&lt;p&gt;கடைசியாக சுரிதார் அணிந்து கொண்டு புதிதாக ஒருத்தி நின்று கொண்டிருந்தாள்.
நான் பார்ப்பதை பார்த்து சிரித்தாள்.&lt;/p&gt;
&lt;p&gt;ச்சீ என்ன பொண்ணு இவ... யாராவது பார்த்தா... உடனே சிரிக்கணுமா???&lt;/p&gt;
&lt;p&gt;பஸ் வந்தவுடன் வேகமாக சென்று ஒரு நல்ல இடம் பார்த்து ஜன்னல் ஓர சீட்டில்
அமர்ந்தேன்... i-podல் நேற்று டவுன்லோட் செய்த பெயர் தெரியாத படத்தின்
பாடல் ஓடிக்கொண்டிருந்தது.&lt;/p&gt;
&lt;p&gt;சரியாக எட்டு மணிக்கு என் சீட்டிலிருந்தேன்... வழக்கம் போல் யாரும் இன்னும்
வரவில்லை. இன்று அப்ரைசல் வேறு இருக்கிறது. இந்த முறை ஆன் சைட்டிலிருந்து
அப்ரிஸியேஷன் மெயில் வந்திருக்கிறது. அதனால் எப்படியும் இந்த முறை நல்ல
ரேட்டிங் கிடைக்கும்.&lt;/p&gt;
&lt;p&gt;மேனேஜர் சரியாக பத்து மணிக்கு வந்தார். மற்றவர்கள் அவர் வருவதற்கு 5
நிமிடத்திற்கு முன் வந்தனர். அவரை பொருத்த வரை அனைவரும் ஒரே நேரத்தில்
வந்ததாகத்தான் கணக்கு. மற்றவர்களை கேட்டால் டிராபிக் ஜாம் என்ற ஒரு
வார்த்தையை சொல்லி தப்பிவிடுவார்கள். 7 மணிக்கு புறப்பட்டால் எப்படியும் 8
மணிக்குள் வர முடியும். 8 மணிக்கு புறப்பட்டு 2 மணி நேரம் டிராபிக்கில்
சிக்கி வரவே அனைவரும் விரும்புகின்றனர். தலை சரியில்லாத இடத்தில்
மற்றவர்களை சொல்லி பயனில்லை.&lt;/p&gt;
&lt;p&gt;சரியாக 11 மணிக்கு அப்ரைசல் மீட்டிங். தேவையானவற்றை பிரிண்ட் அவுட் எடுத்து
கொண்டு மீட்டிங்கிற்கு சென்றேன். உள்ளே மேனஜர் தயாராக இருந்தார். இந்த
முறையும் அப்ரைசலில் எல்லா டாஸ்கிற்கும் "C" போட்டிருந்தார்கள். அதற்கு
அவர் சொன்ன காரணம் டீம் மக்களோடு சரியாக கலக்காமலிருக்கிறேனாம்.&lt;/p&gt;
&lt;p&gt;சரியாக வேலை செய்யவில்லை என்றால் சரி. ஆனால் மக்களோடு பழகவில்லை என்று அவர்
சொல்வது சும்மா ஒரு சப்பைக்கட்டு!!! இவர்கள் வேலை செய்வது போல்
நடிப்பவர்களைத்தான் தலை மேல் தூக்கி வைத்து கொண்டாடுவார்கள். ஆனால்
உண்மையாக வேலை செய்பவர்களை என்றும் மதிக்கமாட்டார்கள்.&lt;/p&gt;
&lt;p&gt;மதியம் சரியாக பனிரெண்டு மணிக்கு சாப்பிட கிளம்பினேன்.&lt;/p&gt;
&lt;p&gt;"கார்த்திக்... இன்னைக்கு பிராஜக்ட் பார்ட்டி. பஸ் 12:30க்கு வரும். இப்ப
எங்க போற?" அக்கரையாக விசாரித்தாள் ஹாசினி.&lt;/p&gt;
&lt;p&gt;"சாரி... நான் வரலை. நான் தான் மெயில்லையே சொல்லிட்டனே... எனக்கு இந்த
பார்ட்டி எல்லாம் பிடிக்காதுனு" சொல்லிவிட்டு வேகமாக சாப்பிட சென்றேன்.&lt;/p&gt;
&lt;p&gt;சாப்பிட்டுவிட்டு என் சீட்டிற்கு வந்த போழுது என் ப்ளோர் முழுதும்
விரிச்சோடி கிடந்தது. 2 மணிக்கு வீட்டிற்கு கிளம்பினேன். வீட்டில் தனியாக
என்ன செய்வதென்று தெரியாமல் கிடைத்த ஒரு ஆங்கில நாவல் படிக்க ஆரம்பித்தேன்.
எப்போழுது தூங்கினேனென்றே தெரியவில்லை. தூங்கி எழுந்திரிக்கும் பொழுது மணி
8 ஆகியிருந்தது.&lt;/p&gt;
&lt;p&gt;அருகே இருக்கும் ஓட்டலுக்கு சென்று சாப்பிட்டுவிட்டு வந்தேன். டிவியை ஆன்
செய்து ஒரு மணி நேரத்தில் 120 சேனல்களையும் 40 முறை மாற்றி மாற்றி
பார்த்துவிட்டு தூங்கிவிட்டேன். 6 மணிக்கு அலாரம் அதன் வேலையை சரியாக செய்ய
7 மணிக்கு பஸ் ஸ்டாப்பில் இருந்தேன்.&lt;/p&gt;
&lt;p&gt;வழக்கம் போல் பஸ்ஸிற்காக காத்திருப்பவர்கள் இருந்தார்கள். நேற்று புதிதாக
வந்திருந்தவளும் அங்கே நின்று கொண்டிருந்தாள். நேற்றை போலவே இன்றும்
பார்த்து சிரித்தாள்.&lt;/p&gt;
&lt;p&gt;பஸ் வந்ததும் வழக்கம் போல் ஜன்னலோர சீட்டருகே சென்று அமர்ந்தேன்.&lt;/p&gt;
&lt;p&gt;"ஹாய்... நான் இங்க உக்காரலாமா?" ஒரு பெண்ணின் குரல். திரும்பி பார்த்தேன்.
அவள் என் பதிலை எதிர்பார்க்காமல் அருகில் அமர்ந்தாள்.&lt;/p&gt;
&lt;p&gt;வழக்கத்தைவிட i-podல் சத்தத்தை கொஞ்சம் அதிகப்படுத்தினேன். அதை புரிந்து
கொண்டு எதுவும் பேசாமல் ஒரு ஆங்கில நாவலை கையில் வைத்து படிக்க
ஆரம்பித்தாள். வண்டி வழக்கத்தைவிட சீக்கிரம் சென்றாலும் ஏதோ ஒரு யுகம்
போனது போலிருந்தது.&lt;/p&gt;
&lt;p&gt;தினம் செய்யும் வேலையையே செக்குமாடு போல் செய்துவிட்டு 8 மணிக்கு
ஆபிஸிலிருந்து வீட்டிற்கு கிளம்பினேன். அடுத்த நாளும் அதை போலவே என்
அருகில் அமர்ந்து பயணம் செய்தாள். இதுவே ஒரு வாரம் தொடர்ந்தது.&lt;/p&gt;
&lt;p&gt;அன்றும் லேசான தூறல் போட்டுக்கொண்டிருந்தது. நடைபாதையிலிருந்து கீழிறங்கி
பஸ்ஸிற்காக காத்துக்கொண்டிருந்தேன். வலதுபக்கம் நின்றிருந்த ஒரு ஜோடி
ரோட்டில் நிற்கிறோம் என்ற எண்ணமில்லாமல் ஒருவர் கையை ஒருவர் பிடித்து
விளையாடிக்கொண்டிருந்தனர். என் கோபம் வழக்கத்தைவிட கொஞ்சம் அதிகமாகவே
வந்தது.&lt;/p&gt;
&lt;p&gt;இதுங்களுக்கு எல்லாம் அறிவே இல்லையா? சாப்ட்வேர் இஞ்சினியர்னா பெருசா
அமெரிக்கால இருக்கற நினைப்பு. இதுங்களாலதான் எல்லாருக்கும் கெட்டப்பேரு!!!
திடிரென்று யாரோ என் கையை பிடித்து பின்னால் இழுத்தார்கள். திரும்பி
பார்ப்பதற்குள் நான் நின்று கொண்டிருந்த இடத்தில் ஒரு ஆட்டோ நின்று
கொண்டிருந்தது. கொஞ்சமிருந்தால் மேலே ஏத்தியிருப்பான். இந்த பெங்களூர்ல
ஆட்டோக்காரங்களுக்கு அறிவே இருக்காது.&lt;/p&gt;
&lt;p&gt;சரி, பின்னால் இழுத்தது யாரென்று பார்த்தால் அவள் நின்று கொண்டிருந்தாள்.
சைட்ல இருந்த அந்த ஜோடியப் பாத்துட்டிருந்த நேரத்துல இந்த மாதிரி
ஆயிடுச்சு. அவளுக்கு நன்றி சொல்லலாமா என்று யோசித்து கொண்டிருக்கும் போதே
பஸ் வந்து சேர்ந்தது.&lt;/p&gt;
&lt;p&gt;எப்போழுதும் அமரும் இடத்தில் சென்று அமர்ந்தேன். அவளும் வந்து அமர்ந்து
கையில் நாவலை எடுத்தாள்.&lt;/p&gt;
&lt;p&gt;"ரொம்ப தேங்கஸ்ங்க..." தயங்கியவாறே சொன்னேன்.&lt;/p&gt;
&lt;p&gt;"ஓ!!! உங்களுக்கு பேச வருமா??? நீங்க ஊமைனு இல்ல நினைச்சேன்" புத்தகத்தை
பையில் வைத்து கொண்டே சொன்னாள்.&lt;/p&gt;
&lt;p&gt;"இல்லைங்க...சாரி. நான் உங்களை ரொம்ப இன்சல்ட் பண்ணிட்டேனு நினைக்கிறேன்"&lt;/p&gt;
&lt;p&gt;"ஐயய்யோ அதெல்லாம் ஒன்னுமில்லைங்க. ரொம்ப ஃபீல் பண்ணாதீங்க... பை த வே, ஐ
அம் ஆர்த்தி"&lt;/p&gt;
&lt;p&gt;"ஐ அம் கார்த்திக்"&lt;/p&gt;
&lt;p&gt;இன்று பஸ் பயணத்தின் 60 நிமிடங்களும் 60 நொடிகளைவிட குறைவாக தெரிந்தது. 60
நிமிடத்தில் வாழ்க்கை வரலாறையே சொல்ல முடியும் என்று இன்று தான்
உணர்ந்தேன்.&lt;/p&gt;
&lt;p&gt;பஸ்ஸிலிருந்து இறங்கியவுடன்...&lt;/p&gt;
&lt;p&gt;"கார்த்திக்... உன் கூட நான் சாப்பிட வரலாமா? தனியா சாப்பிட போர்
அடிக்குது. என் டீமெட்ஸ் எல்லாம் பத்து மணிக்குதான் வருவாங்க"&lt;/p&gt;
&lt;p&gt;"உங்களுக்கு எதுவும் பிராபளம் இல்லைனா வாங்க"&lt;/p&gt;
&lt;p&gt;"ஏன் ரொம்ப ஃபார்மலா பேசறீங்க??? நீ, வா, போனே பேசலாம்"&lt;/p&gt;
&lt;p&gt;"சரிங்க"&lt;/p&gt;
&lt;p&gt;"பாத்திங்களா??? திரும்பவும் வாங்க போங்கனு சொல்றீங்க"&lt;/p&gt;
&lt;p&gt;"சரி... போலாமா?"&lt;/p&gt;
&lt;p&gt;சாப்பிட்டு விட்டு சீட்டிற்கு வந்து வேலை செய்ய ஆரம்பித்தேன். இன்று நாள்
போனதே தெரியவில்லை.&lt;/p&gt;
&lt;p&gt;அடுத்த நாள் மீண்டும் பஸ் பயணம்...&lt;/p&gt;
&lt;p&gt;"ஏய்!!! நேத்து மதியம் உன்ன கேண்டின்ல பாத்தேன்... தனியா சாப்பிட்டு
இருந்த... உன் பிராஜக்ட் மேட்ஸ் யாரும் வரலையா?"&lt;/p&gt;
&lt;p&gt;"நான் எப்பவும் தனியாதான் சாப்பிடுவேன்"&lt;/p&gt;
&lt;p&gt;"ஏன்?"&lt;/p&gt;
&lt;p&gt;"யாருக்கும் தொந்தரவு வேண்டாம்னுதான். எனக்கு உங்களை மாதிரி எல்லாம் பேச
வராது"&lt;/p&gt;
&lt;p&gt;"யார் சொன்னா அப்படியெல்லாம். என் கூட வேணா வரியா?"&lt;/p&gt;
&lt;p&gt;"வேணாம். உங்கூட உன் பிரண்ட்ஸ் எல்லாம் இருப்பாங்க. எனக்கு அன்கம்ஃபர்டபுலா
இருக்கும்"&lt;/p&gt;
&lt;p&gt;"இல்ல... யாரும் வர மாட்டாங்க. உன் செல் நம்பர் தா. நான் மதியம்
கூப்பிடறேன்"&lt;/p&gt;
&lt;p&gt;"ஏன்கிட்ட செல் போன் இல்ல"&lt;/p&gt;
&lt;p&gt;"என்னது செல் போன் இல்லையா??? எத்தனை வருஷம் சாப்ட்வேர் இஞ்சினியரா
இருக்க?"&lt;/p&gt;
&lt;p&gt;"3 வருஷம். ஏன் செல் போன் இல்லனா வாழ முடியாதா? எனக்கு தான் எக்ஸ்டென்ஷன்
இருக்கு இல்ல. அதுக்கே எவனும் கூப்பிட மாட்டான். எனக்கு எதுக்கு செல் போன்?
எப்பவாவது ஊர்ல இருந்து கூப்பிடுவாங்க. அவ்வளவுதான்"&lt;/p&gt;
&lt;p&gt;"சரி உன் எக்ஸ்டென்ஷன் சொல்லு... " குறித்து கொண்டாள்&lt;/p&gt;
&lt;p&gt;காலையும், மதியமும் அவளுடன் சாப்பிட்டேன்... இன்றும் நாள் பொனதே
தெரியவில்லை.&lt;/p&gt;
&lt;p&gt;அடுத்த நாள்...&lt;/p&gt;
&lt;p&gt;"ஏன் இப்படி வயசானவன் மாதிரி டல் கலர்ல சட்டை போடற??? ஒழுங்கா ப்ரைட்டா
சட்டை போட்டா என்ன?"&lt;/p&gt;
&lt;p&gt;"ஏன் இந்த கலர்க்கு என்ன குறைச்சல். நான் பொதுவா கலரே பாக்க மாட்டேன். போய்
எது பிடிச்சியிருந்தாலும் எடுத்துக்குவேன்"&lt;/p&gt;
&lt;p&gt;"சரி... இந்த வாரம் நம்ம ரெண்டு பேரும் ஷாப்பிங் போகலாம். உனக்கு செல் போன்
வாங்கனும்.. அப்பறம் நல்லதா ஒரு நாலு அஞ்சு சட்டை வாங்கனும்"&lt;/p&gt;
&lt;p&gt;"எனக்கு எதுக்கு செல் போனெல்லாம்?"&lt;/p&gt;
&lt;p&gt;"நேத்து நைட் உங்கிட்ட பேசலாம்னு பாத்தேன்... ஆனால் உங்கிட்ட போன்
இல்லாததால பேச முடியல"&lt;/p&gt;
&lt;p&gt;"நிஜமாவா?"&lt;/p&gt;
&lt;p&gt;"ஆமாம்... சத்தியமா!!! இந்த வாரம் கண்டிப்பா போய் வாங்கறோம்"&lt;/p&gt;
&lt;p&gt;"சரி..."&lt;/p&gt;
&lt;p&gt;வார இறுதியன்று கடைக்கு சென்றோம்...&lt;/p&gt;
&lt;p&gt;"லேட்டஸ்ட் மாடலா பாத்து வாங்கிக்கோ... இல்லைனா பின்னாடி மாத்த
வெண்டியிருக்கும்"&lt;/p&gt;
&lt;p&gt;"எனக்கு சாதரண மாடலே போதும்... காஸ்ட்லியா எல்லாம் வேண்டாம்"&lt;/p&gt;
&lt;p&gt;"நீ சும்மா இரு...நான் செலக்ட் பண்றேன்... உனக்கு ஒன்னும் தெரியாது"&lt;/p&gt;
&lt;p&gt;"சரிங்க... நீங்களே எடுங்க"&lt;/p&gt;
&lt;p&gt;கடைசியாக பத்தாயிரத்தி சொச்சத்திற்கு ஒரு செல் பொன் வாங்கி ஏர்டெல்
கனெக்ஷனும் வாங்கினேன். அதிலிருந்து அவள் நம்பருக்கு போன் செய்து அவள் போனை
என்னிடம் குடுத்து பேச சொன்னாள். பக்கத்து பக்கத்துல இருந்து செல் பொனில்
பேசுவது அசிங்கமாக இருந்தது... ஆனாலும் அவள் அதை பற்றி கவலைப்படவில்லை.&lt;/p&gt;
&lt;p&gt;"பாத்தியா... உன் போன்ல ஃபர்ஸ்ட் பேசனது நான் தான், ஃப்ர்ஸ்ட் பண்ணது என்
நம்பருக்குத்தான்"&lt;/p&gt;
&lt;p&gt;"சரி சரி... எல்லாரும் ஒரு மாதிரி பாக்கறாங்க... வா போகலாம்"&lt;/p&gt;
&lt;p&gt;அன்றே 5 புது சட்டைகள் வாங்கினோம். ஒவ்வொன்றும் 1500க்கு மேல்.&lt;/p&gt;
&lt;p&gt;வீட்டிற்கு சென்றவுடன் போன் செய்து பேசினாள்...&lt;/p&gt;
&lt;p&gt;திங்கள் காலை அலுவலகத்தில்&lt;/p&gt;
&lt;p&gt;"கார்த்திக்... புது சட்டையெல்லாம் சூப்பரா இருக்கு...கைல ஏதோ செல் போன்
மாதிரி இருக்கு" ஹாசினி&lt;/p&gt;
&lt;p&gt;"ஆமாம்... நேத்துதான் வாங்கினேன்"&lt;/p&gt;
&lt;p&gt;"எங்களுக்கு எல்லாம் நம்பர் தர மாட்டீங்களா?" ராஜிவ்&lt;/p&gt;
&lt;p&gt;"உங்களுக்கு இல்லாமலா... இந்தாங்க நோட் பண்ணிக்கோங்க..." அனைவரும் அவர்கள்
நம்பரிலிருந்து மிஸ்ஸிடு கால் குடுக்க அனைவரின் நம்பரையும் சேவ் செய்தேன்.&lt;/p&gt;
&lt;p&gt;ஆர்த்தியிடமிருந்து 11 மணிக்கு போன் வந்தது.&lt;/p&gt;
&lt;p&gt;"கார்த்திக்... இன்னைக்கு எனக்கு பிராஜக்ட் பார்ட்டி... நான் மதியம் உங்கூட
லஞ்ச்க்கு வர முடியாது. நீ கொஞ்சம் அட்ஜஸ்ட் பண்ணிக்கோ"&lt;/p&gt;
&lt;p&gt;"ஓகே... நான் பாத்துக்கறேன்"&lt;/p&gt;
&lt;p&gt;"கார்த்திக்... புது போனெல்லாம் வாங்கியிருக்கீங்க... ஏதாவது விசேஷமா?"
மேனஜர் குரல் பின்னாலிருந்து வந்தது.&lt;/p&gt;
&lt;p&gt;"அப்படியெல்லாம் ஒன்னுமில்லைங்க... சும்மா வாங்கனும்னு தோனுச்சு...
வாங்கிட்டேன்"&lt;/p&gt;
&lt;p&gt;"சரி... இன்னைக்கு டீம் லஞ்ச்... எல்லாரும் ஒன்னா சாப்பிடலாம்னு பிளான்.
நீயும் கண்டிப்பா வரணும்"&lt;/p&gt;
&lt;p&gt;"ஷுர்... கண்டிப்பா வரேன்"&lt;/p&gt;
&lt;p&gt;மதியம் அனைவரிடமும் நன்றாக பேசினேன்... எல்லாரும் எவ்வளவு ஜாலியா
பேசறாங்க... நான் ஏன் இத்தனை நாள் இப்படி பேசாம போனேன். ரொம்ப தப்பு
பண்ணிட்டு இருந்தனோனு தோனுச்சு...&lt;/p&gt;
&lt;p&gt;வாழ்க்கையில் ஏதோ பெரிய மாற்றம் நடந்த மாதிரி இருந்தது.&lt;/p&gt;
&lt;p&gt;ஒரு மாதம் ஓடியதே தெரியவில்லை. டீமில் அனைவரும் இப்போது நல்ல நண்பர்களாகி
விட்டனர். 5 நிமிடம்கூட பேசாமல் இருக்க முடியாது போல் தோன்றியது. அனைத்து
மாற்றத்திற்கும் காரணம் ஆர்த்திதான்.&lt;/p&gt;
&lt;p&gt;"கார்த்திக் நான் இந்த வீக் எண்ட் சென்னை போறேன்... எப்ப வருவேன்னு
தெரியாது. கொஞ்சம் லேட்டானாலும் ஆகலாம். நீ இதே மாதிரி இருக்கணும். ஓகேவா?"&lt;/p&gt;
&lt;p&gt;"ஏன் இப்படி சொல்ற? ஏதாவது பிரச்சனையா?"&lt;/p&gt;
&lt;p&gt;"அதெல்லாம் ஒன்னும் இல்ல... எங்க அப்பாவுக்கு உடம்பு சரியில்ல... அதனால
சொன்னேன்"&lt;/p&gt;
&lt;p&gt;"சரி... அப்ப அப்ப போன் பண்ணு"&lt;/p&gt;
&lt;p&gt;"கண்டிப்பா பண்றேன்"&lt;/p&gt;
&lt;p&gt;அவள் சென்றதிலிருந்து முதல் இரண்டு, மூன்று நாட்கள் வேலை செய்யவே
முடியவில்லை. பிறகு ஓரளவு சமாளித்தேன். ஒரு வாரம் ஓடியது. அவளிடமிருந்து
போனும் வரவில்லை. அவளும் வரவில்லை. ஒரு மாதமாகிய நிலையில் போன் வந்தது.&lt;/p&gt;
&lt;p&gt;"ஹலோ கார்த்திக்கா???"&lt;/p&gt;
&lt;p&gt;"ஆமாம். நீங்க யார் பேசறது?"&lt;/p&gt;
&lt;p&gt;"நான் ஆர்த்தியோட அண்ணன் பேசறேன்... நீங்க சென்னை அப்போலோ வர முடியுமா?
ஆர்த்தி கடைசியா உங்ககிட்ட ஏதோ பேசனுமாம்" அவர் குரலில் நடுக்கம் தெரிந்தது&lt;/p&gt;
&lt;p&gt;"கடைசியா???" இந்த வார்த்தையை கேட்டவுடன் இதயம் நின்றுவிடும் போலிருந்தது.
"ஆர்த்திக்கு என்னாச்சு???"&lt;/p&gt;
&lt;p&gt;"நீங்க இங்க வாங்க... அத சொல்ற நிலைமைல நாங்க இல்ல... சென்னை வந்தவுடனே
இந்த நம்பருக்கு கூப்பிடுங்க... நான் வந்து உங்களை பிக்-அப் பண்ணிக்கிறேன்"&lt;/p&gt;
&lt;p&gt;அந்த நம்பர் மனதில் பதிந்தது...&lt;/p&gt;
&lt;p&gt;சென்னைக்கு அப்போழுதே நேராக புறப்பட்டேன்...&lt;/p&gt;
&lt;p&gt;ஹாஸ்பிட்டலுக்கு அழைத்து சென்றார் ஆர்த்தியின் அண்ணன். அவளுக்கு ஸ்பைனல்
கார்டில் ஏதோ பிரச்சனையாம். ஒரு வருடமாக ட்ரீட்மெண்ட் செய்து வந்தார்களாம்.
சரியாகிவிடும் என்று அனைத்து டாக்டர்களும் நம்பிக்கையூட்டிய நிலையில்
திடீரென்று அவள் மூளையை பாதித்துவிட்டதாம். எனக்கு எதுவும் விளங்கவில்லை.
புதுப்புது வார்த்தைகள். புது உலகம்.&lt;/p&gt;
&lt;p&gt;ஹாஸ்பிட்டலில் காய்ந்து போனா பூச்சரமாக இருந்தாள் ஆர்த்தி. ஆனாலும் வாசம்
மறையவில்லை. ஓரளவு பேசும் நிலைதான்... என்னை விட்டுவிட்டு அவள் அண்ணன்
டாக்டரை பார்க்க சென்றார்.&lt;/p&gt;
&lt;p&gt;எனக்கு என்ன பேசுவதென்று தெரியவில்லை. கண்ணிலிருந்து கண்ணீர் மட்டும் வந்து
கொண்டிருந்தது.&lt;/p&gt;
&lt;p&gt;"கார்த்தி... அழுவாத!!! எனக்கு கஷ்டமா இருக்கு"&lt;/p&gt;
&lt;p&gt;"ஏன் ஆர்த்தி? ஏன் என்கிட்ட ஒரு வார்த்தை கூட சொல்லல"&lt;/p&gt;
&lt;p&gt;"நான் எப்படியும் பொழைக்க மாட்டேனு தெரியும். ஆனா எங்க வீட்லதான் ரொம்ப
நம்பிட்டு இருந்தாங்க. இங்க எல்லாரும் ஒரு மாதிரி பாக்கறாங்கனுதான் நான்
பெங்களுருக்கு டிரான்ஸ்பர் வாங்கிட்டு வந்தேன்" ஒரு நிமிட அமைதிக்கு பிறகு
தொடர்ந்தாள்&lt;/p&gt;
&lt;p&gt;"அன்னைக்கு உன்ன முதல் தடவை பார்க்கும் போதே... உன் கண்ல ஒரு விரக்தி
தெரிஞ்சிது. வாழ்க்கையோட அருமை உனக்கு தெரியலனு என் மனசுல பட்டுச்சு. சரி
நான் சாவறத்துக்குள்ள உனக்கு ஏதாவது உதவி செய்யனும்னுதான் உன்கூட பேச
ஆரம்பிச்சேன். போக போக உன்கூட பேசறதே எனக்கு ரொம்ப சந்தோஷத்த குடுக்க
ஆரம்பிச்சிடுச்சு. உங்கிட்ட சொல்லி உன்ன கஷ்டப்படுத்த வேண்டாம்னுதான்
சொல்லல."&lt;/p&gt;
&lt;p&gt;"ஆர்த்தி... உனக்கு ஒன்னும் ஆகாது. நீ என்ன விட்டுட்டு எங்கயும் போக மாட்ட"&lt;/p&gt;
&lt;p&gt;"ஆமாம். நான் எங்கயும் போக மாட்டேன் கார்த்திக்... நீ பாக்கற ஒவ்வொரு புது
மனிதர்களிளும் நான் இருப்பேன். நீ அவுங்ககிட்ட பேசும் போது அது என்கிட்ட
பேசற மாதிரி... என்ன சரியா???"&lt;/p&gt;
&lt;p&gt;ஒரு வாரம் சென்னையில் தங்கிவிட்டு வந்தேன்...&lt;/p&gt;
&lt;p&gt;காலை 7 மணி...&lt;/p&gt;
&lt;p&gt;வழக்கம் போல் லேசாக தூறல் போட்டு கொண்டிருந்தது. பஸ் வந்தவுடன் ஏறினேன்.&lt;/p&gt;
&lt;p&gt;"ஹாய்... நான் இங்க உக்காரலாமா?"&lt;/p&gt;
&lt;p&gt;"தாராளமா"&lt;/p&gt;
&lt;p&gt;"என் பேர் கார்த்திக்..."&lt;/p&gt;
&lt;p&gt;"நான் பாலாஜி..."&lt;/p&gt;
&lt;p&gt;(ஆர்த்தியுடன் பேசி கொண்டிருந்தேன்...)&lt;/p&gt;
</summary><category term="tamil"></category></entry><entry><title>Quixtar, another MLM trap?</title><link href="http://praveen.kumar.in/2006/12/12/quixtar-another-mlm-trap/" rel="alternate"></link><updated>2006-12-12T13:38:13+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-12-12:2006/12/12/quixtar-another-mlm-trap/</id><summary type="html">
&lt;div class="panel panel-default"&gt;
&lt;div class="panel-heading"&gt;
&lt;h3 class="panel-title"&gt;Disclaimer&lt;/h3&gt;
&lt;/div&gt;
&lt;div class="panel-body"&gt;
    This may be a controversial topic. This post solely represents my
views on the topic. It doesn't have any damn thing to do with my
employer, friends, relatives, dog, car and a pair of old socks. I want
the readers to make some analysis before jumping into conclusions on the
following topic.
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;A week back, I met an Indian guy in a mall at Newark, CA. He just
introduced him to me, had some friendly talks and gave his business card
to me saying that we will meet some time later. This weekend, he called
me over phone and said that he is going for a business get-together with
his fellow Indians and asked me if I could join him. He didn't let me
know what the get-together is all about. I was just curious to find out
about that. I went to the place and it was a presentation about
&lt;a class="reference external" href="http://en.wikipedia.org/wiki/Quixtar"&gt;Quixtar&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For those who don't know about Quixtar: They sell something (cosmetics,
vitamins, energy drinks, blah, blah, blah...) through
&lt;a class="reference external" href="http://http://en.wikipedia.org/wiki/Multi-level_marketing"&gt;MLM&lt;/a&gt;
model. The presentation was as usual as other MLM presentations with
nice figures that make you earn $250,000 an year and attractive
testimonials from successful (at least they call) people with nice home,
expensive car, private jet and what not. I was always against MLMs. But
the guy (dumb?) who presented the session said that it was not an MLM
exactly. I was just curious to find out what this heck was all about.
Well, I always turn to Google to find out most of the facts that I need.
The information that Google gave about this made me clear that it is in
fact an MLM (a.k.a. scam ;-)). Here comes one more interesting fact. It
seems that Quixtar is run by the same people (most of them) who ran
&lt;a class="reference external" href="http://en.wikipedia.org/wiki/Amway"&gt;Amway&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;On May 7 2004, MSNBC Dateline published an &lt;a class="reference external" href="http://www.msnbc.msn.com/id/4375477/"&gt;investigation
report&lt;/a&gt; on Quixtar that talks
about where all the money comes from and all the money goes. Below is
the video version of the same report. Even though Quixtar has put a
response website on this issue, the master man doesn't want to come on
live to do the clarifications. (Doesn't it show how hard it is to deny
such an obvious charge!)&lt;/p&gt;
&lt;center&gt;&lt;embed allowfullscreen="true" allowscriptaccess="always" id="VideoPlayback" src="http://video.google.com/googleplayer.swf?docid=-215989802739458876&amp;amp;hl=en&amp;amp;fs=true" style="width:400px;height:326px" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/center&gt;&lt;p&gt;I don't know what is the primary reason for people to fall for these
traps! Is it the urge to earn fast money, whatever the way it comes?
Such people when they refer their friends to such schemes, are they not
cheating their friends? In my case, it was as good as spamming!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;PS (for people who wanna sue me):&lt;/strong&gt; I can't afford more than $157.40
at the time when I do this posting.&lt;/p&gt;
</summary><category term="scam"></category></entry><entry><title>Messed up flight</title><link href="http://praveen.kumar.in/2006/12/04/messed-up-flight/" rel="alternate"></link><updated>2006-12-04T10:07:44+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-12-04:2006/12/04/messed-up-flight/</id><summary type="html">&lt;p&gt;This is my second international trip. Everything remained the same as
the first trip. A Saturday early morning British Airways flight to San
Francisco departing from Bangalore (international?) airport. But this
time, the trip was not as smooth as the last one. Three of us (me, Manoj
and Partha) were traveling this time.&lt;/p&gt;
&lt;p&gt;My bad luck started as soon as I left my home. One of my neighbor
offered me a ride to the airport in his car. He sent his driver for me.
In the midway, the tire got flattened. The poor driver didn't know how
to replace the tire. I had to help him out. I was already half an hour
late than my planned time. I kept my cool as I had given a 45 minutes
tolerance to my plan.&lt;/p&gt;
&lt;p&gt;Things went fine once I reached the airport. Baggage check-in, security
checks, and boarding were all smooth. We were in the flight by 6:30 am.
The flight was scheduled to depart at 6:45 am. I just sat back and
relaxed. I was already very tired as I skipped the last night sleep to
have a good sleep in the flight so that I can avoid jet-lag.&lt;/p&gt;
&lt;p&gt;I just drowsed a bit and when I was back awake, it was 7:30 am and the
flight is still in the place where we boarded. The captain of the flight
was announcing that the take off is delayed because of the poor
visibility of the runway. He said that the visibility is 200 m and we
need at least 500 m visibility to take off. After 45 minutes of wait,
things seemed to be improved. The captain said that the visibility is
now 600 m and added that Bangalore airport needs a 1000 m visibility to
clear the flight for take off. The flight finally took off at 8:45 am, a
2 hours delay.&lt;/p&gt;
&lt;p&gt;The worst news was that with our actual schedule, we just had 1:45
minutes of connecting time in Heathrow airport. With this 2 hours delay,
I was almost sure that we are gonna miss the connection flight. The
captain announced that he is gonna try reaching faster. But, I didn't
have hope about it. We have reached the Heathrow aiport 2 hours later
than our scheduled arrival time. It was no wonder for me that our
connection flight to San Francisco had already left. We had to sit tight
in the flight for almost 30 minutes before they arranged a passenger
stairs.&lt;/p&gt;
&lt;p&gt;Once we got down the flight, we were separated. Two of us (me and
Partha) were taken to Terminal 1 to board a flight leaving to Los
Angeles. Manoj was staying in Terminal 4 to board a flight to Washington
D.C. They had plans for our domestic connection to San Francisco from
Los Angeles and Washington D.C. Me an Partha just finished the security
checks and boarded the flight to Los Angeles. For a moment, I thought
that things are gonna be fine.&lt;/p&gt;
&lt;p&gt;We just reached Los Angeles on time. I had my I-94 form ready on
landing. When I went to the "Immigration and border protection" counter,
I was asked the routine questions like, "Why are you here?", "Where is
your invite letter?", etc. At the end, to my shock, the office told me
that they had to interview me for some clarifications and I can't go
right away. I just had to wait. I saw that there were already a lot of
people (Mexicans?) waiting there. I tried explaining the officer that I
had to catch a flight to San Francisco at 8:15 pm and the time was
already 7:00 pm. The officer told me that he can't do anything and
people are served first come basis. I had to wait for a nasty 45 minutes
before I was called for.&lt;/p&gt;
&lt;p&gt;That interview got me dumb-folded. The lady who done the interview won't
know what Sun Microsystems is. She won't know where is Menlo Park, Palo
Alto, etc. Finally I realized that a confusion regarding my address in
I-94 was the reason for this interview. I have mentioned my address in
Newark, CA. But they thought it was Newark, New York. What can I say!
The final result is that I missed my damn flight to San Francisco.&lt;/p&gt;
&lt;p&gt;I approached the British Airways counter in the airport and luckily got
an officer to help me out. They just got me a flight to San Francisco
the next day 8:15 am and they got me a room in "Holiday Inn". In the
mean time, Partha had left to San Francisco already. I just reached my
hotel, dropped my cabin baggage, and roamed around the city for some
time and finally bought some dinner for me from a KFC.&lt;/p&gt;
&lt;p&gt;The next morning, I managed to get up early and went to the airport to
catch the flight to San Francisco. I was not ready to miss anymore
flights. Enough for the trip! But it looked as if the bad luck is not
ready to get off from me. I was just taken by the security personnel in
the airport for an exhaustive security checks. He did a lot of
examinations and after 20 minutes, he said that I am clear to go and I
don't have any explosives on me as they have suspected. Oh, my God! Why
is it all happening to me! Finally I reached the San Francisco airport
at 9:45 am (30 minutes delayed, never mind). The total delay of my trip
was 16 hours.&lt;/p&gt;
&lt;p&gt;To my surprise, Partha was still hanging around in the airport. I just
met him and we were waiting for Manoj who was arriving from Washington
D.C. at 11:30 am. Finally Manoj as well came in. Then we had to report a
complaint for lost baggage and took the Supershuttle to our hotel.&lt;/p&gt;
&lt;p&gt;The baggages were delivered pretty late. One of my baggage was damaged
beyond tolerance. I am totally screwed up in this trip. I would never
forget this, man!&lt;/p&gt;
</summary><category term="immigration"></category></entry><entry><title>xorg-x11-xauth needed for SSH X forwarding to work</title><link href="http://praveen.kumar.in/2006/11/15/xorg-x11-xauth-needed-for-ssh-x-forwarding-to-work/" rel="alternate"></link><updated>2006-11-15T16:35:25+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-11-15:2006/11/15/xorg-x11-xauth-needed-for-ssh-x-forwarding-to-work/</id><summary type="html">&lt;p&gt;I have a server that is running Fedora Core 3. I was trying to setup
&lt;a class="reference external" href="http://www.ssh.com/support/documentation/online/ssh/adminguide/32/X11_Forwarding.html"&gt;SSH X
forwarding&lt;/a&gt;
to work on this server. The server had only a minimal set of required
packages installed. I have added the line &lt;code&gt;X11Forwarding yes&lt;/code&gt; to the
file &lt;code&gt;/etc/ssh/sshd_config&lt;/code&gt; and restarted the daemon. But even after
that the &lt;code&gt;DISPLAY&lt;/code&gt; variable was not setup in the ssh session when I
invoked &lt;code&gt;ssh&lt;/code&gt; with &lt;code&gt;-X&lt;/code&gt; option. Because of this I was not able to
get X forwarded through ssh. I was breaking my head to find out what was
wrong. Finally I found out that the package &lt;code&gt;xorg-x11-xauth&lt;/code&gt; was
needed for SSH X forwarding to work properly. It was a tricky fact to
observe on the first hand as there is no direct connection between these
two packages. Thanks to &lt;a class="reference external" href="http://gentoo-wiki.com/HOWTO_X-forwarding"&gt;Gentoo
wiki&lt;/a&gt; for giving the clue.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Java now on GPL wheels</title><link href="http://praveen.kumar.in/2006/11/14/java-now-on-gpl-wheels/" rel="alternate"></link><updated>2006-11-14T21:11:26+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-11-14:2006/11/14/java-now-on-gpl-wheels/</id><summary type="html">&lt;p&gt;&lt;a class="reference external" href="http://www.sun.com/"&gt;Sun Microsystems&lt;/a&gt; yesterday (officially)
&lt;a class="reference external" href="http://blogs.sun.com/jonathan/entry/fueling_the_network_effect"&gt;announced&lt;/a&gt;
about making Java platform free. Now Java is available under &lt;a class="reference external" href="http://en.wikipedia.org/wiki/GPL"&gt;GNU
GPLv2&lt;/a&gt;. This is one of the most
revolutionary move made by Sun. Initially Sun was about to use
&lt;a class="reference external" href="http://en.wikipedia.org/wiki/CDDL"&gt;CDDL&lt;/a&gt; for licensing the open
source Java platform. But the choice of GPL is a great win for the FSF
community and Sun as well.&lt;/p&gt;
&lt;p&gt;Sun’s Chief Open Source Officer Simon Phipps on answering the million
dollar question, "Why GPL?" said&lt;/p&gt;
&lt;blockquote&gt;
The question was, ‘how do we grow the Java market when eight out of
10 cell phones are Java-based?’ GPL is the perfect choice.&lt;/blockquote&gt;
&lt;p&gt;That is awesome!&lt;/p&gt;
&lt;p&gt;Read more about this topic on &lt;a class="reference external" href="http://www.redherring.com/Article.aspx?a=19735&amp;amp;hed=Why+Sun+Picked+GPL+for+Java&amp;amp;sector=Industries&amp;amp;subsector=InternetAndServices"&gt;Red
Herring&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;There are also rumors floating that Sun is about reconsider the
licensing model of &lt;a class="reference external" href="http://www.opensolaris.org/"&gt;OpenSolaris&lt;/a&gt; as well
to use GNU GPLv2.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Disclaimer:&lt;/strong&gt; I am not talking for my employer, Sun Microsystems.&lt;/p&gt;
</summary><category term="java"></category><category term="sun"></category></entry><entry><title>Telemarketer Repellant</title><link href="http://praveen.kumar.in/2006/11/09/telemarketer-repellant/" rel="alternate"></link><updated>2006-11-09T11:35:42+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-11-09:2006/11/09/telemarketer-repellant/</id><summary type="html">&lt;p&gt;I came across this one at Comedy Central today.&lt;/p&gt;
&lt;blockquote&gt;
If they say they're John Doe from XYZ Company, ask them to spell
their name. Then ask them to spell the company name. Then ask them
where it is located, how long it has been in business, how many
people work there, how they got into this line of work, if they are
married, how many kids they have, etc. Continue asking them personal
questions or questions about their company for as long as necessary.
Say "no" over and over. Be sure to vary the sound of each one, and
keep a rhythmic tempo, even as they are trying to speak. This is
most fun if you can do it until they hang up. If MCI calls trying to
get you to sign up for the Family and Friends Plan, reply, in as
sinister a voice as you can, "I don't have any friends, would you be
my friend?" If they start out with, "How are you today?" say, "I'm
so glad you asked, because no one these days seems to care, and I
have all these problems. My arthritis is acting up, my eyelashes are
sore, my dog has the gout..." If the company cleans rugs, respond:
"Can you get out blood? Can you get out goat blood? How about human
blood?" Tell the telemarketer you are busy at the moment and ask
him/her if he/she will give you his/her home phone number so you can
call him/her back. When the telemarketer explains that telemarketers
cannot give out their home numbers say, "I guess you don't want
anyone bothering you at home, right?" The telemarketer will agree
and you say, "Me either!" Hang up. Ask them to repeat everything
they say several times. Insist that the caller is really your buddy
Leon, playing a joke. "Come on, Leon, cut it out! Seriously, Leon,
how's your momma?" Tell them you are hard of hearing and that they
need to speak up . . . louder . . . louder . . . When the
salesperson asks, "Is this the homeowner?" say, "Is this the
salesperson?" And when they say, "Yes," hang up.&lt;/blockquote&gt;
</summary><category term="notags"></category></entry><entry><title>Google code search</title><link href="http://praveen.kumar.in/2006/10/06/google-code-search/" rel="alternate"></link><updated>2006-10-06T11:20:39+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-10-06:2006/10/06/google-code-search/</id><summary type="html">&lt;p&gt;I have just come across &lt;a class="reference external" href="http://www.google.com/codesearch"&gt;Google code
search&lt;/a&gt;. I am not sure when this
one is launched. This service is awesome. You can search for a code
snippet and get the results from archived files, svn, cvs, etc. You also
get the information about the programming language, license and more.
Looks like I am going to use this more compared to the &lt;a class="reference external" href="http://groups.google.com"&gt;Google
groups&lt;/a&gt;.&lt;/p&gt;
</summary><category term="programming"></category></entry><entry><title>RAM problems in my laptop</title><link href="http://praveen.kumar.in/2006/10/03/ram-problems-in-my-laptop/" rel="alternate"></link><updated>2006-10-03T09:58:12+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-10-03:2006/10/03/ram-problems-in-my-laptop/</id><summary type="html">&lt;p&gt;Since yesterday, I am encountering some strange issues with my laptop.
My desktop would go unresponsive all of a sudden. Nothing works after
that and I have to force reboot using the power switch. I am seeing this
problem with both Windows and Linux. I was almost sure that there was
some RAM problems by then. Later I ran memtest86+ to find out the issue.
The outcomes are strange. Sometimes, it is not able to detect any
problems even after an hour's run. But some times it complains that
about a lot of failed operations just within a few seconds of the start.
What the heck is happening with the RAM? I have to call HCL guys today!&lt;/p&gt;
</summary><category term="pc"></category></entry><entry><title>Emacs font problems in Ubuntu 6.10 (edgy) beta</title><link href="http://praveen.kumar.in/2006/09/30/emacs-font-problems-in-ubuntu-610-edgy-beta/" rel="alternate"></link><updated>2006-09-30T17:29:18+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-09-30:2006/09/30/emacs-font-problems-in-ubuntu-610-edgy-beta/</id><summary type="html">&lt;p&gt;I have installed Ubuntu 6.10 beta today. After installing &lt;code&gt;emacs21&lt;/code&gt;
and &lt;code&gt;emacs-snapshot-gtk&lt;/code&gt;, I saw that the font faces are totally messed
up. After some search on the Internet, I have found that they have
changed the font path in edgy from &lt;code&gt;/usr/share/X11/fonts&lt;/code&gt; to
&lt;code&gt;/usr/share/fonts/X11&lt;/code&gt;. By editing the &lt;code&gt;/etc/X11/xorg.conf&lt;/code&gt; file,
replacing all occurrences of &lt;code&gt;/usr/share/X11/fonts&lt;/code&gt; with
&lt;code&gt;/usr/share/fonts/X11&lt;/code&gt; and restarting the X server solved the problem
for me. The details about this bug can be found on
&lt;a class="reference external" href="https://launchpad.net/distros/ubuntu/+source/xorg/+bug/53038"&gt;launchpad&lt;/a&gt;.&lt;/p&gt;
</summary><category term="emacs"></category><category term="linux"></category><category term="pc"></category></entry><entry><title>'axel'ed Ubuntu 6.10 beta @ 30 Mbps</title><link href="http://praveen.kumar.in/2006/09/29/axeled-ubuntu-610-beta-30mbps/" rel="alternate"></link><updated>2006-09-29T21:16:26+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-09-29:2006/09/29/axeled-ubuntu-610-beta-30mbps/</id><summary type="html">&lt;pre class="code text literal-block"&gt;
&amp;lt;praveen@aphrodite&amp;gt; (Fri Sep 29 21:11:28) [/store/ubuntu]
$ axel -a -n 64 http://us.releases.ubuntu.com/6.10/ubuntu-6.10-beta-desktop-i386.iso
Initializing download: http://us.releases.ubuntu.com/6.10/ubuntu-6.10-beta-desktop-i386.iso
File size: 716517376 bytes
Opening output file ubuntu-6.10-beta-desktop-i386.iso
Starting download

[ 73%] [0123456789:;&amp;lt; =&amp;gt;?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmno] [3831.9KB/s] [00:48]&amp;lt;/code&amp;gt;
&lt;/pre&gt;
</summary><category term="internet"></category><category term="linux"></category></entry><entry><title>இது கூட தெரியாதா?</title><link href="http://praveen.kumar.in/2006/09/13/shame-on-the-question/" rel="alternate"></link><updated>2006-09-13T15:40:00+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-09-13:2006/09/13/shame-on-the-question/</id><summary type="html">&lt;p&gt;நேற்று ஒரு தொலைக்காட்சி நிகழ்ச்சியில்...&lt;/p&gt;
&lt;!-- --&gt;
&lt;blockquote class="blockquote"&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;strong&gt;நிகழ்ச்சி தொகுப்பாளர்:&lt;/strong&gt; "தலைக்காவிரி" எந்த மாநிலத்தில இருக்கு?&lt;/div&gt;
&lt;div class="line"&gt;&lt;strong&gt;நேயர்:&lt;/strong&gt; ம்ம்ம்... ஒரு clue கொடுங்க.&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote class="blockquote-reverse"&gt;
(&lt;strong&gt;நான்:&lt;/strong&gt; அட பாவி!)&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote class="blockquote"&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;strong&gt;நிகழ்ச்சி தொகுப்பாளர்:&lt;/strong&gt; அது தமிழ்நாட்டுக்கு மேல இருக்கு.&lt;/div&gt;
&lt;div class="line"&gt;&lt;strong&gt;நேயர்:&lt;/strong&gt; ம்ம்ம்... இன்னும் ஒரு clue கொடுங்க, please.&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote class="blockquote-reverse"&gt;
(&lt;strong&gt;நான்:&lt;/strong&gt; கிழிழ்சது போ!)&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote class="blockquote"&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;strong&gt;நிகழ்ச்சி தொகுப்பாளர்:&lt;/strong&gt; OK. இது தான் last clue. அது "K"ல ஆரம்பிக்கும்&lt;/div&gt;
&lt;div class="line"&gt;&lt;strong&gt;நேயர்:&lt;/strong&gt; கண்ணுபிடிச்சிட்டேன்! கேரளா.&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote class="blockquote-reverse"&gt;
(&lt;strong&gt;நான்:&lt;/strong&gt; இது தேறவே தேறாது!)&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote class="blockquote"&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;strong&gt;நிகழ்ச்சி தொகுப்பாளர்:&lt;/strong&gt; தப்பான பதில் சொல்லறிங்க. இன்னும் ஒரு chance தரேன்.&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote class="blockquote-reverse"&gt;
(&lt;strong&gt;நான்:&lt;/strong&gt; இன்னும் ஒரு பத்து chance குடுங்களேன்.)&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote class="blockquote"&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;strong&gt;நேயர்:&lt;/strong&gt; ம்ம்ம்... கர்நாடகா???&lt;/div&gt;
&lt;div class="line"&gt;&lt;strong&gt;நிகழ்ச்சி தொகுப்பாளர்:&lt;/strong&gt; சரியா சொல்லிடிங்க. உங்களுக்கு XYZ வழங்கற ஒரு gift coupon.&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote class="blockquote-reverse"&gt;
(&lt;strong&gt;நான்:&lt;/strong&gt; போங்கடா நீங்களும் உங்க programம்!)&lt;/blockquote&gt;
</summary><category term="tamil"></category></entry><entry><title>Fixing comments count in Wordpress</title><link href="http://praveen.kumar.in/2006/09/13/fixing-comments-count-in-wordpress/" rel="alternate"></link><updated>2006-09-13T15:10:00+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-09-13:2006/09/13/fixing-comments-count-in-wordpress/</id><summary type="html">&lt;p&gt;For some reason, after upgrading to Wordpress 2 I face some problems
with the comments count. Googling showed that there was some problem
with the SpamKarma plugin. But I don't have SpamKarma installed. My
comment count won't decrement if I delete some spam trackbacks through
the admin interface. The wrong comment count will continue to be there
forever. Here is a small script to fix this issue.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="cp"&gt;&amp;lt;?&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nb"&gt;file_exists&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'../wp-config.php'&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
    &lt;span class="k"&gt;die&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"There doesn't seem to be a wp-config.php file. Double check that you updated &lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="s2"&gt;&lt;/span&gt;
&lt;span class="s2"&gt; wp-config-sample.php with the proper database connection information and renamed it &lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="s2"&gt;&lt;/span&gt;
&lt;span class="s2"&gt;to wp-config.php."&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="k"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'../wp-config.php'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;fixit&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
        &lt;span class="k"&gt;global&lt;/span&gt; &lt;span class="nv"&gt;$wpdb&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

        &lt;span class="nv"&gt;$query&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"UPDATE wp_posts SET comment_count = (SELECT COUNT(comment_post_id) FROM &lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="s2"&gt;&lt;/span&gt;
&lt;span class="s2"&gt;wp_comments WHERE wp_posts.id = wp_comments.comment_post_id)"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

        &lt;span class="nv"&gt;$comments&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$wpdb&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="na"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$query&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nx"&gt;fixit&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;&lt;span class="x"&gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Save this script in a file in the &lt;code&gt;wp-admin&lt;/code&gt; directory of your
Wordpress install and invoke it through the browser or PHP command line.
This will fix the comment count. Once your purpose is solved, delete the
file.&lt;/p&gt;
</summary><category term="wordpress"></category></entry><entry><title>Status of Gnome 2.16 in Debian</title><link href="http://praveen.kumar.in/2006/09/13/status-of-gnome-216-in-debian/" rel="alternate"></link><updated>2006-09-13T11:59:11+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-09-13:2006/09/13/status-of-gnome-216-in-debian/</id><summary type="html">&lt;p&gt;As we all know Gnome 2.16 &lt;a class="reference external" href="http://www.gnome.org/start/2.16/notes/C/"&gt;is
out&lt;/a&gt;. I always have a
question after each Gnome release. When will it be available in
&lt;a class="reference external" href="http://www.debian.org"&gt;Debian&lt;/a&gt; SID? &lt;a class="reference external" href="http://www.0d.be/debian/debian-gnome-2.16-status.html"&gt;This
page&lt;/a&gt; helps
you to track the status of Gnome 2.16 in Debian.&lt;/p&gt;
</summary><category term="debian"></category><category term="gnome"></category><category term="linux"></category></entry><entry><title>C and C++ puzzles</title><link href="http://praveen.kumar.in/2006/09/04/c-and-c-puzzles/" rel="alternate"></link><updated>2006-09-04T21:24:48+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-09-04:2006/09/04/c-and-c-puzzles/</id><summary type="html">&lt;p&gt;I always have an interest towards interview questions and puzzles,
especially the programming ones. Here are some of the trivial C and C++
puzzles that I have come across. Please note that the solutions that I
have given are tested, but no guarentee that they are the most efficient
ones. There may exist more efficient version of the solutions.&lt;/p&gt;
&lt;div class="section" id="write-a-hello-world-program-in-c-without-using-a-semicolon"&gt;
&lt;h2&gt;Write a "Hello World" program in C without using a semicolon.&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="cp"&gt;#include &amp;lt;stdio .h&amp;gt;&lt;/span&gt;

&lt;span class="kt"&gt;void&lt;/span&gt;
&lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s"&gt;"Hello, world!&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="write-a-c-program-without-using-any-loop-to-print-numbers-from-1-to-100-and-100-to-1"&gt;
&lt;h2&gt;Write a C program without using any loop to print numbers from 1 to 100 and 100 to 1.&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="cp"&gt;#include &amp;lt;stdio .h&amp;gt;&lt;/span&gt;

&lt;span class="kt"&gt;void&lt;/span&gt;
&lt;span class="nf"&gt;rec_print_aseq&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s"&gt;"%d "&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="n"&gt;rec_print_aseq&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s"&gt;"%d "&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kt"&gt;void&lt;/span&gt;
&lt;span class="nf"&gt;rec_print_dseq&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s"&gt;"%d "&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="n"&gt;rec_print_dseq&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;


&lt;span class="kt"&gt;int&lt;/span&gt;
&lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s"&gt;"Enter the upper limit for the sequence: "&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;scanf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s"&gt;"%d"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s"&gt;"Ascending order sequence: "&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;rec_print_aseq&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s"&gt;"Descending order sequence: "&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;rec_print_dseq&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="write-a-c-program-to-find-if-the-given-number-is-a-power-of-2-using-a-single-expression"&gt;
&lt;h2&gt;Write a C program to find if the given number is a power of 2 using a single expression.&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="cp"&gt;#include &amp;lt;stdio .h&amp;gt;&lt;/span&gt;

&lt;span class="kt"&gt;int&lt;/span&gt;
&lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s"&gt;"Enter the number to be tested: "&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;scanf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s"&gt;"%d"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s"&gt;"The number %d is a power of 2&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s"&gt;"The number %d is not a power of 2&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="c-c-multiply-x-by-7-without-using-multiplication-operator"&gt;
&lt;h2&gt;C/C++ : Multiply x by 7 without using multiplication (*) operator.&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="cp"&gt;#include &amp;lt;stdio .h&amp;gt;&lt;/span&gt;

&lt;span class="kt"&gt;int&lt;/span&gt;
&lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s"&gt;"Enter the number to be multiplied by 7: "&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;scanf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s"&gt;"%d"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s"&gt;"%d multiplied by 7 is %d&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="c-write-a-function-to-swap-two-integers-without-using-a-temporary-variable-or-operator"&gt;
&lt;h2&gt;C++: Write a function to swap two integers without using a temporary variable, + or - operator.&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;swap&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;^=&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;^=&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;^=&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Use pointers instead of references to implement this function
in C.&lt;/p&gt;
&lt;/div&gt;
</summary><category term="c"></category><category term="c++"></category><category term="programming"></category></entry><entry><title>The crocodile hunter is hunted by stingray</title><link href="http://praveen.kumar.in/2006/09/04/the-crocodile-hunter-is-hunted-by-stingray/" rel="alternate"></link><updated>2006-09-04T14:09:57+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-09-04:2006/09/04/the-crocodile-hunter-is-hunted-by-stingray/</id><summary type="html">&lt;p&gt;&lt;a class="reference external" href="http://en.wikipedia.org/wiki/Steve_Irwin"&gt;Stew Irwin&lt;/a&gt; nicknamed "The
crocodile hunter" &lt;a class="reference external" href="http://www.police.qld.gov.au/News+and+Alerts/Media+Releases/2006/09/Australian+wildlife+personality+Steve+Irwin+has+died.htm"&gt;died
today&lt;/a&gt;
of an attack by stingray while he was making an underwater documentary.
There were a lot of controvasies surrounding Steve. But he is one of the
person who had the best in class skills on presentation and moving with
wild animals. His death will be great loss to the Wildlife activists.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Back after a long vacation!</title><link href="http://praveen.kumar.in/2006/08/21/back-after-a-long-vacation/" rel="alternate"></link><updated>2006-08-21T20:10:16+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-08-21:2006/08/21/back-after-a-long-vacation/</id><summary type="html">&lt;p&gt;I am finally back to work after a long vacation (Aug 10 to Aug 20). Even
though it was the longest vacation I have ever taken, I felt that I
didn't have enough time to do what I wanted. Met a lot of friends and
family, visited MIT, HCL, etc.&lt;/p&gt;
&lt;p&gt;The intertial force is keeping me away from doing any serious work
today. But a backlog of things are there in my task list. It is time to
get into full swing again.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Hosting migrated to a new server</title><link href="http://praveen.kumar.in/2006/07/29/hosting-migrated-to-a-new-server/" rel="alternate"></link><updated>2006-07-29T17:11:07+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-07-29:2006/07/29/hosting-migrated-to-a-new-server/</id><summary type="html">&lt;p&gt;Finally I have moved out of my old host
&lt;a class="reference external" href="http://www.canaca.com"&gt;canaca.com&lt;/a&gt; beacuse of all the difficulties I
was facing with them. Even the IP address of my hosting server was
blacklisted and they were not ready to do anything about it. I got
pissed off with thier service and finally bailed out.&lt;/p&gt;
&lt;p&gt;All the services are now moved to my new (virtual) server from
&lt;a class="reference external" href="http://www.vpslink.com"&gt;VPSlink&lt;/a&gt;. Eventhough &lt;a class="reference external" href="http://praveen.kumar.in/2006/06/29/bought-new-virtual-server/"&gt;I
bought&lt;/a&gt;
this almost a month back, I had to setup and try various things before
moving all my web services here.&lt;/p&gt;
&lt;p&gt;I am running &lt;a class="reference external" href="http://www.apache.org/"&gt;Apache 2&lt;/a&gt;, &lt;a class="reference external" href="http://www.exim.org/"&gt;Exim
4.60&lt;/a&gt;,
&lt;a class="reference external" href="http://spamassassin.apache.org/"&gt;Spamassassin&lt;/a&gt;,
&lt;a class="reference external" href="http://www.clamav.net/"&gt;ClamAV&lt;/a&gt;, &lt;a class="reference external" href="http://www.courier-mta.org/"&gt;Courier IMAP, Courier
POP&lt;/a&gt;,
&lt;a class="reference external" href="http://www.squirrelmail.org/"&gt;Squirrelmail&lt;/a&gt; and other supporting
services like SSH, FTP, finger, etc on Ubuntu 6.06. The reason for
taking more time to configure these things is that I have only 512 MB of
available memory and I have to make use of it efficiently. So, I had to
tweak various applications to use minimal footprint of memory.&lt;/p&gt;
&lt;p&gt;Also setting up Exim with SSL authentication and making it to use
Spamassassin and ClamAV for mail filtering took a while. Thanks to the
following links.&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="http://koivi.com/exim4-config/"&gt;Installing and configuring Exim 4 on
Debian&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://www.wlug.org.nz/EximMailFilter"&gt;How to make your Debian or Ubuntu machine an amazing Exim 4 mail
filter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://jeremy.zawodny.com/blog/archives/000453.html"&gt;Secure Mail Relaying with Exim and
OpenSSL&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Finally I am happy that all my web services are running on a server to
which I have full access and control (root) and all the services are
hand picked by me! But I have 1 year and 3 months of hosting period left
with canaca.com!&lt;/p&gt;
</summary><category term="internet"></category><category term="wordpress"></category></entry><entry><title>Debian GNU/Linux 4.0 for this Christmas</title><link href="http://praveen.kumar.in/2006/07/25/debian-gnulinux-40-for-this-christmas/" rel="alternate"></link><updated>2006-07-25T11:41:10+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-07-25:2006/07/25/debian-gnulinux-40-for-this-christmas/</id><summary type="html">&lt;p&gt;There is an official confirmation about the release date of Debian
GNU/Linux 4.0 a.k.a. "etch" in the Debian announcement list. It is going
to be released in December 2006. That is going to be pretty quick
compared with the previous release cycles. Take a look at &lt;a class="reference external" href="http://www.debian.org/News/2006/20060724"&gt;the
announcement&lt;/a&gt; to get more
information on the features planned.&lt;/p&gt;
</summary><category term="debian"></category><category term="linux"></category></entry><entry><title>Endian check confusion</title><link href="http://praveen.kumar.in/2006/07/24/endian-check-confusion/" rel="alternate"></link><updated>2006-07-24T21:37:23+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-07-24:2006/07/24/endian-check-confusion/</id><summary type="html">&lt;p&gt;I was debugging a malfunctioning code in my project. The part of the
code that I debugged involved some endian based computations. I just
guessed that there might be some endian based issues in the code. But
when I looked into the details of the code, they have handled the
endianness properly as follows.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="cp"&gt;#if __BYTE_ORDER == __BIG_ENDIAN&lt;/span&gt;
 &lt;span class="c1"&gt;// Do some big endian stuff&lt;/span&gt;
&lt;span class="cp"&gt;#elif __BYTE_ORDER == __LITTLE_ENDIAN&lt;/span&gt;
 &lt;span class="c1"&gt;// Do some little endian stuff&lt;/span&gt;
&lt;span class="cp"&gt;#elif __BYTE_ORDER == __PDP_ENDIAN&lt;/span&gt;
 &lt;span class="c1"&gt;// Do some PDP endian stuff&lt;/span&gt;
&lt;span class="cp"&gt;#else&lt;/span&gt;
 &lt;span class="c1"&gt;// Do something else&lt;/span&gt;
&lt;span class="cp"&gt;#endif&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;But when I did more investigation, I found that the big endian part of
code is generated inspite of the fact that I am running it on AMD64. Can
you guess the reason for this?&lt;/p&gt;
&lt;p&gt;I too was puzzled initially. But the reason was so silly. The source
file was not including &lt;code&gt;endian.h&lt;/code&gt; header file! Because of this both
&lt;code&gt;__BYTE_ORDER&lt;/code&gt; and &lt;code&gt;__BIG_ENDIAN&lt;/code&gt; evaluated to &lt;code&gt;null&lt;/code&gt; and the
condition &lt;code&gt;#if null == null&lt;/code&gt; evaluates to true always. Funny!!!&lt;/p&gt;
</summary><category term="c"></category><category term="programming"></category></entry><entry><title>Tata Indicom - Worst Broadband Service</title><link href="http://praveen.kumar.in/2006/07/24/tata-indicom-worst-broadband-service/" rel="alternate"></link><updated>2006-07-24T16:31:15+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-07-24:2006/07/24/tata-indicom-worst-broadband-service/</id><summary type="html">&lt;p&gt;I have applied for a Tata Indicom broadband connection and waiting for
the connection almost one month. Everyday I call them on status they
would say either the status is unknown or they will call me back. Nobody
has called me even a single time. Finally when I called them today, they
are saying that they don't have port to connect me. WTF? Why on the hell
then did they take my application? Here is the mail that I have shot
them&lt;/p&gt;
&lt;p&gt;For those who want to go for Tata Indicom broadband in Bangalore, I
would say a big "NO!". You would waste most of your time trying to reach
the customer care.&lt;/p&gt;
&lt;!-- --&gt;
&lt;blockquote&gt;
&lt;p&gt;Hello -&lt;/p&gt;
&lt;p&gt;I have applied for Tata Indicom Broadband on 29/06/2006 (Application #
XYZ). I have not got the connection so far and it has been a real pain
the ass talking to your customer care everyday and asking for the
status. I really got fed up with the process. I don't want to get a
connection from you and struggle with your customer care in the future.
&lt;strong&gt;REFUND MY MONEY&lt;/strong&gt; I would never consider Tata Indicom again as an
option for an ISP and would never recommend to any of my friends.&lt;/p&gt;
&lt;p&gt;Thanks but no thanks - Praveen.&lt;/p&gt;
&lt;/blockquote&gt;
</summary><category term="internet"></category></entry><entry><title>Finding a loop in a singly linked list</title><link href="http://praveen.kumar.in/2006/07/17/finding-a-loop-in-a-singly-linked-list/" rel="alternate"></link><updated>2006-07-17T20:53:22+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-07-17:2006/07/17/finding-a-loop-in-a-singly-linked-list/</id><summary type="html">&lt;p&gt;One of the most common interview questions for software professionals is
&lt;strong&gt;"How do you find a loop in a singly linked list?"&lt;/strong&gt;. Most of the
people tend to think in the recursive way to solve this problem. The
truth is that the most optimal solution for this problem lies out of the
scope of the linked list.&lt;/p&gt;
&lt;p&gt;A linked list with a loop can be visualized as a pseudo-random number
sequence where the pseudo-random numbers are the addresses (pointers) of
each node. After some time, the cycle repeats itself. There are two
factors in the sequence now. One is the length of the cycle and other
one is the length of the tail (the non-repeating part). &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Robert_W._Floyd"&gt;Robert W.
Floyd&lt;/a&gt; invented the
&lt;a class="reference external" href="http://en.wikipedia.org/wiki/Floyd's_cycle-finding_algorithm"&gt;Floyd's cycle-finding
algorithm&lt;/a&gt;
in 1967 based on the properties of the pseudo-random sequences. By
applying this algorithm, we simultaneously go through the list by ones
(slow iterator) and by twos (fast iterator). If there is a loop the fast
iterator will go around that loop twice as fast as the slow iterator.
The fast iterator will lap the slow iterator within a single pass
through the cycle. Detecting a loop is then just detecting that the slow
iterator has been lapped by the fast iterator. It is sometimes called
the &lt;strong&gt;"tortoise and the hare"&lt;/strong&gt;-algorithm.&lt;/p&gt;
&lt;p&gt;Here is a sample implemetation of this algorithm in C.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="k"&gt;typedef&lt;/span&gt; &lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="n"&gt;node_s&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="n"&gt;node_s&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;next&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="n"&gt;NODE&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;list_has_cycle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;NODE&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;list&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;NODE&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;fast&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;list&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;while&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fast&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;fast&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;next&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fast&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="n"&gt;list&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fast&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;fast&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;next&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fast&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="n"&gt;list&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="n"&gt;list&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;list&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;next&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;If one wants a much more readable implemenation of this algorithm, here
we go!&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;list_has_cycle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;NODE&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;list&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;NODE&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;list&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;f1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;list&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;f2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;list&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="k"&gt;while&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;f1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;f2&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;next&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;f2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;f1&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;next&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;f1&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;f2&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;next&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;This is the best solution known so far for the given problem as it is of
&lt;strong&gt;O(n) time and O(1) space&lt;/strong&gt;. There are some other algorithms known of
O(nlogn), O(n^2) time and a hash table based algorithm of O(n) time and
O(n) space.&lt;/p&gt;
</summary><category term="c"></category><category term="programming"></category></entry><entry><title>A new look for the journal</title><link href="http://praveen.kumar.in/2006/07/15/a-new-look-for-the-journal/" rel="alternate"></link><updated>2006-07-15T05:03:25+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-07-15:2006/07/15/a-new-look-for-the-journal/</id><summary type="html">&lt;p&gt;Finally, the long time pending task of getting a more visually pleasing
theme for the journal is over. I have taken up one of an existing
Wordpress theme and modified it to suit my needs. This theme looks neat
for me in my Mozilla Firefox 1.5 on Linux. I have to test how it looks
with Internet Explorer/Firefox on Microsoft Windows.&lt;/p&gt;
&lt;p&gt;I like this theme because, it is mainly text oriented and not much of
graphics stuff expect those tiny icons that you see on the right pane.
For it's given simplicity, the theme looks awesome (atleast for me).
Maybe I would stick with this theme for a long period of time. Also the
next task in the pipeline would be try to port this theme somehow for
Gallery 2.&lt;/p&gt;
</summary><category term="blog"></category><category term="wordpress"></category></entry><entry><title>Oh no! Site migration again</title><link href="http://praveen.kumar.in/2006/07/12/oh-no-site-migration-again/" rel="alternate"></link><updated>2006-07-12T06:01:18+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-07-12:2006/07/12/oh-no-site-migration-again/</id><summary type="html">&lt;p&gt;I might move this site to another host soon. You may see some
flakieness.&lt;/p&gt;
</summary><category term="blog"></category><category term="internet"></category></entry><entry><title>Power of pair programming</title><link href="http://praveen.kumar.in/2006/07/10/power-of-pair-programming/" rel="alternate"></link><updated>2006-07-10T04:14:57+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-07-10:2006/07/10/power-of-pair-programming/</id><summary type="html">&lt;p&gt;A few months back we were introduced to the a subset of &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Extreme_Programming"&gt;eXtreme
Programming&lt;/a&gt;
practices like &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Pair_Programming"&gt;Pair
Programming&lt;/a&gt; and Test
Driven Development. At the beginning I was in the impression that Pair
Programming will not work out well for my style of programming. But
slowly, I am leaning more towards Pair Programming and I have already
started reaping some gains out of it.&lt;/p&gt;
&lt;p&gt;Last week I got a chance to pair up with one of my collegue on tracing
down some issues in my project. He was one of the new joinees of the
project but, he is more experienced in the industry than me. We were
able to effectively mix my familiarity in the code base and his
familiarity in the domain to trace down the issue pretty quickly than
expected. It also serves as a faster ramp-up for him. It is a Win-Win
situation for us.&lt;/p&gt;
&lt;p&gt;In the coming days I am going to concentrate more on Agile methods for
Iterative delveopment and more practices from eXtreme Programming.&lt;/p&gt;
</summary><category term="programming"></category><category term="pair programming"></category><category term="xp"></category></entry><entry><title>Heights of forgetting</title><link href="http://praveen.kumar.in/2006/07/03/heights-of-forgetting/" rel="alternate"></link><updated>2006-07-03T01:21:14+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-07-03:2006/07/03/heights-of-forgetting/</id><summary type="html">&lt;p&gt;One of the recent jokes that I have come across on abscent mindedness is
quite interesting.&lt;/p&gt;
&lt;!-- --&gt;
&lt;blockquote&gt;
&lt;p&gt;An elderly couple had dinner at another couple''s house
and after eating, the wives left the table and went into the kitchen.&lt;/p&gt;
&lt;p&gt;The two elderly gentlemen were talking, and one said, "Last night we
went out to a new restaurant, and it was really great. I really
recommend it."&lt;/p&gt;
&lt;p&gt;The other man said, "What''s the name of the restaurant?"&lt;/p&gt;
&lt;p&gt;The first man knits his brow in obvious concentration and finally says
to his companion, "Ah, what is the name of that red flower you give to
someone you love?"&lt;/p&gt;
&lt;p&gt;His friend replies, "A Carnation?"&lt;/p&gt;
&lt;p&gt;"No. No. The other one," the man says.&lt;/p&gt;
&lt;p&gt;His friend offers another suggestion, "The Poppy?"&lt;/p&gt;
&lt;p&gt;"No," growls the man, "You know the one that is red and has thorns."&lt;/p&gt;
&lt;p&gt;His friend says, "Do you mean a rose?"&lt;/p&gt;
&lt;p&gt;"Yes, yes that''s it," the first man says.&lt;/p&gt;
&lt;p&gt;He then turns toward the kitchen and yells, "Rose, what''s the name of
that restaurant we went to last night?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Hope that I am not into this stage yet! But soon I might be there!&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Bought new virtual server</title><link href="http://praveen.kumar.in/2006/06/29/bought-new-virtual-server/" rel="alternate"></link><updated>2006-06-29T05:18:03+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-06-29:2006/06/29/bought-new-virtual-server/</id><summary type="html">&lt;p&gt;I have bought a new virtual server from
&lt;a class="reference external" href="http://www.vpslink.com"&gt;VPSLink&lt;/a&gt; a couple of days back. It runs
&lt;a class="reference external" href="http://openvz.org"&gt;OpenVZ&lt;/a&gt; for virtualization. It provides me with
20GB of hard disk space, 512MB of RAM running on a Intel Xeon processor.
Looks like a bit less for an extensive server. I have associated the
server with one of the domain names that I own, discs.in. Lately, I will
be moving my site praveen.ws to that server as well depending on how
well it scales. Right now, I have installed Debian Sarge on the server.
I run ssh, vsftpd, cfingerd, apache2, exim4 and squirrelmail. No plans
for telnet, SSL enabled services. Still am confused if I should have
bought it or not. But I bought it in a huge discount.&lt;/p&gt;
</summary><category term="internet"></category></entry><entry><title>Pattern clock - Wake up the hard way!</title><link href="http://praveen.kumar.in/2006/06/27/pattern-clock-wake-up-the-hard-way/" rel="alternate"></link><updated>2006-06-27T03:34:43+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-06-27:2006/06/27/pattern-clock-wake-up-the-hard-way/</id><summary type="html">&lt;p&gt;For all those who are not able to get up from thier morning sleep where
alarms are no use for them, there is a new product called &lt;a class="reference external" href="http://www.patternclock.com/"&gt;Pattern
clock&lt;/a&gt;. This clock won't turn off the
alarm unless you repeat a Simon-like pattern of lights by pressing a
series of buttons. This alarm clock will defintely wake you up and the
side effect would be driving you crazy as a part of the process. I gotta
buy one for me!&lt;/p&gt;
&lt;p&gt;PS: I heard from some sources that people just pull the power of these
types of clocks to stop them from screaming. There were also some
instances of breaking the clock in heights of frustation.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>SSH through HTTP proxy</title><link href="http://praveen.kumar.in/2006/06/27/ssh-through-http-proxy/" rel="alternate"></link><updated>2006-06-27T00:57:26+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-06-27:2006/06/27/ssh-through-http-proxy/</id><summary type="html">&lt;p&gt;When you are behind a HTTP proxy and you want to SSH to a server on the
Internet, the best choice is to use
&lt;a class="reference external" href="http://directory.fsf.org/all/corkscrew.html"&gt;corkscrew&lt;/a&gt;. After
installing corkscrew in your &lt;tt class="docutils literal"&gt;PATH&lt;/tt&gt;, the SSH command goes like this.&lt;/p&gt;
&lt;pre class="code text literal-block"&gt;
# ssh -o "ProxyCommand corkscrew &amp;lt;Proxy server&amp;gt; &amp;lt;Proxy port&amp;gt; %h %p" &amp;lt;SSH server&amp;gt;
&lt;/pre&gt;
</summary><category term="internet"></category><category term="proxy"></category></entry><entry><title>A pre-processor macro taking variable length arguments</title><link href="http://praveen.kumar.in/2006/06/26/a-pre-processor-macro-taking-variable-length-arguments/" rel="alternate"></link><updated>2006-06-26T06:53:34+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-06-26:2006/06/26/a-pre-processor-macro-taking-variable-length-arguments/</id><summary type="html">&lt;p&gt;In C, sometimes you want to write a C pre-processor macro that takes
variable length arguments. Let me give you a practical requirement
example. The requirement is that a debug log function needs to be
written that takes format string and the variables as arguments and
produce a debug log with the filename, line numbe and function. It is
also desirable that the function/macro argument is kept minimal so that
you need not pass some unwanted stuff to the call. I think there is no
other easier way than a variable length macro on doing this. The macro
would look something like this.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="cp"&gt;#define FOO_DEBUG( format, ... ) \&lt;/span&gt;
&lt;span class="cp"&gt;    bar_debug ( __FILE__, __LINE__, __FUNCTION__, format, ## __VA_ARGS__ )&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;A C function &lt;tt class="docutils literal"&gt;bar_debug&lt;/tt&gt; can then be written with the fingerprint that
matches above and the variable arguments can be parsed in the
traditional way.&lt;/p&gt;
&lt;p&gt;The key hint here is the token pasting of &lt;tt class="docutils literal"&gt;__VA_ARGS__&lt;/tt&gt;&lt;/p&gt;
</summary><category term="c"></category><category term="programming"></category></entry><entry><title>Gnome startup failure + loads of work to do = Xfce4</title><link href="http://praveen.kumar.in/2006/06/24/gnome-startup-failure-loads-of-work-to-do-xfce4/" rel="alternate"></link><updated>2006-06-24T01:12:24+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-06-24:2006/06/24/gnome-startup-failure-loads-of-work-to-do-xfce4/</id><summary type="html">&lt;p&gt;&lt;a class="reference external" href="http://www.gnome.org"&gt;Gnome&lt;/a&gt; is my all-time favourite desktop. I use
Gnome 2.14 on my Debian SID. Yesterday night I did an upgrade and I
think due to some of the packages that were pulled in yesterday, my
Gnome won't start today morning. When I logged in from the GDM console,
nothing came up. I was not able to figure out what was happening. I had
a lot of things to do for the day. So far, I didn't have any other
desktop in my system. So, I just quickly installed
&lt;a class="reference external" href="http://xfce.org"&gt;Xfce4&lt;/a&gt; as I have heard a lot about it in the recent
past. Well, Xfce4 looks really good. I felt that I am on a Gnome
variant. I might be using it for some more time and check out how cool
it is. So far so cool!&lt;/p&gt;
</summary><category term="gnome"></category><category term="linux"></category><category term="xfce"></category></entry><entry><title>Naming your network interfaces in linux using udev</title><link href="http://praveen.kumar.in/2006/06/24/naming-your-network-interfaces-in-linux-using-udev/" rel="alternate"></link><updated>2006-06-24T00:14:28+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-06-24:2006/06/24/naming-your-network-interfaces-in-linux-using-udev/</id><summary type="html">&lt;p&gt;Normally when people have more than one network interface on their PC or
laptop and using linux, they may face a problem of network interface
names eth0 and eth1 getting swapped betweeen the the interfaces on every
reboot. The fact that which interface is getting what name is not
predictable under normal scenario.&lt;/p&gt;
&lt;p&gt;I also faced the same problem with my laptop that had two interfaces.
One is the Marvell Yukon Gigabit ethernet adapter and the other one is
the Intel Pro Wireless 2200. Each time of the boot, I will randomly get
eth0 for Marvell Yukon and vice-versa. This makes it difficult to make
interface name specific configurations.&lt;/p&gt;
&lt;p&gt;As the modern 2.6.11+ kernels use 'udev' for loading the modules, the
naming of the interfaces could be done by setting an udev rule. To
achieve this, create a file
&lt;code&gt;/etc/udev/rules.d/010_netinterfaces.rules&lt;/code&gt; and add the following
contents to it.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;SUBSYSTEM=="net", SYSFS{address}=="MAC address of eth0", NAME="eth0"
SUBSYSTEM=="net", SYSFS{address}=="MAC address of wlan0", NAME="wlan0"
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Please note that the MAC address should contain lower case alphabets for
hexa-decimal digits a to f. Otherwise, this will not work properly.&lt;/p&gt;
&lt;p&gt;You can name the interfaces as however you want and extend the above
example to the your scenario.&lt;/p&gt;
</summary><category term="linux"></category></entry><entry><title>Quick update</title><link href="http://praveen.kumar.in/2006/05/31/quick-update/" rel="alternate"></link><updated>2006-05-31T04:52:18+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-05-31:2006/05/31/quick-update/</id><summary type="html">&lt;p&gt;The frequency of blogging has gone extremly down now-a-days. Just a
quick update on things.&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Quite busy with the project. Doing a lot of mistakes and cleaning up
my own mess later on. Should gain more insight&lt;/li&gt;
&lt;li&gt;Shifted from BTM Layout to RT Nagar&lt;/li&gt;
&lt;li&gt;Literally burnt my hands on the crashig SENSEX/NIFTY&lt;/li&gt;
&lt;li&gt;Looking out for buying a flat in Bangalore&lt;/li&gt;
&lt;li&gt;Failed in one more "Q**t S######g" thing&lt;/li&gt;
&lt;li&gt;Planning to write a new style sheet for the blog&lt;/li&gt;
&lt;li&gt;Trying to seriously think about my future plans&lt;/li&gt;
&lt;/ul&gt;
</summary><category term="notags"></category></entry><entry><title>Environment variable issues with "sudo" &amp; "apt-get" duo</title><link href="http://praveen.kumar.in/2006/04/04/environment-variable-issues-with-sudo-apt-get-duo/" rel="alternate"></link><updated>2006-04-04T16:35:23+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-04-04:2006/04/04/environment-variable-issues-with-sudo-apt-get-duo/</id><summary type="html">&lt;p&gt;My debian laptop is connected to Internet directly at home and through
a HTTP proxy at office. For handling &lt;code&gt;apt-get&lt;/code&gt;, I was having a
shell script which sets the &lt;code&gt;HTTP_PROXY&lt;/code&gt;, &lt;code&gt;http_proxy&lt;/code&gt;,
&lt;code&gt;FTP_PROXY&lt;/code&gt;, &lt;code&gt;ftp_proxy&lt;/code&gt; environment variables to the
approrpriate proxy server on demand and then I do &lt;code&gt;sudo apt-get
&amp;lt;whatever&amp;gt;&lt;/code&gt;. All were working fine till last upgrade. I think the
recent upgrade of &lt;code&gt;sudo&lt;/code&gt; or &lt;code&gt;apt-get&lt;/code&gt; broke the way things
were working. Now &lt;code&gt;sudo apt-get &amp;lt;whatever&amp;gt;&lt;/code&gt; is not able to see
the proxy and fails to resolve the debian repository host names. Doing
a &lt;code&gt;su&lt;/code&gt; and then running &lt;code&gt;apt-get&lt;/code&gt; passes fine.  This is
really painful.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; After looking into the changelog for &lt;code&gt;sudo&lt;/code&gt;, I have
found that a env_reset which removes all enviroment variables (expect
basic ones) to propogate. This is to address a recent vulneribilty
announced in &lt;code&gt;sudo&lt;/code&gt;. Now, I am overridding the defaults by
adding this line to my &lt;code&gt;sudoers&lt;/code&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;Defaults:praveen    env_keep+="HTTP_PROXY http_proxy FTP_PROXY ftp_proxy"
&lt;/pre&gt;&lt;/div&gt;
</summary><category term="linux"></category><category term="proxy"></category></entry><entry><title>Sneak peak at Google's new search interface</title><link href="http://praveen.kumar.in/2006/03/27/sneak-peak-at-googles-new-search-interface/" rel="alternate"></link><updated>2006-03-27T16:11:37+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-03-27:2006/03/27/sneak-peak-at-googles-new-search-interface/</id><summary type="html">&lt;p&gt;Google is redesigning the search results interface. A set of IPs are
chosen for the testing (may be alpha). But anyone can get the new
interface by this easy hack.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p class="first"&gt;Open Google search page (&lt;a class="reference external" href="http://www.google.com"&gt;http://www.google.com&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;Enter the following string in the browsers URL input box&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nx"&gt;javascript&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="nx"&gt;alert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;cookie&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"PREF=ID=fb7740f107311e46:TM=1142683332:LM=1142683332:&lt;/span&gt;
&lt;span class="s2"&gt;S=fNSw6ljXTzvL3dWu;path=/;domain=.google.com"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;Do the search&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Note: It should be a single line. Also if you use country specific
domains like google.co.uk or google.co.in, you need to change the above
string accordingly&lt;/p&gt;
&lt;p&gt;Not a major modification of the interface though.&lt;/p&gt;
</summary><category term="tips"></category></entry><entry><title>Google Finance</title><link href="http://praveen.kumar.in/2006/03/21/google-finance/" rel="alternate"></link><updated>2006-03-21T11:19:00+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-03-21:2006/03/21/google-finance/</id><summary type="html">&lt;p&gt;The days Google was relying on Yahoo Finance for online quotes are gone.
Google has come up with yet another new service &lt;a class="reference external" href="http://finance.google.com/"&gt;Google
Finance&lt;/a&gt;. This will put them in direct
competition with existing finance services from Yahoo and MSN. A first
look at Google Finance is impressing with a scope of few improvements
needed here and there. Google's core theme "Simplicity" is followed in
this service also.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>The Network is the Computer</title><link href="http://praveen.kumar.in/2006/03/20/the-network-is-the-computer/" rel="alternate"></link><updated>2006-03-20T10:59:08+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-03-20:2006/03/20/the-network-is-the-computer/</id><summary type="html">&lt;p&gt;Jonathan has a &lt;a class="reference external" href="http://blogs.sun.com/roller/page/jonathan?entry=the_network_is_the_computer"&gt;new
post&lt;/a&gt;
on the Sun Grid. Looks like they have finalized with the &lt;a class="reference external" href="http://www.network.com/"&gt;domain
name&lt;/a&gt; for Sun Grid and ready to roll out
pretty soon. Due to export regulations it seems that Sun Grid will be
initially available only for US customers. Well, tons and tons of
critics around Sun Grid is going to come to an end!&lt;/p&gt;
</summary><category term="cloud"></category><category term="internet"></category></entry><entry><title>Wordpress editor annoyance</title><link href="http://praveen.kumar.in/2006/03/18/wordpress-editor-annoyance/" rel="alternate"></link><updated>2006-03-18T18:38:23+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-03-18:2006/03/18/wordpress-editor-annoyance/</id><summary type="html">&lt;p&gt;Ever since my update of Wordpress to 2.0 from 1.5, I was facing more
annonyance than any help from the new so called, "Visual rich editor". I
think that it is the same case with most of the Wordpress users. In the
view of helping novice Wordpress users, this feature has made the life
of a lot of experienced users' life miserable. After quite some time, I
found out the way of disabling it. It is found in the page "Your
profile" under "Users" tab. In the above page there is a checkbox
labelled "Use the visual rich editor when writing" under "Personal
options" category (last section). Once unchecked, I got the old powerful
editor interface. Atlast I got rid of this nasty WYSIWIG editor. Thank
God!&lt;/p&gt;
</summary><category term="blog"></category><category term="wordpress"></category></entry><entry><title>The 2006 fast 50</title><link href="http://praveen.kumar.in/2006/03/15/the-2006-fast-50/" rel="alternate"></link><updated>2006-03-15T09:08:42+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-03-15:2006/03/15/the-2006-fast-50/</id><summary type="html">&lt;p&gt;Fast 50 reports the &lt;a class="reference external" href="http://www.fastcompany.com/fast50_06/?partner=rss"&gt;list of top 50
people&lt;/a&gt; (2006) who
can change the way we live and work over next ten years.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Explore Mars through Google</title><link href="http://praveen.kumar.in/2006/03/13/explore-mars-through-google/" rel="alternate"></link><updated>2006-03-13T11:35:33+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-03-13:2006/03/13/explore-mars-through-google/</id><summary type="html">&lt;p&gt;Now one can start exploring Mars using the new service from Google, &lt;a class="reference external" href="http://www.google.com/mars/"&gt;The
Google Mars&lt;/a&gt;. It has three type of
images namely Elevation, Visible and Infrared. The coolest thing is that
you can search and locate most of the landmarks that are named under the
categories Regions, Mountains, Plains, Canyons, Ridges, Dunes, Craters,
etc. Coming up with Google Enceladus also won't be a bad idea. Or
Googles rivals like Yahoo and MSN can take this up in their wishlist :-)&lt;/p&gt;
</summary><category term="maps"></category><category term="space"></category></entry><entry><title>Enceladus may have some form of life?</title><link href="http://praveen.kumar.in/2006/03/10/enceladus-may-have-some-form-of-life/" rel="alternate"></link><updated>2006-03-10T10:02:01+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-03-10:2006/03/10/enceladus-may-have-some-form-of-life/</id><summary type="html">&lt;p&gt;NASA have
&lt;a class="reference external" href="http://www.nasa.gov/home/hqnews/2006/mar/HQ_06088_cassini_saturns_moon.html"&gt;reported&lt;/a&gt;
yesterday that Cassini may have found evidence of liquid water on the
surface of Saturn's moon Enceladus. It may be a good start for
assumption of existence of life on Enceladus.&lt;/p&gt;
</summary><category term="space"></category></entry><entry><title>The future of HP-UX</title><link href="http://praveen.kumar.in/2006/03/03/the-future-of-hp-ux/" rel="alternate"></link><updated>2006-03-03T12:59:34+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-03-03:2006/03/03/the-future-of-hp-ux/</id><summary type="html">&lt;p&gt;Jonathan has written in his blog about the &lt;a class="reference external" href="http://www.sun.com/aboutsun/media/features/converge.html"&gt;open
letter&lt;/a&gt;
from Scott to Mark Hurd. Can you guess the tone of this mail? :-)&lt;/p&gt;
</summary><category term="sun"></category></entry><entry><title>My fastest apt-get</title><link href="http://praveen.kumar.in/2006/03/01/my-fastest-apt-get/" rel="alternate"></link><updated>2006-03-01T23:06:32+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-03-01:2006/03/01/my-fastest-apt-get/</id><summary type="html">&lt;p&gt;Avalon towers at Peninsula is a heaven of internet.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;praveen@aphrodite:/home$ sudo apt-get dist-upgrade
Reading package lists... Done
Building dependency tree... Done
Calculating upgrade...Done
The following packages will be upgraded:
cron debianutils flac gnome-about gnome-desktop-data info libaudio2 libflac7 libgnome-desktop-2 liboggflac3   openssh-client openssh-server reiserfsprogs ssh texinfo
15 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 3909kB of archives.
After unpacking 139kB of additional disk space will be used.
Do you want to continue [Y/n]?
Get: 1 http://mirrors.kernel.org unstable/main debianutils 2.15.3 [56.8kB]
Get: 2 http://mirrors.kernel.org unstable/main cron 3.0pl1-93 [61.2kB]
Get: 3 http://mirrors.kernel.org unstable/main info 4.8-6 [219kB]
Get: 4 http://mirrors.kernel.org unstable/main openssh-server 1:4.2p1-7 [215kB]
Get: 5 http://mirrors.kernel.org unstable/main openssh-client 1:4.2p1-7 [557kB]
Get: 6 http://mirrors.kernel.org unstable/main texinfo 4.8-6 [1220kB]
Get: 7 http://mirrors.kernel.org unstable/main libflac7 1.1.2-3.1 [116kB]
Get: 8 http://mirrors.kernel.org unstable/main liboggflac3 1.1.2-3.1 [31.9kB]
Get: 9 http://mirrors.kernel.org unstable/main flac 1.1.2-3.1 [134kB]
Get: 10 http://mirrors.kernel.org unstable/main gnome-about 2.12.3-1 [228kB]
Get: 11 http://mirrors.kernel.org unstable/main gnome-desktop-data 2.12.3-1 [439kB]
Get: 12 http://mirrors.kernel.org unstable/main libaudio2 1.7-5 [72.4kB]
Get: 13 http://mirrors.kernel.org unstable/main libgnome-desktop-2 2.12.3-1 [72.6kB]
Get: 14 http://mirrors.kernel.org unstable/main reiserfsprogs 1:3.6.19-2 [485kB]
Get: 15 http://mirrors.kernel.org unstable/main ssh 1:4.2p1-7 [1060B]
Fetched 3909kB in 3s (1032kB/s)
Preconfiguring packages ...
(Reading database ... 127367 files and directories currently installed.)
...
...
...
&lt;/pre&gt;&lt;/div&gt;
</summary><category term="debian"></category><category term="internet"></category></entry><entry><title>Mozilla Firefox and Thunderbird printing on Debian</title><link href="http://praveen.kumar.in/2006/02/28/mozilla-firefox-and-thunderbird-printing-on-debian/" rel="alternate"></link><updated>2006-02-28T18:01:53+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-02-28:2006/02/28/mozilla-firefox-and-thunderbird-printing-on-debian/</id><summary type="html">&lt;p&gt;If you have cups installed on your Debian and facing issues in printing
from Mozilla Firefox, Thunderbird and Acrobat Reader, you might want to
try installing cupsys-bsd.&lt;/p&gt;
</summary><category term="debian"></category></entry><entry><title>Long time no post? - An update</title><link href="http://praveen.kumar.in/2006/02/27/long-time-no-post-an-update/" rel="alternate"></link><updated>2006-02-27T11:22:20+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-02-27:2006/02/27/long-time-no-post-an-update/</id><summary type="html">&lt;p&gt;It is a long time since the last post. A lot of things happened since
the last post. Just a quick update on how things are moving.&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;I have successfuly installed Debian GNU/Linux SID on my Toshiba
Satellite A80 laptop and configured almost all essential
applications. I will put up a mini how-to shortly on this.&lt;/li&gt;
&lt;li&gt;Basically nulled out my bank balance on buying a lot of stuffs for
the US&lt;/li&gt;
&lt;li&gt;Reached San Francisco on a fine evening of 21st Feb. This is my first
international trip and it was good. The best part is that I haven't
felt any jet lag or whatever.&lt;/li&gt;
&lt;li&gt;Got introduced to our team in Palo Alto office. It is a great team to
work with.&lt;/li&gt;
&lt;li&gt;Did some shopping in Albertsons, Namaste plasa, etc. for our daily
cooking. Yeah, I mean that even here we make our food daily ;-)&lt;/li&gt;
&lt;li&gt;Did some shopping form Radioshack and Frys electronics. More details
on the electronics gadgets later. Frys is a very big shop and
whatever I looked there, I wanted to buy. Should come back here after
some solid bank balance.&lt;/li&gt;
&lt;li&gt;Planning to drop the idea of setting up a 7.1 sound system at home
after reading this
&lt;a class="reference external" href="http://news.designtechnica.com/talkback103.html"&gt;article&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I am also plannig to buy an iPod and some essential (that I feel is)
gears for the iPod. I think people are going so crazy about iPod and I
realize it so much after seeing the accessories that comes to the market
everyday. Just take a look at the top 10 strangest iPod accessories
&lt;a class="reference external" href="http://www.techeblog.com/index.php/tech-gadget/top-10-strangest-ipod-accessories"&gt;here&lt;/a&gt;.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Arg! I am breaking my head</title><link href="http://praveen.kumar.in/2006/02/10/arg-i-am-breaking-my-head/" rel="alternate"></link><updated>2006-02-10T06:03:14+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-02-10:2006/02/10/arg-i-am-breaking-my-head/</id><summary type="html">&lt;p&gt;I am literally breaking my head for the last two days on installing
Debian on my new Toshiba A80-P4321 laptop. I hope I will make some
progress tonight. I will write a a new post on the installation.&lt;/p&gt;
</summary><category term="debian"></category><category term="linux"></category></entry><entry><title>Puzzle of the week - Week #5</title><link href="http://praveen.kumar.in/2006/02/03/puzzle-of-the-week-week-5/" rel="alternate"></link><updated>2006-02-03T23:00:11+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-02-03:2006/02/03/puzzle-of-the-week-week-5/</id><summary type="html">&lt;p&gt;The gentlemen Dutch, English, Painter, and Writer are all teachers at
the same secondary school. Each teacher teaches two different subjects.&lt;/p&gt;
&lt;p&gt;Furthermore:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Three teachers teach Dutch language&lt;/li&gt;
&lt;li&gt;There is only one math teacher&lt;/li&gt;
&lt;li&gt;There are two teachers for chemistry&lt;/li&gt;
&lt;li&gt;Two teachers, Simon and mister English, teach history&lt;/li&gt;
&lt;li&gt;Peter doesn't teach Dutch language&lt;/li&gt;
&lt;li&gt;Steven is chemistry teacher&lt;/li&gt;
&lt;li&gt;Mister Dutch doesn't teach any course that is tought by Karl or
mister Painter.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The Question: What is the full name of each teacher and which two
subjects does each one teach?&lt;/p&gt;
</summary><category term="puzzles"></category></entry><entry><title>IPTV - A fast growing segment</title><link href="http://praveen.kumar.in/2006/02/03/iptv-a-fast-growing-segment/" rel="alternate"></link><updated>2006-02-03T11:00:19+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-02-03:2006/02/03/iptv-a-fast-growing-segment/</id><summary type="html">&lt;p&gt;&lt;a class="reference external" href="http://www.techenthusiast.net/"&gt;Brian L. Clark&lt;/a&gt;, a new
&lt;a class="reference external" href="http://us.gizmodo.com/"&gt;Gizmodo&lt;/a&gt; writer has a written a nice small
&lt;a class="reference external" href="http://us.gizmodo.com/gadgets/home-entertainment/tuning-fork-new-column-on-the-future-of-television-152616.php"&gt;article&lt;/a&gt;
about the fast growing IPTV segment.&lt;/p&gt;
</summary><category term="tv"></category></entry><entry><title>Got B1</title><link href="http://praveen.kumar.in/2006/02/02/got-b1/" rel="alternate"></link><updated>2006-02-02T02:15:42+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-02-02:2006/02/02/got-b1/</id><summary type="html">&lt;p&gt;I have got the B1 visa for visiting US yesterday. This is my first
international visa on the passport. I am very happy about it. I think
that mostly it would be a 10 year, multiple entry visa. Have to wait and
see. If all goes well, I should leave India by Feb, 21 :-)&lt;/p&gt;
</summary><category term="immigration"></category></entry><entry><title>Puzzle of the week - Week #4</title><link href="http://praveen.kumar.in/2006/01/28/puzzle-of-the-week-week-4/" rel="alternate"></link><updated>2006-01-28T08:00:02+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-01-28:2006/01/28/puzzle-of-the-week-week-4/</id><summary type="html">&lt;!-- figure: {filename}/images/TriangleTransformation.gif --&gt;
&lt;p&gt;What is the smallest number of red balls that must be moved to transform
the red triangle into the green triangle?&lt;/p&gt;
</summary><category term="puzzles"></category></entry><entry><title>Journal and gallery - Now in new look</title><link href="http://praveen.kumar.in/2006/01/28/journal-and-gallery-now-in-new-look/" rel="alternate"></link><updated>2006-01-28T06:34:18+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-01-28:2006/01/28/journal-and-gallery-now-in-new-look/</id><summary type="html">&lt;p&gt;Finally the long time pending task of bringing my gallery to production
and unifying (to certain extent) the look of my journal and gallery is
complete. I am happy that this weekend has been somewhat useful! Need to
do some Google analytics and adsense work still. Also need to upload a
lots of images to the gallery and update the image name and description.
Oh! Still a lot more to go. Let me finish the puzzle of the week and go
to the rest...&lt;/p&gt;
</summary><category term="photography"></category></entry><entry><title>Puzzle of the week - Week #3</title><link href="http://praveen.kumar.in/2006/01/21/puzzle-of-the-week-week-3/" rel="alternate"></link><updated>2006-01-21T21:33:03+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-01-21:2006/01/21/puzzle-of-the-week-week-3/</id><summary type="html">&lt;p&gt;There are ten coin machines. Each machine produces coins that weigh 10
g, expect one faulty machine which produces coins that weigh 9 g. You
are given with an electronic weighing scale. You can take any number of
coins from any machine and use the weighing scale. What would be the
minimum number of usage of the weighing scale to find out the faulty
machine?&lt;/p&gt;
</summary><category term="puzzles"></category></entry><entry><title>Howto: Cisco 3000 VPN Gateway Connectivity on Linux - vpnc</title><link href="http://praveen.kumar.in/2006/01/17/howto-cisco-3000-vpn-gateway-connectivity-on-linux-vpnc/" rel="alternate"></link><updated>2006-01-17T10:00:23+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-01-17:2006/01/17/howto-cisco-3000-vpn-gateway-connectivity-on-linux-vpnc/</id><summary type="html">&lt;p&gt;I had to connect to a Cisco 3000 VPN gateway for establishing a VPN with
my office network. Cisco provides VPN clients for Microsoft Windows and
RPMs for Linux. I am basically a Debian user. When I tried alien for
converting the RPM into deb file and installing it, the installation
succeded. But there was some problem with the configuration files and
locations. I was too lazy to figure out what is happening. So I did
googled for an alternative solution. This post describes what I have
found and may be helpful for others as well.&lt;/p&gt;
&lt;p&gt;The alternate for the official Cisco VPN client is an Open Source VPN
client known as
&lt;a class="reference external" href="http://www.unix-ag.uni-kl.de/~massar/vpnc/"&gt;vpnc&lt;/a&gt;. As a first
step we need to install the vpnc. On debian this can be done using the
following command.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;# sudo apt-get install vpnc
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;For other distributions supporting RPMs, you can search for this
package's RPM and install it. If RPM is not supported, you can get the
source tarball of vpnc and compile it. It should be noted that
&lt;code&gt;libgcrypt&lt;/code&gt; is a mandatory dependancy for vpnc I will also suggest you
to install the package &lt;code&gt;resolvconf&lt;/code&gt; as it takes care of tweaking your
&lt;code&gt;/etc/resolv.conf&lt;/code&gt; while connecting/disconnecting to/from VPN.&lt;/p&gt;
&lt;p&gt;Now you need to create the configuration file for vpnc. The default
locations for the configuration file are &lt;code&gt;/etc/vpnc.conf&lt;/code&gt; and
&lt;code&gt;/etc/vpnc/default.conf&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;A typical vpnc configuration file should look like this.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;IPSec gateway ip_address_or_host_name_of_your_vpn_gateway
IPSec ID your_group_name
IPSec secret your_group_password
Xauth username your_username
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;One can obtain all these information from their netadmins. One thing the
user should note here is that the group password that you use for IPSec
secret should be the plain password and not the encrypted one as you see
in Cisco profile files. Normally you should get the plain password from
your netadmin. If you have any issues in it and you end up with only the
encypted password, you can decode it
&lt;a class="reference external" href="http://www.unix-ag.uni-kl.de/~massar/bin/cisco-decode"&gt;here&lt;/a&gt;. Please
don't abuse this service.&lt;/p&gt;
&lt;p&gt;There are other optional parameters that can be present in the
configuration file like &lt;code&gt;DNSUpdate No&lt;/code&gt;. This will make vnc not to
update the &lt;code&gt;/etc/resolv.conf&lt;/code&gt;. For other options please look into the
man page of vpnc.&lt;/p&gt;
&lt;p&gt;Please note that you need tun kernel module (or builtin). If it is not
already loaded, load it with the following command before invoking vpnc.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;# sudo modprobe tun
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Once you create a working configuration file and place it in
&lt;code&gt;/etc/vpnc.conf&lt;/code&gt; or &lt;code&gt;/etc/vpnc/default.conf&lt;/code&gt;, you can connect to
your VPN gateway using the following command.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;# sudo vpnc
Enter password for your_username@your_vpn_gateway: **********
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;You should know what password to enter here ;-) Mostly it is the
passphrase generted by your secure token card. If the authentication is
successful, you will see the message announce by your VPN gateway if
any. You can also verify the connection by issuing the following
command.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;# /sbin/ifconfig
(Output ignored here)
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;In the output of this command, you will see that a tun interface is
configured. Also you will find that your &lt;code&gt;/etc/resolv.conf&lt;/code&gt; file is
updated if you have opt for it and the routes have chaged. You can
verify these things as well as follows.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;# cat /etc/resolv.conf
(Output ignored here)
# /sbin/route
(Output ignored here)
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The most common problem after connecting is that the user being not able
to establish a connection with any of the hosts in the VPN. This is due
to the firewall policies. If you are running firestarter, then add the
following lines to the &lt;code&gt;/etc/firestarter/user-pre&lt;/code&gt; file. When using
firestarter, the iptables service should be turned off. The firestarter
inbound policy is to deny all. Users can open ports as need. Users are
given a choice of two outbound policies: permissive and restrictive. I
am currently using the permissive policy. Users can close ports as
desired. The current firestarter version does not support VPN but users
can add iptables rules to &lt;code&gt;user-pre&lt;/code&gt; and &lt;code&gt;user-post&lt;/code&gt; files.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;VPNGATEWAY=your_vpn_gateway
TUNDEV=tun0
iptables -A INPUT -j ACCEPT -s $VPNGATEWAY -p esp
iptables -A INPUT -j ACCEPT -s $VPNGATEWAY -p udp -m multiport --sports isakmp,10000
iptables -A INPUT -j ACCEPT -i $TUNDEV
iptables -A OUTPUT -j ACCEPT -d $VPNGATEWAY -p esp
iptables -A OUTPUT -j ACCEPT -d $VPNGATEWAY -p udp -m multiport --dports isakmp,10000
iptables -A OUTPUT -j ACCEPT -o $TUNDEV
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;One more difficulty that an user may face is that swapping the proxy
configuration of Firefox between corporate proxy and local (or none)
proxy. I would recommed
&lt;a class="reference external" href="https://addons.mozilla.org/extensions/moreinfo.php?application=firefox&amp;amp;id=125"&gt;SwitchProxy&lt;/a&gt;
extension for making life easier.&lt;/p&gt;
&lt;p&gt;Now you are in your VPN! Happy tunneling :-)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Disclaimer:&lt;/strong&gt; I am neither against Cisco VPN client nor recommending
anyone to use vpnc. I personaly liked the simplicity of vpnc and I have
just explained about the usage of it. I take no responsiblity for the
consequences of using vpnc or the actions mentioned above whatsoever.&lt;/p&gt;
</summary><category term="internet"></category><category term="vpn"></category></entry><entry><title>Cooking party starts at home</title><link href="http://praveen.kumar.in/2006/01/15/cooking-party-starts-at-home/" rel="alternate"></link><updated>2006-01-15T05:47:04+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-01-15:2006/01/15/cooking-party-starts-at-home/</id><summary type="html">&lt;p&gt;In the period of 8 months stay in Bangalore, it makes me to feel sick
that we spend a lot of money to dine out still spoil the health. Most of
the time, we don't like the taste of the food here. After much thought,
we have finally decided to do the cooking magic at home thereby saving
money and health. We have bought almost all the cooking gears and
started it today. To start with some traditional south Indian food in
the menu today. Rice, sambar, rasam and curd. &lt;del&gt;Take a look at some pictures of the first cooking&lt;/del&gt;
&lt;a class="reference external" href="http://gallery.praveen.ws/main.php?g2_view=core.ShowItem&amp;amp;g2_itemId=183"&gt;here&lt;/a&gt;].
My mom is now happy that we started cooking at home. We too are!&lt;/p&gt;
</summary><category term="cooking"></category></entry><entry><title>Puzzle of the week - Week #2</title><link href="http://praveen.kumar.in/2006/01/14/puzzle-of-the-week-week-2/" rel="alternate"></link><updated>2006-01-14T22:09:47+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-01-14:2006/01/14/puzzle-of-the-week-week-2/</id><summary type="html">&lt;p&gt;You have sixteen coins. One of them is a counterfeit, and the other
fifteen are genuine, but identical in appearance to the counterfeit. The
counterfeit's weight is different from that of a genuine coin, but you
don't know if the counterfeit is heavier or lighter than a genuine coin.
You also have an unusual balance (the picture shows a top view of it),
with three pans instead of the usual two. Any number of coins can be
placed in each of the three pans, and the balance will tilt toward the
heavier pan or pans if the weights are unequal.&lt;/p&gt;
&lt;p&gt;What is the minimum number of weighings needed to identify the
counterfeit? (You may put coins in all three pans in a single weighing.)&lt;/p&gt;
</summary><category term="puzzles"></category></entry><entry><title>Site migration complete</title><link href="http://praveen.kumar.in/2006/01/14/site-migration-complete/" rel="alternate"></link><updated>2006-01-14T11:42:07+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-01-14:2006/01/14/site-migration-complete/</id><summary type="html">&lt;p&gt;The complete migration of the site to a new host is over. Here are the
new changes that are done to the site.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Journal:&lt;/strong&gt; The URI of the journal is changed.
&lt;a class="reference external" href="http://journal.praveen.ws"&gt;http://journal.praveen.ws&lt;/a&gt; is the new URI for the journal. The old URI
may still take you here but due to some problems with mod_rewrite, you
will not be able to use that to browse. The Wordpress is upgraded from
1.5 to 2.0. The theme is modified. A lot of plugins were disabled for
the migration sake. I may enable the plugins later on. Also tweaking of
the new theme is going on.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Gallery:&lt;/strong&gt; There is a new addition of Gallery 2.
&lt;a class="reference external" href="http://gallery.praveen.ws"&gt;http://gallery.praveen.ws&lt;/a&gt; is the URI for the gallery. It is the basic
installation and a lot of tweaking is still more to come.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Calendar:&lt;/strong&gt; There is a new addition of PHP Webcalendar.
&lt;a class="reference external" href="http://calendar.praveen.ws"&gt;http://calendar.praveen.ws&lt;/a&gt; is the URI for the calendar.&lt;/p&gt;
&lt;p&gt;Please let me know if you face any issues with the site.&lt;/p&gt;
&lt;p&gt;PS: The f**king DNS update took almost 24 hours this time. The worst
ever case faced in my life so far.&lt;/p&gt;
</summary><category term="blog"></category><category term="internet"></category><category term="wordpress"></category></entry><entry><title>Sigh - Site migration again</title><link href="http://praveen.kumar.in/2006/01/12/sigh-site-migration-again/" rel="alternate"></link><updated>2006-01-12T20:33:01+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-01-12:2006/01/12/sigh-site-migration-again/</id><summary type="html">&lt;p&gt;Had to migrate the site to a new server again due to unavoidable
reasons. Comments after this point until notified further will be lost.
Sorry about the inconvenience!&lt;/p&gt;
</summary><category term="internet"></category></entry><entry><title>Puzzle of the week - Week #1</title><link href="http://praveen.kumar.in/2006/01/07/puzzle-of-the-week-week-1/" rel="alternate"></link><updated>2006-01-07T21:49:17+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2006-01-07:2006/01/07/puzzle-of-the-week-week-1/</id><summary type="html">&lt;p&gt;The planet Pfooey is inhabited by robots. Half of the robots always tell
the truth, but the other half have been affected by a bug in their
software that causes them to lie at all times. All of the robots look
exactly alike, so it can be confusing to figure out which robots are
truth-tellers and which are liars.&lt;/p&gt;
&lt;p&gt;One day, a visitor to Pfooey stopped at a fork in the road. Two robots
approached the tourist from the road on the left. The tourist said, "I'm
on my way to Bitborough. Which road should I take?"&lt;/p&gt;
&lt;p&gt;One of the robots replied, "We've just come from Iteropolis. If you
asked me, I'd say Bitborough is to the right." The other robot pointed
to the first and said, "That one's a liar. Bitborough is to the left."
The tourist thanked the robots, then continued on the road to the left
until she reached her destination a short time later.&lt;/p&gt;
&lt;p&gt;How did the tourist figure out which way to turn?&lt;/p&gt;
</summary><category term="puzzles"></category></entry><entry><title>Puzzle of the week - Week #52</title><link href="http://praveen.kumar.in/2005/12/31/puzzle-of-the-week-week-52/" rel="alternate"></link><updated>2005-12-31T22:12:57+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-12-31:2005/12/31/puzzle-of-the-week-week-52/</id><summary type="html">&lt;p&gt;There are three bags. First bag has 2 black balls, second one has 2
white balls and the third has a black ball and white ball. The labels
for the bags are prepared as 2B, 2W and BW respectively. While fixing
the labels, they were intentionally wrongly placed in all the bags and
the bags are shuffled. You are allowed to pick one ball at a time from a
bag. What is the minimum number of picks needed for labelling the bags
correctly? How?&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Puzzle of the week - Week #51</title><link href="http://praveen.kumar.in/2005/12/24/puzzle-of-the-week-week-51/" rel="alternate"></link><updated>2005-12-24T08:34:41+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-12-24:2005/12/24/puzzle-of-the-week-week-51/</id><summary type="html">&lt;p&gt;If you had only one match and entered a &lt;em&gt;cold&lt;/em&gt; and &lt;em&gt;dark&lt;/em&gt; room, where
there were a fire place, an oil lamp and a candle, which would you light
first?&lt;/p&gt;
</summary><category term="puzzles"></category></entry><entry><title>Puzzle of the week - Week #50</title><link href="http://praveen.kumar.in/2005/12/17/puzzle-of-the-week-week-50/" rel="alternate"></link><updated>2005-12-17T08:00:15+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-12-17:2005/12/17/puzzle-of-the-week-week-50/</id><summary type="html">&lt;p&gt;You are driving by car to a particular destination, and our only
assumption is that you are free to drive at any speed you choose - no
traffic jams or anything like that. For the first half of the journey
(and by half we mean half the overall distance between the starting
point and your finishing point) you drive at 20 miles per hour. You then
realise that this is all taking much too long, and that you are going to
be late. You therefore decide that you will increase your speed so that
your overall average speed for the whole journey will be 40 miles per
hour. How fast do you have to drive for the remaining part of your
journey in order for your average speed for the whole journey to be 40
miles per hour? Strangely enough the answer is the same, whatever the
total distance of your journey.&lt;/p&gt;
</summary><category term="puzzles"></category></entry><entry><title>Puzzle of the week - Week #49</title><link href="http://praveen.kumar.in/2005/12/10/puzzle-of-the-week-week-49/" rel="alternate"></link><updated>2005-12-10T14:02:30+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-12-10:2005/12/10/puzzle-of-the-week-week-49/</id><summary type="html">&lt;p&gt;One day Kerry celebrated her birthday. Two days later her older twin
brother, Terry, celebrated his birthday. How come?&lt;/p&gt;
</summary><category term="puzzles"></category></entry><entry><title>Puzzle of the week - Week #48</title><link href="http://praveen.kumar.in/2005/12/03/puzzle-of-the-week-week-48/" rel="alternate"></link><updated>2005-12-03T16:41:41+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-12-03:2005/12/03/puzzle-of-the-week-week-48/</id><summary type="html">&lt;p&gt;It’s cold outside! Betty and her husband were speculating last night
that this has been the coldest winter they can remember. Out of
curiosity, they decided to check out the old newspaper records for this
week in their area during past years and were astonished at what they
found. This had indeed been one of the coldest weeks in the last 100
years, but they found other interesting data in the old records for this
week in time. Determine what happened on four days of the week, what
year each event happened, and what each day’s high temperature for the
day was.&lt;/p&gt;
&lt;p&gt;Note: All temperatures are listed in the Fahrenheit scale, which is the
standard for the United States. Fahrenheit (F) and Celsius (C) scales
use two different methods for reading temperatures; the obvious
difference is that Fahrenheit uses 32 degrees to indicate the
temperature at which water freezes whereas the Celsius scale uses 0
degrees. To convert Fahrenheit temperatures into Celsius temperatures,
you must use the following equation: C=(F-32)*5/9. To convert Celsius
temperatures into the Fahrenheit scale, the equation becomes:
F=(C*9/5)+32.&lt;/p&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;In 1925, there was a very bad fire in the city, but not on a Friday.&lt;/li&gt;
&lt;li&gt;The highest temperature, 12 degrees, was on the same day that the
city had a famous celebrity visit, which wasn’t on a Tuesday.&lt;/li&gt;
&lt;li&gt;In 1952, the event happened on a Wednesday. The celebrity visit did
not take place in 1939.&lt;/li&gt;
&lt;li&gt;The temperature was not 5 degrees when the ice storm took place, nor
was the temperature 2 degrees on Monday.&lt;/li&gt;
&lt;li&gt;In 1964, the high temperature for the day was 7 degrees.&lt;/li&gt;
&lt;li&gt;On Friday, but not in 1939, there was a blizzard.&lt;/li&gt;
&lt;/ol&gt;
</summary><category term="puzzles"></category></entry><entry><title>Bangalore to Nandhi Hills</title><link href="http://praveen.kumar.in/2005/11/28/bangalore-to-nandhi-hills/" rel="alternate"></link><updated>2005-11-28T10:51:06+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-11-28:2005/11/28/bangalore-to-nandhi-hills/</id><summary type="html">&lt;p&gt;This sunday (yesterday), me and RJ (a classmate of mine working in
Infosys) went to Nandhi Hills for a small trip. We started from
Bangalore (BTM Layout) at 10:30 am. Here is the direction to go there.
Take the Hyderabad/Mysore/Tumkur road. There will be a diversion ahead
which splits the road to Hyderabad/Mysore and Tumkur. Take the Tumkur
road and proceed. Roughly after 35 km, you will see a diversion in the
left leading to Nandhi Hills which is at 22 km from that point.&lt;/p&gt;
&lt;p&gt;It is from this point where my problems brew. The road was very bad at
many points. When we just started climbing from the base, my bike
screwed up. The back tyre was punctured. I always have my toolkit in the
bike. So, I removed the back wheel and took it for fixing it up. Luckily
I found a shop in about one and half kilometers away. After getting it
up fixed, I assembled the wheel and we started to climb again.&lt;/p&gt;
&lt;p&gt;A two wheeler parking fee of INR. 25 is collected and the entrance fee
was INR. 3 per head. This place has some good spots to visit. But don't
go with great anticipation. Not a very special place, IMHO. Plastic
pollution is very high in this place. Some serious action is needed to
control this. We treked, visited some spots, had our lunch (at 4:30 pm
;-)) there and then descended. The uptrip read 91 km in my tripmeter and
after the downtrip the same read 170 km. I am not sure if this is
accurate.&lt;/p&gt;
&lt;p&gt;Let me tell you that a two wheeler drive at this point in time is not
very pleasent, because there is a lot of road construction going on in
the Tumkur road and it is full of dust. Suitable gears are advised if
you want to take a bike trip.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Puzzle of the week - Week #47</title><link href="http://praveen.kumar.in/2005/11/26/puzzle-of-the-week-week-47/" rel="alternate"></link><updated>2005-11-26T21:25:51+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-11-26:2005/11/26/puzzle-of-the-week-week-47/</id><summary type="html">&lt;p&gt;In your cellar there are three light switches in the OFF position. Each
switch controls 1 of 3 light bulbs on floor above. You may move any of
the switches but you may only go upstairs to inspect the bulbs one time.
How can you determine the switch for each bulb with one inspection?&lt;/p&gt;
</summary><category term="puzzles"></category></entry><entry><title>Cisco to buy Scientific-Atlanta</title><link href="http://praveen.kumar.in/2005/11/19/cisco-to-buy-scientific-atlanta/" rel="alternate"></link><updated>2005-11-19T20:49:47+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-11-19:2005/11/19/cisco-to-buy-scientific-atlanta/</id><summary type="html">&lt;p&gt;Cisco on friday announced that it would buy Scientific-Atlanta for $6.9
billion. So, this will be the second largest acquisition ever made by
Cisco. This acquisition will help them to enter home entertainment
segment. But IMHO, I don't feel that there is going to be a good ROI
worth the price of acquistion. Market sentiments also seems to be same.
Read more about it
&lt;a class="reference external" href="http://abcnews.go.com/Technology/wireStory?id=1327124"&gt;here&lt;/a&gt;.&lt;/p&gt;
</summary><category term="cisco"></category></entry><entry><title>Puzzle of the week - Week #46</title><link href="http://praveen.kumar.in/2005/11/19/puzzle-of-the-week-week-46/" rel="alternate"></link><updated>2005-11-19T04:42:54+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-11-19:2005/11/19/puzzle-of-the-week-week-46/</id><summary type="html">&lt;p&gt;There are no tricks - this is a straight forward problem. This is
supposed to be one of the questions which potential Microsoft employees
are asked.&lt;/p&gt;
&lt;p&gt;U2 have a concert that starts in 17 minutes and they must all cross a
bridge to get there. All four men begin on the same side of the bridge.
You must help them across to the other side. It is night. There is one
flashlight.&lt;/p&gt;
&lt;p&gt;A maximum of two people can cross at one time. Any party that crosses
the bridge, either 1 or 2 people, must have the flashlight with them.
The flashlight must be carried back and forth, it cannot be thrown, etc.
Each band member walks at a different speed. A pair must walk together
at the rate of the slower man's pace:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Bono: - 1 minute to cross&lt;/li&gt;
&lt;li&gt;Edge: - 2 minutes to cross&lt;/li&gt;
&lt;li&gt;Adam: - 5 minutes to cross&lt;/li&gt;
&lt;li&gt;Larry: - 10 minutes to cross&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For example: if Bono and Larry walk across first, 10 minutes have
elapsed by the time they get to the other side of the bridge. If Larry
then returns with the flashlight, a total of 20 minutes have passed and
you have failed the mission.&lt;/p&gt;
&lt;p&gt;There is no trick to this. It is a simple movement of resources in the
appropriate order. There are two known answers to this problem.
Microsoft expects you to answer this question in under 5 minutes!&lt;/p&gt;
</summary><category term="puzzles"></category></entry><entry><title>Solution for Puzzle of the week - Week #45</title><link href="http://praveen.kumar.in/2005/11/19/solution-for-puzzle-of-the-week-week-45/" rel="alternate"></link><updated>2005-11-19T04:37:35+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-11-19:2005/11/19/solution-for-puzzle-of-the-week-week-45/</id><summary type="html">&lt;p&gt;I have spent more time to prepare the solution for this problem compared
to the time I took to solve it. This is one damn case where a lot of
problems with formatting. Hence I am not able to post it as a comment.
So, I am posting it as a seperate post. Please bear with the
inconvenience.&lt;/p&gt;
&lt;p&gt;9: The Norwegian lives in the first house&lt;/p&gt;
&lt;pre class="literal-block"&gt;
+--------+----------+-------+----------+-------+------------+
|        |    1     |   2   |    3     |   4   |     5      |
+--------+----------+-------+----------+-------+------------+
| Color  |          |       |          |       |            |
| Man    |Norwegian |       |          |       |            |
| Pet    |          |       |          |       |            |
| Smoke  |          |       |          |       |            |
| Drink  |          |       |          |       |            |
+--------+----------+-------+----------+-------+------------+
&lt;/pre&gt;
&lt;p&gt;14: The Norwegian lives next to the blue house&lt;/p&gt;
&lt;pre class="literal-block"&gt;
+--------+----------+-------+----------+-------+------------+
|        |    1     |   2   |    3     |   4   |     5      |
+--------+----------+-------+----------+-------+------------+
| Color  |          |Blue   |          |       |            |
| Man    |Norwegian |       |          |       |            |
| Pet    |          |       |          |       |            |
| Smoke  |          |       |          |       |            |
| Drink  |          |       |          |       |            |
+--------+----------+-------+----------+-------+------------+
&lt;/pre&gt;
&lt;p&gt;8: The man living in the house right in the centre drinks milk&lt;/p&gt;
&lt;pre class="literal-block"&gt;
+--------+----------+-------+----------+-------+------------+
|        |    1     |   2   |    3     |   4   |     5      |
+--------+----------+-------+----------+-------+------------+
| Color  |          |Blue   |          |       |            |
| Man    |Norwegian |       |          |       |            |
| Pet    |          |       |          |       |            |
| Smoke  |          |       |          |       |            |
| Drink  |          |       |Milk      |       |            |
+--------+----------+-------+----------+-------+------------+
&lt;/pre&gt;
&lt;p&gt;4: The green house is on the left of the white house (they are also next
door to each other) 5: The green house owner drinks coffee&lt;/p&gt;
&lt;pre class="literal-block"&gt;
+--------+----------+-------+----------+-------+------------+
|        |    1     |   2   |    3     |   4   |     5      |
+--------+----------+-------+----------+-------+------------+
| Color  |          |Blue   |          |Green  |White       |
| Man    |Norwegian |       |          |       |            |
| Pet    |          |       |          |       |            |
| Smoke  |          |       |          |       |            |
| Drink  |          |       |Milk      |Coffee |            |
+--------+----------+-------+----------+-------+------------+
&lt;/pre&gt;
&lt;p&gt;1: The Briton lives in a red house.&lt;/p&gt;
&lt;pre class="literal-block"&gt;
+--------+----------+-------+----------+-------+------------+
|        |    1     |   2   |    3     |   4   |     5      |
+--------+----------+-------+----------+-------+------------+
| Color  |          |Blue   |Red       |Green  |White       |
| Man    |Norwegian |       |Briton    |       |            |
| Pet    |          |       |          |       |            |
| Smoke  |          |       |          |       |            |
| Drink  |          |       |Milk      |Coffee |            |
+--------+----------+-------+----------+-------+------------+
&lt;/pre&gt;
&lt;p&gt;7: The owner of the yellow house smokes Dunhill&lt;/p&gt;
&lt;pre class="literal-block"&gt;
+--------+----------+-------+----------+-------+------------+
|        |    1     |   2   |    3     |   4   |     5      |
+--------+----------+-------+----------+-------+------------+
| Color  |Yellow    |Blue   |Red       |Green  |White       |
| Man    |Norwegian |       |Briton    |       |            |
| Pet    |          |       |          |       |            |
| Smoke  |Dunhill   |       |          |       |            |
| Drink  |          |       |Milk      |Coffee |            |
+--------+----------+-------+----------+-------+------------+
&lt;/pre&gt;
&lt;p&gt;11: The man who keeps horses lives next to the man who smokes Dunhill&lt;/p&gt;
&lt;pre class="literal-block"&gt;
+--------+----------+-------+----------+-------+------------+
|        |    1     |   2   |    3     |   4   |     5      |
+--------+----------+-------+----------+-------+------------+
| Color  |Yellow    |Blue   |Red       |Green  |White       |
| Man    |Norwegian |       |Briton    |       |            |
| Pet    |          |Horses |          |       |            |
| Smoke  |Dunhill   |       |          |       |            |
| Drink  |          |       |Milk      |Coffee |            |
+--------+----------+-------+----------+-------+------------+
&lt;/pre&gt;
&lt;p&gt;3: The Dane drinks tea 12: The owner who smokes Blue Master drinks beer
15: The man who smokes Blend has a neighbor who drinks water&lt;/p&gt;
&lt;pre class="literal-block"&gt;
+--------+----------+-------+----------+-------+------------+
|        |    1     |   2   |    3     |   4   |     5      |
+--------+----------+-------+----------+-------+------------+
| Color  |Yellow    |Blue   |Red       |Green  |White       |
| Man    |Norwegian |Dane   |Briton    |       |            |
| Pet    |          |Horses |          |       |            |
| Smoke  |Dunhill   |Blend  |          |       |Blue Master |
| Drink  |Water     |Tea    |Milk      |Coffee |Beer        |
+--------+----------+-------+----------+-------+------------+
&lt;/pre&gt;
&lt;p&gt;(OK - here is where we get all the drinks sorted out. The Dane could be
2 or 5. The person who smokes Blue Master could also be 2 or 5. However
the Dane can't be 5, otherwise House 2 would be the Blue Master smoker
and beer drinker, which would only leave House 1 for the water drinking
neighbour; this doesn't work, since this would now make House 2 the
Blend smoker. So the Dane is in House 2, etc)&lt;/p&gt;
&lt;p&gt;13: The German smokes Prince&lt;/p&gt;
&lt;pre class="literal-block"&gt;
+--------+----------+-------+----------+-------+------------+
|        |    1     |   2   |    3     |   4   |     5      |
+--------+----------+-------+----------+-------+------------+
| Color  |Yellow    |Blue   |Red       |Green  |White       |
| Man    |Norwegian |Dane   |Briton    |German |            |
| Pet    |          |Horses |          |       |            |
| Smoke  |Dunhill   |Blend  |          |Prince |Blue Master |
| Drink  |Water     |Tea    |Milk      |Coffee |Beer        |
+--------+----------+-------+----------+-------+------------+
&lt;/pre&gt;
&lt;p&gt;2: The Swede keeps dogs as pets&lt;/p&gt;
&lt;pre class="literal-block"&gt;
+--------+----------+-------+----------+-------+------------+
|        |    1     |   2   |    3     |   4   |     5      |
+--------+----------+-------+----------+-------+------------+
| Color  |Yellow    |Blue   |Red       |Green  |White       |
| Man    |Norwegian |Dane   |Briton    |German |Swede       |
| Pet    |          |Horses |          |       |Dogs        |
| Smoke  |Dunhill   |Blend  |          |Prince |Blue Master |
| Drink  |Water     |Tea    |Milk      |Coffee |Beer        |
+--------+----------+-------+----------+-------+------------+
&lt;/pre&gt;
&lt;p&gt;6: The person who smokes Pall Mall rears birds&lt;/p&gt;
&lt;pre class="literal-block"&gt;
+--------+----------+-------+----------+-------+------------+
|        |    1     |   2   |    3     |   4   |     5      |
+--------+----------+-------+----------+-------+------------+
| Color  |Yellow    |Blue   |Red       |Green  |White       |
| Man    |Norwegian |Dane   |Briton    |German |Swede       |
| Pet    |          |Horses |Birds     |       |Dogs        |
| Smoke  |Dunhill   |Blend  |Pall Mall |Prince |Blue Master |
| Drink  |Water     |Tea    |Milk      |Coffee |Beer        |
+--------+----------+-------+----------+-------+------------+
&lt;/pre&gt;
&lt;p&gt;10: The man who smokes Blend lives next to the one who keeps cats&lt;/p&gt;
&lt;pre class="literal-block"&gt;
+--------+----------+-------+----------+-------+------------+
|        |    1     |   2   |    3     |   4   |     5      |
+--------+----------+-------+----------+-------+------------+
| Color  |Yellow    |Blue   |Red       |Green  |White       |
| Man    |Norwegian |Dane   |Briton    |German |Swede       |
| Pet    |Cats      |Horses |Birds     |       |Dogs        |
| Smoke  |Dunhill   |Blend  |Pall Mall |Prince |Blue Master |
| Drink  |Water     |Tea    |Milk      |Coffee |Beer        |
+--------+----------+-------+----------+-------+------------+
&lt;/pre&gt;
&lt;p&gt;Which only leaves one gap.Who keeps Fish? The German.&lt;/p&gt;
</summary><category term="puzzles"></category></entry><entry><title>Some Scientific Facts</title><link href="http://praveen.kumar.in/2005/11/17/some-scientific-facts/" rel="alternate"></link><updated>2005-11-17T04:44:45+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-11-17:2005/11/17/some-scientific-facts/</id><summary type="html">&lt;p&gt;The beguiling ideas about science quoted here were gleaned from essays,
exams, and class room discussions; most were from fifth- and
sixth-graders. They illustrate Mark Twain's contention that the "most
interesting information comes from children, for they tell all they know
and then stop."&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Question: What is one horsepower? Answer: One horsepower is the
amount of energy it takes to drag a horse 500 feet in one second.&lt;/li&gt;
&lt;li&gt;You can listen to thunder after lightening and tell how close you
came to getting hit. If you don't hear it you got hit, so never mind.&lt;/li&gt;
&lt;li&gt;Talc is found in rocks and on babies.&lt;/li&gt;
&lt;li&gt;The law of gravity says no fair jumping up without coming back down.&lt;/li&gt;
&lt;li&gt;When they broke open molecules, they found they were only stuffed
with atoms. But when they broke open atoms, they found them stuffed
with explosions.&lt;/li&gt;
&lt;li&gt;Clouds are high flying fogs.&lt;/li&gt;
&lt;li&gt;When people run around and around in circles we say they are crazy.
When planets do it we say they are orbiting.&lt;/li&gt;
&lt;li&gt;Rainbows are just to look at, not to really understand.&lt;/li&gt;
&lt;li&gt;While the earth seems to be knowingly keeping its distance from the
sun, it is really only centrificating.&lt;/li&gt;
&lt;li&gt;Some day we may discover how to make magnets that can point in any
direction.&lt;/li&gt;
&lt;li&gt;South America has cold summers and hot winters, but somehow they
still manage.&lt;/li&gt;
&lt;li&gt;Most books now say our sun is a star. But it still knows how to
change back into a sun in the daytime.&lt;/li&gt;
&lt;li&gt;Water freezes at 32 degrees and boils at 212 degrees. There are 180
degrees between freezing and boiling because there are 180 degrees
between north and south.&lt;/li&gt;
&lt;li&gt;A vibration is a motion that cannot make up its mind which way it
wants to go.&lt;/li&gt;
&lt;li&gt;There are 26 vitamins in all, but some of the letters are yet to be
discovered. Finding them all means living forever.&lt;/li&gt;
&lt;li&gt;There is a tremendous weight pushing down on the center of the Earth
because of so much population stomping around up there these days.&lt;/li&gt;
&lt;li&gt;Lime is a green-tasting rock.&lt;/li&gt;
&lt;li&gt;Many dead animals of the past changed to fossils while others
preferred to be oil.&lt;/li&gt;
&lt;li&gt;Genetics explain why you look like your father and if you don't why
you should.&lt;/li&gt;
&lt;li&gt;Vacuums are nothings. We only mention them to let them know we know
they're there.&lt;/li&gt;
&lt;li&gt;Some oxygen molecules help fires burn while others help make water,
so sometimes it's brother against brother.&lt;/li&gt;
&lt;li&gt;Some people can tell what time it is by looking at the sun. But I
have never been able to make out the numbers.&lt;/li&gt;
&lt;li&gt;We say the cause of perfume disappearing is evaporation. Evaporation
gets blamed for a lot of things people forget to put the top on.&lt;/li&gt;
&lt;li&gt;To most people solutions mean finding the answers. But to chemists
solutions are things that are still all mixed up.&lt;/li&gt;
&lt;li&gt;In looking at a drop of water under a microscope, we find there are
twice as many H's as O's.&lt;/li&gt;
&lt;li&gt;I am not sure how clouds get formed. But the clouds know how to do
it, and that is the important thing.&lt;/li&gt;
&lt;li&gt;Clouds just keep circling the Earth around and around. And around.
There is not much else to do.&lt;/li&gt;
&lt;li&gt;Water vapor gets together in a cloud. When it is big enough to be
called a drop, it does.&lt;/li&gt;
&lt;li&gt;When there is fog, you might as well not mind looking at it.&lt;/li&gt;
&lt;li&gt;Humidity is the experience of looking for air and finding water.&lt;/li&gt;
&lt;li&gt;We keep track of the humidity in the air so we won't drown when we
breathe.&lt;/li&gt;
&lt;li&gt;In making rain water, it takes everything from H to O.&lt;/li&gt;
&lt;li&gt;When rain water strikes forest fires, it heckstingwishes them.
Luckily it affects we of the humans unlike that.&lt;/li&gt;
&lt;li&gt;Rain is often spoken of as soft water, oppositely known as hail.&lt;/li&gt;
&lt;li&gt;Rain is saved up in cloud banks.&lt;/li&gt;
&lt;li&gt;In some rocks you can find the fossil footprints of fishes.&lt;/li&gt;
&lt;li&gt;Cyanide is so poisonous that one drop of it on a dog's tongue will
kill the strongest man.&lt;/li&gt;
&lt;li&gt;A blizzard is when it snows sideways.&lt;/li&gt;
&lt;li&gt;A hurricane is a breeze of a bigly size.&lt;/li&gt;
&lt;li&gt;A monsoon is a French gentleman.&lt;/li&gt;
&lt;li&gt;A thunderstorm is like a shower, only moreso.&lt;/li&gt;
&lt;li&gt;Thunder is a rich source of loudness.&lt;/li&gt;
&lt;li&gt;Isotherms and isobars are even more important that their names sound.&lt;/li&gt;
&lt;li&gt;It is so hot in some parts of the world that the people there have to
live other places.&lt;/li&gt;
&lt;li&gt;The wind is like the air, only pushier.&lt;/li&gt;
&lt;li&gt;Question: In what ways are we dependant on the sun? Answer: We can
always depend on the sun for sunburn and tidal waves.&lt;/li&gt;
&lt;li&gt;Until it is decided whether tornadoes are typhoons or hurricanes, we
must continue to call them tornadoes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Courtesy:&lt;/strong&gt; GNU Humour.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Google Analytics</title><link href="http://praveen.kumar.in/2005/11/15/google-analytics/" rel="alternate"></link><updated>2005-11-15T17:09:18+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-11-15:2005/11/15/google-analytics/</id><summary type="html">&lt;p&gt;Google has launched yet another service known as &lt;a class="reference external" href="http://www.google.com/analytics"&gt;Google
Analytics&lt;/a&gt;. This service is used for
monitoring the traffic of a website. If one has a Google account, he can
signup for this service, all for free. One can have multiple sites
linked with a given account. The interface between Analytics and your
site is a clean Javascript based like anyother tracking services. But
you can expect more professionality in the service as it comes from
Google. It can also be used from the Adwords control panel. This will
serve a good oppurtunity for the bloggers to get a clear picture on
their visitors and will help them in increasing their revenue from
Adwords.&lt;/p&gt;
</summary><category term="blog"></category></entry><entry><title>My last day at Novell</title><link href="http://praveen.kumar.in/2005/11/14/my-last-day-at-novell/" rel="alternate"></link><updated>2005-11-14T15:17:23+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-11-14:2005/11/14/my-last-day-at-novell/</id><summary type="html">&lt;p&gt;Today is my last day at Novell. It was nice working with Novell on an
open source project for the last 6 months. It is so unfortunate to leave
Novell now, but I didn't have options. Will defintely miss all the fun
that I had in the Evolution team.&lt;/p&gt;
&lt;p&gt;There were a good amount of learnings in terms of knowledge and values
in these six months. It was a mutually rewarding oppurtunity.&lt;/p&gt;
&lt;p&gt;Working with the Evolution Exchange connector had its own challenges
when it comes to either new features or bug fixes. During this six
months, I have a done a couple of good features namely folder hierarchy
for Calendar, Task and Addressbook, migration of delegation assistant
and change password functionalities into plugin and reorganizing the
Exchange Account Setup plugin to include more features and renaming it
to Exchange Operations plugin. There were some crucial bug fixes as
well. Eventhough I like to contribute to Evolution in the future, I
might not be able to contribute much to the connector as I may not have
access to any Exchange server setup for testing.&lt;/p&gt;
&lt;p&gt;We have shot some photos on the last day and I have uploaded them to
Flickr.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; I am joining Sun Microsystems shortly. No worries :-)&lt;/p&gt;
</summary><category term="job"></category><category term="novell"></category></entry><entry><title>FM Radio Stations in Bangalore</title><link href="http://praveen.kumar.in/2005/11/13/fm-radio-stations-in-bangalore/" rel="alternate"></link><updated>2005-11-13T17:28:06+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-11-13:2005/11/13/fm-radio-stations-in-bangalore/</id><summary type="html">&lt;p&gt;The following are the FM Radio channels available in Bangalore.&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;91.0 MHz - Radio City&lt;/li&gt;
&lt;li&gt;101.3 MHz - Rainbow FM&lt;/li&gt;
&lt;li&gt;102.9 MHz - Unknown&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;PS:&lt;/strong&gt; Please add if you find missing stations.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Puzzle of the week - Week #45</title><link href="http://praveen.kumar.in/2005/11/12/puzzle-of-the-week-week-45/" rel="alternate"></link><updated>2005-11-12T09:39:04+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-11-12:2005/11/12/puzzle-of-the-week-week-45/</id><summary type="html">&lt;p&gt;One of the news about this puzzle is that&lt;/p&gt;
&lt;blockquote&gt;
This quiz is supposed to have been written by Einstein. He said that
98% of the people in the world cannot solve the quiz. Could you be
among the other 2%?&lt;/blockquote&gt;
&lt;p&gt;No matter it is Einstein's puzzle or not, it is a real good one. Took 50
minutes for me to crack it down.&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;There are 5 houses, each is a different colour&lt;/li&gt;
&lt;li&gt;In each house lives a person of a different nationality.&lt;/li&gt;
&lt;li&gt;These 5 owners all drink a certain beverage, smoke a certain brand of
cigar and keep a certain pet.&lt;/li&gt;
&lt;li&gt;No owner has the same pet, smokes the same brand of cigar or drinks
the same drink as another owner.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here is some information about those people.&lt;/p&gt;
&lt;p&gt;1: The Briton lives in a red house. 1: The Swede keeps dogs as pets 1:
The Dane drinks tea 1: The green house is on the left of the white house
(they are also next door to each other) 1: The green house owner drinks
coffee 1: The person who smokes Pall Mall rears birds 1: The owner of
the yellow house smokes Dunhill 1: The man living in the house right in
the center drinks milk 1: The Norwegian lives in the first house 1: The
man who smokes Blend lives next to the one who keeps cats 1: The man who
keeps horses lives next to the man who smokes Dunhill 1: The owner who
smokes Blue Master drinks beer 1: The German smokes Prince 1: The
Norwegian lives next to the blue house 1: The man who smokes Blend has a
neighbor who drinks water.&lt;/p&gt;
&lt;p&gt;The question is: WHO KEEPS FISH?&lt;/p&gt;
</summary><category term="puzzles"></category></entry><entry><title>Quite Descriptive!</title><link href="http://praveen.kumar.in/2005/11/11/quite-descriptive/" rel="alternate"></link><updated>2005-11-11T18:14:25+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-11-11:2005/11/11/quite-descriptive/</id><summary type="html">&lt;div class="figure" style="width: 209px; height: auto; max-width: 100%;"&gt;
&lt;img alt="Screwed" src="http://praveen.kumar.in/images/Screwed.gif" style="width: 209px; height: auto; max-width: 100%;"/&gt;
&lt;/div&gt;
</summary><category term="notags"></category></entry><entry><title>Puzzle of the week - Week #44</title><link href="http://praveen.kumar.in/2005/11/05/puzzle-of-the-week-week-44/" rel="alternate"></link><updated>2005-11-05T22:22:32+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-11-05:2005/11/05/puzzle-of-the-week-week-44/</id><summary type="html">&lt;p&gt;A man lives on the tenth floor of a building. Every day he takes the
elevator to go down to the ground floor to go to work or to go shopping.
When he returns he takes the elevator to the seventh floor and walks up
the stairs to reach his apartment on the tenth floor. He hates walking
so why does he do it?&lt;/p&gt;
&lt;p&gt;This is probably the best known and most celebrated of all lateral
thinking puzzles. It is a true classic. Although there are many possible
solutions which fit the initial conditions, only the canonical answer is
truly satisfying.&lt;/p&gt;
</summary><category term="puzzles"></category></entry><entry><title>Search and replace in MySQL</title><link href="http://praveen.kumar.in/2005/11/04/search-and-replace-in-mysql/" rel="alternate"></link><updated>2005-11-04T00:41:41+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-11-04:2005/11/04/search-and-replace-in-mysql/</id><summary type="html">&lt;p&gt;The following query will be handy if one likes to search and replace a
string in a particular column.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="k"&gt;update&lt;/span&gt; &lt;span class="n"&gt;tablename&lt;/span&gt; &lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="n"&gt;field&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;field&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'search_for_this'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'replace_with_this'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
</summary><category term="mysql"></category></entry><entry><title>Puzzle of the week - Week #43</title><link href="http://praveen.kumar.in/2005/10/29/puzzle-of-the-week-week-43/" rel="alternate"></link><updated>2005-10-29T04:00:54+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-10-29:2005/10/29/puzzle-of-the-week-week-43/</id><summary type="html">&lt;p&gt;Three people check into a hotel. They pay £30 to the manager and go to
their room. The manager suddenly remembers that the room rate is £25 and
gives £5 to the bellboy to return to the people. On the way to the room
the bellboy reasons that £5 would be difficult to share among three
people so he pockets £2 and gives £1 to each person. Now each person
paid £10 and got back £1. So they paid £9 each, totalling £27. The
bellboy has £2, totalling £29. Where is the missing £1?&lt;/p&gt;
</summary><category term="puzzles"></category></entry><entry><title>Puzzle of the week - Week #42</title><link href="http://praveen.kumar.in/2005/10/22/puzzle-of-the-week-week-42/" rel="alternate"></link><updated>2005-10-22T19:03:49+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-10-22:2005/10/22/puzzle-of-the-week-week-42/</id><summary type="html">&lt;p&gt;The distance between Station Atena and Station Barcena is 90 miles. A
train starts from Atena towards Barcena. A bird starts at the same time
from Barcena straight towards the moving train. On reaching the train,
it instantaneously turns back and returns to Barcena. The bird makes
these journeys from Barcena to the train and back to Barcena
continuously till the train reaches Barcena. The bird finally returns to
Barcena and rests. Calculate the total distance in miles the bird
travels in the following two cases:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;the bird flies at 80 miles per hour and the speed of the train is 60
miles per hour&lt;/li&gt;
&lt;li&gt;the bird flies at 60 miles per hour and the speed of the train is 80
miles per hour&lt;/li&gt;
&lt;/ul&gt;
</summary><category term="puzzles"></category></entry><entry><title>MIT explains why bad habits are hard to break</title><link href="http://praveen.kumar.in/2005/10/21/mit-explains-why-bad-habits-are-hard-to-break/" rel="alternate"></link><updated>2005-10-21T16:13:15+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-10-21:2005/10/21/mit-explains-why-bad-habits-are-hard-to-break/</id><summary type="html">&lt;p&gt;CNET News.com says habitual activity (e.g., smoking, eating fatty foods,
gambling, etc.) &lt;a class="reference external" href="http://news.com.com/MIT+explains+why+bad+habits+are+hard+to+break/2100-11395_3-5902850.html"&gt;changes neural activity
patterns&lt;/a&gt;
in a specific region of the brain when habits are formed. These neural
patterns created by habit can be changed or altered. But when a stimulus
from the old days returns, the dormant pattern can reassert itself,
according to a new study from the M.I.T., putting an individual in a
neural state akin to being on autopilot... The neural patterns get
established in the basal ganglia, a brain region critical to habits,
addiction and procedural learning.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Changing Gnome splash screen</title><link href="http://praveen.kumar.in/2005/10/15/changing-gnome-splash-screen/" rel="alternate"></link><updated>2005-10-15T14:13:58+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-10-15:2005/10/15/changing-gnome-splash-screen/</id><summary type="html">&lt;p&gt;To change the splash screen of Gnome, you need to do the following.&lt;/p&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;Download your favourite splash screen and store it in some location.&lt;/li&gt;
&lt;li&gt;Invoke the GConf editor (Applications --&amp;gt; System Tools --&amp;gt;
Configuration Editor).&lt;/li&gt;
&lt;li&gt;Change the key for the splash screen,
&lt;code&gt;/apps/gnome-session/options&lt;/code&gt; to store the absolute path of the
splash screen that you want to use.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;To change the background color while the splash screen shows, do the
following.&lt;/p&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;Invoke the GDM configuration dialog (System --&amp;gt; Administration --&amp;gt;
Login Screen Setup).&lt;/li&gt;
&lt;li&gt;Change the background screen color to the desired color that suits
your theme.&lt;/li&gt;
&lt;/ol&gt;
</summary><category term="gnome"></category></entry><entry><title>Ubuntu 5.10 again on my desktop</title><link href="http://praveen.kumar.in/2005/10/13/ubuntu-510-again-on-my-desktop/" rel="alternate"></link><updated>2005-10-13T15:42:10+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-10-13:2005/10/13/ubuntu-510-again-on-my-desktop/</id><summary type="html">&lt;p&gt;I am really not able to make a clear decision (still) in terms of the
distribution to use on my desktop at home (Debian or Ubuntu). I was
running Debian SID previously. Once Ubuntu 5.04 was released, I have
switched to Ubuntu and came back to Debian again after a couple of
weeks. But now, I have again switched to Ubuntu 5.10. Everything seems
to be fine till now. I miss emacs-snapshot package. Need to see if I
have to add any other repository for it. Think I would stay with Ubuntu.
But, may not be!&lt;/p&gt;
</summary><category term="debian"></category><category term="ubuntu"></category><category term="pc"></category></entry><entry><title>My Linksys Router and Indian Government Officials</title><link href="http://praveen.kumar.in/2005/10/03/my-linksys-router-and-indian-government-officials/" rel="alternate"></link><updated>2005-10-03T20:54:57+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-10-03:2005/10/03/my-linksys-router-and-indian-government-officials/</id><summary type="html">&lt;p&gt;One month back, I have bought a Linksys WRT54GP2-NA (Wireless-G
Broadband Router with 2 Phone Ports) from
&lt;a class="reference external" href="http://www.verilan.com/store/product.php?productid=16186&amp;amp;cat=0&amp;amp;page=1"&gt;VeriLAN&lt;/a&gt;
store. I have decided to buy this from US because, there was no
equivalent model available for India. The product itself costs just $159
and the shipping charge was $32 which made the toal as $191 which come
approximately INR. 8404.&lt;/p&gt;
&lt;p&gt;I thought that I will get this product as peaceful as my Linksys PAP2
from iConnectHere. But this time, the Indian Customs' Postal Appraisal
Department(PAD) played the villian role in the delivery of the product.
Tracking the product online showed me that this product landed in India
on 11th of September. But I didn't receive any notification from the
customs so far. Waiting till 1st of October, I lost my peace of mind and
went to the Postal Appraising Departmet of Indian Customs at Museum
Road, Bangalore. I gave my address and the USPS tracking number. One of
the attender there was kind enough (for INR. 50) searched the files and
told me that the product was lying with them only. He added that there
was a memo sent to me regarding that before a couple of weeks. Thank the
sincerity of Indian Postal Service, I didn't receive it at all. I got
the parcel number of the router from the attender. I wrote a letter to
the Superintended of PAD stating that I bought it for personal use and I
attached the invoice along with that letter. For my shock, the PAD
Superintended asked me to get the Importer-Exporter Code(IEC) for
getting it cleared.&lt;/p&gt;
&lt;p&gt;After discussing with my uncle who does a lot of customs transactions, I
came to know that IEC is exempted for "Actual User", a person who
imports a product for personal use. I again went to the PAD office and
told the Superintended that the IEC was not needed for personal use, he
gave me a shock again. He said that he will charge a fine of INR. 5000
for not producing the IEC and a duty of INR. 3400 will be charge against
the product. He added that if I am ready to pay a bribe of INR. 3000 to
him, he will rule out the fine and also reduce the duty to INR. 1400. I
really got too much of anger and shouted at him about his wrong
expectation and also asked him to do as per law. I said I will pay
whatever is charged as per law. My uncle later assured me that he can't
levy any fine and also the actual duty would come only around INR. 1400.
I am just eagarly waiting for the parcel to be cleared.&lt;/p&gt;
&lt;p&gt;As long as &lt;strong&gt;lazy bastards&lt;/strong&gt; like this Superintended are there in the
Indian Government Offices, it is almost impossible to rule out bribe of
any sort in India.&lt;/p&gt;
</summary><category term="ethics"></category></entry><entry><title>su|do|ku</title><link href="http://praveen.kumar.in/2005/09/30/su-do-ku/" rel="alternate"></link><updated>2005-09-30T14:38:59+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-09-30:2005/09/30/su-do-ku/</id><summary type="html">&lt;p&gt;One of the column in &lt;a class="reference external" href="http://www.hinduonnet.com/"&gt;"The Hindu"&lt;/a&gt; which
recently grabbed the interest of a lot of readers is the column 'su do
ku', a puzzle game. This column gain more fame in short time over it's
very old brother column, the "Crossword". There is an official website
for this puzzle &lt;a class="reference external" href="http://www.sudoku.com"&gt;here&lt;/a&gt;. Debian GNU/Linux users
can user the package
&lt;a class="reference external" href="http://packages.debian.org/unstable/games/sgt-puzzles"&gt;sgt-puzzles&lt;/a&gt;
and run the game binary &lt;code&gt;/usr/games/solo&lt;/code&gt;. Good game to kill time :-)&lt;/p&gt;
</summary><category term="puzzles"></category></entry><entry><title>Greg Chappell's e-mail to the BCCI</title><link href="http://praveen.kumar.in/2005/09/27/greg-chappells-e-mail-to-the-bcci/" rel="alternate"></link><updated>2005-09-27T22:35:48+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-09-27:2005/09/27/greg-chappells-e-mail-to-the-bcci/</id><summary type="html">&lt;p&gt;Here is the alleged copy of Greg Chappell's email to BCCI.&lt;/p&gt;
&lt;!-- --&gt;
&lt;blockquote&gt;
&lt;p&gt;Due to comments made by Mr Sourav Ganguly during the
press conference following his innings in the recently completed Test
match in Bulawayo and the subsequent media speculation I would like to
make my position clear on two points.&lt;/p&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;At no stage did I ask Mr Ganguly to step down from the captaincy of
the Indian team and;&lt;/li&gt;
&lt;li&gt;At no stage have I threatened to resign my position as Indian team
coach.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Mr Ganguly came to me following the recently completed tri-series of
one-day matches here in Zimbabwe and asked me to tell him honestly where
he stood as a player in my view. I told him that I thought he was
struggling as a player and that it was affecting his ability to lead the
team effectively and that the pressure of captaincy was affecting his
ability to play to his potential. I also told him that his state of mind
was fragile and it showed in the way that he made decisions on and off
the field in relation to the team, especially team selection. A number
of times during the tri-series the tour selectors had chosen a team and
announced it to the group only for Sourav to change his mind on the
morning of the game and want to change the team.&lt;/p&gt;
&lt;p&gt;On at least one occasion he did change the team and on the morning of
the final I had to talk him out of making another last-minute change
that I believe would have destroyed team morale and damaged the mental
state of the individuals concerned. I also told Sourav that his nervous
state was affecting the team in other ways as he was prone to panic
during pressure situations in games and that his nervous demeanour was
putting undue pressure on the rest of the team. His nervous pacing of
the rooms during our batting in the final plus his desire to change the
batting order during our innings in the final had also contributed to
nervousness in the players waiting to go in to bat. His reluctance to
bat first in games I suggested was also giving wrong signals to the team
and the opposition and his nervousness at the crease facing bowlers like
Shane Bond from NZ was also affecting morale in the dressing room.&lt;/p&gt;
&lt;p&gt;On the basis of this and other observations and comments from players in
the squad about the unsettling effect Sourav was having on the group I
suggested to Sourav that he should consider stepping down from the
captaincy at the end of the tour in the interests of the team and in his
own best interests if he wanted to prolong his playing career. I told
him of my own experiences toward the end of my career and cited other
players such as Border, Taylor and Steve Waugh, all of whom struggled
with batting form toward the end of their tenure as Australian captain.&lt;/p&gt;
&lt;p&gt;We discussed other issues in relation to captaincy and the time and
effort it took that was eating into his mental reserves and making it
difficult to prepare properly for batting in games. He commented that he
had enjoyed being free of those responsibilities in the time that he was
in Sri Lanka following his ban from international cricket and that he
would consider my suggestion.&lt;/p&gt;
&lt;p&gt;I also raised the matter of selection for the first Test with Sourav and
asked him where he thought he should bat. He said 'number 5'. I told him
that he might like to consider opening in the Test as the middle order
was going to be a tight battle with Kaif and Yuvraj demanding selection.
Sourav asked me if I was serious. I said it was something to be
considered, but it had to be his decision.&lt;/p&gt;
&lt;p&gt;The following day Sourav batted in the match against Zimbabwe 'A' team
in the game in Mutare. I am not sure of the exact timing of events
because I was in the nets with other players when Sourav went in to bat,
but the new ball had either just been taken or was imminent when I saw
Sourav walking from the field holding his right arm. I assumed he had
been hit and made my way to the players' area where Sourav was receiving
treatment from the team physiotherapist, John Gloster.&lt;/p&gt;
&lt;p&gt;When I enquired as to what had happened Sourav said he had felt a click
in his elbow as he played a ball through the leg side and that he
thought he should have it investigated. Sourav had complained of pain to
his elbow at various stages of the one-day series, but he had resisted
having any comprehensive investigation done and, from my observation,
had been spasmodic in his treatment habits, often not using ice-packs
for the arm that had been prepared for him by John Gloster. I suggested,
as had John Gloster, that we get some further tests done immediately.
Sourav rejected these suggestions and said he would be 'fine'. When I
queried what he meant by 'fine' he said he would be fit for the Test
match. I then queried why then was it necessary to be off the field now.
He said that he was just taking 'precautions'.&lt;/p&gt;
&lt;p&gt;Rather than make a scene with other players and officials in the
vicinity I decided to leave the matter and observe what Sourav would do
from that point on. After the loss of Kaif, Yuvraj and Karthik to the
new ball, Sourav returned to the crease with the ball now around 20
overs old. He struggled for runs against a modest attack and eventually
threw his wicket away trying to hit one of the spinners over the leg
side.&lt;/p&gt;
&lt;p&gt;The next day I enquired with a number of the players as to what they had
thought of Sourav's retirement. The universal response was that it was
'just Sourav' as they recounted a list of times when Sourav had suffered
from mystery injuries that usually disappeared as quickly as they had
come. This disturbed me because it confirmed for me that he was in a
fragile state of mind and it was affecting the mental state of other
members of the squad.&lt;/p&gt;
&lt;p&gt;When we arrived in Bulawayo I decided I needed to ask Sourav if he had
over-played the injury to avoid the danger period of the new ball as it
had appeared to me and others within the touring party that he had
protected himself at the expense of others. He denied the suggestion and
asked why he would do that against such a modest attack. I said that he
was the only one who could answer that question.&lt;/p&gt;
&lt;p&gt;I was so concerned about the affect that Sourav's actions were having on
the team that I decided I could not wait until selection meeting that
evening to inform him that I had serious doubts about picking him for
the first Test.&lt;/p&gt;
&lt;p&gt;I explained that, in my view, I felt we had to pick Kaif and Yuvraj
following their good form in the one-day series and that Sehwag,
Gambhir, Laxman and Dravid had to play. He said that his record was
better than Kaif and Yuvraj and that they had not proved themselves in
Test cricket. I countered with the argument that they had to be given a
chance to prove themselves on a consistent basis or we would never know.
I also said that their form demanded that they be selected now.&lt;/p&gt;
&lt;p&gt;Sourav asked me whether I thought he should be captain of the team. I
said that I had serious doubts that he was in the right frame of mind to
do it. He asked me if I thought he should step down. I said that it was
not my decision to make, that only he could make that decision, but if
he did make that decision he had to do it in the right manner or it
would have even more detrimental effects than if he didn't stand down. I
said that now was not the time to make the decision but that we should
discuss it at the selection meeting to be held later in the day.&lt;/p&gt;
&lt;p&gt;Sourav then said that if I didn't want him to be captain that he would
inform Rahul Dravid that was going to stand down. I reiterated that it
was not my decision to make but he should give it due consideration
under the circumstances but not to do it hastily. At that point Sourav
went to Rahul and the two of them conferred briefly and then Sourav left
the field and entered the dressing room. At that stage I joined the
start of the training session.&lt;/p&gt;
&lt;p&gt;A short time later Mr Chowdhary came on to the field and informed me
that Sourav had told him that I did not want him as captain and that
Sourav wanted to leave Zimbabwe immediately if he wasn't playing. I then
joined Mr Chowdhary and Rahul Dravid in the dressing room where we
agreed that this was not the outcome that any of us wanted and that the
ramifications would not be in the best interests of the team.&lt;/p&gt;
&lt;p&gt;We then spent some time with Sourav and eventually convinced him that he
should stay on as captain for the two Tests and then consider his
future. In my view it was not an ideal solution but it was better than
the alternative of him leaving on a bad note. I believe he has earned
the right to leave in a fitting manner. We all agreed that this was a
matter that should stay between us and should not, under any
circumstances, be discussed with the media.&lt;/p&gt;
&lt;p&gt;The matter remained quiet until the press conference after the game when
a journalist asked Sourav if he had been asked to step down before the
Test. Sourav replied that he had but he did not want to elaborate and
make an issue of it. I was then called to the press conference where I
was asked if I knew anything of Sourav being asked to step down before
the game. I replied that a number of issues had been raised regarding
selection but as they were selection matters I did not wish to make any
further comment.&lt;/p&gt;
&lt;p&gt;Apart from a brief interview on ESPN before which I emphasized that I
did not wish to discuss the issue because it was a selection matter I
have resisted all other media approaches on the matter.&lt;/p&gt;
&lt;p&gt;Since then various reports have surfaced that I had threatened to
resign. I do not know where that rumour has come from because I have
spoken to no one in regard to this because I have no intention of
resigning. I assume that some sections of the media, being starved of
information, have made up their own stories.&lt;/p&gt;
&lt;p&gt;At the completion of the Test match I was approached by VVS Laxman with
a complaint that Sourav had approached him on the eve of the Test saying
that I had told Sourav that I did not want Laxman in the team for Test
matches. I denied that I had made such a remark to Sourav, or anybody
else for that matter, as, on the contrary, I saw Laxman as an integral
part of the team. He asked how Sourav could have said what he did. I
said that the only way we could go to the bottom of the matter was to
speak to Sourav and have him repeat the allegation in front of me.&lt;/p&gt;
&lt;p&gt;I arranged for a meeting with the two of them that afternoon. The
meeting took place just after 6pm in my room at the Rainbow Hotel in
Bulawayo. I told Sourav that Laxman had come to me complaining that
Sourav had made some comments to Laxman prior to the Test. I asked
Sourav if he would care to repeat the comment in my presence. Sourav
then rambled on about how I had told him that I did not see a place for
Laxman in one-day cricket, something that I had discussed with Sourav
and the selection panel and about which I had spoken to Laxman at the
end of the Sri Lankan tour.&lt;/p&gt;
&lt;p&gt;Sourav mentioned nothing about the alleged conversation regarding Laxman
and Test cricket even when I pushed him on it later in the discussion.
As we had to leave for a team function we ended the conversation without
Sourav adequately explaining his comments to Laxman.&lt;/p&gt;
&lt;p&gt;Again, this is not an isolated incident because I have had other players
come to me regarding comments that Sourav had made to them that purports
to be comments from me to Sourav about the particular player. In each
case the comments that Sourav has passed on to the individual are
figments of Sourav's imagination. One can only assume that he does it to
unnerve the individual who, in each case, has been a middle order
batsman.&lt;/p&gt;
&lt;p&gt;Sourav has missed the point of my discussions with him on this matter.
It has less to do with his form than it does with his attitude toward
the team. Everything he does is designed to maximise his chance of
success and is usually detrimental to someone else's chances.&lt;/p&gt;
&lt;p&gt;Despite meeting with him in Mumbai after his appointment as captain and
speaking with him about these matters and his reluctance to do the
preparation and training that is expected of everyone else in the squad
he continues to set a bad example.&lt;/p&gt;
&lt;p&gt;Greg King's training reports continue to show Sourav as the person who
does the least fitness and training work based on the criterion that has
been developed by the support staff to monitor the work load of all the
players.&lt;/p&gt;
&lt;p&gt;We have also developed parameters of batting, bowling, fielding and
captaincy that we believe embodies the 'Commitment to Excellence' theme
that I espoused at my interview and Sourav falls well below the
acceptable level in all areas. I will be pleased to present this
documentation when I meet with the special committee in Mumbai later
this month.&lt;/p&gt;
&lt;p&gt;I can assure you sir that all my actions in this matter, and all others
since my appointment, have been with the aim of improving the team
performance toward developing a team that will represent India with
distinctions in Test match and one-day cricket.&lt;/p&gt;
&lt;p&gt;As I said to you during our meeting in Colombo, I have serious
reservations about the attitude of some players and about Sourav and his
ability to take this team to a new high, and none of the things he has
done since his reappointment has caused me to change my view. In fact,
it has only served to confirm that it is time for him to move on and let
someone else build their team toward the 2007 World Cup.&lt;/p&gt;
&lt;p&gt;This team has been made to be fearful and distrusting by the rumour
mongering and deceit that is Sourav's modus operandi of divide and rule.
Certain players have been treated with favour, all of them bowlers,
while others have been shunted up and down the order or left out of the
team to suit Sourav's whims.&lt;/p&gt;
&lt;p&gt;John Wright obviously allowed this to go on to the detriment of the
team. I am not prepared to sit back and allow this to continue or we
will get the same results we have been seeing for some time now.&lt;/p&gt;
&lt;p&gt;It is time that all players were treated with fairness and equity and
that good behaviours and attitudes are rewarded at the selection table
rather than punished.&lt;/p&gt;
&lt;p&gt;I can assure you of my very best intentions.&lt;/p&gt;
&lt;p&gt;Yours sincerely,&lt;/p&gt;
&lt;p&gt;Greg Chappell MBE&lt;/p&gt;
&lt;/blockquote&gt;
</summary><category term="cricket"></category></entry><entry><title>Indian GNU/Hurd Users Group</title><link href="http://praveen.kumar.in/2005/09/27/indian-gnuhurd-users-group/" rel="alternate"></link><updated>2005-09-27T16:06:19+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-09-27:2005/09/27/indian-gnuhurd-users-group/</id><summary type="html">&lt;p&gt;I have created a project under &lt;a class="reference external" href="http://sarovar.org"&gt;Sarovar.org&lt;/a&gt; to
get some web space and mailing list for Indian GNU/Hurd Users Group.
Thanks for thier fast response and &lt;a class="reference external" href="http://i-hug.sarovar.org"&gt;the
site&lt;/a&gt; with &lt;a class="reference external" href="http://lists.sarovar.org/mailman/listinfo/i-hug-discuss"&gt;the mailing
list&lt;/a&gt; is
fully operational now. Have sent an invite to
&lt;a class="reference external" href="http://www.chennailug.org/"&gt;ILUGC&lt;/a&gt;. Hope atleast
&lt;a class="reference external" href="http://www.shakthimaan.com/Mambo/"&gt;Shakthi&lt;/a&gt; and &lt;a class="reference external" href="http://www.joesteeve.org/"&gt;Joe
Steeve&lt;/a&gt; would join!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; After some good amount of effort, I have made the &lt;a class="reference external" href="http://i-hug.sarovar.org/wiki"&gt;Wiki
page&lt;/a&gt; available with some basic
structures present using
&lt;a class="reference external" href="http://www.pmichaud.com/wiki/PmWiki/PmWiki"&gt;PmWiki&lt;/a&gt;.&lt;/p&gt;
</summary><category term="hurd"></category></entry><entry><title>My GPG Key</title><link href="http://praveen.kumar.in/2005/09/26/my-gpg-key/" rel="alternate"></link><updated>2005-09-26T18:50:36+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-09-26:2005/09/26/my-gpg-key/</id><summary type="html">&lt;p&gt;I have (re)created my GPG key. Here is it.&lt;/p&gt;
&lt;pre class="code text literal-block"&gt;
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.1 (GNU/Linux)

mQGiBEM368MRBACQMtHXMAI/Yub1psrUedmjgdrPjdaoB8DVWMLwufmXrLqMqg8+
QCsEeGhUL8u4s9wDYYFv9U4VBiCxaxokqlq2TfhNoCpMO5LU2I3ba2aY4U30Hosd
an/H5cd1tM1mjLMRdWoy3GcGomfXYSEIPsceqMAG/owHMOEOqB66d2dkGwCg2ji+
BXlVLdfDl7TFP9+57eVxB08D/1CsRQn0CkzQdnc6DCuMvpEYVMdozDvB773Af01j
w3F9b0PyRfjo42Z8D2u+yv/EJBdGcYM1Z0M6UghUsnnyjNG3LmW6T3mg7HeSJRcm
XAIBVqnWNP1ymM4u9jPyB9oFdnTG5F1L4XmnlzzZ8Ofibl8Q0M93KDRQh9LUxdwN
of7NA/9E189tMRzAmSbv35Fqtfwdt+f9zsSocPIPPJPLAS4SPwzIPqWfFpK0/2J3
cK6cP+JurGOymncKEIoyg38NPEhUIg78DXFa174Nn7hhyMq90wyinDjgGt8CbFxk
DgG+P9uwr2kdmu6EWVZQxPPGX6k6yR8x42PQWA4Krq4v0V9Tr7QiUHJhdmVlbiBL
dW1hciA8Y29udGFjdEBwcmF2ZWVuLndzPohkBBMRAgAkBQJDN+vDAhsDBQkB4TOA
BgsJCAcDAgMVAgMDFgIBAh4BAheAAAoJEDEm2bUmqgoaTaIAoIk5OQLEN1lBwBTI
RBW4AW2ZJnwmAKCt/ICava/XlviQ+ev84cUPOezDTrkCDQRDN+vdEAgAxveZNwsN
6taA36WfQL8E3RS+gQE4YwCpmuqsOCdwY+rC9fGlEwsamPeakn0VKw5Yrqgck6rV
9VOljK2KyXMl1vDi3cwb+wUQ6bo88CUMNK7sUgsjMHlzLOVIhvEpMESChL+XniQo
X9ADreUHj9ZwxV6/YX1WsQQTN/aGdnGYojiMF+xRMqY99U/llCgLqH2hKP5nkgbh
U4hkFR0xJQKsFgkgX7T8NhYyoaFz23VHUjUcxcVzEBaVHLC79xQoZlVDHP9Stzoo
cgd+vB8eeCymkve9aCJSmXCbKNskWpIFcwOu6mhvYmIJE2CqNgmYozDEf/k7Y/qY
Q+nESQhbM9zkPwAEDQgAiti1P/QlfKE1R9ebV56ZVhgJj39D1YI2zp3h9VBQOj1/
hXtgayeMjggCYXORJp0M8ZgQ2I8U/l0csaBa+Te58jYqNxuvVVhwJteih4sIW38P
Yw+Sfe0Pw8dSoWizXKJvwoIMkJL4zUJEMgqr3M737H8zR8BvjvCjCsVK0u9xSzfq
PHIQu5944NJQeX8eiSzNhKJeHkdti5pSGUjwS0lfVBB5pcW9EIMSKCanSlZ+kGsH
5D4xtkxd3g/1THzAPXwxFvkj7z/r/etc35qzXgBYLvXg+nYjC7124rbd1/SOfs4S
P/aWNr5TfXxl/I+s/srZMD1CEsNuSL0uMBzfejimMIhPBBgRAgAPBQJDN+vdAhsM
BQkB4TOAAAoJEDEm2bUmqgoaJzgAn3LXZbM1fT3RWJA/IRXKb+gPh/JkAKCTS+RX
hhVZgXucqQpm/DW13Df1oA==
=X1y4
-----END PGP PUBLIC KEY BLOCK-----
&lt;/pre&gt;
</summary><category term="privacy"></category></entry><entry><title>Fake News About Google OS</title><link href="http://praveen.kumar.in/2005/09/23/fake-news-about-google-os/" rel="alternate"></link><updated>2005-09-23T14:25:39+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-09-23:2005/09/23/fake-news-about-google-os/</id><summary type="html">&lt;p&gt;There were quite some posts on various blogs about Google's new OS which
is based on GNU/Hurd recently. There were screenshots posted!&lt;/p&gt;
&lt;p&gt;Whatever the verdict, it's still nice to see imaginations at work while
addressing one of the hotter rumors floating around the Internet.
However, if this is indeed the real thing, I will alter the previous
statement to say, it's a good start Google, but your interface needs
some visual work.
&lt;a class="reference external" href="http://grooan.com/futurefeeds/index.php?p=15"&gt;Grooan.com&lt;/a&gt; offers the
following description of the purported Google OS:&lt;/p&gt;
&lt;blockquote&gt;
Based on GNU and with kernel HURD [Google OS] is available in 3
versions: Embedded , Portable and Corporate. [Each version is
substantially different] for the type of support and methodology of
the job.&lt;/blockquote&gt;
&lt;div class="img-padding figure" style="width: 1024px; height: auto; max-width: 100%;"&gt;
&lt;img alt="Google OS Boot" src="http://praveen.kumar.in/images/GoogleOSBoot.jpg" style="width: 1024px; height: auto; max-width: 100%;"/&gt;
&lt;/div&gt;
&lt;div class="img-padding figure" style="width: 1024px; height: auto; max-width: 100%;"&gt;
&lt;img alt="Google OS" src="http://praveen.kumar.in/images/GoogleOS1.jpg" style="width: 1024px; height: auto; max-width: 100%;"/&gt;
&lt;/div&gt;
&lt;div class="img-padding figure" style="width: 1024px; height: auto; max-width: 100%;"&gt;
&lt;img alt="Google OS" src="http://praveen.kumar.in/images/GoogleOS2.jpg" style="width: 1024px; height: auto; max-width: 100%;"/&gt;
&lt;/div&gt;
&lt;p&gt;But all of these are fake. As a GNU/Hurd user, lemme tell you one thing.
Right now it is not possible with GNU/Hurd as it lacks support for
character drivers like Sound Card drivers. Defintely Google will not go
for Hurd at this point in time. There is a long way to go for GNU/Hurd.
These screenshots are nothing but someone's nice(?) graphical skills.&lt;/p&gt;
&lt;p&gt;There is also news about a Google Suite! I think Google can scrap it's
marketing wing. There is already more than enough marketing for Google
from outside ;-)&lt;/p&gt;
&lt;div class="figure" style="width: 1024px; height: auto; max-width: 100%;"&gt;
&lt;img alt="Google Suite" src="http://praveen.kumar.in/images/GoogleSuite.jpg" style="width: 1024px; height: auto; max-width: 100%;"/&gt;
&lt;/div&gt;
</summary><category term="hurd"></category></entry><entry><title>To Try GNU/Hurd Again</title><link href="http://praveen.kumar.in/2005/09/22/to-try-gnuhurd-again/" rel="alternate"></link><updated>2005-09-22T16:50:44+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-09-22:2005/09/22/to-try-gnuhurd-again/</id><summary type="html">&lt;p&gt;The last snapshot of &lt;a class="reference external" href="http://www.gnu.org/software/hurd/"&gt;GNU/Hurd&lt;/a&gt;
that I gave a try was J2. It seems that a lot of things have improved
after that. The main thing is that the 2GB limit for the ext2fs is gone
now. That is a real great news. I am downloading the &lt;a class="reference external" href="http://www.debian.org/ports/hurd/"&gt;Debian
port&lt;/a&gt; of GNU/Hurd K9 from &lt;a class="reference external" href="http://www.superunprivileged.org/debian-cd/K9/"&gt;one of
the mirrors&lt;/a&gt;. I am
planning to install it this weekend and give a try. Not sure if they
fixed the bug where the Mach crashes when we hit some key while it is
booting ;-)&lt;/p&gt;
</summary><category term="hurd"></category></entry><entry><title>Mallu Accent - "Simbly Funtastic"</title><link href="http://praveen.kumar.in/2005/09/19/mallu-accent-simbly-funtastic/" rel="alternate"></link><updated>2005-09-19T18:32:26+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-09-19:2005/09/19/mallu-accent-simbly-funtastic/</id><summary type="html">&lt;p&gt;The sweetness of English reaches it's maximum when talked by a Mallu!
Get some glimpse here. No offense meant ;-)&lt;/p&gt;
&lt;!-- --&gt;
&lt;blockquote&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;What is the tax on a Mallu's income called?&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote class="blockquote-reverse"&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;IngumDax&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;Where did the Malayali study?&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote class="blockquote-reverse"&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;In the ko-liage.&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;Why did the Malayali not go to ko-liage today?&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote class="blockquote-reverse"&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;He is very bissi.&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;Why did the Malayali buy an air-ticket?&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote class="blockquote-reverse"&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;To go to Thuubai, zimbly to meet his ungle in Gelff.&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;Why do Malayalis go to the Gelff?&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote class="blockquote-reverse"&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;To yearn meney.&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;What did the Malayali do when the plane caught fire?&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote class="blockquote-reverse"&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;He zimbly jembd out of the vindow.&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;Why did the Malayali go to the concert in Rome?&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote class="blockquote-reverse"&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;Because he wanted to hear pope music.&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;How does a Malayali spell moon?&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote class="blockquote-reverse"&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;MOON - Yem Woh yet another Woh and Yem&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;What is Malayali management graduate called?&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote class="blockquote-reverse"&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;Yem Bee Yae.&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;What does a Malayali do when he goes to America?&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote class="blockquote-reverse"&gt;
&lt;blockquote&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;He changes his name from Karunakaran to Kevin Curren.&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;What does a Malayali use to commute to office everyday?&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote class="blockquote-reverse"&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;An Oto&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;And for cargo?&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote class="blockquote-reverse"&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;A Loree&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;Where does he pray?&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote class="blockquote-reverse"&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;Temble&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;Who is Bruce Lee's best friend?&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote class="blockquote-reverse"&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;A Malaya-Lee of coarse.&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;Name the only part of the werld, where Malayalis dont werk hard?&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote class="blockquote-reverse"&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;Kerala&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;Why is industrial productivity so low in Kerala?&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote class="blockquote-reverse"&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;Because 86% of the shift time is spent on lifting, folding and re-tying the lungi&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;Why did Saddam Hussain attack Kuwait?&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote class="blockquote-reverse"&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;He had a Mallu baby-sitter, who always used to say 'KEEP QUWAIT' 'KEEP QUWAIT'&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
</summary><category term="notags"></category></entry><entry><title>Sesa Goa in lime light!</title><link href="http://praveen.kumar.in/2005/09/19/sesa-goa-in-lime-light/" rel="alternate"></link><updated>2005-09-19T15:32:51+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-09-19:2005/09/19/sesa-goa-in-lime-light/</id><summary type="html">&lt;p&gt;When I bought a big lot of Sesa Goa after the split of the stock, some
of my friends asked me not to do it as the fundamentals of the stock was
not that good. But I didn't listen to them. Now, they will defintely
worry for what they said ;-)&lt;/p&gt;
&lt;div class="figure" style="width: 612px; height: auto; max-width: 100%;"&gt;
&lt;img alt="Sesa Goa" src="http://praveen.kumar.in/images/SesaGoa.jpg" style="width: 612px; height: auto; max-width: 100%;"/&gt;
&lt;/div&gt;
</summary><category term="investment"></category></entry><entry><title>Modern Phone Features</title><link href="http://praveen.kumar.in/2005/09/18/modern-phone-features/" rel="alternate"></link><updated>2005-09-18T23:51:11+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-09-18:2005/09/18/modern-phone-features/</id><summary type="html">&lt;p&gt;Would the invention of the telephone ever have gotten off the ground if
Alexander Graham Bell's first call had gone...&lt;/p&gt;
&lt;p&gt;Bell: Mr. Watson, come here; I want you.&lt;/p&gt;
&lt;p&gt;Voice: If you know Watson's extension, press 1 now. If you would like to
leave a message for Watson, press 2. If you need further assistance,
hold the line for the next available representative....&lt;/p&gt;
&lt;p&gt;The telephone, which was satisfied for a century or so simply placing
and receiving calls, has become a different animal in recent years.
These days, everybody has an answering machine, a speakerphone, and a
slew of other telecommunication doodads. Call waiting, caller ID, and
last-number redial are fine, but here are some options that can't be far
behind.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ON-HOLD DISRUPT:&lt;/strong&gt; When someone puts you on hold for more than 15
seconds, a digitized voice blares over his or her speakerphone, "Hey!
Remember me? I don't have all day!" (This option also shorts out Muzak
if it's being played.)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CALL SCHMOOZING:&lt;/strong&gt; Stuck listening to a long-winded acquaintance? Call
schmoozing activates a speech-synthesized voice that sounds just like
you and repeats "Uh-huh...I see...right" while the other party babbles
on. He or she thinks you're hanging on every word, when you're actually
getting your work done.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CALL SCHMOOZING PLUS:&lt;/strong&gt; Your phone places calls to important contacts,
trades pleasantries, probes for career-enhancing information, and ends
by saying, "You're beautiful. Let's do lunch. Don't ever change."&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;GOSSIP NOTIFICATION:&lt;/strong&gt; Company rumors are automatically broadcast to
selected voice mailboxes. Time once wasted circulating gossip translates
into increased productivity.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CALL TERMINATE:&lt;/strong&gt; Imagine being able to fire troublesome employees
just by dialing their numbers! An excellent feature for executives with
poor confrontation skills.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;NETWORK EAVESDROP:&lt;/strong&gt; A must for the paranoid manager. Whenever anyone
in the company mentions your name during a phone conversation, a
voice-activated tape-recorder stores the call so you can review it later
and hear what people are saying about you.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SELECTIVE CALL DISCOURAGING:&lt;/strong&gt; Program the numbers of people you
really don't want to speak with. When they dial your number, your phone
transmits a mild electric shock through their receivers.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CELLULAR CRANK CALL:&lt;/strong&gt; On command, your car phone can dial any other
car phone within a 30-mile radius and tell the driver his muffler looks
as though it's about to fall off.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CALL REMINDING:&lt;/strong&gt; Store the birthdays and anniversaries of loved ones
in your telephone's memory. On the appropriate days, the phone
automatically calls them and relays heartfelt sentiments in a digitized
voice simulating your own.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CALL INTERRUPT:&lt;/strong&gt; When you need to end a conversation quickly, a
button on your phone causes a fake operator to break in and announce
that you have an emergency call on the line from Steve Jobs.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SUBLIMINA-CALL:&lt;/strong&gt; Periodically during a conversation, the phone plays
subliminal messages to the other party, such as "Say yes" and "Increase
my department's budget."&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CHARGE-FORWARDING:&lt;/strong&gt; A quick push of a button charges any long-
distance call to the person you're calling or to friends who don't look
too closely at their phone bills.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Courtesy:&lt;/strong&gt; GNU Humor&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Why Linux Viruses are fairly uncommon</title><link href="http://praveen.kumar.in/2005/09/17/why-linux-viruses-are-fairly-uncommon/" rel="alternate"></link><updated>2005-09-17T23:51:13+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-09-17:2005/09/17/why-linux-viruses-are-fairly-uncommon/</id><summary type="html">&lt;p&gt;Have you ever wondered why viruses are very rarely seen in Linux? Check
this out!&lt;/p&gt;
&lt;pre class="code text literal-block"&gt;
evilmalware 0.6 (beta)

Copyright 2000, 2001, 2003, 2005 E\/17 |-|4&amp;gt;&amp;lt;0|2z Software Foundation, Inc.

This is free software; see the source for copying conditions.  There is
NO warranty; not even for MERCHANTABILITY, COMPLETE DESTRUCTION OF IMPORTANT
DATA or FITNESS FOR A PARTICULAR PURPOSE (eg. sending thousands of Viagra
spams to people accross the world).

Basic Installation
==================

Before attempting to compile this virus make sure you have the correct
version of glibc installed, and that your firewall rules are set to `allow
everything'.

1. Put the attachment into the appropriate directory eg. /usr/src

2. Type `tar xvzf evilmalware.tar.gz' to extract the source files for
   this virus.

3. `cd' to the directory containing the virus's source code and type
   `./configure' to configure the virus for your system.  If you're
   using `csh' on an old version of System V, you might need to type
   `sh ./configure' instead to prevent `csh' from trying to execute
   `configure' itself.

4. Type `make' to compile the package. You may need to be logged in as
   root to do this.

5. Optionally, type `make check_payable' to run any self-tests that come
   with the virus, and send a large donation to an unnumbered Swiss bank
   account.

6. Type `make install' to install the virus and any spyware, trojans
   pornography, penis enlargement adverts and DDoS attacks that
   come with it.

7. You may now configure your preferred malware behaviour in
   /etc/evilmalware.conf .

SEE ALSO
   evilmalware(1), evilmalware.conf(5), please_delete_all_my_files(1)
&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Courtesy:&lt;/strong&gt; Charlie Harvey&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>My Net Speed Doubled</title><link href="http://praveen.kumar.in/2005/09/16/my-net-speed-doubled/" rel="alternate"></link><updated>2005-09-16T13:00:04+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-09-16:2005/09/16/my-net-speed-doubled/</id><summary type="html">&lt;p&gt;It was a real good news that Airtel has doubled the speed of my plan for
the same cost. I was using 128 kbps unlimited plan for INR. 999. Now for
the same cost, I am getting 256 kbps unlimited. All that I had to do was
call up Airtel and ask them to reset the speed for my port. From last
night, I am enjoying 256 kbps. Now I am on true broadband ;-)&lt;/p&gt;
</summary><category term="internet"></category></entry><entry><title>Gallery 2 Available Now!</title><link href="http://praveen.kumar.in/2005/09/15/gallery-2-available-now/" rel="alternate"></link><updated>2005-09-15T15:52:38+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-09-15:2005/09/15/gallery-2-available-now/</id><summary type="html">&lt;p&gt;The most awaited Gallery 2 is now
&lt;a class="reference external" href="http://gallery.menalto.com/gallery_2_0_released"&gt;released&lt;/a&gt;. I was
waiting for this to setup the gallery on my site. As soon as I find some
free time, I will get this stuff in and push it hard!&lt;/p&gt;
</summary><category term="photography"></category></entry><entry><title>My Pulsar, Now Here!</title><link href="http://praveen.kumar.in/2005/09/12/my-pulsar-now-here/" rel="alternate"></link><updated>2005-09-12T12:24:44+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-09-12:2005/09/12/my-pulsar-now-here/</id><summary type="html">&lt;p&gt;I am back from home today. I have brought my bike (Bajaj Pulsar 150CC
KS) as well to Bangalore. Initially I thought I will never bring my bike
here (Courtesy: Hectic traffic). But it was very difficult to survive
without the bike. So, I decided to bring it here. Need to pay the road
tax for the Karnataka state. I am not planning to change the
registration number. I will retain the number as such. It was a very
pleasent drive from Tiruvannamalai to Bangalore!&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Leaving to Home</title><link href="http://praveen.kumar.in/2005/09/07/leaving-to-home/" rel="alternate"></link><updated>2005-09-07T01:17:18+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-09-07:2005/09/07/leaving-to-home/</id><summary type="html">&lt;p&gt;I am still not recovered completly from illness. I plan to go home and
take rest for a couple of days. Also, I need to attend Anu's marraige on
Thursday. So, I am leaving home now. Will be back only by Monday (12th
Aug).&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>No mercy for Sify from LJ!</title><link href="http://praveen.kumar.in/2005/09/06/no-mercy-for-sify-from-lj/" rel="alternate"></link><updated>2005-09-06T15:05:17+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-09-06:2005/09/06/no-mercy-for-sify-from-lj/</id><summary type="html">&lt;p&gt;I was trying to post a comment in one of my friends blog in LJ using the
OpenID. But based on my ISP (at office), LJ didn't allow me to post the
comment as the IP pool is in the spammers list! What could I say? But
Sify technical guys are the most hopeless guys that I have ever seen for
an ISP!&lt;/p&gt;
&lt;div class="img-padding figure" style="width: 592px; height: auto; max-width: 100%;"&gt;
&lt;img alt="LiveJournal Spam Detection" src="http://praveen.kumar.in/images/LJSpamDetection.jpg" style="width: 592px; height: auto; max-width: 100%;"/&gt;
&lt;/div&gt;
&lt;div class="img-padding figure" style="width: 665px; height: auto; max-width: 100%;"&gt;
&lt;img alt="Sify Whois Output" src="http://praveen.kumar.in/images/SifyWhois.jpg" style="width: 665px; height: auto; max-width: 100%;"/&gt;
&lt;/div&gt;
</summary><category term="blog"></category><category term="internet"></category></entry><entry><title>My Name in Evolution 2.4</title><link href="http://praveen.kumar.in/2005/09/06/my-name-in-evolution-24/" rel="alternate"></link><updated>2005-09-06T13:38:20+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-09-06:2005/09/06/my-name-in-evolution-24/</id><summary type="html">&lt;p&gt;I am happy to be present in the list of contributors for
&lt;a class="reference external" href="http://www.go-evolution.org"&gt;Evolution&lt;/a&gt;. My name found its place in
the 2.4 release of Evolution. Hurray!&lt;/p&gt;
&lt;div class="img-padding figure" style="width: 718px; height: auto; max-width: 100%;"&gt;
&lt;img alt="Exchange Plugin Info" src="http://praveen.kumar.in/images/ExchangePluginInfo.png" style="width: 718px; height: auto; max-width: 100%;"/&gt;
&lt;/div&gt;
&lt;div class="img-padding figure" style="width: 370px; height: auto; max-width: 100%;"&gt;
&lt;img alt="Evolution Authors" src="http://praveen.kumar.in/images/EvolutionAuthors.png" style="width: 370px; height: auto; max-width: 100%;"/&gt;
&lt;/div&gt;
</summary><category term="gnome"></category><category term="novell"></category></entry><entry><title>My Gnome Desktop</title><link href="http://praveen.kumar.in/2005/09/03/my-gnome-desktop/" rel="alternate"></link><updated>2005-09-03T04:44:05+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-09-03:2005/09/03/my-gnome-desktop/</id><summary type="html">&lt;p&gt;Here is the screenshot of my latest Gnome desktop.&lt;/p&gt;
&lt;div class="figure" style="width: 1024px; height: auto; max-width: 100%;"&gt;
&lt;img alt="Gnome Desktop" src="http://praveen.kumar.in/images/GnomeDesktop.png" style="width: 1024px; height: auto; max-width: 100%;"/&gt;
&lt;/div&gt;
</summary><category term="gnome"></category></entry><entry><title>All about a "BENCH"er!</title><link href="http://praveen.kumar.in/2005/09/03/all-about-a-bencher/" rel="alternate"></link><updated>2005-09-03T02:53:56+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-09-03:2005/09/03/all-about-a-bencher/</id><summary type="html">&lt;p&gt;Well, I don't think this ad needs any more explanation!&lt;/p&gt;
&lt;div class="figure" style="width: 800px; height: auto; max-width: 100%;"&gt;
&lt;img alt="Subro" src="http://praveen.kumar.in/images/Subro.jpg" style="width: 800px; height: auto; max-width: 100%;"/&gt;
&lt;/div&gt;
</summary><category term="notags"></category></entry><entry><title>The fever runs me mad</title><link href="http://praveen.kumar.in/2005/09/02/the-fever-runs-me-mad/" rel="alternate"></link><updated>2005-09-02T04:21:35+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-09-02:2005/09/02/the-fever-runs-me-mad/</id><summary type="html">&lt;p&gt;From yesterday night, I got severe fever and it is literally running me
mad. Atleast it shouldn't have been now! Already I am running out of
time for a lot of things.&lt;/p&gt;
&lt;blockquote&gt;
Fever, fever - go away; Come again another day.&lt;/blockquote&gt;
</summary><category term="notags"></category></entry><entry><title>Back to blogging</title><link href="http://praveen.kumar.in/2005/08/29/back-to-blogging/" rel="alternate"></link><updated>2005-08-29T17:05:32+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-08-29:2005/08/29/back-to-blogging/</id><summary type="html">&lt;p&gt;All the setup in my server side is over and the migration was almost
peaceful except the fact that I have lost some of the mails in my Inbox.
Now the DNS entry is updated and the site is working full fledged as
before. Thanks for your patience, if anyone really waited for the site
to come online again ;-) I will be blogging at frequent intervals from
now on.&lt;/p&gt;
</summary><category term="blog"></category></entry><entry><title>VOIP Adapters</title><link href="http://praveen.kumar.in/2005/08/28/voip-adapters/" rel="alternate"></link><updated>2005-08-28T17:05:37+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-08-28:2005/08/28/voip-adapters/</id><summary type="html">&lt;p&gt;It was one hell a task this weekend to search for VOIP adapters in
Bangalore market. I have roamed over entire SP Road (the hardware portal
of Bangalore) in hunt for a CISCO ATA136, Linksys PAP2 or D-Link
DVG-1402S. Most of the people here didn't know what it was. In few other
places, I was shocked to hear the prices. It was triple the amount of
thier US prices and that too I need to order and wait for a week. Fuck
off, guys! I got fed up. I haved ordered it from a US store. I will pay
the FedEx shipping charge and the duty instead of buying from here.&lt;/p&gt;
</summary><category term="voip"></category></entry><entry><title>VOIP contact</title><link href="http://praveen.kumar.in/2005/08/27/voip-contact/" rel="alternate"></link><updated>2005-08-27T06:35:09+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-08-27:2005/08/27/voip-contact/</id><summary type="html">&lt;p&gt;After long time since I planned, I have done a VOIP setup at home for
receiving and making voice calls. Here are my contact information.&lt;/p&gt;
&lt;pre class="code text literal-block"&gt;
sip:692923@fwd.pulver.com
sip:kprav33n@iptel.org
sip:8599999@fonosip.com
&lt;/pre&gt;
&lt;p&gt;I have also registered and setup my US and UK PSTN numbers.&lt;/p&gt;
&lt;pre class="code text literal-block"&gt;
US:
+1-360-226-xxxx
+1-646-375-xxxx

UK:
+44-870-340-xxxx
&lt;/pre&gt;
&lt;p&gt;PS: If you are intersted in resolving the xxxx, please shoot me an
e-mail and I will let you know :-)&lt;/p&gt;
</summary><category term="voip"></category></entry><entry><title>Updated version of IP to Country database</title><link href="http://praveen.kumar.in/2005/08/16/updated-version-of-ip-to-country-database/" rel="alternate"></link><updated>2005-08-16T15:05:24+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-08-16:2005/08/16/updated-version-of-ip-to-country-database/</id><summary type="html">&lt;p&gt;The updated version of IP to Country database's MySQL dump, which is
used for the &lt;a class="reference external" href="http://journal.praveen.ws/2005/03/30/ip-to-country-plugin-is-now-up/"&gt;IP2Country
plugin&lt;/a&gt;
is now
&lt;a class="reference external" href="http://journal.praveen.ws/pub/iptocountry/ip-to-country-05-Aug-15.tar.bz2"&gt;available&lt;/a&gt;.&lt;/p&gt;
</summary><category term="blog"></category><category term="wordpress"></category><category term="privacy"></category></entry><entry><title>Wordpress setup moved to a new server</title><link href="http://praveen.kumar.in/2005/08/09/wordpress-setup-moved-to-a-new-server/" rel="alternate"></link><updated>2005-08-09T22:03:15+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-08-09:2005/08/09/wordpress-setup-moved-to-a-new-server/</id><summary type="html">&lt;p&gt;Atlast, I have successfully moved my Wordpress setup to a new server
without facing much problems. My previous host dicontinued more sooner
than expected and things are not yet settled with my new host. I have
been assigned disk space and MySQL database which helped me in
finalizing the migration. I have moved everthing completly and this post
will verify if all are working fine.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;PS:&lt;/strong&gt; When I type this post there is no DNS entry added to the new
host. So, still the site will not be reachable with the domain name.
This will be fixed soon. But anyway nobody will read this post for now
execpt me ;-)&lt;/p&gt;
</summary><category term="blog"></category><category term="wordpress"></category></entry><entry><title>Server Migration :-(</title><link href="http://praveen.kumar.in/2005/07/20/server-migration/" rel="alternate"></link><updated>2005-07-20T11:37:58+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-07-20:2005/07/20/server-migration/</id><summary type="html">&lt;p&gt;Due to some reasons, I need to migrate to a new server. I am in the
process of restoring the existing contents in the new server. I hope
this would be over by this weekend. Till then no more new posts. Also
some of the comments after this point may be lost. Sorry for the
inconvenience.&lt;/p&gt;
</summary><category term="blog"></category><category term="internet"></category></entry><entry><title>New Way to Produce Hydrogen</title><link href="http://praveen.kumar.in/2005/07/14/new-way-to-produce-hydrogen/" rel="alternate"></link><updated>2005-07-14T11:44:55+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-07-14:2005/07/14/new-way-to-produce-hydrogen/</id><summary type="html">&lt;p&gt;Most of us know that Hydrogen is difficult to produce and store. The
most common way of producing Hydrogen was from water. A new startup is
venturing a &lt;a class="reference external" href="http://news.com.com/Start-up+coins+new+way+to+harvest+hydrogen/2100-7337_3-5783870.html?tag=nefd.top"&gt;new way of producing
Hydrogen&lt;/a&gt;
with more efficiency!&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>GNU Source Installer</title><link href="http://praveen.kumar.in/2005/07/13/gnu-source-installer/" rel="alternate"></link><updated>2005-07-13T15:19:24+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-07-13:2005/07/13/gnu-source-installer/</id><summary type="html">&lt;p&gt;The traditional way of installing the software on *NIX is from source.
To install any software, you should download the sources, compile them
and install them. But with the introduction of the package management
systems from different Linux and other UNIX variant distributors, the
source install method is almost deprecated. But still, there are some
softwares that are not available in the packaged form (like rpm, deb,
gz, etc.). They are available only as source tar balls. Maintaining the
source installation is always a pain and you can't keep track of it as
powerfuly as the packaging systems. &lt;a class="reference external" href="http://www.gnu.org/software/sourceinstall/sourceinstall.html"&gt;GNU Source
Installer&lt;/a&gt;
is out here for solving all these problems.&lt;/p&gt;
</summary><category term="gnu"></category></entry><entry><title>Installation business again!</title><link href="http://praveen.kumar.in/2005/07/08/installation-business-again/" rel="alternate"></link><updated>2005-07-08T23:02:59+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-07-08:2005/07/08/installation-business-again/</id><summary type="html">&lt;p&gt;My freaking harddisk which had Linux crashed again. Yesterday, I got a
replacement for that one. I had to install Linux back again. After a
long thought of choice between Debian and Ubuntu, I have decided to go
for Ubuntu. I installed Hoary from CD and upgraded to Breezy. I am not
sure if it is right to go for breezy so early. Well, will have some
fireworks on the system!&lt;/p&gt;
</summary><category term="linux"></category></entry><entry><title>OMG, Robots to play guitar?</title><link href="http://praveen.kumar.in/2005/07/08/omg-robots-to-play-guitar/" rel="alternate"></link><updated>2005-07-08T11:17:29+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-07-08:2005/07/08/omg-robots-to-play-guitar/</id><summary type="html">&lt;p&gt;Slashdot
&lt;a class="reference external" href="http://hardware.slashdot.org/article.pl?sid=05/07/08/0245247"&gt;talks&lt;/a&gt;
about Guitar playing robots! No wonder that there is nothing impossible
before science. Just write the notes and throw it to your robot to play
it on Guitar.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Service manager pain resolved in Gnome now</title><link href="http://praveen.kumar.in/2005/07/07/service-manager-pain-resolved-in-gnome-now/" rel="alternate"></link><updated>2005-07-07T17:47:21+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-07-07:2005/07/07/service-manager-pain-resolved-in-gnome-now/</id><summary type="html">&lt;p&gt;The service manager tool is mostly a distro specific tool. We have one
common tool in KDE. Gnome lacked one. I always preferred doing it
manually. It seems that the problem is now solved and there is a distro
independant service manager tool for Gnome. Ubuntu's Breezy pulled in
this application. Read more about this at &lt;a class="reference external" href="http://www.whiprush.org/2005/07/services.html"&gt;Jorge Castro's
blog&lt;/a&gt;.&lt;/p&gt;
</summary><category term="gnome"></category></entry><entry><title>No Software Patents: 648 - 14</title><link href="http://praveen.kumar.in/2005/07/07/no-software-patents-648-14/" rel="alternate"></link><updated>2005-07-07T12:00:58+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-07-07:2005/07/07/no-software-patents-648-14/</id><summary type="html">&lt;p&gt;Atlast the European Parliment rejected a law for patents on software
with a huge majority of 648 - 14! (18 didn't turn up for voting or
didn't vote; absentees here too?!) A wonderful victory for all the
people who where fighting against the software patents. The very first
news that I read today and this makes me more than happy! Read more
about it at
&lt;a class="reference external" href="http://www.groklaw.net/article.php?story=20050706113609571"&gt;GrokLaw&lt;/a&gt;.&lt;/p&gt;
</summary><category term="law"></category></entry><entry><title>Yet another Linux distribution?</title><link href="http://praveen.kumar.in/2005/07/06/yet-another-linux-distribution/" rel="alternate"></link><updated>2005-07-06T13:01:21+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-07-06:2005/07/06/yet-another-linux-distribution/</id><summary type="html">&lt;p&gt;Here is yet another Linux distribution.
&lt;a class="reference external" href="http://os.newsforge.com/article.pl?sid=05/06/23/1759257&amp;amp;from=rss"&gt;OpenLX&lt;/a&gt;!
This time from India. Should wait and see if it suceeds!&lt;/p&gt;
</summary><category term="linux"></category></entry><entry><title>LiveLAMP Available: $10,000 Server Software Solution Free</title><link href="http://praveen.kumar.in/2005/07/05/livelamp-available-10000-server-software-solution-free/" rel="alternate"></link><updated>2005-07-05T14:18:43+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-07-05:2005/07/05/livelamp-available-10000-server-software-solution-free/</id><summary type="html">&lt;p&gt;Open Source Victoria (OSV), an industry cluster of more than 60 open
source and free software providers, has responded to a group of IT
teachers who want a simple way to test and deploy Linux servers in
schools with a free server software CD.&lt;/p&gt;
&lt;p&gt;OSV has developed a free product called
&lt;a class="reference external" href="http://www.osv.org.au/index.cgi?tid=151"&gt;LiveLAMP&lt;/a&gt;, which is a
bootable CD that turns a spare computer into a Linux development server
for students to practice and publish programming exercises in over a
dozen languages with hundreds of development tools. . . .&lt;/p&gt;
&lt;p&gt;According to OSV, LiveLAMP can turn any PC into an instant server
capable of supporting up to 1,000 students doing work on over a dozen
programming languages and hundreds of development tools. Technologies
covered include PHP, Python, Perl, MySQL, Ruby, PostgreSQL, C++, C,
Pascal, Fortran, CVS, Apache, Lex/Yacc, text editing, HTML, JavaScript,
CSS, XML and many more. LiveLAMP will fully integrate with their
existing Windows, Apple or Linux systems. OSV estimates that purchasing
proprietary versions of this software for 1000 students and teachers
would cost each school over $10,000 if they had to pay for it.&lt;/p&gt;
&lt;p&gt;This is a Con Zymaris baby, and you can read his first announcement
about the project dated May 10 here. The concept from the email:&lt;/p&gt;
&lt;p&gt;(Secondary) school teachers want to deploy Linux in labs, but their IT
staff Don't Do Linux.&lt;/p&gt;
&lt;p&gt;Teacher gets CD and a spare box. Boot from CD, wipe hard disk and
install data (/home, /etc, /var) to disk (programs run from CD). That
box serves LAMP to the other machines in the lab.&lt;/p&gt;
&lt;p&gt;Read more about this at
&lt;a class="reference external" href="http://www.groklaw.net/article.php?story=20050702192728298"&gt;GrokLaw&lt;/a&gt;&lt;/p&gt;
</summary><category term="linux"></category></entry><entry><title>Reinstalling Windows On A Dual Boot Machine</title><link href="http://praveen.kumar.in/2005/07/05/reinstalling-windows-on-a-dual-boot-machine/" rel="alternate"></link><updated>2005-07-05T10:31:40+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-07-05:2005/07/05/reinstalling-windows-on-a-dual-boot-machine/</id><summary type="html">&lt;p&gt;Dual boot machines with Microsoft Windows and GNU/Linux is more widely
seen in the Desktop PCs than a machine which is operated by GNU/Linux
alone. Most of the newbies somehow manage to install GNU/Linux on their
machine by stealing some space which is used by Windows. But, when it
comes to reinstalling Windows again, they are dreaded like hell. The
reason being that they think reinstalling Windows removes Linux from
thier machine. I have seen a lot of posts to the local user groups on
this topic. Recently one of my friends was scared to do anything with
her Windows and the registry was corrupted and she needed to reinstall
it and asking a forum for some suggestions. So, I thought that let me
post an entry on my blog on this topic so that atleast some will find
the answer straight away by a search. Well, Google always favours me!&lt;/p&gt;
&lt;p&gt;The most common myth on a dual boot machine is that when Windows is
reinstalled, Linux is removed from the machine. But the fact is that the
data in the Linux partition is not at all touched unless you use the
Linux partition for installation. Then, how does your Linux vanishes? It
is not the Linux that vanishes but the boot loader program which is used
to give you the boot selection option is removed from the MBR and the
Window's boot loader goes to the MBR. This means that when you restore
your boot loader program to the MBR again, you should be able to boot
into Linux without any problem and ofcourse you will find your data
untouched. There are two most widely used boot loaders on Linux. They
are &lt;a class="reference external" href="http://www.gnu.org/software/grub/"&gt;GRUB&lt;/a&gt; and
&lt;a class="reference external" href="http://freshmeat.net/projects/lilo/"&gt;LILO&lt;/a&gt;. GRUB has gone more
popular these days over LILO. Here are the instructions for restoring
your boot loader. Unless specified explictly, these instructions are
common irrespective of the boot loader.&lt;/p&gt;
&lt;p&gt;The first step is to boot into your existing Linux somehow. There is no
explicit way of booting into your Linux since the boot loader is removed
from the MBR. You need to get the help of a rescue disk. Most of the
popular distribution's installation CD (CD #1) can be used as a rescue
disk as well. For more details on this, boot with your installation CD
and read the help on the boot prompt for options. I will deal with two
major distributions, Fedora and Debian. You need to know which is the
'/' partition of your Linux. If you know this already, then your job is
simple. Otherwise, you need to use the installation CD and go to the
rescue console with is usually in the &lt;code&gt;tty2&lt;/code&gt; to find out which is
your '/' partition. I am not explaining it in detail as it is beyond the
scope of the effort for this topic. Once you have found the '/'
partition, you can proceed with booting your existing Linux.&lt;/p&gt;
&lt;p&gt;In Fedora, insert the installation CD and type &lt;code&gt;rescue&lt;/code&gt; in the
boot prompt. This will boot the rescue kernel and drop you in a shell.
At this time, your '/' is from RAMFS. You need to change it to your
actual '/' partition. For doing this, issue the command
&lt;code&gt;chroot /dev/hda2&lt;/code&gt; assuming that &lt;code&gt;/dev/hda2&lt;/code&gt; is your '/'
partition. You will be now in your local Linux work area.&lt;/p&gt;
&lt;p&gt;In Debian, insert the installation CD and type
&lt;code&gt;rescue root=/dev/hda2&lt;/code&gt; assuming &lt;code&gt;/dev/hda2&lt;/code&gt; is your '/'
partition. The rescue kernel will boot and drop you in the shell
directly in your local Linux work area.&lt;/p&gt;
&lt;p&gt;Now you are all set to rewrite the boot loader back to the MBR. If you
are using LILO, then just enter the command &lt;code&gt;/sbin/lilo&lt;/code&gt; to
restore the LILO back to where it was already. If you are using GRUB,
you need to specify the where to write the MBR. Assuming your MBR is
&lt;code&gt;/dev/hda&lt;/code&gt;, then issue the command
&lt;code&gt;/sbin/grub-install /dev/hda&lt;/code&gt; to restore your GRUB back to MBR.
Note that you need not worry that you will overwrite the Windows boot
loader and you will not be able to boot into your Windows. Actually,
Windows boot loader is installed both in MBR and BR of the Windows' C:
and you will not be in a problem as the boot loader in the BR of
Windows' C: is still fine.&lt;/p&gt;
&lt;p&gt;Now reboot your machine to see your boot loader back on the MBR.
Happy dual booting!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;PS:&lt;/strong&gt; I am planning to cover how to find out your root partition and
how to identify the boot loader you were using as a seperate one.&lt;/p&gt;
</summary><category term="linux"></category></entry><entry><title>We don't need GPL anymore?</title><link href="http://praveen.kumar.in/2005/07/04/we-dont-need-gpl-anymore/" rel="alternate"></link><updated>2005-07-04T12:52:55+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-07-04:2005/07/04/we-dont-need-gpl-anymore/</id><summary type="html">&lt;p&gt;Eric Raymonds'
&lt;a class="reference external" href="http://www.onlamp.com/pub/a/onlamp/2005/06/30/esr_interview.html"&gt;view&lt;/a&gt;
that we don't need GPL anymore kindled a &lt;a class="reference external" href="http://www.ae.iitm.ac.in/pipermail/ilugc/2005-July/019409.html"&gt;flame
war&lt;/a&gt;
again in &lt;a class="reference external" href="http://www.chennailug.org"&gt;ILUGC&lt;/a&gt;. I hope not only in
ILUGC!&lt;/p&gt;
&lt;p&gt;What the heck does it mean? I don't go with Eric Raymond!&lt;/p&gt;
</summary><category term="license"></category></entry><entry><title>Going home after a couple of months</title><link href="http://praveen.kumar.in/2005/06/29/going-home-after-a-couple-of-months/" rel="alternate"></link><updated>2005-06-29T14:04:03+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-06-29:2005/06/29/going-home-after-a-couple-of-months/</id><summary type="html">&lt;p&gt;I am going home (Tiruvannamalai) today after a couple of months.
Tomorrow is my grandparents' 50th marriage anniversary. We planned to go
to Tiruvannamali temple and do a small pooja. I am just going to attend
it. I will be back at Bangalore by tomorrow evening.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Settled with the IRC nick for FreeNode - prav33n</title><link href="http://praveen.kumar.in/2005/06/27/settled-with-the-irc-nick-for-freenode-prav33n/" rel="alternate"></link><updated>2005-06-27T12:08:23+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-06-27:2005/06/27/settled-with-the-irc-nick-for-freenode-prav33n/</id><summary type="html">&lt;p&gt;After a long thoughts, I have settled with the IRC nick prav33n for
FreeNode. It was not registered luckily and I have registered it.
Because of the unavailabilty of my usual nick 'rocky' on FreeNode, I was
forced to do this. As a result, I am now prav33n on GimpNet as well.&lt;/p&gt;
</summary><category term="irc"></category></entry><entry><title>This is how you could be misunderstood on IRC!</title><link href="http://praveen.kumar.in/2005/06/24/this-is-how-you-could-be-misunderstood-on-irc/" rel="alternate"></link><updated>2005-06-24T09:43:21+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-06-24:2005/06/24/this-is-how-you-could-be-misunderstood-on-irc/</id><summary type="html">&lt;p&gt;Here some IRC snippets that I have recently read from
&lt;a class="reference external" href="http://bash.org/"&gt;bash.org&lt;/a&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nt"&gt;&amp;lt;anamexis&amp;gt; &lt;/span&gt;oh man
&lt;span class="nt"&gt;&amp;lt;anamexis&amp;gt; &lt;/span&gt;I was opening a coke, right
&lt;span class="k"&gt;--&amp;gt; &lt;/span&gt;&lt;span class="s"&gt;Beefpile &lt;/span&gt;&lt;span class="c"&gt;(~mbeefpile@cloaked.wi.rr.com) has joined #themacmind&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;anamexis&amp;gt; &lt;/span&gt;and it exploded
&lt;span class="nt"&gt;&amp;lt;anamexis&amp;gt; &lt;/span&gt;ALMOST all over my keyboard
&lt;span class="nt"&gt;&amp;lt;anamexis&amp;gt; &lt;/span&gt;but I got it away just in time
&lt;span class="k"&gt;&amp;lt;-- &lt;/span&gt;&lt;span class="s"&gt;Beefpile &lt;/span&gt;&lt;span class="c"&gt;has quit (sick fuckers)&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;anamexis&amp;gt; &lt;/span&gt;:&amp;lt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;IRC users should really be careful that you are not misunderstood by a
late comer in the thread ;-)&lt;/p&gt;
&lt;p&gt;Also, be clear on your questions. Else, you will be pissed off like
this!&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nt"&gt;&amp;lt;mage&amp;gt; &lt;/span&gt;what should I give sister for unzipping?
&lt;span class="nt"&gt;&amp;lt;Kevyn&amp;gt; &lt;/span&gt;Um. Ten bucks?
&lt;span class="nt"&gt;&amp;lt;mage&amp;gt; &lt;/span&gt;no I mean like, WinZip?
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;And this is how people really misunderstand the topic sometimes ;-)&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="k"&gt;*** &lt;/span&gt;&lt;span class="s"&gt;Topic &lt;/span&gt;&lt;span class="c"&gt;in #doghouse is 'Our hearts are extended to the 17 victims of the recent internet fraud'&lt;/span&gt;
&lt;span class="k"&gt;* &lt;/span&gt;&lt;span class="gi"&gt;Anubis has joined #doghouse&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;Anubis&amp;gt; &lt;/span&gt;what fraud?
&lt;span class="nt"&gt;&amp;lt;Kadmium&amp;gt; &lt;/span&gt;You haven't heard about it?
&lt;span class="nt"&gt;&amp;lt;Anubis&amp;gt; &lt;/span&gt;no?
&lt;span class="nt"&gt;&amp;lt;Kadmium&amp;gt; &lt;/span&gt;You can read the full story at http://www.tubgirl.com
&lt;span class="nt"&gt;&amp;lt;Anubis&amp;gt; &lt;/span&gt;omg wtf!
&lt;span class="k"&gt;*** &lt;/span&gt;&lt;span class="s"&gt;Kadmium &lt;/span&gt;&lt;span class="c"&gt;changes topic to 'Our hearts are extended to the 18 victims of the recent internet fraud'&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;But, girls always find problems with facts and figures no matter how
clear you state something ;-)&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nt"&gt;&amp;lt;Sui88&amp;gt; &lt;/span&gt;67% of girls are stupid
&lt;span class="nt"&gt;&amp;lt;V-girl&amp;gt; &lt;/span&gt;i belong with the other 13%
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Most of the begginers are annoyed with the acronyms that are used. Not
understanding the acronyms will lead you to the height of frustration
like this!&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nt"&gt;&amp;lt;studdud&amp;gt; &lt;/span&gt;what the fuck is wtf?
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Some people give smart ideas so that you don't misunderstand the way of
doing it, but you don't understand the whole idea by itself.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nt"&gt;&amp;lt;reo4k&amp;gt; &lt;/span&gt;just type /quit whoever, and it'll quit them from irc
&lt;span class="k"&gt;* &lt;/span&gt;&lt;span class="gi"&gt;luckyb1tch has quit IRC (r`heaven)&lt;/span&gt;
&lt;span class="k"&gt;* &lt;/span&gt;&lt;span class="gi"&gt;r3devl has quit IRC (r`heaven)&lt;/span&gt;
&lt;span class="k"&gt;* &lt;/span&gt;&lt;span class="gi"&gt;sasopi has quit IRC (r`heaven)&lt;/span&gt;
&lt;span class="k"&gt;* &lt;/span&gt;&lt;span class="gi"&gt;phhhfft has quit IRC (r`heaven)&lt;/span&gt;
&lt;span class="k"&gt;* &lt;/span&gt;&lt;span class="gi"&gt;blackersnake has quit IRC (r`heaven)&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;ibaN`reo4k[ex]&amp;gt; &lt;/span&gt;that's gotta hurt
&lt;span class="nt"&gt;&amp;lt;r`heaven&amp;gt; &lt;/span&gt;:(
&lt;/pre&gt;&lt;/div&gt;
</summary><category term="irc"></category></entry><entry><title>A busy week</title><link href="http://praveen.kumar.in/2005/06/24/a-busy-week/" rel="alternate"></link><updated>2005-06-24T08:55:40+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-06-24:2005/06/24/a-busy-week/</id><summary type="html">&lt;p&gt;It was a busy week altogether. Development of new features for Evolution
2.4 kept me fully accoupied throughout this week. I bought my new guitar
on last Sunday and there will be a separate post on that topic!
Otherwise, this post is to just remind that I am alive.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Who will Google buy next?</title><link href="http://praveen.kumar.in/2005/06/15/who-will-google-buy-next/" rel="alternate"></link><updated>2005-06-15T16:05:35+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-06-15:2005/06/15/who-will-google-buy-next/</id><summary type="html">&lt;p&gt;Check out the history of acquisitions by Google and recommendations for
future &lt;a class="reference external" href="http://www.kuro5hin.org/story/2005/6/12/143721/743"&gt;here&lt;/a&gt;.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Novell Annual Day Celeberations Tomorrow</title><link href="http://praveen.kumar.in/2005/06/10/novell-annual-day-celeberations-tomorrow/" rel="alternate"></link><updated>2005-06-10T17:31:48+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-06-10:2005/06/10/novell-annual-day-celeberations-tomorrow/</id><summary type="html">&lt;p&gt;&lt;a class="reference external" href="http://www.novell.com/npgb"&gt;We&lt;/a&gt; have our annual day celebrations
tomorrow by 15:00 IST at Taj. First major event in Novell since I
joined. Planning to attend without fail. The agenda looks pretty good.&lt;/p&gt;
</summary><category term="novell"></category></entry><entry><title>Debian Web Collage Screensaver; Porn on Debian?</title><link href="http://praveen.kumar.in/2005/06/10/debian-web-collage-screensaver-porn-on-debian/" rel="alternate"></link><updated>2005-06-10T10:29:37+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-06-10:2005/06/10/debian-web-collage-screensaver-porn-on-debian/</id><summary type="html">&lt;p&gt;There is a new screen saver that is introduced in Sarge, which initiated
a &lt;a class="reference external" href="http://lists.debian.org/debian-project/2005/06/msg00031.html"&gt;flame
war&lt;/a&gt; at
a Debian mailing list. The screen saver is named "Web Collage", which
takes images from the web by random search. The problem is that a lot of
porn also comes along with the other images. A default install of KDE
would be using random screensaver. At some point the Web Collage saver
might be used and you may get a porn on your screen. So, don't get
shocked; prepare to enjoy the fun or tweak the settings for saving your
head from your boss!&lt;/p&gt;
</summary><category term="debian"></category></entry><entry><title>Top hit for "mallu rap" on Google, Yahoo and MSN</title><link href="http://praveen.kumar.in/2005/06/09/top-hit-for-mallu-rap-on-google-yahoo-and-msn/" rel="alternate"></link><updated>2005-06-09T17:03:57+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-06-09:2005/06/09/top-hit-for-mallu-rap-on-google-yahoo-and-msn/</id><summary type="html">&lt;p&gt;I have noticed that my journal was the top hit for the search term
"mallu rap" on Google, Yahoo and MSN!&lt;/p&gt;
&lt;div class="img-padding figure" style="width: 760px; height: auto; max-width: 100%;"&gt;
&lt;img alt="Google Search Result" src="http://praveen.kumar.in/images/MalluRapGoogle.jpg" style="width: 760px; height: auto; max-width: 100%;"/&gt;
&lt;/div&gt;
&lt;div class="img-padding figure" style="width: 760px; height: auto; max-width: 100%;"&gt;
&lt;img alt="Yahoo Search Result" src="http://praveen.kumar.in/images/MalluRapYahoo.jpg" style="width: 760px; height: auto; max-width: 100%;"/&gt;
&lt;/div&gt;
&lt;div class="img-padding figure" style="width: 760px; height: auto; max-width: 100%;"&gt;
&lt;img alt="MSN Search Result" src="http://praveen.kumar.in/images/MalluRapMSN.jpg" style="width: 760px; height: auto; max-width: 100%;"/&gt;
&lt;/div&gt;
</summary><category term="notags"></category></entry><entry><title>The evolution of a programmer</title><link href="http://praveen.kumar.in/2005/06/09/the-evolution-of-a-programmer/" rel="alternate"></link><updated>2005-06-09T17:02:50+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-06-09:2005/06/09/the-evolution-of-a-programmer/</id><summary type="html">&lt;p&gt;Few years back, I have received a forward about the evolution of a
programmer. I just remembered it all of a sudden. I just wanted to read
it again. I searched my mail archives. But I was not able to locate it.
I google for it and found. Here is that one for you!&lt;/p&gt;
&lt;div class="section" id="high-school-jr-high"&gt;
&lt;h2&gt;High School/Jr.High&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;10 PRINT "HELLO WORLD"
20 END
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="first-year-in-college"&gt;
&lt;h2&gt;First year in College&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="k"&gt;program&lt;/span&gt; &lt;span class="n"&gt;Hello&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;input&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;output&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="k"&gt;begin&lt;/span&gt;
    &lt;span class="nb"&gt;writeln&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'Hello World'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="senior-year-in-college"&gt;
&lt;h2&gt;Senior year in College&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;defun&lt;/span&gt; &lt;span class="nv"&gt;hello&lt;/span&gt;
  &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;cons &lt;/span&gt;&lt;span class="ss"&gt;'Hello&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;list &lt;/span&gt;&lt;span class="ss"&gt;'World&lt;/span&gt;&lt;span class="p"&gt;))))&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="new-professional"&gt;
&lt;h2&gt;New professional&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="cp"&gt;#include &amp;lt;stdio.h&amp;gt;&lt;/span&gt;
&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;void&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;"Hello "&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"World"&lt;/span&gt;&lt;span class="p"&gt;};&lt;/span&gt;
  &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"%s"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
  &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="seasoned-professional"&gt;
&lt;h2&gt;Seasoned professional&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="cp"&gt;#include &amp;lt;iostream.h&amp;gt;&lt;/span&gt;
&lt;span class="cp"&gt;#include &amp;lt;string.h&amp;gt;&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;string&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="k"&gt;private&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;
  &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;ptr&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;ptr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="kt"&gt;char&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;ptr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="n"&gt;string&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;ptr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="kt"&gt;char&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;size&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
    &lt;span class="n"&gt;strcpy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ptr&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ptr&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;delete&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;ptr&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="k"&gt;friend&lt;/span&gt; &lt;span class="n"&gt;ostream&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="k"&gt;operator&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ostream&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="n"&gt;string&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;string&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="k"&gt;operator&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="n"&gt;ostream&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="k"&gt;operator&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ostream&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;stream&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="n"&gt;string&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;stream&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ptr&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;string&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="k"&gt;operator&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;chrs&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;chrs&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;delete&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;ptr&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
   &lt;span class="n"&gt;size&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;strlen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;chrs&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;ptr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="kt"&gt;char&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;size&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
    &lt;span class="n"&gt;strcpy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ptr&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;chrs&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;string&lt;/span&gt; &lt;span class="n"&gt;str&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="n"&gt;str&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Hello World"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="n"&gt;cout&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;str&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;endl&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="master-programmer"&gt;
&lt;h2&gt;Master Programmer&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="p"&gt;[&lt;/span&gt;
&lt;span class="n"&gt;uuid&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;2573F8F&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;CFEE&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;101&lt;/span&gt;&lt;span class="n"&gt;A&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="n"&gt;A9F&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mo"&gt;00&lt;/span&gt;&lt;span class="n"&gt;AA00342820&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;library&lt;/span&gt; &lt;span class="n"&gt;LHello&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// bring in the master library&lt;/span&gt;
    &lt;span class="n"&gt;importlib&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"actimp.tlb"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;importlib&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"actexp.tlb"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="c1"&gt;// bring in my interfaces&lt;/span&gt;
    &lt;span class="cp"&gt;#include "pshlo.idl"&lt;/span&gt;

    &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="n"&gt;uuid&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;2573F8F&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;CFEE&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;101&lt;/span&gt;&lt;span class="n"&gt;A&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="n"&gt;A9F&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mo"&gt;00&lt;/span&gt;&lt;span class="n"&gt;AA00342820&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="n"&gt;cotype&lt;/span&gt; &lt;span class="n"&gt;THello&lt;/span&gt;
 &lt;span class="p"&gt;{&lt;/span&gt;
 &lt;span class="n"&gt;interface&lt;/span&gt; &lt;span class="n"&gt;IHello&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
 &lt;span class="n"&gt;interface&lt;/span&gt; &lt;span class="n"&gt;IPersistFile&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
 &lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="p"&gt;[&lt;/span&gt;
&lt;span class="n"&gt;exe&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="n"&gt;uuid&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;2573F&lt;/span&gt;&lt;span class="mi"&gt;890&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;CFEE&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;101&lt;/span&gt;&lt;span class="n"&gt;A&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="n"&gt;A9F&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mo"&gt;00&lt;/span&gt;&lt;span class="n"&gt;AA00342820&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;module&lt;/span&gt; &lt;span class="n"&gt;CHelloLib&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;

    &lt;span class="c1"&gt;// some code related header files&lt;/span&gt;
    &lt;span class="n"&gt;importheader&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;windows&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;importheader&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;ole2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;importheader&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;except&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;hxx&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;importheader&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"pshlo.h"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;importheader&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"shlo.hxx"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;importheader&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"mycls.hxx"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="c1"&gt;// needed typelibs&lt;/span&gt;
    &lt;span class="n"&gt;importlib&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"actimp.tlb"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;importlib&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"actexp.tlb"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;importlib&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"thlo.tlb"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="n"&gt;uuid&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;2573F&lt;/span&gt;&lt;span class="mi"&gt;891&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;CFEE&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;101&lt;/span&gt;&lt;span class="n"&gt;A&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="n"&gt;A9F&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mo"&gt;00&lt;/span&gt;&lt;span class="n"&gt;AA00342820&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="n"&gt;aggregatable&lt;/span&gt;
    &lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="n"&gt;coclass&lt;/span&gt; &lt;span class="n"&gt;CHello&lt;/span&gt;
 &lt;span class="p"&gt;{&lt;/span&gt;
 &lt;span class="n"&gt;cotype&lt;/span&gt; &lt;span class="n"&gt;THello&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
 &lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;


&lt;span class="cp"&gt;#include "ipfix.hxx"&lt;/span&gt;

&lt;span class="k"&gt;extern&lt;/span&gt; &lt;span class="n"&gt;HANDLE&lt;/span&gt; &lt;span class="n"&gt;hEvent&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="n"&gt;class&lt;/span&gt; &lt;span class="nl"&gt;CHello&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;public&lt;/span&gt; &lt;span class="n"&gt;CHelloBase&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="nl"&gt;public&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;IPFIX&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;CLSID_CHello&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="n"&gt;CHello&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;IUnknown&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;pUnk&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="n"&gt;CHello&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

    &lt;span class="n"&gt;HRESULT&lt;/span&gt;  &lt;span class="kr"&gt;__stdcall&lt;/span&gt; &lt;span class="nf"&gt;PrintSz&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;LPWSTR&lt;/span&gt; &lt;span class="n"&gt;pwszString&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nl"&gt;private&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;cObjRef&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;


&lt;span class="cp"&gt;#include &amp;lt;windows.h&amp;gt;&lt;/span&gt;
&lt;span class="cp"&gt;#include &amp;lt;ole2.h&amp;gt;&lt;/span&gt;
&lt;span class="cp"&gt;#include &amp;lt;stdio.h&amp;gt;&lt;/span&gt;
&lt;span class="cp"&gt;#include &amp;lt;stdlib.h&amp;gt;&lt;/span&gt;
&lt;span class="cp"&gt;#include "thlo.h"&lt;/span&gt;
&lt;span class="cp"&gt;#include "pshlo.h"&lt;/span&gt;
&lt;span class="cp"&gt;#include "shlo.hxx"&lt;/span&gt;
&lt;span class="cp"&gt;#include "mycls.hxx"&lt;/span&gt;

&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;CHello&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;cObjRef&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="n"&gt;CHello&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;CHello&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;IUnknown&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;pUnk&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;CHelloBase&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pUnk&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;cObjRef&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;HRESULT&lt;/span&gt;  &lt;span class="kr"&gt;__stdcall&lt;/span&gt;  &lt;span class="n"&gt;CHello&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;PrintSz&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;LPWSTR&lt;/span&gt; &lt;span class="n"&gt;pwszString&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"%ws&lt;/span&gt;
 &lt;span class="n"&gt;pwszString&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ResultFromScode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;S_OK&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;


&lt;span class="n"&gt;CHello&lt;/span&gt;&lt;span class="o"&gt;::~&lt;/span&gt;&lt;span class="n"&gt;CHello&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;void&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;

&lt;span class="c1"&gt;// when the object count goes to zero, stop the server&lt;/span&gt;
&lt;span class="n"&gt;cObjRef&lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="n"&gt;cObjRef&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;PulseEvent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;hEvent&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="cp"&gt;#include &amp;lt;windows.h&amp;gt;&lt;/span&gt;
&lt;span class="cp"&gt;#include &amp;lt;ole2.h&amp;gt;&lt;/span&gt;
&lt;span class="cp"&gt;#include "pshlo.h"&lt;/span&gt;
&lt;span class="cp"&gt;#include "shlo.hxx"&lt;/span&gt;
&lt;span class="cp"&gt;#include "mycls.hxx"&lt;/span&gt;

&lt;span class="n"&gt;HANDLE&lt;/span&gt; &lt;span class="n"&gt;hEvent&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

 &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;_cdecl&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;argc&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;argv&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="n"&gt;ULONG&lt;/span&gt; &lt;span class="n"&gt;ulRef&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;DWORD&lt;/span&gt; &lt;span class="n"&gt;dwRegistration&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;CHelloCF&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;pCF&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;new&lt;/span&gt; &lt;span class="n"&gt;CHelloCF&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="n"&gt;hEvent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;CreateEvent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;FALSE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;FALSE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// Initialize the OLE libraries&lt;/span&gt;
&lt;span class="n"&gt;CoInitializeEx&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;COINIT_MULTITHREADED&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="n"&gt;CoRegisterClassObject&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;CLSID_CHello&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pCF&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;CLSCTX_LOCAL_SERVER&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;REGCLS_MULTIPLEUSE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;dwRegistration&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// wait on an event to stop&lt;/span&gt;
&lt;span class="n"&gt;WaitForSingleObject&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;hEvent&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;INFINITE&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// revoke and release the class object&lt;/span&gt;
&lt;span class="n"&gt;CoRevokeClassObject&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dwRegistration&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="n"&gt;ulRef&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pCF&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;Release&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="c1"&gt;// Tell OLE we are going away.&lt;/span&gt;
&lt;span class="n"&gt;CoUninitialize&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;extern&lt;/span&gt; &lt;span class="n"&gt;CLSID&lt;/span&gt; &lt;span class="n"&gt;CLSID_CHello&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;extern&lt;/span&gt; &lt;span class="n"&gt;UUID&lt;/span&gt; &lt;span class="n"&gt;LIBID_CHelloLib&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="n"&gt;CLSID&lt;/span&gt; &lt;span class="n"&gt;CLSID_CHello&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="cm"&gt;/* 2573F891-CFEE-101A-9A9F-00AA00342820 */&lt;/span&gt;
    &lt;span class="mh"&gt;0x2573F891&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="mh"&gt;0xCFEE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="mh"&gt;0x101A&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="mh"&gt;0x9A&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x9F&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0xAA&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x34&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x28&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x20&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="n"&gt;UUID&lt;/span&gt; &lt;span class="n"&gt;LIBID_CHelloLib&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="cm"&gt;/* 2573F890-CFEE-101A-9A9F-00AA00342820 */&lt;/span&gt;
    &lt;span class="mh"&gt;0x2573F890&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="mh"&gt;0xCFEE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="mh"&gt;0x101A&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="mh"&gt;0x9A&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x9F&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0xAA&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x34&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x28&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x20&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="cp"&gt;#include &amp;lt;windows.h&amp;gt;&lt;/span&gt;
&lt;span class="cp"&gt;#include &amp;lt;ole2.h&amp;gt;&lt;/span&gt;
&lt;span class="cp"&gt;#include &amp;lt;stdlib.h&amp;gt;&lt;/span&gt;
&lt;span class="cp"&gt;#include &amp;lt;string.h&amp;gt;&lt;/span&gt;
&lt;span class="cp"&gt;#include &amp;lt;stdio.h&amp;gt;&lt;/span&gt;
&lt;span class="cp"&gt;#include "pshlo.h"&lt;/span&gt;
&lt;span class="cp"&gt;#include "shlo.hxx"&lt;/span&gt;
&lt;span class="cp"&gt;#include "clsid.h"&lt;/span&gt;

&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;_cdecl&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;argc&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;argv&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="n"&gt;HRESULT&lt;/span&gt;  &lt;span class="n"&gt;hRslt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;IHello&lt;/span&gt;        &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;pHello&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;ULONG&lt;/span&gt;  &lt;span class="n"&gt;ulCnt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;IMoniker&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;pmk&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;WCHAR&lt;/span&gt;  &lt;span class="n"&gt;wcsT&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;_MAX_PATH&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="n"&gt;WCHAR&lt;/span&gt;  &lt;span class="n"&gt;wcsPath&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;_MAX_PATH&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;

&lt;span class="c1"&gt;// get object path&lt;/span&gt;
&lt;span class="n"&gt;wcsPath&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sc"&gt;'\0'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;wcsT&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sc"&gt;'\0'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="n"&gt;argc&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;mbstowcs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;wcsPath&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;argv&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;strlen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;argv&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;wcsupr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;wcsPath&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;fprintf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;stderr&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Object path must be specified&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;// get print string&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;argc&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;mbstowcs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;wcsT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;argv&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;strlen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;argv&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="k"&gt;else&lt;/span&gt;
    &lt;span class="n"&gt;wcscpy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;wcsT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;L"Hello World"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Linking to object %ws&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;wcsPath&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Text String %ws&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;wcsT&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// Initialize the OLE libraries&lt;/span&gt;
&lt;span class="n"&gt;hRslt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;CoInitializeEx&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;COINIT_MULTITHREADED&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;SUCCEEDED&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;hRslt&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;


    &lt;span class="n"&gt;hRslt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;CreateFileMoniker&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;wcsPath&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;pmk&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;SUCCEEDED&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;hRslt&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
 &lt;span class="n"&gt;hRslt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BindMoniker&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pmk&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;IID_IHello&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;pHello&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;SUCCEEDED&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;hRslt&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

 &lt;span class="c1"&gt;// print a string out&lt;/span&gt;
 &lt;span class="n"&gt;pHello&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;PrintSz&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;wcsT&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

 &lt;span class="n"&gt;Sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2000&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
 &lt;span class="n"&gt;ulCnt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pHello&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;Release&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
 &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;
 &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Failure to connect, status: %lx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;hRslt&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="c1"&gt;// Tell OLE we are going away.&lt;/span&gt;
    &lt;span class="n"&gt;CoUninitialize&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="apprentice-hacker"&gt;
&lt;h2&gt;Apprentice Hacker&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="c1"&gt;#!/usr/local/bin/perl&lt;/span&gt;
&lt;span class="nv"&gt;$msg&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"Hello, world.\n"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$#ARGV&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;while&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;defined&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$arg&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;@ARGV&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nv"&gt;$outfilename&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$arg&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;FILE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="nv"&gt;$outfilename&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nb"&gt;die&lt;/span&gt; &lt;span class="s"&gt;"Can't write $arg: $!\n"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;FILE&lt;/span&gt; &lt;span class="nv"&gt;$msg&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nb"&gt;close&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;FILE&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nb"&gt;die&lt;/span&gt; &lt;span class="s"&gt;"Can't close $arg: $!\n"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$msg&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="experienced-hacker"&gt;
&lt;h2&gt;Experienced Hacker&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="cp"&gt;#include &amp;lt;stdio.h&amp;gt;&lt;/span&gt;
&lt;span class="cp"&gt;#define S "Hello, World\n"&lt;/span&gt;
&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;&lt;span class="n"&gt;exit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;S&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;strlen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;S&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;?&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="seasoned-hacker"&gt;
&lt;h2&gt;Seasoned Hacker&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;% cc -o a.out ~/src/misc/hw/hw.c
% a.out
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="guru-hacker"&gt;
&lt;h2&gt;Guru Hacker&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;% &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Hello, world."&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="new-manager"&gt;
&lt;h2&gt;New Manager&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;10 PRINT "HELLO WORLD"
20 END
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="middle-manager"&gt;
&lt;h2&gt;Middle Manager&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;% mail -s "Hello, world." bob@b12
Bob, could you please write me a program that prints "Hello, world."?
I need it by tomorrow.
^D
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="senior-manager"&gt;
&lt;h2&gt;Senior Manager&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;% zmail jim
I need a "Hello, world." program by this afternoon.
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="chief-executive"&gt;
&lt;h2&gt;Chief Executive&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;% letter
letter: Command not found.
% mail
To: ^X ^F ^C
% help mail
help: Command not found.
% damn!
!: Event unrecognized
% logout
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
</summary><category term="notags"></category></entry><entry><title>Blogger code update</title><link href="http://praveen.kumar.in/2005/06/09/blogger-code-update/" rel="alternate"></link><updated>2005-06-09T11:12:11+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-06-09:2005/06/09/blogger-code-update/</id><summary type="html">&lt;p&gt;I have updated my &lt;a class="reference external" href="http://www.leatheregg.com/bloggercode/"&gt;blogger &amp;lt;code /&amp;gt;&lt;/a&gt;.&lt;/p&gt;
&lt;pre class="code text literal-block"&gt;
s/B1 d t+ k s u-- f+ i o x-- e+ l+ c-/B2 d+ t+ k+ s+ u- f i+ o x- e+ l+ c--/
&lt;/pre&gt;
</summary><category term="hip"></category></entry><entry><title>Damn it!</title><link href="http://praveen.kumar.in/2005/06/08/damn-it/" rel="alternate"></link><updated>2005-06-08T19:42:56+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-06-08:2005/06/08/damn-it/</id><summary type="html">&lt;p&gt;I simply can't believe this. Oh, God! Please tell me this is not true
and this nothing but a bad dream. I never got frustrated like this in my
whole life!&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Minor problem with Debian 3.1r0 CD/DVD image</title><link href="http://praveen.kumar.in/2005/06/08/minor-problem-with-debian-31r0-cddvd-image/" rel="alternate"></link><updated>2005-06-08T11:18:52+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-06-08:2005/06/08/minor-problem-with-debian-31r0-cddvd-image/</id><summary type="html">&lt;p&gt;It seems that there is a minor problem with Debian 3.1r0 CD/DVD images.
Here is a &lt;a class="reference external" href="http://cdimage.debian.org/debian-cd/3.1_r0/"&gt;news&lt;/a&gt; about
it.&lt;/p&gt;
&lt;p&gt;Note: 3.1r0 CD image problem A bug has been discovered in the 3.1r0
CD/DVD images: new installs from these images will have a commented-out
entry in /etc/apt/sources.list for
&lt;code&gt;http://security.debian.org/ testing/updates&lt;/code&gt; rather than an active
entry for &lt;code&gt;http://security.debian.org/ stable/updates&lt;/code&gt;, and thus will
not get security updates by default. This was due to incorrect Release
files on the images.&lt;/p&gt;
&lt;p&gt;If you have already installed a system using a 3.1r0 CD/DVD image, you
do not need to reinstall. Instead, simply edit /etc/apt/sources.list,
look for any lines mentioning security.debian.org, change "testing" to
"stable", and remove "# " from the start of the line.&lt;/p&gt;
&lt;p&gt;If you installed other than from a CD or DVD (for example, netboot, or
booting from floppy and installing the base system from the network),
you are not affected by this bug.&lt;/p&gt;
&lt;p&gt;New 3.1r0a images will be available shortly to correct this flaw. We
apologise for the inconvenience.&lt;/p&gt;
</summary><category term="debian"></category><category term="linux"></category></entry><entry><title>Debian GNU/Linux 3.1 is out</title><link href="http://praveen.kumar.in/2005/06/07/debian-gnulinux-31-is-out/" rel="alternate"></link><updated>2005-06-07T10:06:01+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-06-07:2005/06/07/debian-gnulinux-31-is-out/</id><summary type="html">&lt;p&gt;The most awaited stable release of Debian, the Debian GNU/Linux 3.1 code
named 'sarge' is released yesterday.
&lt;a class="reference external" href="http://www.debian.org/releases/sarge/i386/release-notes/ch-whats-new.en.html"&gt;Here&lt;/a&gt;
is the release notes. Tons of new features and changes. Debian has gone
more desktop friendly.&lt;/p&gt;
</summary><category term="debian"></category><category term="linux"></category></entry><entry><title>"The DaVinci Code" and my reading habit change</title><link href="http://praveen.kumar.in/2005/06/06/the-davinci-code-and-my-reading-habit-change/" rel="alternate"></link><updated>2005-06-06T10:12:27+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-06-06:2005/06/06/the-davinci-code-and-my-reading-habit-change/</id><summary type="html">&lt;p&gt;I have never read even a single novel for almost 23 years since I was
born. I am interested towards technical journal/books instead. I always
argued to my friends that one can learn a new programming language,
technology or algorithm than to spend time in reading novels. It was my
view till I read my first novel, "&lt;a class="reference external" href="http://www.danbrown.com/novels/davinci_code/reviews.html"&gt;The DaVinci
Code&lt;/a&gt;" by
&lt;a class="reference external" href="http://www.danbrown.com/"&gt;Dan Brown&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As "The DaVinci Code" was my first novel that I ever read in my life, I
had problems in concentrating while I was in the first few chapters. In
a lot of places I was not synched with the content and I need to give
reading twice to be with the novel. It took almost three weeks for me to
complete my first novel. I read it whenever I found time. I loved that
one and there is no doubt that Dan Brown is a real genius. This book
made created a sudden interest in me towards reading such novels.&lt;/p&gt;
&lt;p&gt;I came up with the next set of books that I should read. They are
"&lt;a class="reference external" href="http://www.danbrown.com/novels/deception_point/reviews.html"&gt;Deception
Point&lt;/a&gt;",
"&lt;a class="reference external" href="http://www.danbrown.com/novels/digital_fortress/reviews.html"&gt;Digital
Fortress&lt;/a&gt;"
and "&lt;a class="reference external" href="http://www.danbrown.com/novels/angels_demons/reviews.html"&gt;Angels &amp;amp;
Demons&lt;/a&gt;",
all by Dan Brown. I bought Deception Point last Friday. To my great
surprise, I was able complete the novel which is of the same size of
"The DaVinci" code in just two days (almost 6 hours per day). I have
never read like this in my whole life. I was also surprised to see that
I didn't struggled to get concentration as I did for The DaVince Code. I
almost read the novel without any special efforts. I feel that "The
DaVince Code" has changed my reading habit to a great extent and I am
happy about it.&lt;/p&gt;
&lt;p&gt;Now, I am reading "Digital Fortress", which I think I would like than
anyother as I am already interested in Cryptography.&lt;/p&gt;
</summary><category term="books"></category></entry><entry><title>Google announces "Summer of Code"</title><link href="http://praveen.kumar.in/2005/06/02/google-announces-summer-of-code/" rel="alternate"></link><updated>2005-06-02T10:11:17+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-06-02:2005/06/02/google-announces-summer-of-code/</id><summary type="html">&lt;p&gt;Google recently &lt;a class="reference external" href="http://code.google.com/summerofcode.html"&gt;announced&lt;/a&gt;
thier "Summer of Code", a program to introduce students to the world of
Open Source Software Development. On succesful completion of the
project, the student will receive $4500 from Google. $50000+ to be earnt
from the Gnome bounties itself. Two Evolution tasks are also a part of
these bounties. They are reducing the memory usage of Evolution and
development of group mails by conversations feature (similar to GMail).&lt;/p&gt;
</summary><category term="programming"></category></entry><entry><title>Why '/opt/gnome2' disappears in SuSE Linux 9.3</title><link href="http://praveen.kumar.in/2005/05/31/why-optgnome2-disappears-in-suse-linux-93/" rel="alternate"></link><updated>2005-05-31T14:49:46+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-05-31:2005/05/31/why-optgnome2-disappears-in-suse-linux-93/</id><summary type="html">&lt;p&gt;I was using &lt;code&gt;/opt/gnome2&lt;/code&gt; as install prefix for my Gnome developement
on my SuSE Linux 9.3 box. One fine day, the &lt;code&gt;/opt/gnome2&lt;/code&gt; folder
disappeared suddenly. I didn't know how. I ran YaST update before that.
So, I assumed that YaST probably done something with this. Moreover, I
never login as root on my machine. Neither I do &lt;code&gt;su&lt;/code&gt;. Intially, I
grant all access to my regular username using &lt;code&gt;sudo&lt;/code&gt;. It seems that
YaST has sent a mail to the root after purging &lt;code&gt;/opt/gnome2&lt;/code&gt; directory
on which it has no business at all. But since I didn't login as root for
a long time, I was not aware of this. Here is the message.&lt;/p&gt;
&lt;!-- --&gt;
&lt;blockquote&gt;
&lt;p&gt;Hallo SuSE Linux user.&lt;/p&gt;
&lt;p&gt;Filesystem hierarchy was significantly changed in SuSE Linux 9.0 and all
GNOME/GTK related programs now reside in /opt/gnome.&lt;/p&gt;
&lt;p&gt;Following directories was removed from live system and moved to
/var/adm/backup/GNOME: /opt/gnome2&lt;/p&gt;
&lt;p&gt;Please check if there is anything useful and then remove them.&lt;/p&gt;
&lt;p&gt;GNOME themes can be simply moved to /opt/gnome/share/themes, all other
programs must be re-installed.&lt;/p&gt;
&lt;p&gt;Your SuSE GNOME team&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;So, if you have SuSE &amp;gt; 9.0 and your &lt;code&gt;/opt/gnome2&lt;/code&gt; disappears, don't
get puzzled. You did a YaST update. So, don't use &lt;code&gt;/opt/gnome2&lt;/code&gt; prefix
on a SuSE box.&lt;/p&gt;
</summary><category term="gnome"></category><category term="tips"></category></entry><entry><title>Building and running Evolution from CVS using 'jhbuild'</title><link href="http://praveen.kumar.in/2005/05/31/building-and-running-evolution-from-cvs-using-jhbuild/" rel="alternate"></link><updated>2005-05-31T11:56:59+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-05-31:2005/05/31/building-and-running-evolution-from-cvs-using-jhbuild/</id><summary type="html">&lt;p&gt;If you are interested to play with Evolution and you want to concentrate
only on building and running Evolution from the CVS, you need not build
the entire Gnome. Here are the steps to follow for building and running
Evolution from CVS using 'jhbuild'.&lt;/p&gt;
&lt;div class="section" id="the-first-step-is-setting-up-the-environment-for-a-build-and-setting-up-jhbuild-itself"&gt;
&lt;h2&gt;The first step is setting up the environment for a build and setting up 'jhbuild' itself.&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;WHOAMI&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;id -un&lt;span class="sb"&gt;`&lt;/span&gt;

&lt;span class="c"&gt;# Create a directory for the gnome source code&lt;/span&gt;
mkdir -p ~/cvs/gnome2

&lt;span class="c"&gt;# Download jhbuild from cvs&lt;/span&gt;
&lt;span class="nb"&gt;cd&lt;/span&gt; ~/cvs/gnome2
cvs -d :pserver:anonymous@anoncvs.gnome.org:/cvs/gnome login
  &lt;span class="c"&gt;# blank password -- just hit enter&lt;/span&gt;
cvs -z3 -d :pserver:anonymous@anoncvs.gnome.org:/cvs/gnome checkout jhbuild

&lt;span class="c"&gt;# Install jhbuild (just creates some stuff in ~/bin/jhbuild)&lt;/span&gt;
&lt;span class="nb"&gt;cd &lt;/span&gt;jhbuild
make install

&lt;span class="c"&gt;# Setup .jhbuildrc to tell jhbuild what you want built (just use the&lt;/span&gt;
&lt;span class="c"&gt;# sample for now...)&lt;/span&gt;
cp sample.jhbuildrc ~/.jhbuildrc

&lt;span class="c"&gt;# Create the directory where gnome will be installed; Make it owned by&lt;/span&gt;
&lt;span class="c"&gt;# the relevant user so we don't have to build as root&lt;/span&gt;
sudo mkdir -p /opt/gnome2
sudo chown &lt;span class="nv"&gt;$WHOAMI&lt;/span&gt;:&lt;span class="nv"&gt;$WHOAMI&lt;/span&gt; /opt/gnome2

&lt;span class="c"&gt;# Make sure the build environment is sane--get all necessary build&lt;/span&gt;
&lt;span class="c"&gt;# software.  IMPORTANT: You should say yes to all the questions,&lt;/span&gt;
&lt;span class="c"&gt;# except possibly the python installation, even if you already have&lt;/span&gt;
&lt;span class="c"&gt;# the given program installed.&lt;/span&gt;
jhbuild bootstrap
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="the-next-step-will-be-building-and-installing-the-evolution-from-cvs-this-is-quite-simple-with-the-help-of-jhbuild"&gt;
&lt;h2&gt;The next step will be building and installing the Evolution from CVS. This is quite simple with the help of 'jhbuild'.&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="c"&gt;# Now do the downloading of sources from CVS, building and installing Evolution&lt;/span&gt;
jhbuild build evolution
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="now-that-everything-is-ready-and-you-just-need-to-start-the-bleeding-edge-evolution"&gt;
&lt;h2&gt;Now that everything is ready and you just need to start the bleeding edge Evolution.&lt;/h2&gt;
&lt;pre class="literal-block"&gt;
bash    # Spawn a shell with all environment variables set to your build prefix
jhbuild shell

# The new Evolution would need the new version of the Bonobo server
export BONOBO_ACTIVATION_PATH=/opt/gnome2/lib/bonobo/servers

# Kill any instance of Bonobo server running

# Now start the new Evolution
evolution-2.4
&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Courtesy:&lt;/strong&gt; &lt;a class="reference external" href="http://www.gnome.org/~newren/tutorials/developing-with-gnome/html/index.html"&gt;Building Gnome from CVS
tutorial&lt;/a&gt;
by &lt;a class="reference external" href="http://www.gnome.org/~newren"&gt;newren&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
</summary><category term="gnome"></category><category term="programming"></category></entry><entry><title>Found a house atlast</title><link href="http://praveen.kumar.in/2005/05/30/found-a-house-atlast/" rel="alternate"></link><updated>2005-05-30T08:48:55+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-05-30:2005/05/30/found-a-house-atlast/</id><summary type="html">&lt;p&gt;After a long search, my house hunt came to an end. I found a house at
BTM II stage. The rent of the house is INR. 5,500. Actually the owner
said that the rent was INR. 6,000 and I had to negotiate on that. The
deposit being INR. 60,000 which the owner doesn't want to negotiate
upon. The house has 2 bedrooms, a hall and a kitchen. The house is very
close to a prime location at BTM. I need to walk for 8~10 minutes (800
metre) to catch my office bus. Now I am alone. The guys who will be
staying with me are Rajesh, RJ and Arun. Rajesh and RJ are my classmates
in college. Arun is my junior in college. Rajesh is working in a call
center, RJ is working in Infosys and Arun will be joining Novell with
me. The address of the house is&lt;/p&gt;
&lt;!-- --&gt;
&lt;blockquote&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;III Floor,&lt;/div&gt;
&lt;div class="line"&gt;No.36, 16th Main 6th 'A' Cross,&lt;/div&gt;
&lt;div class="line"&gt;BTM II Stage,&lt;/div&gt;
&lt;div class="line"&gt;Bangalore,&lt;/div&gt;
&lt;div class="line"&gt;Karnataka,&lt;/div&gt;
&lt;div class="line"&gt;India - 560 076.&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
</summary><category term="notags"></category></entry><entry><title>Canonical Abbreviations</title><link href="http://praveen.kumar.in/2005/05/27/canonical-abbreviations/" rel="alternate"></link><updated>2005-05-27T14:27:47+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-05-27:2005/05/27/canonical-abbreviations/</id><summary type="html">&lt;p&gt;Laziness to type has given birth to a lot of things. Canonical
abbreviation was mostly the first among all. When people first start to
interact with the community on chat, IRC, mailing list, etc., they are
mostly confused with terms like "IMHO", "HTH", "RTFM", etc. I do remeber
the first time when I used Yahoo Messenger, I stammered at the question
"ASL?" and somehow figured it out without asking what it is. After doing
a lot of conversations in the past 6 years, I am somewhat familiar with
many of the most widely used acronyms. But there are plenty to keep
track of. Sometimes if I don't know what it is, I would try to guess or
I would google for it. But now, I use
&lt;a class="reference external" href="http://www.astro.umd.edu/~marshall/abbrev.html"&gt;this&lt;/a&gt; page if I
don't get any acronym correctly. This has vast collection of acronyms. I
have never come across atleast 75% of the database.&lt;/p&gt;
</summary><category term="irc"></category></entry><entry><title>A Setback for Linux</title><link href="http://praveen.kumar.in/2005/05/26/a-setback-for-linux/" rel="alternate"></link><updated>2005-05-26T16:58:20+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-05-26:2005/05/26/a-setback-for-linux/</id><summary type="html">&lt;p&gt;There is a shocking news that &lt;a class="reference external" href="http://www.bitmover.com/lm/"&gt;Larry
McVoy&lt;/a&gt; decided to stop giving
&lt;a class="reference external" href="http://www.bitkeeper.com/"&gt;BitKeeper&lt;/a&gt; (distributed software
configuration management tool) free for Linux developers. BitKeeper was
exhaustively used by the Linux kernel developers. This will have a major
impact on the schedules. Linus Torvalds is developing a new tool known
as 'gits' which would act as a replacement for BitKeeper. But, it would
take a long time for it to become as rich as BitKeeper. Best wishes for
gits. Read more about this news at
&lt;a class="reference external" href="http://www.forbes.com/business/2005/05/25/cz_dl_0525linux.html"&gt;Forbes.com&lt;/a&gt;&lt;/p&gt;
</summary><category term="linux"></category><category term="git"></category></entry><entry><title>Additional RPMs for SuSE Linux Professional</title><link href="http://praveen.kumar.in/2005/05/25/additional-rpms-for-suse-linux-professional/" rel="alternate"></link><updated>2005-05-25T16:14:48+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-05-25:2005/05/25/additional-rpms-for-suse-linux-professional/</id><summary type="html">&lt;p&gt;If you are looking for additional RPMs that are not included by default
in the distribution, please visit &lt;a class="reference external" href="http://linux01.gwdg.de/~pbleser/index.php"&gt;Pascal
Bleser&lt;/a&gt;'s page. A lot of
essential RPMs are available here.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Learn C#</title><link href="http://praveen.kumar.in/2005/05/25/learn-c/" rel="alternate"></link><updated>2005-05-25T14:49:52+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-05-25:2005/05/25/learn-c/</id><summary type="html">&lt;p&gt;&lt;a class="reference external" href="http://shepherdsbush.dcs.hull.ac.uk/wiki/index.php/Main_Page"&gt;Here&lt;/a&gt;
is a Wiki tutorial for C#. Very good one indeed.&lt;/p&gt;
</summary><category term="programming"></category></entry><entry><title>Making Change</title><link href="http://praveen.kumar.in/2005/05/25/making-change/" rel="alternate"></link><updated>2005-05-25T12:02:52+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-05-25:2005/05/25/making-change/</id><summary type="html">&lt;p&gt;One of the forward that I got today! Sounds crazy; but interesting.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Trying Something New Everyday&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Change is good. Change invites us to grow, encouraging us to experience
new things, welcome new people into our lives, and ultimately change
frees us from the mundane.&lt;/p&gt;
&lt;p&gt;Many people are not comfortable with change, preferring that every day
be much like the rest. There are even people who may be miserable, yet
reluctant to change. And, some people are actually afraid of change.&lt;/p&gt;
&lt;p&gt;Still, regardless if we like it or not, change happens. As Buddha said,
"change is the only constant." So, if change is coming, whether we're
ready or not, it behooves us to accept change, even embrace it. Changing
your relationship to change can greatly enhance your life, opening up
new possibilities and challenging you to become a more open minded,
interesting, and positive person.&lt;/p&gt;
&lt;p&gt;To begin accepting and welcoming change in your life, start by expanding
your comfort zone and making small daily changes. Here are some ideas to
help you get started.&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Take a new route to work or school, perhaps even a new mode of
transportation; take the bus, carpool, bike, even walk if possible.&lt;/li&gt;
&lt;li&gt;Eat new foods. You could try a different food every day; ethnic
dishes, a fruit you've never tasted, a new drink.&lt;/li&gt;
&lt;li&gt;Everyday, make an effort to talk to a stranger, even if only to say
hello.&lt;/li&gt;
&lt;li&gt;Wear different kinds of clothes. Try a color you never wear, buy a
hat, some fun sunglasses, colorful socks, impractical shoes.&lt;/li&gt;
&lt;li&gt;Rearrange the furniture.&lt;/li&gt;
&lt;li&gt;Take a class in something you know nothing about; Latin American
studies, Butoh, book binding.&lt;/li&gt;
&lt;li&gt;Try a new hairstyle; curl or straighten your hair, change your part.&lt;/li&gt;
&lt;li&gt;Don't watch TV for a day.&lt;/li&gt;
&lt;li&gt;If you drink coffee every morning, try tea, hot cocoa, juice, or hot
water.&lt;/li&gt;
&lt;li&gt;Shop at a different grocery store.&lt;/li&gt;
&lt;li&gt;If you always shower, take a bath. If you always bathe, take a
shower.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;By taking baby steps in creating change in your life you have chosen to
take action, and thereby declaring to the universe that you are ready
for change. What changes will you make today?&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>ICICI Bank respects your privacy</title><link href="http://praveen.kumar.in/2005/05/25/icici-bank-respects-your-privacy/" rel="alternate"></link><updated>2005-05-25T10:11:56+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-05-25:2005/05/25/icici-bank-respects-your-privacy/</id><summary type="html">&lt;p&gt;Today when I was trying to use my online banking at ICICI Bank's
website, I have come across an advetisement in thier page stating that
"Don't want us to call? Register here". They have introduced an &lt;a class="reference external" href="http://www.inuonline.com/dnc/donotcall.asp"&gt;online
system&lt;/a&gt; where you can
register your telephone or mobile number to stop getting any
telemarketing calls from ICICI Bank. This is a very good move. A lot of
people get annonying calls from a lot of Banks about thier Credit Cards,
Personal Loans, etc. It is very good to see that private banks started
respecting the privacy of the induviduals. ICICI Bank leads by example
in this issue. Will other banks also follow this? Why don't you register
your mobile or telephone number with this to avoid any telemarkting
calls from ICICI Bank!&lt;/p&gt;
</summary><category term="ethics"></category></entry><entry><title>House hunting at Bangalore</title><link href="http://praveen.kumar.in/2005/05/19/house-hunting-at-bangalore/" rel="alternate"></link><updated>2005-05-19T17:59:44+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-05-19:2005/05/19/house-hunting-at-bangalore/</id><summary type="html">&lt;p&gt;For the past one week, I am hunting for a house at Bangalore. The areas
that I am considering are BTM Layout, HSR Layout and Koramangala. I
would have seen atleast 30 houses so far. I haven't liked even a single
one. Either the place is too nasty or the rent is too high. What I am
looking for is a house with 1 bedroom, hall and kitchen and my budget is
INR. 5500. I start wondering that for this budget, I can find a very
good house in Chennai. I miss Chennai a lot :-( I have to find a house
before this weekend. If I am not finding one, I will be going for a PG
accomodation. I have no other choice!&lt;/p&gt;
</summary><category term="bangalore"></category></entry><entry><title>Configuring GMail on Novell Evolution</title><link href="http://praveen.kumar.in/2005/05/13/configuring-gmail-on-novell-evolution/" rel="alternate"></link><updated>2005-05-13T12:42:06+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-05-13:2005/05/13/configuring-gmail-on-novell-evolution/</id><summary type="html">&lt;p&gt;GMail offers POPoSSL and SMTP on non-standard ports. &lt;a class="reference external" href="http://www.novell.com/products/evolution/"&gt;Novell
Evolution&lt;/a&gt; doesn't
provides an explicit way of specifying the port. Instead, the port
should be specified implictly in the URL. Expand the post to find some
screenshots to help a Evolution newbies to configure GMail on Novell
Evolution.&lt;/p&gt;
&lt;div class="section" id="configuring-the-identity"&gt;
&lt;h2&gt;Configuring the Identity&lt;/h2&gt;
&lt;div class="figure" style="width: 560px; height: auto; max-width: 100%;"&gt;
&lt;img alt="Evolution GMail Identity" src="http://praveen.kumar.in/images/EvolutionGMailIdentity.png" style="width: 560px; height: auto; max-width: 100%;"/&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="configuring-the-incoming-server"&gt;
&lt;h2&gt;Configuring the incoming server&lt;/h2&gt;
&lt;div class="figure" style="width: 560px; height: auto; max-width: 100%;"&gt;
&lt;img alt="Evolution GMail Incoming Server" src="http://praveen.kumar.in/images/EvolutionGMailIncomingServer.png" style="width: 560px; height: auto; max-width: 100%;"/&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="configuring-the-receiving-options"&gt;
&lt;h2&gt;Configuring the receiving options&lt;/h2&gt;
&lt;div class="figure" style="width: 560px; height: auto; max-width: 100%;"&gt;
&lt;img alt="Evolution GMail Receiving Options" src="http://praveen.kumar.in/images/EvolutionGMailReceivingOptions.png" style="width: 560px; height: auto; max-width: 100%;"/&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="configuring-the-outgoing-server"&gt;
&lt;h2&gt;Configuring the outgoing server&lt;/h2&gt;
&lt;div class="figure" style="width: 560px; height: auto; max-width: 100%;"&gt;
&lt;img alt="Evolution GMail Outgoing Server" src="http://praveen.kumar.in/images/EvolutionGMailOutgoingServer.png" style="width: 560px; height: auto; max-width: 100%;"/&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="naming-your-account"&gt;
&lt;h2&gt;Naming your account&lt;/h2&gt;
&lt;div class="figure" style="width: 560px; height: auto; max-width: 100%;"&gt;
&lt;img alt="Evolution GMail Account Name" src="http://praveen.kumar.in/images/EvolutionGMailAccountName.png" style="width: 560px; height: auto; max-width: 100%;"/&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="all-set"&gt;
&lt;h2&gt;All set&lt;/h2&gt;
&lt;div class="figure" style="width: 560px; height: auto; max-width: 100%;"&gt;
&lt;img alt="Evolution GMail Done" src="http://praveen.kumar.in/images/EvolutionGMailDone.png" style="width: 560px; height: auto; max-width: 100%;"/&gt;
&lt;/div&gt;
&lt;/div&gt;
</summary><category term="gnome"></category><category term="linux"></category><category term="email"></category></entry><entry><title>Joined Novell</title><link href="http://praveen.kumar.in/2005/05/11/joined-novell/" rel="alternate"></link><updated>2005-05-11T17:40:00+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-05-11:2005/05/11/joined-novell/</id><summary type="html">&lt;p&gt;I have joined &lt;a class="reference external" href="http://www.novell.com"&gt;Novell&lt;/a&gt; today. The climate is
too good in Bangalore. It rained yesterday as soon as I came here. The
work place is good and the people are good. I bet I am going to enjoy
this work.&lt;/p&gt;
</summary><category term="job"></category><category term="novell"></category></entry><entry><title>My last day at HCL</title><link href="http://praveen.kumar.in/2005/05/06/my-last-day-at-hcl/" rel="alternate"></link><updated>2005-05-06T23:44:10+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-05-06:2005/05/06/my-last-day-at-hcl/</id><summary type="html">&lt;p&gt;Today is my last day at HCL Technologies. I am joining Novell, India on
Tuesday (May 10, 2004). It is a great pain to leave my friends at HCL
and HCL as well. I always loved the culture, openness and flexibility at
HCL. I will defintely miss this. Hope I will get the same at Novell as
well.&lt;/p&gt;
</summary><category term="hcl"></category><category term="job"></category></entry><entry><title>Chess problems - eBooks</title><link href="http://praveen.kumar.in/2005/05/05/chess-problems-ebooks/" rel="alternate"></link><updated>2005-05-05T15:02:11+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-05-05:2005/05/05/chess-problems-ebooks/</id><summary type="html">&lt;p&gt;Some eBooks (in PDF) on chess problems are available
&lt;a class="reference external" href="http://www.algonet.se/~ath/"&gt;here&lt;/a&gt;. A best learning resource is
available &lt;a class="reference external" href="http://chess.about.com/"&gt;here&lt;/a&gt;.&lt;/p&gt;
</summary><category term="chess"></category></entry><entry><title>Novell Evolution Architecture Overview</title><link href="http://praveen.kumar.in/2005/05/04/novell-evolution-architecture-overview/" rel="alternate"></link><updated>2005-05-04T14:18:04+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-05-04:2005/05/04/novell-evolution-architecture-overview/</id><summary type="html">&lt;p&gt;I brief overview of &lt;a class="reference external" href="http://www.novell.com/products/desktop/features/evolution.html"&gt;Novell
Evolution&lt;/a&gt;
architecture is available
&lt;a class="reference external" href="http://gnome.org/projects/evolution/arch.shtml"&gt;here&lt;/a&gt;. The weekly
status meeting of Evolution is on every Wednesday 16:00 IST(?) on
&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;#evolution-meet&lt;/span&gt;&lt;/tt&gt; and &lt;a class="reference external" href="http://gnome.org/projects/evolution/bugday.shtml"&gt;Evolution Bug
day&lt;/a&gt; is every
Thursday during 20:30 to 06:00 IST on &lt;tt class="docutils literal"&gt;#evolution&lt;/tt&gt; on
&lt;a class="reference external" href="http://www.gimpnet.org/"&gt;GimpNet&lt;/a&gt; (Simple way to connect is through
irc.gimp.org).&lt;/p&gt;
</summary><category term="email"></category><category term="novell"></category></entry><entry><title>Python challenge</title><link href="http://praveen.kumar.in/2005/05/04/python-challenge/" rel="alternate"></link><updated>2005-05-04T13:08:57+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-05-04:2005/05/04/python-challenge/</id><summary type="html">&lt;p&gt;I am trying to solve the puzzles available at &lt;a class="reference external" href="http://www.pythonchallenge.com"&gt;Python
challenge&lt;/a&gt;. I know a bit of Python.
But the puzzles are interesting. Why don't you give a try!&lt;/p&gt;
</summary><category term="programming"></category><category term="puzzles"></category><category term="python"></category></entry><entry><title>How We Got Here: A Slightly Irreverent History of Technology and Markets</title><link href="http://praveen.kumar.in/2005/05/03/how-we-got-here-a-slightly-irreverent-history-of-technology-and-markets/" rel="alternate"></link><updated>2005-05-03T01:58:06+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-05-03:2005/05/03/how-we-got-here-a-slightly-irreverent-history-of-technology-and-markets/</id><summary type="html">&lt;p&gt;Andy Kessler's new book "How We Got Here: A Slightly Irreverent History
of Technology and Markets" is available for &lt;a class="reference external" href="http://andykessler.com/hwgh.html"&gt;free
download&lt;/a&gt;. This book is an
interesting reading. It touches from the historical scientific events to
the latest markets.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Linux applications list against Windows applications</title><link href="http://praveen.kumar.in/2005/04/28/linux-applications-list-against-windows-applications/" rel="alternate"></link><updated>2005-04-28T17:21:07+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-04-28:2005/04/28/linux-applications-list-against-windows-applications/</id><summary type="html">&lt;p&gt;There is a very good list of Linux applications against Windows
applications available
&lt;a class="reference external" href="http://linuxshop.ru/linuxbegin/win-lin-soft-en/table.shtml"&gt;here&lt;/a&gt;.
Some of the applications seems to be outdated. But this page has very
valuable data and it will reduce a lot of your research time when you
are looking for a Linux application which should replace your current
Windows one.&lt;/p&gt;
</summary><category term="linux"></category></entry><entry><title>Building Gnome 2.10 from source</title><link href="http://praveen.kumar.in/2005/04/28/building-gnome-210-from-source/" rel="alternate"></link><updated>2005-04-28T12:02:47+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-04-28:2005/04/28/building-gnome-210-from-source/</id><summary type="html">&lt;p&gt;I am in the process of building Gnome 2.10 from source code on my Ubuntu
5.04. The process is smooth throughout except that I had some wierd
problems in &lt;code&gt;evolution-data-server&lt;/code&gt; module. It was because of the
missing &lt;code&gt;libnss-dev&lt;/code&gt; package and I took a long time to figure it out
as the error was something else. Finally, installing &lt;code&gt;libnss-dev&lt;/code&gt; and
introducing a small workaround fixed the problem. I am now compiling the
72nd module (nautilus). In lot of modules, the configure stage will fail
because of the absence of some &lt;code&gt;xyz-dev&lt;/code&gt; package. Installing the
package and rerunning the configure took me till here without any
problem. The only extra work I did so far is for
&lt;code&gt;evolution-data-server&lt;/code&gt;. Once I complete this build, I am planning to
write a guide for building Gnome 2 on Debian quoting the issues that I
faced. It will be published in &lt;a class="reference external" href="http://www.gnomebangalore.org"&gt;Gnome
Bangalore&lt;/a&gt;'s Wiki page.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;PS:&lt;/strong&gt; I am not using the sources from Debian. I am getting the sources
from Gnome CVS repository.&lt;/p&gt;
</summary><category term="gnome"></category><category term="linux"></category></entry><entry><title>Switched to Ubuntu 5.04!</title><link href="http://praveen.kumar.in/2005/04/28/switched-to-ubuntu-504/" rel="alternate"></link><updated>2005-04-28T08:02:28+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-04-28:2005/04/28/switched-to-ubuntu-504/</id><summary type="html">&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; I have mispelt Ubuntu in the title as "Ubutu" which made
this page to appear as a first hit in the google search for the work
"Ubutu". I am changing the title now. I will no more have google's first
hit privilege for "Ubutu" :-)&lt;/p&gt;
&lt;p&gt;I have been an all time hardcore &lt;a class="reference external" href="http://www.debian.org"&gt;Debian&lt;/a&gt; fan.
All of a sudden, I got attracted towards &lt;a class="reference external" href="http://www.ubuntulinux.org"&gt;Ubuntu
Linux&lt;/a&gt;. After my HDD crash before a
couple of days, I lost my entire Debian installation and I was in the
need to reinstall it. At this point, I thought of going for Ubuntu 5.04.
Ubuntu is based on Debian and they are more up to date compared to
Debian (Well, SID is always bleeding edge). I have installed it and
setup most of the essential packages succesfully. I have also do one
more major change in the software component. Earlier I was using Mozilla
Thunderbird at home. Now, I have migrated to Evolution.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Be realistic, Indian cricket fans!</title><link href="http://praveen.kumar.in/2005/04/27/be-realistic-indian-cricket-fans/" rel="alternate"></link><updated>2005-04-27T08:15:23+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-04-27:2005/04/27/be-realistic-indian-cricket-fans/</id><summary type="html">&lt;p&gt;A very valid point by Sachin Tendulkar that I came across in today's
"The Hindu".&lt;/p&gt;
&lt;!-- --&gt;
&lt;blockquote class="blockquote-reverse"&gt;
&lt;strong&gt;The Hindu:&lt;/strong&gt; Is there anything that rankles you?&lt;/blockquote&gt;
&lt;!-- --&gt;
&lt;blockquote&gt;
&lt;strong&gt;Tendulkar:&lt;/strong&gt; Yes, the behavior of the spectators at times. They don't
help the team by jeering at us. There's no harm in having high
expectations but be realistic when we lose after our best efforts. I
hope they realize that we try our best. And I really find it funny when
our own people boo at us. It hurts. I find it hard to accept. What sort
of support is this! Ridiculous I must say. &lt;strong&gt;Let them remember that by
insulting the present, you are belittling the glorious past&lt;/strong&gt;.&lt;/blockquote&gt;
</summary><category term="cricket"></category></entry><entry><title>Hard disk crash!</title><link href="http://praveen.kumar.in/2005/04/26/hard-disk-crash/" rel="alternate"></link><updated>2005-04-26T18:53:54+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-04-26:2005/04/26/hard-disk-crash/</id><summary type="html">&lt;p&gt;Yesterday midnight, one of my 80GB HDDs died suddenly. It was the one
where I have installed Linux. By God's grace, I didn't have any crucial
data on that. So, loss of data in that HDD was not a great loss but
still a minor loss. Oh Gosh! Now I need to reinstall my Linux (I was
running Debian Sid which was upto date) and that is going to be painful.
I took the HDD for Samsung service center to claim the warranty today.
To my shock, they informed that the warranty expired. I replied that I
have purchased the HDD on 31 May 2004. They asked me to contact my
vendor (RM Computers) and finally RM took it for service and they will
be giving it back in a day or two. I have bought a new 160GB Seagate HDD
for working in the meantime. It costed INR. 3800. HDD prices fallen damn
cheap man!&lt;/p&gt;
</summary><category term="pc"></category></entry><entry><title>Planning to buy a new PC</title><link href="http://praveen.kumar.in/2005/04/25/planning-to-buy-a-new-pc/" rel="alternate"></link><updated>2005-04-25T19:22:23+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-04-25:2005/04/25/planning-to-buy-a-new-pc/</id><summary type="html">&lt;p&gt;I am planning to buy a new PC. Here are the key components that I have
in my mind.&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Intel P4 3.2 GHz with HT&lt;/li&gt;
&lt;li&gt;MSI P4N Diamond Motherboard&lt;/li&gt;
&lt;li&gt;Hynix 1GB 400MHz RAM&lt;/li&gt;
&lt;li&gt;Seagate 160GB SATA HDD&lt;/li&gt;
&lt;li&gt;LG 16x DVD ROM Drive&lt;/li&gt;
&lt;li&gt;Samsung 17'' Flat Black monitor&lt;/li&gt;
&lt;li&gt;Creative Gigaworks S750 7.1 speakers&lt;/li&gt;
&lt;li&gt;Gaming ATX Tower&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This itself comes around INR. 70,000. Apart from this, I have to buy a
PCI-X graphics card. A low end card should be available for INR. 3,000.
Rest components like DVD Writer, KB and mouse, I will take it from the
existing PC. I am going to waste hell a money.&lt;/p&gt;
&lt;p&gt;There is no clue about the availability of MSI P4N Diamond motherboard
in India. I am very particular about this board. If it is not avaiable
now, I will wait till it is.&lt;/p&gt;
</summary><category term="pc"></category></entry><entry><title>Visited three temples today!</title><link href="http://praveen.kumar.in/2005/04/23/visited-three-temples-today/" rel="alternate"></link><updated>2005-04-23T18:34:39+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-04-23:2005/04/23/visited-three-temples-today/</id><summary type="html">&lt;p&gt;Some months back, I have seen "Naadi Jothidam" for me at Tambaram. They
told me that I should visit three temples; Shivan Kovil at Trisulam,
Eswaran Kovil at Pozhichalur and Eswaran Kovil at Triplicane; all in and
around Chennai for getting rid of effects of the sins that I did in my
previous birth. I just got the time for doing it today. I went along
with my father, grandma and grandpa. Went to all the three and did the
poojas as suggested by "Naadi". Actually, I was not believing this. But,
my father wanted me to do this before I leave Chennai.&lt;/p&gt;
&lt;p&gt;"Before you leave Chennai? When are you leaving and where?"&lt;/p&gt;
&lt;p&gt;I am leaving Chennai by 7th May. I am going to Bangalore! Enjoy maadi!&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Scorpio's romance Vs. Cancer's romance</title><link href="http://praveen.kumar.in/2005/04/22/scorpios-romance-vs-cancers-roamance/" rel="alternate"></link><updated>2005-04-22T18:23:41+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-04-22:2005/04/22/scorpios-romance-vs-cancers-roamance/</id><summary type="html">&lt;p&gt;I have come across this in &lt;a class="reference external" href="http://astrology.rediff.com"&gt;Rediff's astrology
page&lt;/a&gt;. This is about the romance of
Scorpios.&lt;/p&gt;
&lt;blockquote&gt;
You are among the best lovers, instinctively knowing what your
partner wants. You are intense and passionate and none of your
lovers will ever forget you. You will sweep many off with your
magnetic charm. You will rarely distinguish between a passing fancy
and true love. For you, it will always be a passionate involvement.
Scorpios can also be very jealous and will go to any lengths to
claim what they feel is rightly theirs. You will find your ideal
life partner in fellow water signs - Cancer, Scorpio and Pisces. It
is the water signs that understand you best. You may have
disagreements with your family, as you feel they cannot understand
you or the intensity of your passion. Though you are a good parent,
you can turn wrathful without warning. This often makes your
relationship with your children rather uneasy. The Scorpio house
will be comfortable and classy, but not overtly flamboyant as you do
have an eye for detail and will prefer the minimalist style.&lt;/blockquote&gt;
&lt;p&gt;This is extremly true in a case that I have noticed. Great!!!&lt;/p&gt;
&lt;p&gt;And this is about Cancer's romance.&lt;/p&gt;
&lt;blockquote&gt;
You are continually pulled into romance with those who are quite
opposite to you in nature. You are strongly attracted to people who
are confident, strong and successful. Although you fall in love all
the time, your introvert nature and your uneasiness in disclosing
your true feelings makes many of these affairs one-sided. You are
not likely to rush headlong into marriage, because in selecting a
life partner, you will be most likely governed by your head. Those
belonging to the zodiac signs of Cancer, Scorpio and Pisces will
make good partners for Cancerians. Nevertheless, love for a stable
home and loyalty towards the spouse will reward the majority of
Cancerians with a reasonably happy married life. You attend to
domestic chores cheerfully, take a keen interest in the children.
and believe in saving for the rainy day. Man or woman, Cancerians
love their home, it is where they feel most secure. Like
Sagittarians there is a place for everything, but the Cancerians
idea is -- it just does not matter where it is put as long as it's
somewhere, under the bed, in cupboards, up in the attic, the garage;
not that you are not untidy -- you are the original hoarder and for
some it can take a while getting used to this.&lt;/blockquote&gt;
&lt;p&gt;I guess it is also correct to a major extent. I am Cancer!!!&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Valgrind - Debugging and profiling tool for x86 Linux programs</title><link href="http://praveen.kumar.in/2005/04/21/valgrind-debugging-and-profiling-tool-for-x86-linux-programs/" rel="alternate"></link><updated>2005-04-21T15:57:07+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-04-21:2005/04/21/valgrind-debugging-and-profiling-tool-for-x86-linux-programs/</id><summary type="html">&lt;p&gt;If you are looking for a free software for debugging and profiling x86
Linux programs, then &lt;a class="reference external" href="http://valgrind.org/"&gt;Valgrind&lt;/a&gt; is the right
tool. It helps you in detecting memory management and threading bugs.
The Valgrind distribution currently includes five tools: two memory
error detectors, a thread error detector, a cache profiler and a heap
profiler.&lt;/p&gt;
</summary><category term="tools"></category></entry><entry><title>How to build Gnome 2 from source code?</title><link href="http://praveen.kumar.in/2005/04/21/how-to-build-gnome-2-from-source-code/" rel="alternate"></link><updated>2005-04-21T02:46:03+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-04-21:2005/04/21/how-to-build-gnome-2-from-source-code/</id><summary type="html">&lt;p&gt;A very nice tutorial &lt;a class="reference external" href="http://www.gnome.org/~newren/tutorials/developing-with-gnome/html/"&gt;"Developing with
Gnome"&lt;/a&gt;
is available at &lt;a class="reference external" href="http://www.gnome.org/~newren"&gt;newren's site&lt;/a&gt;. There
is a
&lt;a class="reference external" href="http://www.gnome.org/~newren/tutorials/developing-with-gnome/html/ch04.html"&gt;chapter&lt;/a&gt;
which gives detailed instructions on how to build Gnome from CVS.&lt;/p&gt;
</summary><category term="gnome"></category><category term="programming"></category></entry><entry><title>Swapping integers without using a temporary variable</title><link href="http://praveen.kumar.in/2005/04/19/swapping-integers-without-using-a-temporary-variable/" rel="alternate"></link><updated>2005-04-19T16:41:01+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-04-19:2005/04/19/swapping-integers-without-using-a-temporary-variable/</id><summary type="html">&lt;p&gt;This might be of interest for those sitting for placement. How do you
swap two integers in C without creating a temporary variable ?&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="cp"&gt;#include &amp;lt;stdio .h&amp;gt;&lt;/span&gt;
&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;void&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;200&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

        &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"a=%d | b=%d&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;^=&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;^=&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;^=&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"a=%d | b=%d&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Found it on the usenet C FAQ, question 3.3b. It comes with a warning
that the code might not be portable across compilers.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Courtesy&lt;/strong&gt;: Anand Kumar Saha&lt;/p&gt;
</summary><category term="c"></category><category term="programming"></category><category term="puzzles"></category></entry><entry><title>A big crash in the Indian stock market</title><link href="http://praveen.kumar.in/2005/04/15/a-big-crash-in-the-indian-stock-market/" rel="alternate"></link><updated>2005-04-15T17:25:40+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-04-15:2005/04/15/a-big-crash-in-the-indian-stock-market/</id><summary type="html">&lt;p&gt;Indian stock market witnessed a horrible crash today on profit booking.
The BSE SENSEX closed at 6,248 (down 220 points) and the NSE NIFTY
closed at 1,954 (down 72 points). The downside was seen across all
sectors however the Software sector witnessed a big downside. The crash
was largely triggered by the below expected results from Infosys which
was announced yesterday. My portfolio suffered a major loss today.
However, I have picked some stocks at thier bottom (my view) price. If
the correction is not continuing Monday, I will be seeing some good
short term gains from today's trade.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>தமிழ் புத்தாண்டு நல்வாழத்துக்கள்</title><link href="http://praveen.kumar.in/2005/04/14/tamil-newyear-wishes/" rel="alternate"></link><updated>2005-04-14T07:43:06+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-04-14:2005/04/14/tamil-newyear-wishes/</id><summary type="html">&lt;p&gt;அனைவருக்கும் எனது உளமாற்ந்த தமிழ் புத்தாண்டு நல்வாழத்துக்கள்! மளையாள
அன்ப்ர்களுக்கு, எனது விஷு நல்வாழத்துக்கள்!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Translation:&lt;/strong&gt; I wish all a very happy and prosperous Tamil New Year.
For Mallus, it is Vishu wishes.&lt;/p&gt;
</summary><category term="tamil"></category></entry><entry><title>Laloo and Gates</title><link href="http://praveen.kumar.in/2005/04/14/laloo-and-gates/" rel="alternate"></link><updated>2005-04-14T03:48:30+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-04-14:2005/04/14/laloo-and-gates/</id><summary type="html">&lt;p&gt;How about a conversation between Laloo and Gates. Can't resist the
temptation. Isn't it? Here we go...&lt;/p&gt;
&lt;!-- --&gt;
&lt;blockquote&gt;
&lt;p&gt;Gates:Hi! you must have heard of Windows.&lt;/p&gt;
&lt;p&gt;Laloo: Oh yes! We have the concept of single window clearance in almost
all our offices.&lt;/p&gt;
&lt;p&gt;Gates: Do you have Windows installed at your home as well?&lt;/p&gt;
&lt;p&gt;Laloo: No, I have sealed all the Windows as we always run the risk of
burglary etc.&lt;/p&gt;
&lt;p&gt;Gates: (a little confused at this) Then what exactly is the system you
operate on?&lt;/p&gt;
&lt;p&gt;Laloo: OPERATION ? Yes, I was operated on Hernia last month.&lt;/p&gt;
&lt;p&gt;Gates(sweating at Laloo's knowledge): I hope Internet is being used a
lot in India&lt;/p&gt;
&lt;p&gt;Laloo: Oh Yes! There are a lot of mosquitos and a lot of people use the
net to keep them away.&lt;/p&gt;
&lt;p&gt;Gates(bewildered at the response): By the year 2010, will India be in a
position to export microchips?&lt;/p&gt;
&lt;p&gt;Laloo:We export Uncle Chips worth crores every year.&lt;/p&gt;
&lt;p&gt;Gates (feeling very Uneasy):Do you use a Laptop regularly?&lt;/p&gt;
&lt;p&gt;Laloo: My grandchildren sleep on my lap every evening.&lt;/p&gt;
&lt;p&gt;Gates (sweating profusely): It seems that the chief minister of Andhra
Pradesh knows more about RAM and ROM than you?&lt;/p&gt;
&lt;p&gt;Laloo : RUM? We are taking off the ban very soon and it will be
available freely.&lt;/p&gt;
&lt;p&gt;Gates (feeling dizzy at this): Well, I would like to take your leave
before my system crashes.&lt;/p&gt;
&lt;p&gt;Laloo: I am sorry, I have exhausted all my leave.&lt;/p&gt;
&lt;p&gt;Gates: I have no energy left. Let's go out and have a bite.&lt;/p&gt;
&lt;p&gt;Laloo: BITE? I believe in non-violence. I will not bite.&lt;/p&gt;
&lt;/blockquote&gt;
</summary><category term="notags"></category></entry><entry><title>Tightly packed with NFS UG2</title><link href="http://praveen.kumar.in/2005/04/13/tightly-packed-with-nfs-ug2/" rel="alternate"></link><updated>2005-04-13T17:14:30+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-04-13:2005/04/13/tightly-packed-with-nfs-ug2/</id><summary type="html">&lt;p&gt;Now-a-days, I spend most of my free time playing Need For Speed
Underground 2. NFS always been a seducing game. Apart from strategy
games, NFS is the only game that I like in other categories. I have
completed almost 25% of the game. In other 2 weeks I will be completing
the entire game.&lt;/p&gt;
</summary><category term="gaming"></category></entry><entry><title>Computer components price list</title><link href="http://praveen.kumar.in/2005/04/08/computer-components-price-list/" rel="alternate"></link><updated>2005-04-08T14:52:23+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-04-08:2005/04/08/computer-components-price-list/</id><summary type="html">&lt;p&gt;There is an online price list of the computer components at Ritchie
street available &lt;a class="reference external" href="http://business.vsnl.com/deltapage/"&gt;here&lt;/a&gt;. This
page is maintained by Delta Peripherals. All the shops almost have the
more or less the same price. This would be useful for estimating the
rough cost of the PC that you want to assemble.&lt;/p&gt;
</summary><category term="pc"></category></entry><entry><title>Quit Smoking (Again and again and again)</title><link href="http://praveen.kumar.in/2005/04/07/quit-smoking-again-and-again-and-again/" rel="alternate"></link><updated>2005-04-07T17:58:17+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-04-07:2005/04/07/quit-smoking-again-and-again-and-again/</id><summary type="html">&lt;p&gt;Today is "World Health Day". I am planning to quit smoking from tomorrow
(8 Apr 2005) again. I am also trying to get in Vijay, Ezhil, RP and KK
into the show. Let me see if they are willing to join. If anybody wants
to join this campaign, register yourself in
&lt;a class="reference external" href="http://www.quitnet.com/"&gt;QuitNet&lt;/a&gt;. My user name in QuitNet is
"praveenkumarravi". This site is really useful. This site claims that on
an average it takes 7 tries for a smoker to completly quit. This is my
second serious attempt. Last time I was able to stop for 4 months
successfuly. Let me see if this time I can acheive better. Better means
a life time quit!&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>"Welcome to India" (Mallu Rap) - Lyrics</title><link href="http://praveen.kumar.in/2005/04/07/welcome-to-india-lyrics/" rel="alternate"></link><updated>2005-04-07T11:35:33+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-04-07:2005/04/07/welcome-to-india-lyrics/</id><summary type="html">&lt;p&gt;On popular demand, I am posting the lyrics for the "Welcome to India" -
Mallu rap's lyrics.&lt;/p&gt;
&lt;!-- --&gt;
&lt;blockquote&gt;
&lt;p&gt;Yaa, MC Vikram and Luda Krishna representing y'all,
That's right ... increase the volume please ... thank you.&lt;/p&gt;
&lt;p&gt;Welcome to India, mango juices and lassis, samosa crazy desis and little
kids that are milking the bhainses. Toothbrush in my pocket, what is
that? We use our fingers here to keep our teeth so clear, who said that?&lt;/p&gt;
&lt;p&gt;Luda Krishna here, Vikram pulling the Tata gears, and I am sitting in
the Maruti Supreme with the cooling glass on no one bothers me, biggest
stars since the ever famous Mamooty.&lt;/p&gt;
&lt;p&gt;Come with me to a place where we sip Frooties, and we eat the sweets
while monkeys roam the streets. Old uncle sits - big bellies and burps
smelly (burp!)&lt;/p&gt;
&lt;p&gt;Thank you Vikram, would you please pass the jelly, I mean the pickle,
hand it down this way ... Namaste we greet the people as they enter the
train! Sixty-five people hanging out, the doors start coming out.
Therefore, please don't raise your hand, you are not sure.&lt;/p&gt;
&lt;p&gt;I walked into the local corner-store, bought myself a very nice looking
carroms board. My fingers get sore when I shoot and I score, and the
ladkis all scream coz they all want some more, of the Luda Krishna and
the Vikram MC, Sweetest thing to hit the States since mango chutney. We
keep the kundis shaking, you better trust me. The name is Luda Krishna,
but my friends call me Thambi, watch!! (burp!)&lt;/p&gt;
&lt;p&gt;Ohhh, Vikram, is that you my friend?! That is me my friend! Oh, please
enter this rap game! Ok man! C'mon ... tell me where you're going my
friend.&lt;/p&gt;
&lt;p&gt;Welcome to India where the cows eat hay, and we drive auto-rickshaws
everyday, Goat meats, yummy sweets, wild monkeys roaming, The roosters
don't crow till five in the morning! (2x)&lt;/p&gt;
&lt;p&gt;Now the kundis don't jiggle till I'm rapping, So please don't pass the
gas when you're laughing.&lt;/p&gt;
&lt;p&gt;Up the music charts like mango trees I climb, With a smooth voice like
mine, is it a crime? Representing FOB-iness since ninety-seven Rap
maharaja, I don't work at 7-Eleven. Throw your hands in the air if
you've got facial hair, Not just for the guys, c'mon ladies be fair!&lt;/p&gt;
&lt;p&gt;I'm the MFP - Most FOB-ious Player, Wearing hot lungis, do you think I
really care?&lt;/p&gt;
&lt;p&gt;Monday night - computer club Tuesday night - at Akbaar grocery saying
"Sweet thang, what is up?" Wednesday - I'm out making rupees Thurday -
On lookout for Bharatnatyam queen Friday - Everybody must know where I'm
at, coz I'm chilling on the field with my big cricket bat. Saturday - my
farts are breezy ... believe me, so strong they will get you mad dizzy,
Sunday - Yaar, I cannot start weeping because on Monday I will start the
creeping ... Hallo!&lt;/p&gt;
&lt;p&gt;Ohhhh ... I love that my friend! Yaa dawg, that was a funda-stic. Hey
thank you, you're fabulous! Oh, thank you my friend! Oh ...&lt;/p&gt;
&lt;p&gt;Welcome to India where the cows eat hay, and we drive auto-rickshaws
everyday, Goat meats, yummy sweets, wild monkeys roaming, The roosters
don't crow till five in the morning! (2x)&lt;/p&gt;
&lt;p&gt;Oh, oh, go Luda, go Luda. Ah, it's my birthday! That is your birthday,
man! Yaaaaah. You go boy! Oh oh oh ... it's great! Ah, Indian honor my
friend. Good night! All right, goodbye ... kiss my buttocks!!&lt;/p&gt;
&lt;/blockquote&gt;
</summary><category term="notags"></category></entry><entry><title>I am back</title><link href="http://praveen.kumar.in/2005/04/05/i-am-back/" rel="alternate"></link><updated>2005-04-05T14:15:07+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-04-05:2005/04/05/i-am-back/</id><summary type="html">&lt;p&gt;I am back from the Munnar trip and for my surprise it is heavily raining
in Chennai today.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Leaving to Munnar tonight</title><link href="http://praveen.kumar.in/2005/04/01/leaving-to-munnar-tonight/" rel="alternate"></link><updated>2005-04-01T14:09:14+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-04-01:2005/04/01/leaving-to-munnar-tonight/</id><summary type="html">&lt;p&gt;I am leaving to &lt;a class="reference external" href="http://www.munnar.com/"&gt;Munnar&lt;/a&gt; tonight along with
my colleages here for a recreation trip. I will be coming back only by
Tuesday, April 5, 2005. I am going to miss computer badly for three
days. Anyway, forget all the work; spend time in play, photography,
travel and booze ;-)&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Planned to use Coppermine</title><link href="http://praveen.kumar.in/2005/04/01/planned-to-user-coppermine/" rel="alternate"></link><updated>2005-04-01T14:02:47+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-04-01:2005/04/01/planned-to-user-coppermine/</id><summary type="html">&lt;p&gt;After a long thought, I have planned to use
&lt;a class="reference external" href="http://coppermine.sf.net"&gt;Coppermine&lt;/a&gt; instead of &lt;a class="reference external" href="http://gallery.sf.net"&gt;Gallery
2&lt;/a&gt; for my photo gallery. Gallery is good. No
doubt about it. Still, I am not happy with lot of parts. I don't have
the time to hack it to customize as well. I found Coppermine best suits
my requirements out of the box. I am on the way of creation of a theme
that mimics the theme that the journal uses now. Once the theme is
ready, the gallery should be up in no time. Even though I have chosen
Coppermine, there is a thought in my mind that I will miss the gallery
badly. Well let me see that if I have a change in plan before putting up
Coppermine on production.&lt;/p&gt;
</summary><category term="photography"></category></entry><entry><title>Gmail to offer 2GB space?</title><link href="http://praveen.kumar.in/2005/04/01/gmail-to-offer-2gb-space/" rel="alternate"></link><updated>2005-04-01T11:59:02+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-04-01:2005/04/01/gmail-to-offer-2gb-space/</id><summary type="html">&lt;p&gt;For my surprise the news came today that GMail is increasing the user
space from 1GB to 2GB. I initially thought this as an "April Fool". But
when you goto the &lt;a class="reference external" href="http://www.google.com/gmail/"&gt;page of GMail&lt;/a&gt;, you
see the space keeps increasing every instance. It is now around 1060 MB
and keeps progressing at a regular pace. It is a good way of showing
that you are increasing your limit, GMail. Google guys rock in thier
unique way of attracting people. Keep it going. My concern is that there
is a possibility that Google can monopolize internet services in another
5-10 years if it goes this way.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; BTW, the real april fool of Google is
&lt;a class="reference external" href="http://www.google.com/googlegulp/"&gt;here&lt;/a&gt;.&lt;/p&gt;
</summary><category term="email"></category></entry><entry><title>Tamil GNU/Linux tutorial for beginners</title><link href="http://praveen.kumar.in/2005/03/31/tamil-gnulinux-tutorial-for-beginners/" rel="alternate"></link><updated>2005-03-31T23:36:56+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-31:2005/03/31/tamil-gnulinux-tutorial-for-beginners/</id><summary type="html">&lt;p&gt;I would like to share the GNU/Linux tutorial for Beginners in Tamil
written by &lt;a class="reference external" href="http://www.mksarav.org/"&gt;MK Saravanan&lt;/a&gt;. This is a bit
outdated document. Still, it holds good for beginning in Linux. It would
be of much use for Tamil people who are not much fluent in English.&lt;/p&gt;
&lt;p&gt;ஆங்கிலத்தில் அதிக புலமை இல்லாதவர்கள் லினக்ஸ் பற்றி அறிய இந்த கோப்புகள்
பெரிதும் உதவியாக இருக்கும்.&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="/images/GNULinuxForBeginnersInTamil1.txt"&gt;GNU/Linux tutorial for beginners - Part 1 (க்னு/லினக்ஸ் தொடக்கக்
குறிப்புகள் - பகுதி 1)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="/images/GNULinuxForBeginnersInTamil2.txt"&gt;GNU/Linux tutorial for beginners - Part 2 (க்னு/லினக்ஸ் தொடக்கக்
குறிப்புகள் - பகுதி 2)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="/images/GNULinuxForBeginnersInTamil3.txt"&gt;GNU/Linux tutorial for beginners - Part 3 (க்னு/லினக்ஸ் தொடக்கக்
குறிப்புகள் - பகுதி 3)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; These files use Unicode encoding. The orginal version was
written using TAB and TSCII encoding. &lt;strong&gt;Also if you try to open the
above files in a browser, all browsers may not display it properly. So,
download the file locally and use a unicode capable text editor to view
the file.&lt;/strong&gt;&lt;/p&gt;
</summary><category term="linux"></category><category term="tamil"></category></entry><entry><title>A mallu rap!</title><link href="http://praveen.kumar.in/2005/03/31/a-mallu-rap/" rel="alternate"></link><updated>2005-03-31T18:33:56+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-31:2005/03/31/a-mallu-rap/</id><summary type="html">&lt;p&gt;Have you ever heard a mallu (Malayaalee) rap. If not, here is one for
you.&lt;/p&gt;
&lt;div class="embed-responsive embed-responsive-16by9"&gt;
&lt;iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/PW0CWEzuYkM" width="420"&gt;
&lt;/iframe&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class="reference external" href="/2005/04/07/welcome-to-india-lyrics/"&gt;Here&lt;/a&gt; is the lyrics for the
song.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Courtesy:&lt;/strong&gt; &lt;a class="reference external" href="http://www.livejournal.com/users/sunson"&gt;Suraj&lt;/a&gt;&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>The birthday of a family</title><link href="http://praveen.kumar.in/2005/03/30/the-birthday-of-a-family/" rel="alternate"></link><updated>2005-03-30T20:32:02+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-30:2005/03/30/the-birthday-of-a-family/</id><summary type="html">&lt;p&gt;Today, March 30 is a special day for a family. It is of my friend
Vishal's. Today is the birthday of all the four persons of his family;
him, his brother, his father and his mother. I have never seen a case
like this before. It is a very rare one. &lt;strong&gt;I wish Vishal and his family
a very happy birthday and many more happy returns of the day&lt;/strong&gt;.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Ganguly humors</title><link href="http://praveen.kumar.in/2005/03/30/ganguly-humors/" rel="alternate"></link><updated>2005-03-30T18:20:47+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-30:2005/03/30/ganguly-humors/</id><summary type="html">&lt;p&gt;Here is a couple of Ganguly humors that I have received over e-mail.&lt;/p&gt;
&lt;div class="section" id="simple-steps-to-cook-maggi"&gt;
&lt;h2&gt;4 simple steps to cook Maggi&lt;/h2&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; boil one cup of water&lt;/div&gt;
&lt;div class="line"&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; as soon as ganguly goes for batting, put the noodles in
the boiled water and put the tastemaker.&lt;/div&gt;
&lt;div class="line"&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; stir till ganguly
is onfield.&lt;/div&gt;
&lt;div class="line"&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; As soon as ganguly is back in pavilion, your noodles r
ready to eat.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="phone-call-for-ganguly"&gt;
&lt;h2&gt;Phone call for Ganguly!&lt;/h2&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;India Pakistan Match has started. As to be expected, it's a charged up
atmosphere and the heat is really on!&lt;/div&gt;
&lt;div class="line"&gt;India is put in to bat. As to be expected, three wickets down, for a
measly score.&lt;/div&gt;
&lt;div class="line"&gt;There is phone call for Ganguly, at the Dressing Room. The Team
Manager picks up the call.&lt;/div&gt;
&lt;div class="line"&gt;"Hello! I am Ganguly's friend speaking. Can I talk to him now?"&lt;/div&gt;
&lt;div class="line"&gt;The Team Manager replies : &lt;strong&gt;"Sorry! He has just gone in to bat."&lt;/strong&gt;&lt;/div&gt;
&lt;div class="line"&gt;The caller replies &lt;strong&gt;"No problem. I'll hold the line!"&lt;/strong&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</summary><category term="cricket"></category></entry><entry><title>My Geek Code</title><link href="http://praveen.kumar.in/2005/03/30/my-geek-code/" rel="alternate"></link><updated>2005-03-30T12:56:19+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-30:2005/03/30/my-geek-code/</id><summary type="html">&lt;p&gt;I already had a &lt;a class="reference external" href="http://www.geekcode.com/geek.html"&gt;geek code&lt;/a&gt; long
back (before a couple of years). I forgot where I stored it ;-)
Therefore I have created a new one (which better suits now). It well it
is here.&lt;/p&gt;
&lt;pre class="code text literal-block"&gt;
**GE/CS d s+:+ a-- C++ UL++ P+ L++ E W+++ N o K- w++ O M V-- PS PE++ Y+ PGP+ t- 5 X+ R+ tv- b+ DI++ D+ G e++ h! r-- !y **
&lt;/pre&gt;
&lt;p&gt;If I plan to use this in my signature, I should probably phrase it as&lt;/p&gt;
&lt;pre class="code text literal-block"&gt;
-----BEGIN GEEK CODE BLOCK-----
  Version: 3.12
GE/CS d s+:+ a-- C++ UL++ P+ L++ E W+++ N o K- w++ O M V-- PS PE++ Y+ PGP+ t- 5 X+ R+ tv- b+ DI++ D+ G e++ h! r-- !y
------END GEEK CODE BLOCK------
&lt;/pre&gt;
</summary><category term="notags"></category></entry><entry><title>My blogger code</title><link href="http://praveen.kumar.in/2005/03/30/my-blogger-code/" rel="alternate"></link><updated>2005-03-30T11:13:11+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-30:2005/03/30/my-blogger-code/</id><summary type="html">&lt;p&gt;My blogger &lt;tt class="docutils literal"&gt;&amp;lt;code /&amp;gt;&lt;/tt&gt; is &lt;tt class="docutils literal"&gt;B1 d t+ k s &lt;span class="pre"&gt;u--&lt;/span&gt; f+ i o &lt;span class="pre"&gt;x--&lt;/span&gt; e+ l+ c-&lt;/tt&gt;. What
is yours? &lt;a class="reference external" href="http://www.leatheregg.com/bloggercode/"&gt;Find out&lt;/a&gt;.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>The bears started thier attack</title><link href="http://praveen.kumar.in/2005/03/30/the-bears-started-thier-attack/" rel="alternate"></link><updated>2005-03-30T08:21:03+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-30:2005/03/30/the-bears-started-thier-attack/</id><summary type="html">&lt;p&gt;Indian stock market vitnessed the attack of bears yesterday. BSE SENSEX
slid down by 143 points from the previous close to touch 6368 on
yesterday's close. It is getting closer to what we saw in the early Jan
crash of this year. There is no specific reason for this fall. The most
common reason given is that the US interest rates which could retard the
FII investments. Whatever the reason be, it is going to take a long time
to touch 6900+ levels again. Since I was not involved in trading last
few weaks, I have lost some tens of thousands. It's all in the game :-)&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>IP to Country plugin is now up</title><link href="http://praveen.kumar.in/2005/03/30/ip-to-country-plugin-is-now-up/" rel="alternate"></link><updated>2005-03-30T03:31:56+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-30:2005/03/30/ip-to-country-plugin-is-now-up/</id><summary type="html">&lt;p&gt;Finally I have managed to get the &lt;a class="reference external" href="http://priyadi.net/archives/2005/02/25/wordpress-ip-to-country-plugin/"&gt;IP to Country
plugin&lt;/a&gt;
up and running. The difficulty was because of the lack in priveliege to
load data from CSV file into MySQL. The &lt;a class="reference external" href="http://ip-to-country.webhosting.info/node/view/6"&gt;IP to Country
database&lt;/a&gt; was in
CSV format and I can't load it on my server. Later, I have created a db
on my local machine, loaded the file, taken a SQL dump of it and
uploaded it on my server. The SQL dump (last updated on March 1, 2005)
is available
&lt;a class="reference external" href="http://praveen.kumar.in/pub/iptocountry/iptocountry.tar.bz2"&gt;here&lt;/a&gt;.
I thought I could share this to reduce the pain of others who come
across the similar issue. BTW, I am not sure if the &lt;a class="reference external" href="http://ip-to-country.webhosting.info/node/view/62"&gt;license of IP to
Country database&lt;/a&gt;
allows to share it this way. If found illegal, I will remove the file
for download.&lt;/p&gt;
&lt;p&gt;This plugin needs a small correction in the way of handling it for WP
1.5. Use this block of code in your "comments.php" file of your current
theme by the side of the comment poster's name.&lt;/p&gt;
&lt;!-- Update (16 Aug 2005):
`&lt;/2005/08/16/updated-version-of-ip-to-country-database/&gt;`__, The
MySQL dump of the latest version (15 Aug 2005) of the IP to Country..
database can be found `here
&lt;http://praveen.kumar.in/pub/iptocountry/ip-to-country-05-Aug-15.tar.bz2&gt;`__. --&gt;
</summary><category term="blog"></category><category term="privacy"></category></entry><entry><title>An open letter to Ganguly</title><link href="http://praveen.kumar.in/2005/03/30/an-open-letter-to-ganguly/" rel="alternate"></link><updated>2005-03-30T02:46:07+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-30:2005/03/30/an-open-letter-to-ganguly/</id><summary type="html">&lt;p&gt;One of the forward that I received today. I strongly agree with this
letter.&lt;/p&gt;
&lt;!-- --&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;March 29, 2005&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Dear Dada,&lt;/p&gt;
&lt;p&gt;I have been and remain one of the greatest fans of your batting and more
importantly your captaincy. Your captaincy has been one of the most
important contributions to the current Indian team, and you and John
Wright's coaching have transformed a country with talent to a country
wanting to aggressively go for the victory. This in itself has been an
invaluable contribution and the results for the most part have showed.
Where the side would once upon a time have meekly given in to the
opposition or sulked about past defeats, the team is willing to put the
past behind and appears hungry for wins since you took over the helm.
Unfortunately, this letter is not about that.&lt;/p&gt;
&lt;p&gt;What has become increasingly disturbing over the past few seasons has
been your precipitous decline as a batsman. I am not one to believe that
good batting can be a fluke. There were truly hints of genius in your
batting many years ago. And there was a reason why opposition bowlers
feared you. That was not some fortuitous event, but the fact today is
that you have truly slumped as a batsman.&lt;/p&gt;
&lt;p&gt;You claimed in a recent interview that it is just a small bad patch, but
I beg to differ. You have not scored runs in a very long time and your
reaction in being dismissed in the second innings of the third test made
it very clear that you are well aware of it. In case you have not seen
the numbers already, I am attaching below your recent test scores. Next
to it, are also Anil Kumble's.&lt;/p&gt;
&lt;p&gt;As is plainly obvious, for the past two years (since the World Cup
essentially), you have scored well below your usual average. The
pertinent column is the one with the statistics without Bangladesh (for
they truly cannot be considered a competitive Test playing team yet).
Your average is only 80% of what is used to be and is no where near the
50 mark that a modern specialist batsman should have.&lt;/p&gt;
&lt;div class="pull-left img-padding figure" style="width: 211px; height: auto; max-width: 100%;"&gt;
&lt;img alt="Ganguly Stats" src="http://praveen.kumar.in/images/GangulyStats.gif" style="width: 211px; height: auto; max-width: 100%;"/&gt;
&lt;/div&gt;
&lt;div class="pull-right img-padding figure" style="width: 211px; height: auto; max-width: 100%;"&gt;
&lt;img alt="Kumble Stats" src="http://praveen.kumar.in/images/KumbleStats.gif" style="width: 211px; height: auto; max-width: 100%;"/&gt;
&lt;/div&gt;
&lt;p&gt;By comparison, Kumble has performed more consistently and in fact scored
twice as many runs as you did in the latest Pakistan series. You
cumulatively scored less than what a batsman in your position should be
easily scoring in an innings. This is a cause for concern. A batsman at
your level is expected to be scoring a century every series or at least
every other series, not one in two years.&lt;/p&gt;
&lt;p&gt;More importantly however is the fact that you are currently taking up a
spot in the playing eleven that could go to another batsman that could
add to the team's total number of runs and help them develop as a
batsman for the country.&lt;/p&gt;
&lt;div class="pull-left img-padding figure" style="width: 200px; height: auto; max-width: 100%;"&gt;
&lt;img alt="Yuvraj Stats" src="http://praveen.kumar.in/images/YuvrajStats.gif" style="width: 200px; height: auto; max-width: 100%;"/&gt;
&lt;/div&gt;
&lt;p&gt;Two names that immediately come to mind are Yuvraj Singh and Mohammed
Kaif. They are very talented batsmen who are being made to sit out in
the prime of their careers. That is unfortunate not only for them but
for the millions of fans who follow their beloved team. As you can see
from the table below, Yuvraj Singh deserves the place more.&lt;/p&gt;
&lt;p&gt;In conclusion, your captaincy has been greatly appreciated and needed
and there still is a role for you to play for the team. Unfortunately
however, only eleven can be on the playing team and all of them must
perform for the team to win. The third test called for a captain's
innings and you failed to deliver, yet again.&lt;/p&gt;
&lt;p&gt;Sir, there is something in all the boos that you got. It is the ardent
appeal of a nation for you to recognize that something has gone terribly
wrong and that you need to step down and come back to form. For the love
of the team that you have helped shape, you must move away from
international cricket and bring back the left-hand genius that you once
were. For I can no longer afford to lose any more bets to my friends
that the next innings will mark your return.&lt;/p&gt;
&lt;p&gt;A True Fan, Sulabh Dhanuka&lt;/p&gt;
&lt;/blockquote&gt;
</summary><category term="cricket"></category></entry><entry><title>Browser detection plugin up</title><link href="http://praveen.kumar.in/2005/03/29/browser-detection-plugin-up/" rel="alternate"></link><updated>2005-03-29T01:56:47+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-29:2005/03/29/browser-detection-plugin-up/</id><summary type="html">&lt;p&gt;I have just configured the &lt;a class="reference external" href="http://priyadi.net/archives/2005/03/29/wordpress-browser-detection-plugin/"&gt;browser detection
plugin&lt;/a&gt;
from Priyadi. It is working like a charm. Actually, I was trying to
install &lt;a class="reference external" href="http://priyadi.net/archives/2005/02/25/wordpress-ip-to-country-plugin/"&gt;IP to Country
plugin&lt;/a&gt;
from that site since the IP2Nation plugin displays the countries
incorrectly. I have accidentaly come across this browser detection
plugin. Since I liked it, I stole it ;-)&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Names and stories</title><link href="http://praveen.kumar.in/2005/03/28/names-and-stories/" rel="alternate"></link><updated>2005-03-28T20:32:44+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-28:2005/03/28/names-and-stories/</id><summary type="html">&lt;p&gt;One of the interesting forward that I received today is about various
names and thier stories. Worth sharing.&lt;/p&gt;
&lt;!-- --&gt;
&lt;blockquote&gt;
&lt;p&gt;Mercedes -&amp;gt; This was actually the financier's daughter's name.&lt;/p&gt;
&lt;p&gt;Adobe -&amp;gt; This came from name of the river Adobe Creek that ran behind
the house of founder John Warnock.&lt;/p&gt;
&lt;p&gt;Apple Computers &amp;gt; It was the favorite fruit of founder Steve Jobs. He
was three months late in filing a name for the business, and he
threatened to call his company Apple Computers if the other colleagues
didn't suggest a better name by 5 o'clock.&lt;/p&gt;
&lt;p&gt;CISCO -&amp;gt; It is not an acronym as popularly believed. It is short for San
Francisco.&lt;/p&gt;
&lt;p&gt;Compaq -&amp;gt; This name was formed by using COMp, for computer,and PAQ to
denote a small integral object.&lt;/p&gt;
&lt;p&gt;Corel -&amp;gt; The name was derived from the founder's name Dr.Michael
Cowpland. It stands for COwpland REsearch Laboratory.&lt;/p&gt;
&lt;p&gt;Google -&amp;gt; The name started as a joke boasting about the amount of
information the search-engine would be able to search. It was originally
named 'Googol', a word for the number represented by 1 followed by 100
zeros. After founders - Stanford graduate students Sergey Brin and Larry
Page presented their project to an angel investor, they received a
cheque made out to 'Google'.&lt;/p&gt;
&lt;p&gt;Hotmail -&amp;gt; Founder Jack Smith got the idea of accessing e-mail via the
web from a computer anywhere in the world. When Sabeer Bhatia came up
with the business plan for the mail service, he tried all kinds of names
ending in 'mail' and finally settled for hotmail as it included the
letters "html" - the programming language used to write web pages. It
was initially referred to as HoTMaiL with selective uppercasing.&lt;/p&gt;
&lt;p&gt;Hewlett Packard -&amp;gt; Bill Hewlett and Dave Packard tossed a coin to decide
whether the company they founded would be called Hewlett-Packard or
Packard-Hewlett.&lt;/p&gt;
&lt;p&gt;Intel -&amp;gt; Bob Noyce and Gordon Moore wanted to name their new company
'MooreNoyce' but that was already trademarked by a hotel chain so they
had to settle for an acronym of INTegrated ELectronics.&lt;/p&gt;
&lt;p&gt;Microsoft -&amp;gt; Coined by Bill Gates to represent the company that was
devoted to MICROcomputer SOFTware. Originally christened Micro-Soft, the
'-' was removed later on.&lt;/p&gt;
&lt;p&gt;Motorola -&amp;gt; Founder Paul Galvin came up with this name when his company
started manufacturing radios for cars. The popular radio company at the
time was called Victrola.&lt;/p&gt;
&lt;p&gt;ORACLE -&amp;gt; Larry Ellison and Bob Oats were working on a consulting
project for the CIA (Central Intelligence Agency). The code name for the
project was called Oracle (the CIA saw this as the system to give
answers to all questions or something such). The project was designed to
help use the newly written SQL code by IBM. The project eventually was
terminated but Larry and Bob decided to finish what they started and
bring it to the world. They kept the name Oracle and created the RDBMS
engine. Later they kept the same name for the company.&lt;/p&gt;
&lt;p&gt;Sony -&amp;gt; It originated from the Latin word 'sonus' meaning sound, and
'sonny' a slang used by Americans to refer to a bright youngster.&lt;/p&gt;
&lt;p&gt;SUN -&amp;gt; Founded by 4 Stanford University buddies, SUN is the acronym for
Stanford University Network. Andreas Bechtolsheim built a microcomputer;
Vinod Khosla recruited him and Scot t McNealy to manufacture computers
based on it, and Bill Joy to develop a UNIX-based OS for the computer.&lt;/p&gt;
&lt;p&gt;Yahoo! -&amp;gt; The word was invented by Jonathan Swift and used in his book
'Gulliver's Travels'. It represents a person who is repulsive in
appearance and action and is barely human. Yahoo! Founders Jerry Yang
and David Filo selected the name because they considered themselves
yahoos&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Disclaimer: I am not responsible for the authenticity of the
information provided in the above article.&lt;/strong&gt;&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>MIT, India on Wikipedia</title><link href="http://praveen.kumar.in/2005/03/28/mit-on-wikipedia/" rel="alternate"></link><updated>2005-03-28T17:51:26+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-28:2005/03/28/mit-on-wikipedia/</id><summary type="html">&lt;p&gt;I have accidently come across the
&lt;a class="reference external" href="http://en.wikipedia.org/wiki/Madras_Institute_Of_Technology"&gt;page&lt;/a&gt;
of &lt;a class="reference external" href="http://www.mitindia.edu"&gt;Madras Institute of Technology&lt;/a&gt; on
Wikipedia. The page is a bare skeleton. Should add more information to
this page. I plan to do it when I find some time. Meanwhile, I should
forward this to the groups so that other people can also add
information.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>பிரிவின் துயரம்!</title><link href="http://praveen.kumar.in/2005/03/28/%E0%AE%AA%E0%AE%BF%E0%AE%B0%E0%AE%BF%E0%AE%B5%E0%AE%BF%E0%AE%A9%E0%AF%8D-%E0%AE%A4%E0%AF%81%E0%AE%AF%E0%AE%B0%E0%AE%AE%E0%AF%8D/" rel="alternate"></link><updated>2005-03-28T17:30:02+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-28:2005/03/28/பிரிவின்-துயரம்/</id><summary type="html">&lt;!-- --&gt;
&lt;blockquote&gt;
&lt;p&gt;கண்கள் இமைக்காமல் பார்க்கிறது எதை என்று உணராமல், வெகு நேரம் கழிந்ததை
அறியாமல்..&lt;/p&gt;
&lt;p&gt;கால்கள் நடக்கிறது எதை நோக்கி என்று தெரியாமல்..&lt;/p&gt;
&lt;p&gt;காதுகள் செயலிழந்து இருக்கிறது நண்பர்கள் என்னிடம் பேசுவதை கேட்காமல்..&lt;/p&gt;
&lt;p&gt;இதழ்கள் சேர்ந்தே இருக்கிறது மனதில் உள்ளதை பேசுவதர்க்கு இயலாமல்..&lt;/p&gt;
&lt;p&gt;இவை அணைத்தும் நடக்கிறது மனதில் உள்ள குழப்பத்தால்.. பிரிவின் துயரத்தால்..&lt;/p&gt;
&lt;/blockquote&gt;
&lt;!-- :del:`இதை எழுதனது ஹரினி இல்ல!` - ஹரினி. --&gt;
&lt;p&gt;&lt;strong&gt;பின்குறிப்பு:&lt;/strong&gt; இது ஹரினி friend'a நம்பவைக்க மாற்றப்பட்டது!&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Ganguly's irresponsible play</title><link href="http://praveen.kumar.in/2005/03/28/gangulys-irresponsible-play/" rel="alternate"></link><updated>2005-03-28T08:45:47+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-28:2005/03/28/gangulys-irresponsible-play/</id><summary type="html">&lt;p&gt;It is almost one and a half years since Ganguly hit a century in test
matches. The fans expected a good play from him at Kolkatta. But he
failed. The same continues at Bangalore as well. Ganguly is a good
captain. But it can't be an excuse for personal non-performance. A
captain should lead by example just like Inzamam. This shows Ganguly's
irresponsible play. Ganguly is given more weightage because of a lot of
victories that we got when he was captain. It is more of Ganguly's luck
than real talence. The problem is that there is no proper captain for
India except him. Dravid is coming along well. But not upto the mark.
Once India finds a good captain and Ganguly continues his hopeless play,
India can easily drop him off the squad. Here is a glimpse of Ganguly's
recent test match performances.&lt;/p&gt;
&lt;p&gt;Runs taken at&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;India's tour to Australia during 2003/04 - 2, 12, 37, 73 and 16.&lt;/li&gt;
&lt;li&gt;India's tour to Pakistan during 2003/04 - 77.&lt;/li&gt;
&lt;li&gt;Australia's tour to India during 2004/05 - 45, 5 and 9.&lt;/li&gt;
&lt;li&gt;South Africa's tour to India during 2004/05 - 57 and 40.&lt;/li&gt;
&lt;li&gt;India's tour to Bangladesh during 2004/05 - 71 and 88.&lt;/li&gt;
&lt;li&gt;Pakistan's tour to India (Now) - 21, 12, 12, 1.&lt;/li&gt;
&lt;/ul&gt;
</summary><category term="cricket"></category></entry><entry><title>Altering the header tags in PHPNuke based sites</title><link href="http://praveen.kumar.in/2005/03/28/altering-the-header-tags-in-phpnuke-based-sites/" rel="alternate"></link><updated>2005-03-28T00:14:16+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-28:2005/03/28/altering-the-header-tags-in-phpnuke-based-sites/</id><summary type="html">&lt;p&gt;A good tutorial for altering the headers in a PHPNuke based site can be
found &lt;a class="reference external" href="http://www.daniweb.com/tutorials/tutorial3590.html"&gt;here&lt;/a&gt;.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Novell Desktop will Surpase Windows</title><link href="http://praveen.kumar.in/2005/03/27/novell-desktop-will-surpase-windows/" rel="alternate"></link><updated>2005-03-27T23:15:32+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-27:2005/03/27/novell-desktop-will-surpase-windows/</id><summary type="html">&lt;p&gt;Novell &lt;a class="reference external" href="http://www.eweek.com/article2/0,1759,1778076,00.asp"&gt;says&lt;/a&gt;
that its next Linux Destop will surpass Windows.&lt;/p&gt;
</summary><category term="novell"></category></entry><entry><title>EPIC 2014</title><link href="http://praveen.kumar.in/2005/03/27/epic-2014/" rel="alternate"></link><updated>2005-03-27T22:43:16+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-27:2005/03/27/epic-2014/</id><summary type="html">&lt;p&gt;In the year 2014, The New York Times has gone offline. The Fourth
Estate's fortunes have waned. What happened to the news? What is the
EPIC? Find more about it &lt;a class="reference external" href="http://oak.psych.gatech.edu/~epic/"&gt;here&lt;/a&gt;.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Some minor hacks to Gila</title><link href="http://praveen.kumar.in/2005/03/27/some-minors-hacks-to-gila/" rel="alternate"></link><updated>2005-03-27T01:44:00+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-27:2005/03/27/some-minors-hacks-to-gila/</id><summary type="html">&lt;p&gt;I have made some minor hacks to the Gila theme. I think now the site
looks much better than it was previously. I am on the way of installing
some essential plugins as well.&lt;/p&gt;
</summary><category term="blog"></category><category term="wordpress"></category></entry><entry><title>Icons, icons!</title><link href="http://praveen.kumar.in/2005/03/26/icons-icons/" rel="alternate"></link><updated>2005-03-26T17:48:41+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-26:2005/03/26/icons-icons/</id><summary type="html">&lt;p&gt;There is a good collection of icons that can be used on your blog pages
available at
&lt;a class="reference external" href="http://www.diretribe.com/stuff/icons-lots-of-icons/"&gt;Diretribe&lt;/a&gt;.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>An intersting blog</title><link href="http://praveen.kumar.in/2005/03/26/an-intersting-blog/" rel="alternate"></link><updated>2005-03-26T16:09:18+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-26:2005/03/26/an-intersting-blog/</id><summary type="html">&lt;p&gt;I have come across an intersting blog today. It is about a child who is
just 1 and half years old. He is &lt;a class="reference external" href="http://jjg.goringe.net/"&gt;Jeyanth Joshua
Goringe&lt;/a&gt;. His parents are maintaining the
blog. This one is real neat one. A good effort. They have a very good
&lt;a class="reference external" href="http://jeyanth.goringe.net/photos.php"&gt;photo album&lt;/a&gt; as well. Great
work guys. Keep going.&lt;/p&gt;
</summary><category term="blog"></category></entry><entry><title>Novell acquires Tally systems</title><link href="http://praveen.kumar.in/2005/03/26/novell-acquires-tally-system/" rel="alternate"></link><updated>2005-03-26T15:56:22+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-26:2005/03/26/novell-acquires-tally-system/</id><summary type="html">&lt;p&gt;It seems that &lt;a class="reference external" href="http://www.novell.com/"&gt;Novell&lt;/a&gt; has acquired &lt;a class="reference external" href="http://www.tallysystems.com/"&gt;Tally
systems&lt;/a&gt;, a leading expert in IT asset
management solutions. Read more about it
&lt;a class="reference external" href="http://www.novell.com/news/press/archive/2005/03/pr05034.html"&gt;here&lt;/a&gt;.
Novell's plan are a mystery!&lt;/p&gt;
</summary><category term="novell"></category></entry><entry><title>Bootsplash themeing</title><link href="http://praveen.kumar.in/2005/03/26/bootsplash-themeing/" rel="alternate"></link><updated>2005-03-26T15:43:00+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-26:2005/03/26/bootsplash-themeing/</id><summary type="html">&lt;p&gt;Now, I am looking at the
&lt;a class="reference external" href="http://www.bootsplash.org/themeinfo.html"&gt;documentation&lt;/a&gt; for
&lt;a class="reference external" href="http://www.bootsplash.org/"&gt;bootsplash&lt;/a&gt; themeing. I am planning to
create a new bootsplash theme. Well, the purpose of the mission is
secret for now ;-)&lt;/p&gt;
</summary><category term="linux"></category></entry><entry><title>Subscription to comments is now up.</title><link href="http://praveen.kumar.in/2005/03/26/subscription-to-comments-is-now-up/" rel="alternate"></link><updated>2005-03-26T08:55:19+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-26:2005/03/26/subscription-to-comments-is-now-up/</id><summary type="html">&lt;p&gt;You can now subscribe to comments via e-mail. This is also an essential
plugin for Wordpress. Wordpress people should consider to take up this
plugin officially. Thanks to
&lt;a class="reference external" href="http://www.scriptygoddess.com/"&gt;Scriptygoddess&lt;/a&gt; for this real useful
plugin.&lt;/p&gt;
</summary><category term="blog"></category><category term="wordpress"></category></entry><entry><title>Threaded comments now supported</title><link href="http://praveen.kumar.in/2005/03/26/threaded-comments-now-supported/" rel="alternate"></link><updated>2005-03-26T08:20:58+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-26:2005/03/26/threaded-comments-now-supported/</id><summary type="html">&lt;p&gt;I have installed and configured threaded (nested) comments. I think this
is one of the most essential feature. I would like this feature to be
officially supported by Wordpress. Thanks
&lt;a class="reference external" href="http://www.meidell.dk/blog/archives/2004/09/04/nested-comments/"&gt;Brain&lt;/a&gt;
for you wonderful plugin.&lt;/p&gt;
</summary><category term="blog"></category><category term="wordpress"></category></entry><entry><title>TSCII to Unicode converter</title><link href="http://praveen.kumar.in/2005/03/25/tscii-to-unicode-converter/" rel="alternate"></link><updated>2005-03-25T14:40:42+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-25:2005/03/25/tscii-to-unicode-converter/</id><summary type="html">&lt;p&gt;There is a good online TSCII to Unicode converter available at
&lt;a class="reference external" href="http://www.suratha.com/reader.htm"&gt;Suratha's site&lt;/a&gt;. I used that one
to convert the previous post (poem) from TSCII to Unicode. Really worth
mentioning.&lt;/p&gt;
</summary><category term="tamil"></category></entry><entry><title>நட்பின் வலி!</title><link href="http://praveen.kumar.in/2005/03/25/%E0%AE%A8%E0%AE%9F%E0%AF%8D%E0%AE%AA%E0%AE%BF%E0%AE%A9%E0%AF%8D-%E0%AE%B5%E0%AE%B2%E0%AE%BF/" rel="alternate"></link><updated>2005-03-25T12:37:31+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-25:2005/03/25/நட்பின்-வலி/</id><summary type="html">&lt;!-- --&gt;
&lt;blockquote&gt;
&lt;p&gt;காதலில் மட்டும் தான் வலி உண்டா? நட்பிலும் உண்டு, என்று நம்மால் நாம்
உணர்ந்தோம்&lt;/p&gt;
&lt;p&gt;கண்கள் கூறும் ஆறுதலுக்கு நிகர் இவ்வுலகில் வேரொண்றுமில்லையென்று உன்னால்
நான் உணர்ந்த போது, கண்ணுக்கெட்டாத தூரத்தில் நாம்&lt;/p&gt;
&lt;p&gt;காலத்தோடு வளர்ந்த நம் நட்பு தூரத்தால் கரைந்திடாமல் காத்து, நட்பிற்கு
இலக்கணமாய் திகழ்வோமென அவர் அவர் பாதையில் இன்று நாம்&lt;/p&gt;
&lt;p&gt;சோர்வுற்ற போது தாங்கிய உன் தோள்கள், கலங்கும் போது கண் துடைத்த உன்
விரல்கள், குழம்பும் போது தெளிவு தந்த உன் கண்கள், இவை அனைத்தும் என்றும்
இருக்கும் என்னுடன் நீ இல்லாத போதும்.&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;ஹரினி.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;இந்த பாட்டு எழுதுன ஹரினிக்கு ஒரு 'ஓ' போடுங்கபா!&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>JVisitors plugin is now up</title><link href="http://praveen.kumar.in/2005/03/25/jvisitors-plugin-is-now-up/" rel="alternate"></link><updated>2005-03-25T03:46:09+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-25:2005/03/25/jvisitors-plugin-is-now-up/</id><summary type="html">&lt;p&gt;I have set up the
&lt;a class="reference external" href="http://joechung.org/untitled/jvisitors/"&gt;JVisitors&lt;/a&gt; plugin
sucessfuly in the journal. It is working fine.&lt;/p&gt;
</summary><category term="blog"></category><category term="wordpress"></category></entry><entry><title>Tamil Unicode Fonts for Windows</title><link href="http://praveen.kumar.in/2005/03/24/tamil-unicode-fonts-for-windows/" rel="alternate"></link><updated>2005-03-24T22:18:15+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-24:2005/03/24/tamil-unicode-fonts-for-windows/</id><summary type="html">&lt;p&gt;You can download Tamil Unicode fonts for Windows
&lt;a class="reference external" href="http://prdownloads.sourceforge.net/thamizha/TamilUniFonts.zip?download"&gt;here&lt;/a&gt;.
This has some 12 fonts and this is an installer which will copy all
fonts to the default Windows font's directory and register those fonts.&lt;/p&gt;
</summary><category term="tamil"></category></entry><entry><title>This site and MSIE</title><link href="http://praveen.kumar.in/2005/03/24/this-site-and-msie/" rel="alternate"></link><updated>2005-03-24T16:01:51+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-24:2005/03/24/this-site-and-msie/</id><summary type="html">&lt;p&gt;I have received a lot of feedback from my friends that this site is not
looking good on MSIE (Microsoft Internet Explorer). Yep. I agree. To
enjoy the site, I would like you to use &lt;a class="reference external" href="http://www.mozilla.org/products/firefox/"&gt;Mozilla
Firefox&lt;/a&gt;. MSIE seems to
have some problem in displaying the theme that I am currently using.
Just for an information, the site looks really great in Firefox compared
to MSIE.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>NTC Annual trip planned</title><link href="http://praveen.kumar.in/2005/03/24/ntc-annual-trip-planned/" rel="alternate"></link><updated>2005-03-24T15:56:02+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-24:2005/03/24/ntc-annual-trip-planned/</id><summary type="html">&lt;p&gt;Finally, the NTC annual trip is planned. We are going to
&lt;a class="reference external" href="http://www.munnar.com/"&gt;Munnar&lt;/a&gt;, Kerala and are about to stay at
&lt;a class="reference external" href="http://www.edasserygroup.com/"&gt;Edassery Eastend&lt;/a&gt; resorts. We are
leaving Chennai by 1st April (Alappey Express) and coming back by 4th
April. Two nights at Munnar. I hope that I will have a good time over
there. Also, I will come back with some good photos as well. It is long
time since I did some serious shooting. At Munnar, I wouldn't miss it.&lt;/p&gt;
</summary><category term="hcl"></category></entry><entry><title>Canon EOS Digital Rebel XT at a rock bottom price at Amazon; Are they cheating?</title><link href="http://praveen.kumar.in/2005/03/23/canon-eos-digital-rebel-xt-at-a-rock-bottom-price-at-amazon-are-they-cheating/" rel="alternate"></link><updated>2005-03-23T08:42:05+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-23:2005/03/23/canon-eos-digital-rebel-xt-at-a-rock-bottom-price-at-amazon-are-they-cheating/</id><summary type="html">&lt;p&gt;I have come across the product
&lt;a class="reference external" href="http://www.amazon.com/exec/obidos/tg/stores/offering/list/-/B0007QKMQY/all/ref=dp_pb_a/002-9198183-2120011"&gt;page&lt;/a&gt;
of Canon EOS Digital Rebel XT at Amazon. There are new cameras listed
from $200 and it goes on. How is this possible? All the sellers who are
listed are "Just Launched" sellers. Are they trying to cheat us? What if
me make the order and we didn't get the product or we get a wrong/fake
product? Are we covered under Amazon's A-Z Safe Buying guarentee? The
offer looks pretty tempting. But I guess there is really something wrong
in this. Someone has to stop this sort of misguiding listings.&lt;/p&gt;
</summary><category term="ethics"></category><category term="scam"></category></entry><entry><title>New Canon EOS Digital Rebel for $360?</title><link href="http://praveen.kumar.in/2005/03/22/new-canon-eos-digital-rebel-for-360/" rel="alternate"></link><updated>2005-03-22T18:24:43+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-22:2005/03/22/new-canon-eos-digital-rebel-for-360/</id><summary type="html">&lt;p&gt;I have found a good offer of a new Canon EOS Digital Rebel with 18-55 mm
lens for $360 at
&lt;a class="reference external" href="http://www.amazon.com/gp/product/offer-listing/B0000C8VEK/102-6183930-9007360?condition=all/ASIN/B0000C8VEK"&gt;Amazon&lt;/a&gt;
from a vendor called zappseller. I have contacted the seller and he said
that it is a brand new product with Internation warranty. He also added
that he can ship it to India. If it is going to work out for $460
inclusive of shipping, I will buy it for sure. I think that this is a
dead cheap offer. Looking out cautiosly for other catches in this offer.&lt;/p&gt;
</summary><category term="ethics"></category><category term="scam"></category></entry><entry><title>Just created a photo.net account</title><link href="http://praveen.kumar.in/2005/03/22/just-created-photnet-account/" rel="alternate"></link><updated>2005-03-22T16:58:50+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-22:2005/03/22/just-created-photnet-account/</id><summary type="html">&lt;p&gt;I have just created a &lt;a class="reference external" href="http://www.photo.net"&gt;photo.net&lt;/a&gt; account.
&lt;a class="reference external" href="http://puggy.symonds.net/~suraj"&gt;Suraj&lt;/a&gt; wanted me to create this
much earlier. But, I am doing it only now.&lt;/p&gt;
</summary><category term="photography"></category></entry><entry><title>My new blog</title><link href="http://praveen.kumar.in/2005/03/22/my-new-blog/" rel="alternate"></link><updated>2005-03-22T16:29:00+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-22:2005/03/22/my-new-blog/</id><summary type="html">&lt;p&gt;&lt;del&gt;This blog is discontinued. I don't post here anymore.&lt;/del&gt; The new
blog is hosted on my site. It is at &lt;a class="reference external" href="http://praveen.kumar.in"&gt;http://praveen.kumar.in&lt;/a&gt;&lt;/p&gt;
</summary><category term="blog"></category><category term="wordpress"></category></entry><entry><title>Did man really set foot on the moon?</title><link href="http://praveen.kumar.in/2005/03/22/did-man-really-set-foot-on-the-moon/" rel="alternate"></link><updated>2005-03-22T16:05:27+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-22:2005/03/22/did-man-really-set-foot-on-the-moon/</id><summary type="html">&lt;p&gt;Here is an interesting article that I have encountered on a
&lt;a class="reference external" href="http://www.apfn.org/apfn/moon.htm"&gt;website&lt;/a&gt; when I was searching for
something else. I have heard about it before. It is the first time I am
reading a more detailed version of this issue. I am not sure how true
this is. This is the sole view of the author and &lt;strong&gt;I am no way
affiliated with it&lt;/strong&gt;. I just wanted to share it.&lt;/p&gt;
&lt;div class="section" id="id1"&gt;
&lt;h2&gt;Did man really set foot on the moon?&lt;/h2&gt;
&lt;p&gt;Shocking : See what NASA has done (Long but worth reading)&lt;/p&gt;
&lt;p&gt;Did man really walk on the Moon or was it the ultimate camera trick,
asks David Milne?&lt;/p&gt;
&lt;p&gt;In the early hours of May 16, 1990, after a week spent watching old
video footage of man on the Moon, a thought was turning into an
obsession in the mind of Ralph Rene.&lt;/p&gt;
&lt;p&gt;"How can the flag be fluttering?" the 47 year old American kept asking
himself when there's no wind on the atmosphere free Moon? That moment
was to be the beginning of an incredible Space odyssey for the self-
taught engineer from New Jersey.&lt;/p&gt;
&lt;p&gt;He started investigating the Apollo Moon landings, scouring every NASA
film, photo and report with a growing sense of wonder, until finally
reaching an awesome conclusion: America had never put a man on the Moon.
The giant leap for mankind was fake.&lt;/p&gt;
&lt;p&gt;It is of course the conspiracy theory to end all conspiracy theories.
But Rene has now put all his findings into a startling book entitled
NASA Mooned America. Published by himself, it's being sold by mail order
- and is a compelling read.&lt;/p&gt;
&lt;p&gt;The story lifts off in 1961 with Russia firing Yuri Gagarin into space,
leaving a panicked America trailing in the space race. At an emergency
meeting of Congress, President Kennedy proposed the ultimate face saver,
put a man on the Moon. With an impassioned speech he secured the plan an
unbelievable 40 billion dollars.&lt;/p&gt;
&lt;p&gt;And so, says Rene (and a growing number of astro-physicists are
beginning to agree with him), the great Moon hoax was born. Between 1969
and 1972, seven Apollo ships headed to the Moon. Six claim to have made
it, with the ill fated Apollo 13 - whose oxygen tanks apparently
exploded halfway being the only casualties. But with the exception of
the known rocks, which could have been easily mocked up in a lab, the
photographs and film footage are the only proof that the Eagle ever
landed. And Rene believes they're fake.&lt;/p&gt;
&lt;p&gt;For a start, he says, the TV footage was hopeless. The world tuned in to
watch what looked like two blurred white ghosts throw rocks and dust.
Part of the reason for the low quality was that, strangely, NASA
provided no direct link up. So networks actually had to film man's
greatest achievement from a TV screen in Houston - a deliberate ploy,
says Rene, so that nobody could properly examine it.&lt;/p&gt;
&lt;p&gt;By contrast, the still photos were stunning. Yet that's just the
problem. The astronauts took thousands of pictures, each one perfectly
exposed and sharply focused. Not one was badly composed or even blurred.&lt;/p&gt;
&lt;p&gt;As Rene points out, that's not all: The cameras had no white meters or
view ponders. So the astronauts achieved this feet without being able to
see what they were doing. There film stock was unaffected by the intense
peaks and powerful cosmic radiation on the Moon, conditions that should
have made it useless. They managed to adjust their cameras, change film
and swap filters in pressurized suits. It should have been almost
impossible with the gloves on their fingers.&lt;/p&gt;
&lt;p&gt;Award winning British photographer David Persey is convinced the
pictures are fake. His astonishing findings are explained alongside the
pictures on these pages, but the basic points are as follows: The
shadows could only have been created with multiple light sources and,in
particular, powerful spotlights. But the only light source on the Moon
was the sun.&lt;/p&gt;
&lt;p&gt;The American flag and the words "United States" are always Brightly lit,
even when everything around is in shadow. Not one still picture matches
the film footage, yet NASA claims both were shot at the same time.&lt;/p&gt;
&lt;p&gt;The pictures are so perfect, each one would have taken a slick
advertising agency hours to put them together. But the astronauts
managed it repeatedly. David Persey believes the mistakes were
deliberate, left there by "whistle blowers" who were keen for the truth
to one day get out.&lt;/p&gt;
&lt;p&gt;If Persey is right and the pictures are fake, then we've only NASA's
word that man ever went to the Moon. And, asks Rene, "Why would anyone
fake pictures of an event that actually happened?"&lt;/p&gt;
&lt;p&gt;The questions don't stop there. Outer space is awash with deadly
radiation that emanates from solar flares firing out from the sun.
Standard astronauts orbiting earth in near space, like those who
recently fixed the Hubble telescope, are protected by the earth's Van
Allen belt. But the Moon is to 240,000 miles distant, way outside this
safe band. And, during the Apollo flights, astronomical data shows there
were no less than 1,485 such flares.&lt;/p&gt;
&lt;p&gt;John Mauldin, a physicist who works for NASA, once said shielding at
least two meters thick would be needed. Yet the walls of the Lunar
Landers which took astronauts from the spaceship to the moons surface
were, said NASA, about the thickness of heavy duty aluminum foil.&lt;/p&gt;
&lt;p&gt;How could that stop this deadly radiation? And if the astronauts were
protected by their space suits, why didn't rescue workers use such
protective gear at the Chernobyl meltdown, which released only a
fraction of the dose astronauts would encounter? Not one Apollo
astronaut ever contracted cancer - not even the Apollo 16 crew who were
on their way to the Moon when a big flare started. "They should have
been fried", says Rene.&lt;/p&gt;
&lt;p&gt;Furthermore, every Apollo mission before number 11 (the first to the
Moon) was plagued with around 20,000 defects a-piece. Yet, with the
exception of Apollo 13, NASA claims there wasn't one major technical
problem on any of their Moon missions. Just one effect could have blown
the whole thing. "The odds against these are so unlikely that God must
have been the co-pilot," says Rene.&lt;/p&gt;
&lt;p&gt;Several years after NASA claimed its first Moon landing, Buzz Aldrin
"the second man on the Moon" was asked at a banquet what it felt like to
step on to the lunar surface. Aldrin staggered to his feet and left the
room crying uncontrollably. It would not be the last time he did this.
"It strikes me he's suffering from trying to live out a very big lie,"
says Rene. Aldrin may also fear for his life.&lt;/p&gt;
&lt;p&gt;Virgil Grissom, a NASA astronaut who baited the Apollo program, was due
to pilot Apollo 1 as part of the landings build up. In January 1967, he
hung a lemon on his Apollo capsule (in the US, unroadworthy cars are
called lemons) and told his wife Betty: "If there is ever a serious
accident in the space program, it's likely to be me."&lt;/p&gt;
&lt;p&gt;Nobody knows what fuelled his fears, but by the end of the month he and
his two co-pilots were dead, burnt to death during a test run when their
capsule, pumped full of high pressure pure oxygen, exploded.&lt;/p&gt;
&lt;p&gt;Scientists couldn't believe NASA's carelessness - even a chemistry
students in high school know high pressure oxygen is extremely
explosive. In fact, before the first manned Apollo fight even cleared
the launch pad, a total of 11 would be astronauts were dead. Apart from
the three who were incinerated, seven died in plane crashes and one in a
car smash. Now this is a spectacular accident rate.&lt;/p&gt;
&lt;p&gt;"One wonders if these 'accidents' weren't NASA's way of correcting
mistakes," says Rene. "Of saying that some of these men didn't have the
sort of 'right stuff' they were looking."&lt;/p&gt;
&lt;p&gt;NASA wont respond to any of these claims, their press office will only
say that the Moon landings happened and the pictures are real. But a
NASA public affairs officer called Julian Scheer once delighted 200
guests at a private party with footage of astronauts apparently on a
landscape. It had been made on a mission film set and was identical to
what NASA claimed was they real lunar landscape. "The purpose of this
film," Scheer told the enthralled group, "is to indicate that you really
can fake things on the ground, almost to the point of deception." He
then invited his audience to "Come to your own decision about whether or
not man actually did walk on the Moon."&lt;/p&gt;
&lt;p&gt;A sudden attack of honesty? You bet, says Rene, who claims the only real
thing about the Apollo missions were the lift offs. "The astronauts
simply have to be on board," he says, "in case the rocket exploded. It
was the easiest way to ensure NASA wasn't left with three astronauts who
ought to be dead." he claims, adding that they came down a day or so
later, out of the public eye (global surveillance wasn't what it is now)
and into the safe hands of NASA officials, who whisked them off to
prepare for the big day a week later.&lt;/p&gt;
&lt;p&gt;And now NASA is planning another giant step - Project Outreach, a 1
trillion dollar manned mission to Mars. "Think what they'll be able to
mock up with today's computer graphics," says Rene Chillingly. "Special
effects was in its infancy in the 60s. This time round will have no way
of determining the truth."&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;9 SPACE ODDITIES:&lt;/strong&gt;&lt;/p&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;Apollo 14 astronaut Allen Shepard played golf on the Moon. In front
of a worldwide TV audience, Mission Control teased him about slicing
the ball to the right. Yet a slice is caused by uneven air flow over
the ball. The Moon has no atmosphere and no air.&lt;/li&gt;
&lt;li&gt;A camera panned upwards to catch Apollo 16's Lunar Landerlifting off
the Moon. Who did the filming?&lt;/li&gt;
&lt;li&gt;One NASA picture from Apollo 11 is looking up at Neil Armstrong about
to take his giant step for mankind. The photographer must have been
lying on the planet surface. If Armstrong was the first man on the
Moon, then who took the shot?&lt;/li&gt;
&lt;li&gt;The pressure inside a space suit was greater than inside a football.
The astronauts should have been puffed out like the Michelin Man, but
were seen freely bending their joints.&lt;/li&gt;
&lt;li&gt;The Moon landings took place during the Cold War. Why didn't America
make a signal on the moon that could be seen from earth? The PR would
have been phenomenal and it could have been easily done with
magnesium flares.&lt;/li&gt;
&lt;li&gt;Text from pictures in the article said that only two men walked on
the Moon during the Apollo 12 mission. Yet the astronaut reflected in
the visor has no camera. Who took the shot?&lt;/li&gt;
&lt;li&gt;The flags shadow goes behind the rock so doesn't match the dark line
in the foreground, which looks like a line cord. So the shadow to the
lower right of the spaceman must be the flag. Where is his shadow?
And why is the flag fluttering if there is no air or wind on the
moon?&lt;/li&gt;
&lt;li&gt;How can the flag be brightly lit when its side is to the light? And
where, in all of these shots, are the stars?&lt;/li&gt;
&lt;li&gt;The Lander weighed 17 tons yet the astronauts feet seem to have made
a bigger dent in the dust. The powerful booster rocket at the base of
the Lunar Lander was fired to slow descent to the moons service. Yet
it has left no traces of blasting on the dust underneath. It should
have created a small crater, yet the booster looks like it's never
been fired.&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</summary><category term="conspiracy"></category></entry><entry><title>Quitting HCL Technologies</title><link href="http://praveen.kumar.in/2005/03/19/quitting-hcl-technologies/" rel="alternate"></link><updated>2005-03-19T23:33:24+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-19:2005/03/19/quitting-hcl-technologies/</id><summary type="html">&lt;p&gt;After a long thought, I have decided to quit &lt;a class="reference external" href="http://www.hcltechnologies.com"&gt;HCL
Technologies&lt;/a&gt;. I have decided to
persue my career in a different line, a bit away from Networking. Wait
for some more time for a detailed update on this.&lt;/p&gt;
</summary><category term="hcl"></category><category term="job"></category><category term="novell"></category></entry><entry><title>News update about me shortly</title><link href="http://praveen.kumar.in/2005/03/18/news-update-about-me-shortly/" rel="alternate"></link><updated>2005-03-18T19:00:25+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-18:2005/03/18/news-update-about-me-shortly/</id><summary type="html">&lt;p&gt;There is going to be a news update about me shortly. There are some
constraints in publishing the News now. I will post it once they are
resolved. Keep watching...&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Gallery 2 suspended</title><link href="http://praveen.kumar.in/2005/03/18/gallery-2-suspended/" rel="alternate"></link><updated>2005-03-18T11:20:36+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-18:2005/03/18/gallery-2-suspended/</id><summary type="html">&lt;p&gt;I have suspended the usage of Gallery 2 until next release of Gallery.
It is giving some weird problems. I am not able to resize the image as I
want. I am not able to delete photo or album. Seems that a lot of things
are broken. To make this work, I need to do a lot of googling and
research. I don't find time now. So, it is better to suspend it for now.&lt;/p&gt;
</summary><category term="blog"></category><category term="photography"></category></entry><entry><title>Disabling PHP safe mode site wide</title><link href="http://praveen.kumar.in/2005/03/18/disabling-php-safe-mode-site-wide/" rel="alternate"></link><updated>2005-03-18T09:01:59+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-18:2005/03/18/disabling-php-safe-mode-site-wide/</id><summary type="html">&lt;p&gt;When I was installing Gallery 2, I was facing a problem. Gallery 2 needs
PHP safe mdoe to be disabled. My host enabled it by default. I have
tried to change it using '.htaccess'. But, it was not working. Finally,
I have changed the apache configuration and made it work.
&lt;a class="reference external" href="http://www.webhostgear.com/166.html"&gt;Here&lt;/a&gt; is the documentation for
doing that.&lt;/p&gt;
</summary><category term="php"></category></entry><entry><title>Gallery 2 installed</title><link href="http://praveen.kumar.in/2005/03/18/gallery-2-installed/" rel="alternate"></link><updated>2005-03-18T08:59:39+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-18:2005/03/18/gallery-2-installed/</id><summary type="html">&lt;p&gt;&lt;del&gt;I have just completed the installation&lt;/del&gt; of &lt;a class="reference external" href="http://gallery.sf.net/"&gt;Gallery
2&lt;/a&gt; on my
&lt;a class="reference external" href="http://praveen.kumar.in/gallery/"&gt;site&lt;/a&gt;.] Expect the basic
configuration, nothing is complete. Maybe this weekend, I will tune it
up and upload images.&lt;/p&gt;
</summary><category term="blog"></category><category term="photography"></category></entry><entry><title>User mode linux</title><link href="http://praveen.kumar.in/2005/03/17/user-mode-linux/" rel="alternate"></link><updated>2005-03-17T17:32:59+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-17:2005/03/17/user-mode-linux/</id><summary type="html">&lt;p&gt;I am planning to do some experiments on &lt;a class="reference external" href="http://user-mode-linux.sourceforge.net/"&gt;User mode
linux&lt;/a&gt; this weekend.&lt;/p&gt;
</summary><category term="linux"></category></entry><entry><title>Do you overspeed?</title><link href="http://praveen.kumar.in/2005/03/17/do-you-overspeed/" rel="alternate"></link><updated>2005-03-17T15:50:12+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-17:2005/03/17/do-you-overspeed/</id><summary type="html">&lt;p&gt;Do you overspeed? Then this one is for you. I bet that I would try this
trick once.&lt;/p&gt;
&lt;!-- --&gt;
&lt;blockquote&gt;
&lt;p&gt;A police officer pulls a guy over for speeding and has the following
exchange:&lt;/p&gt;
&lt;p&gt;Officer: May I see your driver’s license?&lt;/p&gt;
&lt;p&gt;Driver: I don’t have one. I had it suspended when I got my 5th DUI.&lt;/p&gt;
&lt;p&gt;Officer: May I see the owner’s card for this vehicle?&lt;/p&gt;
&lt;p&gt;Driver: It’s not my car. I stole it.&lt;/p&gt;
&lt;p&gt;Officer: The car is stolen?&lt;/p&gt;
&lt;p&gt;Driver: That’s right. But come to think of it, I think I saw the owner’s
card in the glove box when I was putting my gun in there.&lt;/p&gt;
&lt;p&gt;Officer: There’s a gun in the glove box?&lt;/p&gt;
&lt;p&gt;Driver: Yes sir. That’s where I put it after I shot and killed the woman
who owns this car and stuffed her in the trunk.&lt;/p&gt;
&lt;p&gt;Officer: There’s a BODY in the TRUNK?!?!?&lt;/p&gt;
&lt;p&gt;Driver: Yes, sir.&lt;/p&gt;
&lt;p&gt;Hearing this, the officer immediately called his captain.&lt;/p&gt;
&lt;p&gt;The car was quickly surrounded by police, and the captain approached the
driver to handle the tense situation:&lt;/p&gt;
&lt;p&gt;Captain: Sir, can I see your license?&lt;/p&gt;
&lt;p&gt;Driver: Sure. Here it is.&lt;/p&gt;
&lt;p&gt;It was valid.&lt;/p&gt;
&lt;p&gt;Captain: Who’s car is this?&lt;/p&gt;
&lt;p&gt;Driver: It’s mine, officer. Here’s the owner’ card.&lt;/p&gt;
&lt;p&gt;The driver owned the car.&lt;/p&gt;
&lt;p&gt;Captain: Could you slowly open your glove box so I can see if there’s a
gun in it?&lt;/p&gt;
&lt;p&gt;Driver: Yes, sir, but there’s no gun in it.&lt;/p&gt;
&lt;p&gt;Sure enough, there was nothing in the glove box.&lt;/p&gt;
&lt;p&gt;Captain: Would you mind opening your trunk? I was told you said there’s
a body in it.&lt;/p&gt;
&lt;p&gt;Driver: No problem.&lt;/p&gt;
&lt;p&gt;Trunk is opened; no body.&lt;/p&gt;
&lt;p&gt;Captain: I don’t understand it. The officer who stopped you said you
told him you didn’t have a license, stole the car, had a gun in the
glove box, and that there was a dead body in the trunk.&lt;/p&gt;
&lt;p&gt;Driver: Yeah, I’ll bet the lying s.o.b. told you I was speeding, too.&lt;/p&gt;
&lt;/blockquote&gt;
</summary><category term="notags"></category></entry><entry><title>Emami IPO application rejected?</title><link href="http://praveen.kumar.in/2005/03/17/emami-ipo-application-rejected/" rel="alternate"></link><updated>2005-03-17T13:22:21+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-17:2005/03/17/emami-ipo-application-rejected/</id><summary type="html">&lt;p&gt;I fear that my Emami IPO application got rejected. The check I have
issued for the IPO is not yet produced in my Bank. What could be wrong?&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Engineer in Hell</title><link href="http://praveen.kumar.in/2005/03/17/engineer-in-hell/" rel="alternate"></link><updated>2005-03-17T13:17:26+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-17:2005/03/17/engineer-in-hell/</id><summary type="html">&lt;p&gt;This joke is one of the best ones that I have heard of in the recent
past. It is about Engineers and Lawyers. Being an Engineer, you will
always love it. I love the Lawyer part as well. Guess why?&lt;/p&gt;
&lt;!-- --&gt;
&lt;blockquote&gt;
&lt;p&gt;An engineer dies and reports to the pearly gates. St. Peter checks his
dossier and says, "Ah, you're an engineer -- you're in the wrong place."&lt;/p&gt;
&lt;p&gt;So, the engineer reports to the gates of hell and is let in. Pretty
soon, the engineer gets dissatisfied with the level of comfort in hell,
and starts designing and building improvements. After awhile, they've
got air conditioning and flush toilets and escalators, and the engineer
is a pretty popular guy.&lt;/p&gt;
&lt;p&gt;One day, God calls Satan up on the telephone and says with a sneer, "So,
how's it going down there in hell?"&lt;/p&gt;
&lt;p&gt;Satan replies, "Hey, things are going great. We've got air conditioning
and flush toilets and escalators, and there's no telling what this
engineer is going to come up with next."&lt;/p&gt;
&lt;p&gt;God replies, "What??? You've got an engineer? That's a mistake -- he
should never have gotten down there; send him up here."&lt;/p&gt;
&lt;p&gt;Satan says, "No way. I like having an engineer on the staff, and I'm
keeping him."&lt;/p&gt;
&lt;p&gt;God says, "Send him back up here or I'll sue."&lt;/p&gt;
&lt;p&gt;Satan laughs uproariously and answers, "Yeah, right. And just where are
YOU going to get a lawyer?"&lt;/p&gt;
&lt;/blockquote&gt;
</summary><category term="notags"></category></entry><entry><title>It is almost decided in favor of Munnar</title><link href="http://praveen.kumar.in/2005/03/17/it-is-almost-decided-in-favor-of-munnar/" rel="alternate"></link><updated>2005-03-17T12:19:15+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-17:2005/03/17/it-is-almost-decided-in-favor-of-munnar/</id><summary type="html">&lt;p&gt;After a lot of considerations, we have decided in favour of
&lt;a class="reference external" href="http://www.munnar.com"&gt;Munnar&lt;/a&gt; for the official trip. It will be for
three days. We are planning to stay in &lt;a class="reference external" href="http://www.clubmahindra.com/"&gt;Club
Mahindra&lt;/a&gt; resort. I am sure that we are
going to have a wonderful time over there. I will also be getting a good
oppurtunity for taking some really good photographs. The trip will be
probably on 1st April (no kidding) or 8th April.&lt;/p&gt;
</summary><category term="hcl"></category></entry><entry><title>Launching gallery is getting delayed</title><link href="http://praveen.kumar.in/2005/03/16/launching-gallery-is-getting-delayed/" rel="alternate"></link><updated>2005-03-16T16:54:06+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-16:2005/03/16/launching-gallery-is-getting-delayed/</id><summary type="html">&lt;p&gt;I am a sort of too busy these days. I think that I will not find
adequate time till mid of May. So, the launch of gallery in my site is
likely to be delayed. So as the work on rest of the site. Till then,
journal will be the only module which will be partly active.&lt;/p&gt;
</summary><category term="blog"></category><category term="photography"></category></entry><entry><title>My bike's RC is lost</title><link href="http://praveen.kumar.in/2005/03/16/my-bikes-rc-is-lost/" rel="alternate"></link><updated>2005-03-16T10:47:00+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-16:2005/03/16/my-bikes-rc-is-lost/</id><summary type="html">&lt;p&gt;I have misplaced my bike's RC (Registration Challan) somewhere. I am
searching for it like anything, but I am not able to find it. Early this
year, I have misplaced my driving license as well. Till now, I didn't
find it. My carelessness really annoy me!&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Airtel, please stop spamming!</title><link href="http://praveen.kumar.in/2005/03/12/airtel-please-stop-spamming/" rel="alternate"></link><updated>2005-03-12T23:44:20+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-12:2005/03/12/airtel-please-stop-spamming/</id><summary type="html">&lt;p&gt;I am using the mobile phone service (GSM) from
&lt;a class="reference external" href="http://www.airtelworld.com"&gt;Airtel&lt;/a&gt;. These guys are really annoying
me now-a-days. I am receiving atleast a couple of self promotional SMS
from Airtel. I am getting too irritated by this. I have called theier
customer care, complained about it and asked them to stop this nonsense.
I got a reply that I can't opt out from these SMS. But, you know it is
really painful. There should be some regulation to streamline this. Who
is gonna take pains of doing it?&lt;/p&gt;
</summary><category term="ethics"></category></entry><entry><title>This one really deserves a good laugh</title><link href="http://praveen.kumar.in/2005/03/10/this-one-really-deserves-a-good-laugh/" rel="alternate"></link><updated>2005-03-10T20:12:45+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-10:2005/03/10/this-one-really-deserves-a-good-laugh/</id><summary type="html">&lt;p&gt;I am posting one of the humor that I enjoyed a lot here. I have already
posted it in my journal on Blogger. Since I have ditched Blogger, I am
redoing it here.&lt;/p&gt;
&lt;!-- --&gt;
&lt;blockquote&gt;
&lt;p&gt;George Bush is visiting the Queen of England. He asks her, "Your
Majesty, how do you run such an efficient government? Are there any tips
you can give me?"&lt;/p&gt;
&lt;p&gt;"Well," says the Queen, "the most important thing is to surround
yourself with intelligent people."&lt;/p&gt;
&lt;p&gt;Bush frowns. "But how do I know the people around me are really
intelligent?"&lt;/p&gt;
&lt;p&gt;The Queen takes a sip of tea. "Oh, that's easy. You just ask them to
answer an intelligence riddle."&lt;/p&gt;
&lt;p&gt;The Queen pushes a button on her intercom. "Please send The Prime
Minister in here, would you?"&lt;/p&gt;
&lt;p&gt;Tony Blair walks into the room. "Your Majesty..."&lt;/p&gt;
&lt;p&gt;The Queen smiles. "Answer me this, please, Tony. Your mother and father
have a child. It is not your brother and it is not your sister. Who is
it?"&lt;/p&gt;
&lt;p&gt;Without pausing for a moment, he answers, "That would be me!"&lt;/p&gt;
&lt;p&gt;"Yes! Very good!" says the Queen.&lt;/p&gt;
&lt;p&gt;Back at the White House, Bush calls in his vice president, Dick Cheney.
"Dick, answer this for me. Your mother and your father have a child.
It's not your brother and it's not your sister. Who is it?"&lt;/p&gt;
&lt;p&gt;"I'm not sure," says the vice president. "Let me get back to you on that
one."&lt;/p&gt;
&lt;p&gt;Dick Cheney goes to his advisors and asks every one, but none can give
him an answer.&lt;/p&gt;
&lt;p&gt;Finally, he ends up in the men's room and recognizes Colin Powell's
shoes in the next stall. Dick shouts, "Colin! Can you answer this for
me? Your mother and father have a child and it's not your brother or
your sister. Who is it?"&lt;/p&gt;
&lt;p&gt;Colin Powell yells back, "That's easy. It's me!"&lt;/p&gt;
&lt;p&gt;Dick Cheney smiles. "Thanks!"&lt;/p&gt;
&lt;p&gt;Cheney goes back to the Oval Office and asks to speak with Bush. "Say, I
did some research and I have the answer to that riddle. It's Colin
Powell."&lt;/p&gt;
&lt;p&gt;Bush gets up, stomps over to Dick Cheney, and angrily yells into his
face, "No, you idiot! It's Tony Blair!"&lt;/p&gt;
&lt;/blockquote&gt;
</summary><category term="notags"></category></entry><entry><title>Planning for an excursion</title><link href="http://praveen.kumar.in/2005/03/10/planning-for-an-excursion/" rel="alternate"></link><updated>2005-03-10T19:59:29+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-10:2005/03/10/planning-for-an-excursion/</id><summary type="html">&lt;p&gt;We are planning to go for an excursion from the
&lt;a class="reference external" href="http://www.hcltechnologies.com"&gt;office&lt;/a&gt; for three days. We are
considering the place. People prefere some hill station as this is
summer. The first place in the pipeline is Munnar. I am looking for some
options from Karnataka as well. But, it seems that Munnar is a good
option as it has a lot of tourist spots around it.&lt;/p&gt;
</summary><category term="hcl"></category></entry><entry><title>Applying for more public issues</title><link href="http://praveen.kumar.in/2005/03/10/applying-for-more-public-issues/" rel="alternate"></link><updated>2005-03-10T14:39:02+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-10:2005/03/10/applying-for-more-public-issues/</id><summary type="html">&lt;p&gt;I am applying for Emami and Punjab National Bank Public Issues after a
good sign from Jet Airways allotment. So far I have applied for 6 IPOs.
Here is what happened with those applications.&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;TCS - Alloted 17 out of 49&lt;/li&gt;
&lt;li&gt;NTPC - Alloted 214 out of ?&lt;/li&gt;
&lt;li&gt;Deccan Chronicle - No allotment because of application filled out
incorrectly (I am lucky you know)&lt;/li&gt;
&lt;li&gt;Bharti Shipyard - No allotment (lottery basis)&lt;/li&gt;
&lt;li&gt;Dwarekish Sugars - No allotment (application incorrect)&lt;/li&gt;
&lt;li&gt;Jet Airways - Alloted 14 out of 42&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Now there are two more POs in pipeline.&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Emami - Applied for 400&lt;/li&gt;
&lt;li&gt;Punjab National Bank - Applied for 60&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I guess the basis of allotment of these two will be lottery. Now-a-days,
a lot of retail investors are getting attracted towards IPOs and hence
there is a huge oversubscription of shares. It is better to keep out of
IPOs if I am not alloted any in these two issues.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Jet Airways IPO allotment status</title><link href="http://praveen.kumar.in/2005/03/10/jet-airways-ipo-allotment-status/" rel="alternate"></link><updated>2005-03-10T14:11:06+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-10:2005/03/10/jet-airways-ipo-allotment-status/</id><summary type="html">&lt;p&gt;The allotment status of Jet Airways IPO can be checked
&lt;a class="reference external" href="http://www.karvy.com/jetipoquery.asp"&gt;here&lt;/a&gt;. Alternatively, you can
call their toll free number 1-600-334001 and get the detials. I have
been alloted 14 shares. Happy investing!&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>No photos taken in the recent past</title><link href="http://praveen.kumar.in/2005/03/09/no-photos-taken-in-the-recent-past/" rel="alternate"></link><updated>2005-03-09T19:36:55+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-09:2005/03/09/no-photos-taken-in-the-recent-past/</id><summary type="html">&lt;p&gt;I have almost stopped taking any photographs in the recent past. The
fact is I am not finding enough time to do that. I have started thinking
about it seriously. The only useful pass time that I used to have was
photography. I am planning to start it actively again. I have to allot
some time in my weekend calendar for this activity. From next week on,
you can expect some new shots to my gallery. Wait a minute! I haven't
put up my gallery yet. Better, let me finalize the gallery on my site by
this weekend. I promise you that by next week, you can find a cool
gallery as well.&lt;/p&gt;
</summary><category term="photography"></category></entry><entry><title>BSE SENSEX slides on profit booking</title><link href="http://praveen.kumar.in/2005/03/09/bse-sensex-slides-on-profit-booking/" rel="alternate"></link><updated>2005-03-09T13:02:29+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-09:2005/03/09/bse-sensex-slides-on-profit-booking/</id><summary type="html">&lt;p&gt;BSE SENSEX dropped by almost 50 points today. There is a mixed profit
booking activity across various sectors. It is always good that there is
a correction every 150+ points. This will avoid huge crash on a heavy
profit booking otherwise. Even after the market witnesses a minor
correction today, the possiblity of SENSEX to touch 7000 in this week is
still there. It all depends on the mood at which the market opens
tomorrow. SENSEX at the time of posting is 6,852.12 [-62.97 (-0.91%)].&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Planning to go for BSNL Dataone broadband</title><link href="http://praveen.kumar.in/2005/03/09/planning-to-go-for-bsnl-dataone-broadband/" rel="alternate"></link><updated>2005-03-09T12:14:59+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-09:2005/03/09/planning-to-go-for-bsnl-dataone-broadband/</id><summary type="html">&lt;p&gt;I am planning to go for the &lt;a class="reference external" href="http://www.bsnl.co.in/service/dataone.htm"&gt;BSNL Dataone
broadband&lt;/a&gt; connection. I
am aleady using &lt;a class="reference external" href="http://broadband.sify.com"&gt;Sify broadband&lt;/a&gt; that
really sucks. Most of the time, there is some problem with the
connectivity. So, I am planning to ditch Sify and go for BSNL. It
&lt;a class="reference external" href="http://www.aero.iitm.ernet.in/pipermail/ilugc/2005-March/016885.html"&gt;seems&lt;/a&gt;
that a guy out here at Chennai got his PC and accessories burnt because
of Sify and now, there is none to take responsibility of this accident.
Sify is for sure gonna get f**ked by thier customers.&lt;/p&gt;
</summary><category term="internet"></category></entry><entry><title>Amazing laptop deal at Amazon!</title><link href="http://praveen.kumar.in/2005/03/08/amazing-laptop-deal-at-amazon/" rel="alternate"></link><updated>2005-03-08T17:43:02+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-08:2005/03/08/amazing-laptop-deal-at-amazon/</id><summary type="html">&lt;p&gt;Wanna buy a 10GHz laptop having 30,000 GB of hard disk drive and 2000 MB
of RAM for just $1,000. It is available at
&lt;a class="reference external" href="http://www.amazon.com/exec/obidos/tg/detail/-/B000658NMG/ref=pc_de_a_smtd/002-0191508-4963274?v=glance&amp;amp;s=pc&amp;amp;vi=tech-data"&gt;Amazon&lt;/a&gt;.
How careless these people are!&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>How to know if you are addicted towards smoking?</title><link href="http://praveen.kumar.in/2005/03/08/how-to-know-if-your-are-addicted-towards-smoking/" rel="alternate"></link><updated>2005-03-08T13:06:56+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-08:2005/03/08/how-to-know-if-your-are-addicted-towards-smoking/</id><summary type="html">&lt;p&gt;That's really a good question. Well!
&lt;a class="reference external" href="http://www.blogthings.com/"&gt;Blogthings&lt;/a&gt; has the answer for it. Here
is what it says about smoking addiction.&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;You put scotch tape on a broken one.&lt;/li&gt;
&lt;li&gt;You only smoke half of the cigarette so you can start on the next one
sooner.&lt;/li&gt;
&lt;li&gt;A big white truck with the picture of a camel rolls up to your house
twice a week with our supply of smokes.&lt;/li&gt;
&lt;li&gt;You are considering changing your name to Malboro.&lt;/li&gt;
&lt;li&gt;You smoke in the shower.&lt;/li&gt;
&lt;li&gt;You've convinced yourself that second-hand smoke is not harmful if
you inhale really eally deeply.&lt;/li&gt;
&lt;li&gt;our children are named: Winston, Philip Morris and Misty.&lt;/li&gt;
&lt;li&gt;R.J. Reynolds sends you a Christmas card.&lt;/li&gt;
&lt;li&gt;You're waiting for the last few pews to become a designated smoking
area before you'll go back to church.&lt;/li&gt;
&lt;li&gt;People invite you outside to admire the stars, and it's daytime.&lt;/li&gt;
&lt;li&gt;Every time you light up a cigarette your family stops, drops and
rolls.&lt;/li&gt;
&lt;li&gt;Your family's Christmas wish list consists of gas masks, fire
extinguishers and air refsheners.&lt;/li&gt;
&lt;li&gt;You have an environmental awareness group protesting on your lawn.&lt;/li&gt;
&lt;li&gt;Your family goes to Los Angeles for fresh air.&lt;/li&gt;
&lt;li&gt;Your friends have named their secondhand smoke related coughs after
me.&lt;/li&gt;
&lt;li&gt;Your cat has taken to wearing "The Patch"&lt;/li&gt;
&lt;li&gt;Your family uses fog horns to navigate around you.&lt;/li&gt;
&lt;li&gt;Just watching the 400 metre race during the Olympics makes you tired.&lt;/li&gt;
&lt;li&gt;The local iron lung dealer sends you their product brochures.&lt;/li&gt;
&lt;li&gt;Phillip Morris sends you their annual report and thanks you for your
help.&lt;/li&gt;
&lt;li&gt;You recently read somewhere that your former cigarette manufacturer
went out of business shortly after you switched to a new brand.&lt;/li&gt;
&lt;li&gt;Your doctor [excitedly] asks for your permission to use your lung
x-rays at his next Quit Smoking" seminar.&lt;/li&gt;
&lt;li&gt;You take baths because the shower puts 'em out&lt;/li&gt;
&lt;li&gt;Your nickname at work is "Breakroom."&lt;/li&gt;
&lt;li&gt;You actually get these jokes and pass them on to other friends who
are addicted to Smoking.&lt;/li&gt;
&lt;/ul&gt;
</summary><category term="notags"></category></entry><entry><title>BSE SENSEX approaching 7000!</title><link href="http://praveen.kumar.in/2005/03/08/bse-sensex-approaching-7000/" rel="alternate"></link><updated>2005-03-08T12:39:13+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-08:2005/03/08/bse-sensex-approaching-7000/</id><summary type="html">&lt;p&gt;&lt;a class="reference external" href="http://www.bseindia.com/"&gt;BSE&lt;/a&gt; SENSEX is approaching the 7000 points
magical mark fastly. It was closing at all time high yesterday and the
trend is expected to continue this week throughout. If it goes so, it
will break the magical 7000 points mark on closing within this week for
sure. It is a good sign of a strong recovery of the market after a big
crash early in January this year.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>HSBC online banking and Firefox on Linux</title><link href="http://praveen.kumar.in/2005/03/08/hsbc-online-banking-and-firefox-on-linux/" rel="alternate"></link><updated>2005-03-08T12:15:10+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-08:2005/03/08/hsbc-online-banking-and-firefox-on-linux/</id><summary type="html">&lt;p&gt;The &lt;a class="reference external" href="http://www.hsbc.co.in"&gt;HSBC (India)&lt;/a&gt;'s online banking page fails
to come up in Firefox running under Linux. The cranky webmaster wants me
to use IE or some other supported browser. I think HSBC people should
fix this issue soon. I have raised this issue to thier attention. But no
reply so far.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Chill down guys; it is not a war!</title><link href="http://praveen.kumar.in/2005/03/08/chill-down-guys-it-is-not-a-war/" rel="alternate"></link><updated>2005-03-08T11:52:59+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-08:2005/03/08/chill-down-guys-it-is-not-a-war/</id><summary type="html">&lt;p&gt;Today the first cricket test match of the series between India and
Pakistan is being played at Mohali. Whenever India plays against
Pakistan, the expectation level of the people out here is very high. The
game is viewed very seriously. It is always good to win the match
against Pakistan. But, it shouldn't be seen as serious as a war. The
players themselves have a good spirit of sport for each other. There is
no point in the cricket fans being too serious about that. So, chill out
guys and watch the match enjoying the sport alone. Anyway, good luck
India.&lt;/p&gt;
</summary><category term="cricket"></category></entry><entry><title>Threaded comments.</title><link href="http://praveen.kumar.in/2005/03/07/threaded-comments/" rel="alternate"></link><updated>2005-03-07T23:53:52+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-07:2005/03/07/threaded-comments/</id><summary type="html">&lt;p&gt;By default, Wordpress doesn't support threaded (nested) comments. I have
looked out for this option and found a plugin
&lt;a class="reference external" href="http://meidell.dk/archives/2004/09/04/nested-comments/"&gt;here&lt;/a&gt;. I
have just installed and configured it. I am gonna try out its operation
in this post.&lt;/p&gt;
</summary><category term="blog"></category><category term="wordpress"></category></entry><entry><title>Spammers, face your karma here!</title><link href="http://praveen.kumar.in/2005/03/07/spammers-face-your-karma-here/" rel="alternate"></link><updated>2005-03-07T23:32:46+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-07:2005/03/07/spammers-face-your-karma-here/</id><summary type="html">&lt;p&gt;I have installed and configured &lt;a class="reference external" href="http://unknowngenius.com/blog/wordpress/spam-karma/"&gt;Spam
Karma&lt;/a&gt; and
&lt;a class="reference external" href="http://unknowngenius.com/blog/wordpress/ref-karma/"&gt;Referrer Karma&lt;/a&gt;
to this blog. Earlier in my test implementation of Wordpress, I was
receiving spam comments at an approximate rate of 5 - 10 every day.
These two tools seems to control the spam actively. I have found
&lt;a class="reference external" href="http://www.bloggingpro.com/"&gt;Blogginpro&lt;/a&gt; using these two. And now?
Spammers, face your karma here!&lt;/p&gt;
</summary><category term="blog"></category><category term="wordpress"></category></entry><entry><title>Gila rocks!</title><link href="http://praveen.kumar.in/2005/03/07/gila-rocks/" rel="alternate"></link><updated>2005-03-07T21:38:08+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-07:2005/03/07/gila-rocks/</id><summary type="html">&lt;p&gt;After a hell of searches, I have come across the right theme,
&lt;a class="reference external" href="http://www.bloggingpro.com/my-themes/gila-theme/"&gt;Gila&lt;/a&gt;. It
perfectly matches what I wanted, three column design that uses 100% of
the page width. Gila is really too cool. The only problem that I heard
about it is that the pages that contain small post (where the middle
column is smaller than the left or right columns) are not displayed
properly in MSIE. But Firefox is displaying it fine. Otherwise, this
theme looks solid. I am planning to use the same theme for rest of the
pages and the Gallery 2 as well.&lt;/p&gt;
</summary><category term="blog"></category><category term="wordpress"></category></entry><entry><title>Open Source IP Router</title><link href="http://praveen.kumar.in/2005/03/07/open-source-ip-router/" rel="alternate"></link><updated>2005-03-07T20:32:26+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-07:2005/03/07/open-source-ip-router/</id><summary type="html">&lt;p&gt;Today, accidently I have come across the &lt;a class="reference external" href="http://www.xorp.org/"&gt;Open Source IP
Router&lt;/a&gt; project. This effort seems to come up
really well. This is definitely a helpful project for the use of
students and network researchers as this is a really cost-effective
solution.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Gallery or Coppermine?</title><link href="http://praveen.kumar.in/2005/03/07/gallery-or-coppermine/" rel="alternate"></link><updated>2005-03-07T15:18:03+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-07:2005/03/07/gallery-or-coppermine/</id><summary type="html">&lt;p&gt;I am planning to put up an image gallery for my site. I am wondering if
I can go for &lt;a class="reference external" href="http://gallery.sf.net/"&gt;Gallery 2&lt;/a&gt; or
&lt;a class="reference external" href="http://coppermine.sf.net/"&gt;Coppermine&lt;/a&gt;. I have already used Gallery
(1.3) on &lt;a class="reference external" href="http://puggy.symonds.net/"&gt;puggy&lt;/a&gt;. Gallery is simple to
configure and use. Coppermine seems to be complicated a lot. But it
appears to be more powerful compared to Gallery. Gallery 2 changed a lot
since 1.x. Till now, I am planning to use Gallery 2. But, I have a small
consideration for Coppermine as well.&lt;/p&gt;
</summary><category term="blog"></category></entry><entry><title>Hello, world!</title><link href="http://praveen.kumar.in/2005/03/07/hello-world/" rel="alternate"></link><updated>2005-03-07T10:19:04+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2005-03-07:2005/03/07/hello-world/</id><summary type="html">&lt;p&gt;I have just set up this blog. Thanks to
&lt;a class="reference external" href="http://www.worpress.org/"&gt;Wordpress&lt;/a&gt; for providing a simple and
powerful solution for blogging.&lt;/p&gt;
</summary><category term="blog"></category><category term="wordpress"></category></entry><entry><title>Mozilla Firefox 1.0 Released!</title><link href="http://praveen.kumar.in/2004/11/09/mozilla-firefox-10-released/" rel="alternate"></link><updated>2004-11-09T14:52:08+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-11-09:2004/11/09/mozilla-firefox-10-released/</id><summary type="html">&lt;p&gt;Read about this &lt;a class="reference external" href="http://www.osnews.com/story.php?news_id=8817"&gt;here&lt;/a&gt;.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Planning to move out of blogger soon.</title><link href="http://praveen.kumar.in/2004/11/05/planning-to-move-out-of-blogger-soon/" rel="alternate"></link><updated>2004-11-05T11:38:41+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-11-05:2004/11/05/planning-to-move-out-of-blogger-soon/</id><summary type="html">&lt;p&gt;I am planning to drop my blogger account soon. I would use
&lt;a class="reference external" href="http://www.wordpress.org"&gt;Wordpress&lt;/a&gt;. I am looking out for a good
host. I am also planning to use &lt;a class="reference external" href="http://gallery.sf.net"&gt;Gallery 2&lt;/a&gt; on
the new site. For both of these, I will be needing MySQL support. I have
decided about gallery. But regarding Wordpress, I am in a dilema. The
main reason for this is it doesn't support threaded comments (AFAIK). I
am also looking out for other options. But I like Wordpress otherwise.&lt;/p&gt;
</summary><category term="blog"></category><category term="wordpress"></category></entry><entry><title>All about nocotine.</title><link href="http://praveen.kumar.in/2004/11/05/all-about-nocotine/" rel="alternate"></link><updated>2004-11-05T11:27:35+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-11-05:2004/11/05/all-about-nocotine/</id><summary type="html">&lt;p&gt;These two articles at MSNBC about nicotine were found interesting.&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="http://msnbc.msn.com/id/6152449/"&gt;One puff of smoke can damage
DNA&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://msnbc.msn.com/id/6405269/"&gt;Molecule may be key to nicotine
addiction&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</summary><category term="smoking"></category></entry><entry><title>Mozilla Thunderbird 0.9 released.</title><link href="http://praveen.kumar.in/2004/11/05/mozilla-thunderbird-09-released/" rel="alternate"></link><updated>2004-11-05T01:15:06+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-11-05:2004/11/05/mozilla-thunderbird-09-released/</id><summary type="html">&lt;p&gt;Mozilla Thunderbird 0.9 released. Read more about it
&lt;a class="reference external" href="http://www.mozillazine.org/talkback.html?article=5474"&gt;here&lt;/a&gt;. Seems
that Thunderbird team are keen to be in pace with Firefox. We can expect
a preview edition for Thunderbird 1.0 soon.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Longhorn screenshots.</title><link href="http://praveen.kumar.in/2004/11/04/longhorn-screenshots/" rel="alternate"></link><updated>2004-11-04T16:17:43+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-11-04:2004/11/04/longhorn-screenshots/</id><summary type="html">&lt;p&gt;A round-up of Longhorn screenshots are posted
&lt;a class="reference external" href="http://www.neowin.net/forum/index.php?showtopic=239524"&gt;here&lt;/a&gt;.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Rectoscalar waves - Yet another Hoax?!</title><link href="http://praveen.kumar.in/2004/11/03/rectoscalar-waves-yet-another-hoax/" rel="alternate"></link><updated>2004-11-03T11:14:36+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-11-03:2004/11/03/rectoscalar-waves-yet-another-hoax/</id><summary type="html">&lt;p&gt;This morning me and some of my friends received emails forwarded from
known people. Here is the one.&lt;/p&gt;
&lt;blockquote&gt;
Tonight a rectoscalar wave is passing at 10.25 pm, Indian Standard
Time.... This causes damage in mobiles and computers..... So switch
off your mobiles and computers at the specified time... This has
been published in todays The Hindu paper also.... Keep fwd this
message to your friends and loved ones.....&lt;/blockquote&gt;
&lt;p&gt;Is this true or yet another hoax? Have to wait and see at 10:25 pm IST
;-)&lt;/p&gt;
</summary><category term="scam"></category></entry><entry><title>Back to work.</title><link href="http://praveen.kumar.in/2004/10/26/back-to-work-2/" rel="alternate"></link><updated>2004-10-26T13:33:35+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-10-26:2004/10/26/back-to-work-2/</id><summary type="html">&lt;p&gt;I am back to work after a long weekend. Courtesy Dasara holidays.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>How Veerappan walked into the STF's trap!</title><link href="http://praveen.kumar.in/2004/10/19/how-veerappan-walked-into-the-stfs-trap/" rel="alternate"></link><updated>2004-10-19T19:17:13+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-10-19:2004/10/19/how-veerappan-walked-into-the-stfs-trap/</id><summary type="html">&lt;p&gt;DHARMAPURI: Veerappan, India's most wanted and most elusive brigand who
murdered with impunity, was finally shot dead in his jungle hideout by
elite commandos using some of the very tactics he employed for well over
two decades to build a vast criminal empire.&lt;/p&gt;
&lt;p&gt;Using deception, undercover agents and a meticulously laid out network
of informants, Tamil Nadu's Special Task Force (STF) commandos - set up
only to nab him - trapped the 50-something Munuswamy Veerappan Gounder,
made famous by his trademark handlebar moustache, into taking a van ride
in a forested region where policemen ambushed and gunned him down Monday
night.&lt;/p&gt;
&lt;p&gt;Operation Cocoon to track and eliminate the forest bandit succeeded
because of extra-ordinary intelligence said K Vijaykumar, chief of the
combined Special Task Force (STF) on Tuesday.&lt;/p&gt;
&lt;p&gt;In a remarkable success story of perseverance, the STF - made up of
commandos toughened by living in the inhospitable jungles of southern
India straddling the Tamil Nadu-Karnataka border - planted a mole in
Veerappan's gang who drove the van that led him to his death.&lt;/p&gt;
&lt;p&gt;A visibly triumphant STF chief K. Vijay Kumar, a former police chief of
Chennai, told a crowded news conference here that Veerappan, blamed for
some 120 murders, was killed after a fierce 20-minute gun battle near
Papparapatti village of Dharmapuri district, some 300 km from state
capital Chennai.&lt;/p&gt;
&lt;p&gt;STF personnel in civilian clothes, hiding along both sides of a jungle
track halted the van, supposedly an ambulance, at 10.50 p.m. after being
tipped off about his movements and asked him to surrender, Kumar said.
But Veerappan opened fire, sparking a firefight.&lt;/p&gt;
&lt;p&gt;In no time, Veerappan, who was not wearing his usual battle fatigues and
had trimmed his moustache apparently to hide his identity, lay dead
along with three of his hardcore associates, Sethukuli Govindan, Chandra
Gowda and Govindan. Veerappan took bullets in the head and an eye.&lt;/p&gt;
&lt;p&gt;Asked where Veerappan was heading to, Vijaykumar said probably the
sandalwood smuggler, who had an eye problem, was going for some
treatment.&lt;/p&gt;
&lt;p&gt;The STF seized two AK-47 rifles, a 12 bore shotgun and a 7.62
self-loading rifle besides cash and three grenades from the dead men.&lt;/p&gt;
&lt;p&gt;The killing sparked off celebrations in STF camps in the area, with its
personnel bursting firecrackers and lighting colourful flares,
brightening the forest sky well before dawn.&lt;/p&gt;
&lt;p&gt;The STF chief, who had tonsured his head as a vow for the killing of
Veerappan, said pressure was put on the brigand to come out of the
jungle to an area where the STF had an advantage.&lt;/p&gt;
&lt;p&gt;"This is a Diwali gift for the people of Tamil Nadu and the families of
Veerappan's victims," said an STF officer. Both Tamil Nadu Chief
Minister J. Jayalalitha and DMK chief M. Karunanidhi hailed his death as
did former deputy prime minister L.K. Advani.&lt;/p&gt;
&lt;p&gt;The deaths mark the end of a man who at one time virtually ruled a
sprawling 6,000-sq km thickly forested region where he killed men in
cold blood, murdered elephants for their ivory and cut sandalwood trees
for smuggling, building a vast criminal empire that had no parallel.&lt;/p&gt;
&lt;p&gt;Kumar, dressed in STF battle fatigues and flanked by dozens of his
colleagues, including men who spied on Veerappan, admitted that the man
they had killed was no ordinary criminal.&lt;/p&gt;
&lt;p&gt;Bodies of Veerappan and his men at Dharampuri hospital on Tuesday. (AFP
photo) "He was a worthy foe, he was not easy to get," Kumar said,
speaking alternatively in English and Tamil in this small town.&lt;/p&gt;
&lt;p&gt;The STF chief revealed that the security forces of both Tamil Nadu and
Karnataka had together stepped up pressure on Veerappan in recent
months, and the Tamil Nadu STF had been waiting for him to emerge from
his hideout.&lt;/p&gt;
&lt;p&gt;"We watched him for several days," he said. He said some of his men
infiltrated villages in the region by taking up jobs as hawkers, waiters
at small restaurants and bus conductors.&lt;/p&gt;
&lt;p&gt;"We penetrated even (Tamil Nadu's) jails," he said. "All this gave us
good results."&lt;/p&gt;
&lt;p&gt;Kumar gave equal credit to Karnataka's security forces for the killing
of Veerappan, who began life as a small time criminal but ended up
building a gang of his own and earning the reputation of one who would
spare none who came in his way.&lt;/p&gt;
&lt;p&gt;Although his first murder was reportedly committed in 1969, his killing
spree began in right earnest in July 1987 when he abducted and killed a
forest officer of Tamil Nadu. Two years later he murdered five men of a
rival gang.&lt;/p&gt;
&lt;p&gt;Veerappan's terror reign took firm roots when he killed and mutilated
three Tamil Nadu forest personnel in August 1989 and shot dead a Tamil
Nadu sub-inspector and a head constable the next January.&lt;/p&gt;
&lt;p&gt;In May 1990, the STF was set up to catch him, but the man always
remained one step ahead of his pursuers. In the process, Veerappan, who
came from a poor family, cocked a snook at the governments of Tamil Nadu
and Karnataka, making a mockery of the thousands of men deployed to
track him down. This soon turned into the country's largest manhunt for
any criminal. Veerappan commanded a price Rs.3 crore (Rs.30 million) on
his head.&lt;/p&gt;
&lt;p&gt;Veerappan's heartless methods were in full display when he lured R.
Srinivas, a senior forest official who he blamed for his sister's death,
into his lair and personally beheaded him. This was in November 1990.&lt;/p&gt;
&lt;p&gt;Then in August 1992, to avenge the death of four of his gang members, he
trapped STF Superintendent of Police Hari Krishna, tied him with
grenades and blew him up along with five other policemen.&lt;/p&gt;
&lt;p&gt;In 1993, the central government stepped in, deploying the Border
Security Force (BSF) to assist the STF. That did not bring the desired
results although the BSF managed to kill some of his associates.&lt;/p&gt;
&lt;p&gt;In recent years, Veerappan moved closer to Tamil extremists in Tamil
Nadu known to be sympathetic to Sri Lanka's Tamil Tiger guerrillas,
becoming a larger than life figure.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Courtesy Times of India&lt;/strong&gt;&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Sandalwood smuggler Veerapan is shot dead atlast!</title><link href="http://praveen.kumar.in/2004/10/19/sandalwood-smuggler-veerapan-is-shot-dead-atlast/" rel="alternate"></link><updated>2004-10-19T09:31:14+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-10-19:2004/10/19/sandalwood-smuggler-veerapan-is-shot-dead-atlast/</id><summary type="html">&lt;p&gt;A police force headed by &lt;a class="reference external" href="http://web.mid-day.com/news/nation/2004/october/95055.htm"&gt;Mr. K Vijay
Kumar&lt;/a&gt;
shot the most wanted Sandalwood smuggler Veerapan last night to dead.
There is no wonder in shooting him instead of getting him alive for
political as well as other reasons. Okey let us not make it a big issue.
Let us congratulate Mr. Vijayakumar for his sucessful operation. Read
more about this
&lt;a class="reference external" href="http://www.ndtv.com/template/template.asp?template=Veerappan&amp;amp;slug=Veerappan+story%3A+Man+wedded+to+crime&amp;amp;id=62226&amp;amp;callid=1&amp;amp;category=National"&gt;here&lt;/a&gt;.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Intel Cuts Prices on Laptop Computer Chips</title><link href="http://praveen.kumar.in/2004/10/19/intel-cuts-prices-on-laptop-computer-chips/" rel="alternate"></link><updated>2004-10-19T09:22:29+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-10-19:2004/10/19/intel-cuts-prices-on-laptop-computer-chips/</id><summary type="html">&lt;p&gt;Intel cuts prices on laptop computer chips as much as 34%. Read more
about this
&lt;a class="reference external" href="http://www.reuters.co.uk/newsArticle.jhtml?type=technologyNews&amp;amp;storyID=6534639&amp;amp;section=news"&gt;here&lt;/a&gt;.
Now I can think about buying a Intel Pentium M laptop!&lt;/p&gt;
</summary><category term="pc"></category></entry><entry><title>Happy birthday, Tom!</title><link href="http://praveen.kumar.in/2004/10/18/happy-birthday-tom/" rel="alternate"></link><updated>2004-10-18T17:44:05+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-10-18:2004/10/18/happy-birthday-tom/</id><summary type="html">&lt;p&gt;Hey &lt;a class="reference external" href="http://www.tharayil.com"&gt;Tom&lt;/a&gt;, I wish you a very happy birthday
and many more happy returns of the day.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>George Bush, too intelligent to be the President!</title><link href="http://praveen.kumar.in/2004/10/18/george-bush-too-intelligent-to-be-the-president/" rel="alternate"></link><updated>2004-10-18T15:04:22+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-10-18:2004/10/18/george-bush-too-intelligent-to-be-the-president/</id><summary type="html">&lt;p&gt;A recent humor that I came across. Disclaimer: I am not the author of
this. The following is the view/imagination/whatever of the original
author.&lt;/p&gt;
&lt;!-- --&gt;
&lt;blockquote&gt;
&lt;p&gt;George Bush is visiting the Queen of England. He asks her, "Your
Majesty, how do you run such an efficient government? Are there any tips
you can give me?"&lt;/p&gt;
&lt;p&gt;"Well," says the Queen, "the most important thing is to surround
yourself with intelligent people."&lt;/p&gt;
&lt;p&gt;Bush frowns. "But how do I know the people around me are really
intelligent?"&lt;/p&gt;
&lt;p&gt;The Queen takes a sip of tea. "Oh, that's easy. You just ask them to
answer an intelligence riddle."&lt;/p&gt;
&lt;p&gt;The Queen pushes a button on her intercom. "Please send The Prime
Minister in here, would you?"&lt;/p&gt;
&lt;p&gt;Tony Blair walks into the room. "Your Majesty..."&lt;/p&gt;
&lt;p&gt;The Queen smiles. "Answer me this, please, Tony. Your mother and father
have a child. It is not your brother and it is not your sister. Who is
it?"&lt;/p&gt;
&lt;p&gt;Without pausing for a moment, he answers, "That would be me!"&lt;/p&gt;
&lt;p&gt;"Yes! Very good!" says the Queen.&lt;/p&gt;
&lt;p&gt;Back at the White House, Bush calls in his vice president, Dick Cheney.
"Dick, answer this for me. Your mother and your father have a child.
It's not your brother and it's not your sister. Who is it?"&lt;/p&gt;
&lt;p&gt;"I'm not sure," says the vice president. "Let me get back to you on that
one."&lt;/p&gt;
&lt;p&gt;Dick Cheney goes to his advisors and asks every one, but none can give
him an answer.&lt;/p&gt;
&lt;p&gt;Finally, he ends up in the men's room and recognizes Colin Powell's
shoes in the next stall. Dick shouts, "Colin! Can you answer this for
me? Your mother and father have a child and it's not your brother or
your sister. Who is it?"&lt;/p&gt;
&lt;p&gt;Colin Powell yells back, "That's easy. It's me!"&lt;/p&gt;
&lt;p&gt;Dick Cheney smiles. "Thanks!"&lt;/p&gt;
&lt;p&gt;Cheney goes back to the Oval Office and asks to speak with Bush. "Say, I
did some research and I have the answer to that riddle. It's Colin
Powell."&lt;/p&gt;
&lt;p&gt;Bush gets up, stomps over to Dick Cheney, and angrily yells into his
face, "No, you idiot! It's Tony Blair!"&lt;/p&gt;
&lt;/blockquote&gt;
</summary><category term="notags"></category></entry><entry><title>Veeraanam Vs. Cauvery!</title><link href="http://praveen.kumar.in/2004/10/18/veeraanam-vs-cauvery/" rel="alternate"></link><updated>2004-10-18T09:58:22+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-10-18:2004/10/18/veeraanam-vs-cauvery/</id><summary type="html">&lt;p&gt;Tamil Nadu government executes a plan by which water from Veeraanam lake
is supplied as drinking water to Chennai through gaint pipeline. It is
serving a a great relief for the water scarcity problem in Chennai. But,
farmers from Veeraanam are going to protest today against supplying
water to Chennai from Veeraanam. When people from a place in Tamil Nadu
(Veeraanam) are bothered to share water with people from other place in
Tamil Nadu (Chennai), there is no wonder in people of Karnataka protest
to share Cauvery water with Tamil Nadu. When there is no co-operation
inside the state, we cannot expect co-ordination outside the state. The
worse part of it is DMK (Dravida Munnatra Kazhagam) is the master brain
behind this agitation of Veeraanam farmers for political reasons. They
just blinldy want to oppose Jayalalitha and AIADMK (All India Anna
Dravida Munnatra Kazhagam). Cheap minds!&lt;/p&gt;
</summary><category term="politics"></category></entry><entry><title>Rain is our villian this time!</title><link href="http://praveen.kumar.in/2004/10/18/rain-is-our-villian-this-time/" rel="alternate"></link><updated>2004-10-18T08:24:27+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-10-18:2004/10/18/rain-is-our-villian-this-time/</id><summary type="html">&lt;p&gt;Usually India had a bit of luck with the rain in the past history. But
this time, it is an anti-climax for the 2nd test match of India Vs.
Australia at Chennai, India. India yet to play the fifth day of the
match chasing 210 runs with 10 wickets in hand. The oppurtunity of
victory was very high for India till last midnight. But it is raining
heavily since last midnight. Just remeber my previous
&lt;a class="reference external" href="http://myriad-zero.blogspot.com/2004/10/rain-may-spoil-chennai-test-match.html"&gt;post&lt;/a&gt;
on this (KK, it is just for you). The final day may be washed out
rendering a result less test match!&lt;/p&gt;
</summary><category term="cricket"></category></entry><entry><title>Kungumam draws traffic to my blog!</title><link href="http://praveen.kumar.in/2004/10/17/kungumam-draws-traffic-to-my-blog/" rel="alternate"></link><updated>2004-10-17T21:44:14+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-10-17:2004/10/17/kungumam-draws-traffic-to-my-blog/</id><summary type="html">&lt;p&gt;There was a previous
&lt;a class="reference external" href="http://myriad-zero.blogspot.com/2004/10/puduzu-kanna-puduzu.html"&gt;post&lt;/a&gt;
in my blog regarding the new ad of the Kungumam tamil weekly. In
examining the pattern of visits to my blog, I observed that quite a
number of vistors are reffered to the site by Google and Yahoo in
searching for "Kungumam weekly".&lt;/p&gt;
&lt;p&gt;But, I don't really have the info that they were looking for ;-)&lt;/p&gt;
</summary><category term="blog"></category></entry><entry><title>No (Smoker) Vaccancies : US!</title><link href="http://praveen.kumar.in/2004/10/17/no-smoker-vaccancies-us/" rel="alternate"></link><updated>2004-10-17T21:24:59+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-10-17:2004/10/17/no-smoker-vaccancies-us/</id><summary type="html">&lt;p&gt;Some companies in US recenlty said that they are not going to employ
smokers. The reasons that are stated as follows.&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Smokers go out for smoking once in half an hour which reduces the
productivity&lt;/li&gt;
&lt;li&gt;Smokers' brains think less and tend to make more mistakes thereby
reducing quality in products&lt;/li&gt;
&lt;li&gt;Smokers irritate the customers which tends to affect the customer
relationship&lt;/li&gt;
&lt;li&gt;Smokers cause disturbances (environmental and physcological) and
health risks for their non-smoking co-workers&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mind you there are quite a number of software companies too in this
list. They made a nicotine test as madatory along with other joining
formalities and it is to be taken every year.&lt;/p&gt;
&lt;p&gt;Being an ex-smoker I don't accept with the first and second reasons. Lot
of smokers started protesting this move. Anyway, I have quit smoking ;-)
so nothing stops me in getting a job in those companies!&lt;/p&gt;
</summary><category term="smoking"></category></entry><entry><title>Netbeans IDE on Debian.</title><link href="http://praveen.kumar.in/2004/10/17/netbeans-ide-on-debian/" rel="alternate"></link><updated>2004-10-17T01:36:34+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-10-17:2004/10/17/netbeans-ide-on-debian/</id><summary type="html">&lt;p&gt;I have installed
&lt;a class="reference external" href="http://java.sun.com/j2se/1.5.0/download.jsp"&gt;Netbeans&lt;/a&gt; on my Debian.
Too slow. Typically Java ;-)
&lt;a class="reference external" href="http://puggy.symonds.net/~praveen/journal-images/netbeans-debian.gif"&gt;Here&lt;/a&gt;
is a screenshot.&lt;/p&gt;
</summary><category term="debian"></category><category term="java"></category><category term="programming"></category><category term="linux"></category></entry><entry><title>Sarge -&gt; SID!</title><link href="http://praveen.kumar.in/2004/10/17/sarge-sid/" rel="alternate"></link><updated>2004-10-17T01:21:09+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-10-17:2004/10/17/sarge-sid/</id><summary type="html">&lt;p&gt;I have migrated my Debian from Sarge to SID. Not much visible
differences. Here is my sources.list&lt;/p&gt;
&lt;pre class="code text literal-block"&gt;
# SID
deb     ftp://ftp.ru.debian.org/debian/ unstable main contrib non-free
deb     ftp://ftp.ru.debian.org/debian-non-US/ unstable/non-US main contrib non-free
deb-src ftp://ftp.ru.debian.org/debian/ unstable main contrib non-free
deb-src ftp://ftp.ru.debian.org/debian-non-US/ unstable/non-US main contrib non-free

# mplayer
deb     ftp://ftp.nerim.net/debian-marillat/ unstable main
deb-src ftp://ftp.nerim.net/debian-marillat/ unstable main
&lt;/pre&gt;
&lt;p&gt;PS: I like Russia and Russians. Exception: Ruffian (Courtesy Vinayagam)
;-)&lt;/p&gt;
</summary><category term="debian"></category><category term="linux"></category></entry><entry><title>Debian GNU/Hurd K7 CDs available with me.</title><link href="http://praveen.kumar.in/2004/10/16/debian-gnuhurd-k7-cds-available-with-me/" rel="alternate"></link><updated>2004-10-16T09:00:36+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-10-16:2004/10/16/debian-gnuhurd-k7-cds-available-with-me/</id><summary type="html">&lt;p&gt;Now I have Debian GNU/Hurd K7 CD1 and CD2. In it's present form Hurd
sucks as it doesn't support IRQ sharing. For this reason I have to
disable my serial port, inbuilt LAN adapter and inbuilt sound to get
Hurd up and running. Real pain huh?!&lt;/p&gt;
</summary><category term="hurd"></category></entry><entry><title>Thunderbird is not working since last 'apt-get dist-upgrade'.</title><link href="http://praveen.kumar.in/2004/10/16/thunderbird-is-not-working-since-last-apt-get-dist-upgrade/" rel="alternate"></link><updated>2004-10-16T08:49:19+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-10-16:2004/10/16/thunderbird-is-not-working-since-last-apt-get-dist-upgrade/</id><summary type="html">&lt;p&gt;Mozilla Thuderbird is not working on my Debian Sarge since the last
'apt-get dist-upgrade'. The program recieves SIGSEGV. This is really
annoying. Here is the backtrace from GDB.&lt;/p&gt;
&lt;pre class="code text literal-block"&gt;
(gdb) backtrace
#0  0x41287040 in CalcLength ()
   from /usr/lib/mozilla-thunderbird/components/libgklayout.so
#1  0x41287279 in CalcLength ()
   from /usr/lib/mozilla-thunderbird/components/libgklayout.so
#2  0x4128df42 in nsRuleNode::ComputePaddingData ()
   from /usr/lib/mozilla-thunderbird/components/libgklayout.so
#3  0x41289788 in nsRuleNode::WalkRuleTree ()
   from /usr/lib/mozilla-thunderbird/components/libgklayout.so
#4  0x412889b8 in nsRuleNode::GetPaddingData ()
   from /usr/lib/mozilla-thunderbird/components/libgklayout.so
#5  0x41290b00 in nsRuleNode::GetStyleData ()
   from /usr/lib/mozilla-thunderbird/components/libgklayout.so
#6  0x088ef314 in ?? ()
#7  0xbfffd6cc in ?? ()
#8  0x414fa910 in ?? ()
   from /usr/lib/mozilla-thunderbird/components/libgklayout.so
#9  0x088ef314 in ?? ()
#10 0x0890023c in ?? ()
#11 0xbfffd6d8 in ?? ()
#12 0x4129fa72 in nsStyleContext::GetStyleData ()
   from /usr/lib/mozilla-thunderbird/components/libgklayout.so
Previous frame inner to this frame (corrupt stack?)
&lt;/pre&gt;
&lt;p&gt;I am breaking my head to fix this. This is going to spoil my weekend
move. I hate problems at weekend. Any help/suggestions welcome.&lt;/p&gt;
</summary><category term="email"></category></entry><entry><title>Anonymous poster revealed.</title><link href="http://praveen.kumar.in/2004/10/15/anonymous-poster-revealed/" rel="alternate"></link><updated>2004-10-15T19:14:04+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-10-15:2004/10/15/anonymous-poster-revealed/</id><summary type="html">&lt;p&gt;The anonymous poster was KK from Infy. Good KK! I atleast have one
regular visitor for my blog other than me ;-)&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Livejournal to Blogger migration - Help needed!</title><link href="http://praveen.kumar.in/2004/10/15/livejournal-to-blogger-migration-help-needed/" rel="alternate"></link><updated>2004-10-15T01:42:49+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-10-15:2004/10/15/livejournal-to-blogger-migration-help-needed/</id><summary type="html">&lt;p&gt;I am looking for migrating my old posts (less in number) from
Livejournal to Blogger. Any ideas/suggestions?&lt;/p&gt;
</summary><category term="blog"></category></entry><entry><title>35 PSUs to offload stake via public offer.</title><link href="http://praveen.kumar.in/2004/10/15/35-psus-to-offload-stake-via-public-offer/" rel="alternate"></link><updated>2004-10-15T01:24:57+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-10-15:2004/10/15/35-psus-to-offload-stake-via-public-offer/</id><summary type="html">&lt;p&gt;15 public sector firms to go for IPOs, 20 for fresh floats.&lt;/p&gt;
&lt;p&gt;The United Progressive Alliance (UPA) government's disinvestment policy
proposes initial public offers (IPOs) in 15 public sector units (PSUs)
as well as fresh issues for 20 listed ones.&lt;/p&gt;
&lt;p&gt;“The 51 per cent shareholding in 20 listed and 15 unlisted profit-making
PSUs will be retained by the government,” a government official said.
Companies with annual turnover of over Rs 500 crore will be considered
for IPOs.&lt;/p&gt;
&lt;p&gt;IPOs in companies like Power Finance Corporation, Power Grid Corporation
of India Ltd, National Hydroelectric Power Corporation, Bharat Sanchar
Nigam Ltd and Neyveli Lignite could be expected in the coming days.&lt;/p&gt;
&lt;p&gt;“The government will undertake ONGC and Gail-type transactions in
Navratnas and profit-making PSUs, which will not result in loss of
management control,” said an official.&lt;/p&gt;
&lt;p&gt;The policy, to be put up to the Union Cabinet shortly, is in line with
the UPA government's stand against privatisation of Navratnas and a
review of all ongoing disinvestment cases. Proposing further autonomy
for PSUs, it also recommends an annual classification of profitable and
loss-making companies.&lt;/p&gt;
&lt;p&gt;The policy proposes the government should not privatise companies like
Bharat Heavy Electricals Ltd, Hindustan Petroleum, Bharat Petroleum,
Gail India Ltd, Indian Oil Corporation, Mahanagar Telephone Nigam Ltd,
National Thermal Power Corporation, Oil and Natural Gas Corporation and
Steel Authority of India Ltd.&lt;/p&gt;
&lt;p&gt;On potentially sick and loss-making companies, the policy proposes the
government should seek joint ventures with private players. Asset lease
and strategic sales could also be considered.&lt;/p&gt;
&lt;p&gt;Of the 75 chronically sick PSUs, 48 have been referred to the Board for
Industrial and Financial Reconstruction and in the other 27, the
government could consider sale of assets before winding them up.&lt;/p&gt;
&lt;p&gt;Full managerial and commercial autonomy to PSUs have been proposed as
well as greater transparency and efficiency by broadbasing shareholding.
Unnecessary constraints imposed by government financial regulations are
sought to be eased.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>NTPC issue oversubscribed 11 times!</title><link href="http://praveen.kumar.in/2004/10/15/ntpc-issue-oversubscribed-11-times/" rel="alternate"></link><updated>2004-10-15T01:23:29+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-10-15:2004/10/15/ntpc-issue-oversubscribed-11-times/</id><summary type="html">&lt;p&gt;Business India: New Delhi, Oct 14 : The initial public offer of
state-run utility National Thermal Power Corp (NTPC) was oversubscribed
1,107 percent on the fifth and last day of bidding Thursday, book
building data with stock exchanges showed.&lt;/p&gt;
&lt;p&gt;As against 865.83 million shares on offer, the company has received bids
for 9.59 billion shares in the indicative price band of Rs.55-62 a share
bearing a face value of Rs.10 each, the data showed.&lt;/p&gt;
&lt;p&gt;NTPC's chairman and managing director C.P. Jain told reporters here that
the response to the issue was overwhelming.&lt;/p&gt;
&lt;p&gt;"This is the vote of confidence in the country's power sector reforms,"
he said.&lt;/p&gt;
&lt;p&gt;According to the NTPC official, the company will decide on the cut-off
price for the issue by the weekend.&lt;/p&gt;
&lt;p&gt;"We will list on major stock exchanges by Nov 5," Jain said.&lt;/p&gt;
&lt;p&gt;--Indo-Asian News Service&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Satcounter for hit statistics.</title><link href="http://praveen.kumar.in/2004/10/14/satcounter-for-hit-statistics/" rel="alternate"></link><updated>2004-10-14T09:21:00+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-10-14:2004/10/14/satcounter-for-hit-statistics/</id><summary type="html">&lt;p&gt;I also registered with &lt;a class="reference external" href="http://www.statcounter.com/"&gt;Statcounter&lt;/a&gt; for
tracking the hit statistics of this blog.&lt;/p&gt;
</summary><category term="blog"></category></entry><entry><title>A good site statistics tool.</title><link href="http://praveen.kumar.in/2004/10/13/a-good-site-statistics-tool/" rel="alternate"></link><updated>2004-10-13T23:48:56+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-10-13:2004/10/13/a-good-site-statistics-tool/</id><summary type="html">&lt;p&gt;I have added &lt;a class="reference external" href="http://www.reinvigorate.net"&gt;Re_Invigorate&lt;/a&gt; site
statistics module to the blog. It is a good one.&lt;/p&gt;
</summary><category term="blog"></category></entry><entry><title>Rain may spoil the Chennai test match!</title><link href="http://praveen.kumar.in/2004/10/13/rain-may-spoil-the-chennai-test-match/" rel="alternate"></link><updated>2004-10-13T08:56:42+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-10-13:2004/10/13/rain-may-spoil-the-chennai-test-match/</id><summary type="html">&lt;p&gt;I think that rain may spoil the second test match between India and
Australia here at Chennai, MA Chidambaram stadium. The weather seems to
be so dull yesterday and today.&lt;/p&gt;
</summary><category term="cricket"></category></entry><entry><title>Downloaded and installed Debian GNU/Hurd K7.</title><link href="http://praveen.kumar.in/2004/10/13/downloaded-and-installed-debian-gnuhurd-k7/" rel="alternate"></link><updated>2004-10-13T08:34:32+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-10-13:2004/10/13/downloaded-and-installed-debian-gnuhurd-k7/</id><summary type="html">&lt;p&gt;Yesterday I downloaded the first disc of Debian GNU/Hurd from thier &lt;a class="reference external" href="http://na.hurd.gnuab.org/pub/debian-cd/K7/"&gt;NA
site&lt;/a&gt; and installed on my
PC. I have already tried Hurd before 2 years. It was J2. Lot of changes
since J2. J2 was not installable from the CD directly. This time, the
installer seems to be functional. After the base system installation, I
added an entry to the GRUB and booted into Hurd. On the first boot, the
system was hung after detecting my serial port. I found that it was due
to IRQ sharing. Hurd doesn't support IRQ sharing so far. I disabled the
serial port from BIOS and tried booting and Hurd booted fine. The best
thing that I like in Hurd is translator concept. I think that this is
the high time to start some Hurd developement. Linux developement is a
kind of boring ;-)&lt;/p&gt;
</summary><category term="hurd"></category></entry><entry><title>Jamming of mobile phones at theatres in France!</title><link href="http://praveen.kumar.in/2004/10/12/jamming-of-mobile-phones-at-theatres-in-france/" rel="alternate"></link><updated>2004-10-12T18:13:21+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-10-12:2004/10/12/jamming-of-mobile-phones-at-theatres-in-france/</id><summary type="html">&lt;p&gt;&lt;a class="reference external" href="http://biz.yahoo.com/ap/041011/france_immobilizing_mobiles_4.html"&gt;This&lt;/a&gt;
news item states that France is going to allow theatres to jamm the
mobile phones in their premises. Too bad! I pray that Satyam cineplex
owners don't read this news. Else, they will consider doing the same
here too!&lt;/p&gt;
</summary><category term="cellphone"></category></entry><entry><title>Linux panoramic photography packages.</title><link href="http://praveen.kumar.in/2004/10/11/linux-panoramic-photography-packages/" rel="alternate"></link><updated>2004-10-11T22:57:59+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-10-11:2004/10/11/linux-panoramic-photography-packages/</id><summary type="html">&lt;p&gt;&lt;a class="reference external" href="http://bugbear.blackfish.org.uk/~bruno/panorama-tools/"&gt;Here&lt;/a&gt; is a
pointer to a good collection of panoramic photography tools for Linux.&lt;/p&gt;
</summary><category term="linux"></category><category term="photography"></category></entry><entry><title>Polarizing filter tips.</title><link href="http://praveen.kumar.in/2004/10/11/polarizing-filter-tips/" rel="alternate"></link><updated>2004-10-11T15:15:12+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-10-11:2004/10/11/polarizing-filter-tips/</id><summary type="html">&lt;p&gt;&lt;a class="reference external" href="http://www.offrench.net/photos/articles/polarizing_filter.php"&gt;This&lt;/a&gt;
small article gives good tips on using the polarizing filter
effectively.&lt;/p&gt;
&lt;p&gt;And &lt;a class="reference external" href="http://www.edbergphoto.com/pages/Tip-polarizers.html"&gt;this&lt;/a&gt; one
too. Courtesy &lt;a class="reference external" href="http://puggy.symonds.net/~suraj"&gt;Suraj&lt;/a&gt;.&lt;/p&gt;
</summary><category term="photography"></category></entry><entry><title>UV, skylight and polarizer filter FAQ.</title><link href="http://praveen.kumar.in/2004/10/11/uv-skylight-and-polarizer-filter-faq/" rel="alternate"></link><updated>2004-10-11T15:06:57+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-10-11:2004/10/11/uv-skylight-and-polarizer-filter-faq/</id><summary type="html">&lt;p&gt;&lt;a class="reference external" href="http://w1.541.telia.com/~u54105795/filters_faq/filters.html"&gt;Here&lt;/a&gt;
is a good FAQ on UV, skylight and polarizer filters.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Panoramic photos.</title><link href="http://praveen.kumar.in/2004/10/11/panoramic-photos/" rel="alternate"></link><updated>2004-10-11T12:59:43+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-10-11:2004/10/11/panoramic-photos/</id><summary type="html">&lt;p&gt;As I got a decent tripod now, I am planning to take some panoramic
shots. I will post them once I get some nice shots.
&lt;a class="reference external" href="http://www.panoguide.com/"&gt;Panoguide&lt;/a&gt; seems to be a good guide for
beginners as well as intermediate photographers.&lt;/p&gt;
</summary><category term="photography"></category></entry><entry><title>Bought a new circular polarizer and a tripod.</title><link href="http://praveen.kumar.in/2004/10/11/bought-a-new-circular-polarizer-and-a-tripod/" rel="alternate"></link><updated>2004-10-11T08:21:20+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-10-11:2004/10/11/bought-a-new-circular-polarizer-and-a-tripod/</id><summary type="html">&lt;p&gt;I bought a new circular polarizer (Kenko 55mm) and a tripod (Glottos
HD324G) from "Ebbey photos" at Spenzer plaza. The circular polarizer was
INR. 1000 and the the tripod was INR. 2200. I think this is the best
time to try some good photo shots.&lt;/p&gt;
</summary><category term="photography"></category></entry><entry><title>Lot of posts to the journal today!</title><link href="http://praveen.kumar.in/2004/10/07/lot-of-posts-to-the-journal-today/" rel="alternate"></link><updated>2004-10-07T02:06:05+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-10-07:2004/10/07/lot-of-posts-to-the-journal-today/</id><summary type="html">&lt;p&gt;I have posted a lot of topics to the journal. Still I am not getting the
sleep. I am so annoyed today because of a personal problem. I think I
have compensated the days that I haven't posted anything here. But today
the time that I spent was quite useful. I think now I can go to bed
happily. But it is too late out here. I am afraid if I can go to office
tomorrow at correct time! No problemo. I don't go to office on time most
of the days.&lt;/p&gt;
</summary><category term="blog"></category></entry><entry><title>Google likes Chennai.</title><link href="http://praveen.kumar.in/2004/10/07/google-likes-chennai/" rel="alternate"></link><updated>2004-10-07T01:59:26+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-10-07:2004/10/07/google-likes-chennai/</id><summary type="html">&lt;p&gt;It seems that Google adsense likes the keyword "Chennai" just like I do.
For the first time I noticed that all the three ad blocks (top, right
and bottom) in my page are active in a post that contained the term
Chennai. It showed a lot of hotel, matrimonial, flowers links ;-) Those
pages were centric on "Tamil Nadu" and "India" keywords too.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>"Email this post" feature for blogger.</title><link href="http://praveen.kumar.in/2004/10/07/email-this-post-feature-for-blogger/" rel="alternate"></link><updated>2004-10-07T01:58:37+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-10-07:2004/10/07/email-this-post-feature-for-blogger/</id><summary type="html">&lt;p&gt;Blogger now supports new feature "Email this post to a friend". Read
more about this
&lt;a class="reference external" href="http://help.blogger.com/bin/answer.py?answer=966"&gt;here&lt;/a&gt;. This is
really a good feature.&lt;/p&gt;
</summary><category term="blog"></category></entry><entry><title>Configured POP on localhost for gmail.</title><link href="http://praveen.kumar.in/2004/10/07/configured-pop-on-localhost-for-gmail/" rel="alternate"></link><updated>2004-10-07T01:58:34+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-10-07:2004/10/07/configured-pop-on-localhost-for-gmail/</id><summary type="html">&lt;p&gt;I just now configured the POP server for GMail on my localhost. Courtesy
&lt;a class="reference external" href="http://freepops.sourceforge.net/"&gt;FreePOPS&lt;/a&gt;. It rocks. The
configuration was just a matter of child's play. Once I installed the
debian package, and configured my Thunderbird, it worked like a charm.&lt;/p&gt;
</summary><category term="email"></category></entry><entry><title>I am now a Google AdSense member!</title><link href="http://praveen.kumar.in/2004/10/07/i-am-now-a-google-adsense-member/" rel="alternate"></link><updated>2004-10-07T01:58:31+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-10-07:2004/10/07/i-am-now-a-google-adsense-member/</id><summary type="html">&lt;p&gt;Yesterday I have registered for Google AdSense program. I got approved
today.I have included the Google ads in my blog now. I really wonder if
it would generate any revenue as I am not sure how many of my friends
read my blog! I would put it my homepage as well soon. I am not sure if
they would visit that as well. Anyway, better something than nothing!&lt;/p&gt;
</summary><category term="blog"></category></entry><entry><title>Bought a new UV filter for my camera.</title><link href="http://praveen.kumar.in/2004/10/07/bought-a-new-uv-filter-for-my-camera/" rel="alternate"></link><updated>2004-10-07T01:32:35+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-10-07:2004/10/07/bought-a-new-uv-filter-for-my-camera/</id><summary type="html">&lt;p&gt;Today I bought a new UV filter for my Fujifilm Finepix S5000 digital
camera from Millenium photos. I went for buying circular polarizer and a
good tripod. I have seen some tripods and I am not satisfied with them.
55 mm circular polarizer filter was not available. I had a real bad
luck. Just for the sake of not returning with bare hands, I bought a UV
filter which I thought I should have atleast for the protection of the
lens in Chennai's hard and dusty conditions.&lt;/p&gt;
</summary><category term="photography"></category></entry><entry><title>Nice small article on filters.</title><link href="http://praveen.kumar.in/2004/10/07/nice-small-article-on-filters/" rel="alternate"></link><updated>2004-10-07T01:29:35+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-10-07:2004/10/07/nice-small-article-on-filters/</id><summary type="html">&lt;p&gt;I just came across a nice small article
&lt;a class="reference external" href="http://www.naturephotographers.net/dw0502-1.html"&gt;article&lt;/a&gt; on the
filters used for nature photography. Great one!&lt;/p&gt;
</summary><category term="photography"></category></entry><entry><title>Puduzu kanna puduzu</title><link href="http://praveen.kumar.in/2004/10/07/puduzu-kanna-puduzu/" rel="alternate"></link><updated>2004-10-07T01:26:25+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-10-07:2004/10/07/puduzu-kanna-puduzu/</id><summary type="html">&lt;p&gt;A lot of Tamil people would have heard the slogan "Puduzu kanna puduzu"
(It's new dude) atleast 10 times a day. It was the slogan for Kungumam,
a weekly Tamil magazine. Kungumam was one of the lowest selling books
compared to the other famous Tamil weeklies. All of a sudden, there was
a great deal of advertisement for Kungumam with the above slogan. It
worked out nicely. Because of this advertisement and the freebies given
with the book, the sales rised to 727,200 copies it seems. I thought
that there is some real business genius behind this. Yesterday I came to
know he is nobody than the Sun TV Maran. No doubt that he is a great
business man!&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Short courses on photography.</title><link href="http://praveen.kumar.in/2004/10/07/short-courses-on-photography/" rel="alternate"></link><updated>2004-10-07T01:09:09+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-10-07:2004/10/07/short-courses-on-photography/</id><summary type="html">&lt;p&gt;One of the useful sites for the amature photographers is &lt;a class="reference external" href="http://www.shortcourses.com/"&gt;Short
courses&lt;/a&gt;. It has a lot of good topics
like "Basics of digital photography", "Digital cameras and accessories",
etc. I found the information about different tripods and monopods is
quite useful.&lt;/p&gt;
</summary><category term="photography"></category></entry><entry><title>Quite busy.</title><link href="http://praveen.kumar.in/2004/10/05/quite-busy/" rel="alternate"></link><updated>2004-10-05T00:20:05+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-10-05:2004/10/05/quite-busy/</id><summary type="html">&lt;p&gt;I was quite packed these days. Too lazy too to post here. Got my Sify
broadband as well. Running smooth.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>It's raining in Chennai.</title><link href="http://praveen.kumar.in/2004/09/24/its-raining-in-chennai/" rel="alternate"></link><updated>2004-09-24T11:41:30+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-09-24:2004/09/24/its-raining-in-chennai/</id><summary type="html">&lt;p&gt;Atlast the most awaited/wanted person is now in Chennai, the Varuna
Bhavaan! It is raining in Chennai from yesterday night. Not bad. CNN and
Weather.com forecast a good amount of rain in Chennai for the next three
days. It is good that it will solve atleast a minor portion of the water
scarcity in Chennai. This year was the worst in my experience in Water
scarcity at Chennai.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Freaking spammer in Chennai.</title><link href="http://praveen.kumar.in/2004/09/21/freaking-spammer-in-chennai/" rel="alternate"></link><updated>2004-09-21T17:45:24+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-09-21:2004/09/21/freaking-spammer-in-chennai/</id><summary type="html">&lt;p&gt;Today I recieved a mail from Mailmeindia.com stating that he would sell
me 1,000,000 NRI email ids for INR 1500. They have mentioned even the
name and the mobile number of the person. Too shocked to see that e-mail
ids are sold that openly. Also their
&lt;a class="reference external" href="http://www.mailmeindia.com/"&gt;site&lt;/a&gt; seems to be more horrifing
talking about mass mailing softwares, etc. This company is a sister
concern of &lt;a class="reference external" href="http://www.tamilnaduinfotech.com"&gt;Tamilnadu Infotech&lt;/a&gt; and
they had given their clear mailing address. They are located at Ritchie
street, the place for hardware in Chennai. Someone should do something
against this somewhere. Otherwise, a lot of people will start following
this ill example with better ways.&lt;/p&gt;
</summary><category term="ethics"></category></entry><entry><title>I am going for Sify Broadband.</title><link href="http://praveen.kumar.in/2004/09/20/i-am-going-for-sify-broadband/" rel="alternate"></link><updated>2004-09-20T16:47:13+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-09-20:2004/09/20/i-am-going-for-sify-broadband/</id><summary type="html">&lt;p&gt;Atlast, I have decided to (forced to for some personal reasons) go for
an Internet connection at my Home. I planned to go for &lt;a class="reference external" href="http://broadband.sify.com/"&gt;Sify
broadband&lt;/a&gt;. Recently, I heard a lot of
ill about Sify. Things like they are forcing you to use McAfee virus
scanner, bad in customer service, have trap in their unlimited plan,
etc. But I had no other way because I needed a connection that wouldn't
count the bytes transfered and also I needed it urgently. Sify was the
only option in my area. Since I have an ethernet card in my PC, I paid
INR. 3000 for the cable setup today. They said they will complete the
installation in two days. I am confused if I wasted 3000 bucks going for
Sify. Not sure! Have to personaly use Sify and see. Anyway, I am
planning to use it in my Debian. I happy that Sify supports Linux. I
have chosen 9pm to 9am 128kbps unlimited bandwidth plan for INR. 360 per
month. Let me wait and see what I really get!&lt;/p&gt;
</summary><category term="internet"></category></entry><entry><title>Bharthi network jammed; connectivity issues to be considered!</title><link href="http://praveen.kumar.in/2004/09/16/bharthi-network-jammed-connectivity-issues-to-be-considered/" rel="alternate"></link><updated>2004-09-16T16:49:22+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-09-16:2004/09/16/bharthi-network-jammed-connectivity-issues-to-be-considered/</id><summary type="html">&lt;p&gt;"Bharthi" is one of the leading communication service providers in
India. Two of their popular products in Tamil Nadu are Touchtel and
Airtel. I have Airtel (GSM) mobile connection. On wednesday eveing, I
lost connectivity all of a sudden. There was no signal reaching the
mobile. It seems that there was a major fire accident in Bharthi's
office at Santhome, Chennai. As the reason, all the lines and
connections are out of service. It was a great inconvenience that I
can't use my mobile. The connection was not up till next day noon. The
other service providers connections were up.&lt;/p&gt;
&lt;p&gt;A good thing flashed in my mind then. Normally a user of one service
provider is not allowed to use other's tower while he is not roaming.
But this should be relaxed atleast during such disasters. Would the
concerned authorities have got some hint in thier mind on this after the
accident?&lt;/p&gt;
</summary><category term="cellphone"></category></entry><entry><title>Life is not just coding!</title><link href="http://praveen.kumar.in/2004/09/16/life-is-not-just-coding/" rel="alternate"></link><updated>2004-09-16T16:04:07+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-09-16:2004/09/16/life-is-not-just-coding/</id><summary type="html">&lt;p&gt;Yet another forward. Really touching!&lt;/p&gt;
&lt;!-- --&gt;
&lt;blockquote&gt;
&lt;p&gt;My feet were getting numb. My arms were getting tired. But I sat there,
looking at the monitor, pretending to work. What if I slept off on the
keyboard? What would people around me think? Am I not competitive
enough. Would another night out hurt. "No it won't." I consoled myself.
"Work a little more." I told myself. Images of links between tables and
pages from what we call, ETRMs crossed my mind. "Why?" I asked myself.
"Why doesn't my mind wander away to the more beautiful things in life?"
"Why does it always have to be WORK!!!?"&lt;/p&gt;
&lt;p&gt;That was it. I couldn't take it anymore. I pressed the shutdown button
on the PC as if to say, "I hate you". As if in reply, it took me twice
to shut it down. I kicked my locker and walked out of my cubicle. The
security at the reception looked into my eyes sympathetically. I
pretended like I am solving problems in my head. As if the world
depended on my silly program. As if to justify the fact that the
Security needs to respect me. I hated myself. I walked down the corridor
towards the lift.&lt;/p&gt;
&lt;p&gt;There I was, on the fifth floor. It was 3.30 in the morning. The terrace
looked deserted. I loved the feeling. I was all alone. Just me, and the
sky and the stars and the early morning breeze. I looked all around. The
world looked much beautiful. Somewhere, far away, I could see lights. I
presume that must have been another workplace where people like me are
working away at their PCs.&lt;/p&gt;
&lt;p&gt;I stood at the edge of the terrace. As I looked at the road that ran in
front of our office, I slowly kept my palm on the wall. A chill ran down
my spine. Tiny droplets of water had formed on the wall, which I
touched. I wanted to feel it again. I touched it again. It was the most
wonderful feeling. I wondered why I don't do these things often.&lt;/p&gt;
&lt;p&gt;I decided to stay there till sunrise. I closed my eyes and waited.
Finally, I could see a faint light in the east. Even though we hardly
notice, these things do happen. Like sunrise and stuff. I saw the sun
rise. As he rose I could see more and more buildings like ours. The
breeze had got much stronger. It was like sitting near the window seat
of a bus that was moving through some lonely road near a lush paddy
field. I got that taste in the air. I got the feel. It was like heaven
had met earth.&lt;/p&gt;
&lt;p&gt;In the cubicle, I congratulate someone when his SELECT statement works.
There I was, all alone, on the terrace, when more important things were
happening and I had no one to congratulate. I wanted to cry "Thank you
God". "Thank you for giving me this beautiful world to live in." But...
the words wouldn't come out. I felt guilty. I knew very well that I
would go back in the cubicle once my emotions wore off.&lt;/p&gt;
&lt;p&gt;"No" I said. "I am NOT going back there again." I ran down the stairs. I
wanted the glass that covers our reception to break and let some of this
air in. I rushed into my cubicle and got my bag and stuff. Running out,
I did not bother to sign the register. Strangely, my vehicle started
with just one kick. I rode my bike quite fast, just to feel the air on
my face.&lt;/p&gt;
&lt;p&gt;When I reached the road, I realized that I was late. Considering the
fact that I was in office since yesterday, I was really really late. The
world had moved on. People had spent another night with their families.
Kids had spent another day studying for exams. Old folks had spent
another night wondering when to dye their hair. Teenagers had spent
another night dreaming about their loved ones.&lt;/p&gt;
&lt;p&gt;There I was, like a machine coming out of my office building. I saw
people taking their morning walks. Some of them jogging. Some of them
standing and talking. Some old aunties jogging and talking and laughing,
all at the same time. There were newspaper-boys, milk- vendors and what
not.&lt;/p&gt;
&lt;p&gt;I started feeling out of place. "Was I from another planet or
something?" I thought. I was dreaming I guess, a milk-vendor chap on his
bicycle nearly hit my bike. "Idiot" I said. Didn't he know I am going
home after a tough day? Didn't he know that I am tired, and do not have
the energy for such crap? "Wait a minute," I told myself. "Are you doing
somebody a favor by staying in the office so long?" "Will this world be
a better place if you do that?" "Do you have it in you to buy one meal
for that milk-vendor's family?"&lt;/p&gt;
&lt;p&gt;YOU CAN'T!!! And that's the truth. You can't do anything except writing
pieces of code, which you regard as full of life for reasons known best
to you.&lt;/p&gt;
&lt;p&gt;I broke into tears thinking about my own plight. I hated the fact that I
existed. Why was I going through this entire trauma? What was holding me
here? The money?. The passion to program?. The feeling that I would be
isolated if I didn't work?. I don't know. I am still searching for the
answers.&lt;/p&gt;
&lt;p&gt;Then, suddenly out of nowhere, images of my family came into my mind. My
dad, who had taken care of the family since I remember him. In fact,
since I remember anything. My mom who would not have slept even a little
bit, since I have not reached home. And my brother, who doesn't actually
show it, but misses me when he doesn't see me. "I am not alone" I
shouted. "I have this beautiful world to live in, with beautiful people
in it"&lt;/p&gt;
&lt;p&gt;Friends, do go out sometimes. Share your life with the people you love
the most. Share your life with the nature. Share it with the wind. Share
it with the sun. Share it with the rain. Things much much more important
than programming is happening out there. But it won't come for you, you
have to go out and find it.&lt;/p&gt;
&lt;/blockquote&gt;
</summary><category term="notags"></category></entry><entry><title>Weird 11!</title><link href="http://praveen.kumar.in/2004/09/16/weird-11/" rel="alternate"></link><updated>2004-09-16T14:33:21+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-09-16:2004/09/16/weird-11/</id><summary type="html">&lt;p&gt;An interesting forward I received today! I wonder how people can think
like this!&lt;/p&gt;
&lt;!-- --&gt;
&lt;blockquote&gt;
&lt;p&gt;The number 11--------- weird&lt;/p&gt;
&lt;p&gt;11 has become to be a very interesting number. It could be a forced
coincidence, but in any case this is interesting. You decide for
yourself&lt;/p&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;New York City has 11 letters.&lt;/li&gt;
&lt;li&gt;Afghanistan has 11 letters.&lt;/li&gt;
&lt;li&gt;Ramsin Yuseb (The terrorist who threatened the Twin Towers in 1993)
has 11 letters.&lt;/li&gt;
&lt;li&gt;George W. Bush has 11 letters. This could be a mere coincidence...
(Could it be?)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Now here is what is interesting...&lt;/p&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;New York is the State # 11&lt;/li&gt;
&lt;li&gt;The first plane crushing against the Twin Towers was flight #11.&lt;/li&gt;
&lt;li&gt;Flight # 11 was carrying 92 passengers Adding this number gives us:
9+2=11.&lt;/li&gt;
&lt;li&gt;Flight # 77 who also hit the towers, was carrying 65 passengers
Adding this: 6+5=11.&lt;/li&gt;
&lt;li&gt;The tragedy was on September 11, or 9/11. Adding this: 9+1+1=11&lt;/li&gt;
&lt;li&gt;The date is equal to the emergency number 911. Adding this: 9+1+1=11&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Now we have a very upsetting piece..&lt;/p&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;The total number of victims inside the planes are 254: 2+5+4=11&lt;/li&gt;
&lt;li&gt;The day September 11 is day number 254 of the calendar year: 2+5+4=11&lt;/li&gt;
&lt;li&gt;After September 11, there are 111 days more to the end of the year.&lt;/li&gt;
&lt;li&gt;The tragedy of 3/11/2004 in Madrid also adds to: 3+1+1+2+4=11.&lt;/li&gt;
&lt;li&gt;The tragedy in Madrid happened 911 days after the tragedy of the Twin&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
</summary><category term="notags"></category></entry><entry><title>Mozilla Firefox is ramping up!</title><link href="http://praveen.kumar.in/2004/09/15/mozilla-firefox-is-ramping-up/" rel="alternate"></link><updated>2004-09-15T18:03:00+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-09-15:2004/09/15/mozilla-firefox-is-ramping-up/</id><summary type="html">&lt;p&gt;A lot of statistics show Mozilla Firefox is ramping up while Microsoft
IE is ramping down in the past one year.
&lt;a class="reference external" href="http://weblogs.mozillazine.org/asa/archives/006444.html"&gt;Here&lt;/a&gt; is a
blog entry about this. Nice to hear...&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>HUM SAAB EK HI TO HAIN!!</title><link href="http://praveen.kumar.in/2004/09/15/hum-saab-ek-hi-to-hain/" rel="alternate"></link><updated>2004-09-15T13:19:25+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-09-15:2004/09/15/hum-saab-ek-hi-to-hain/</id><summary type="html">&lt;p&gt;One of the forward I recieved today!&lt;/p&gt;
&lt;!-- --&gt;
&lt;blockquote&gt;
&lt;p&gt;Tamils are always proud to be Tamizhs; Pretty courteous (that is what
they think, at least!). They speak yenglish but sorry, no indi (Hindi)
saar...what da??.The more common Madarasi (chennaisi..., now?) is an
ardent fan of kireeket matches.&lt;/p&gt;
&lt;p&gt;Their counterparts in Bombay think they live in America but speak
Hinglish like ...are you sure ki Sujata aa rahi hai ya Ill go akela!"
And they take great pride in making stupid mistakes in Hindi Grammar.&lt;/p&gt;
&lt;p&gt;Thamizhs, are verrry lecky to have "simble" neighbours in the
"keralites" who are a komblex race of peoblle (they migrated around 2000
B.C. from the middle east, I guess; and now even the Sheikhs feel wary
of them) but they eat a lot of chooclyte and own 99.998765% of chai
shops in the world and form 99.89% of nursing community.&lt;/p&gt;
&lt;p&gt;Not far begind the kerals is the telugu desam, who are totally againesht
flaunting their wealthu to the woruldu, though they occasionally come
out withu brick red shirtsu and parrot green pantsu with pleetsu
(pleat). Worustu,no?! But they (think) are greatu in CICSu, Microsu and
COBOLu! Generally sane peoplesu (and so you can always findu them
judgingu, probhingu, queschioningu othersu ....)&lt;/p&gt;
&lt;p&gt;The Canadians, excuse me, the Kannadigas aor (are) the coolest dobun
south but if there is political unrest in Hersogovnia oare (or) an ebola
virus outbreak in Zaire, they bash up the Tamils in Karnataka. Cauvery
very bad! When it comes to Rajkumar (actor), if a fly sits on his nose,
they'll burn the entire city of Bengaloroo to kill the fly! To hell with
Silicon valley! I-ron, firshtu, girlu, Lasht Bussu, roadu, crickeatu,
filamu are some of their favourites.&lt;/p&gt;
&lt;p&gt;Maharashtrians are a conservative, confused, complex lot-kar. -Kar, that
is because gavasakar, tendulkar, bahulkar,.. confused that is because
sitting in southern part of India they would ask the other person "are
you from Maharashtra or from south India..?" and genuinely wonder why
the other person takes some time to answer the question. They like the
principles of pheejix and their favourite character in the alphabet is
Zay (god knows where that came from). Although soft, peace loving people
but they elect the shivsena to rule them.&lt;/p&gt;
&lt;p&gt;And right there next to the Maharashtrians are the Gujjubhais. They like
to keep kes in the benk and their favourite past time is eating snakes
(snacks) like paav bhaji, masala papad and pijja at the local snake bar.
They gobble down palak sev like their life depends on it and believe in
the brotherhood and sisterhood of man and woman (everybody is a bhai or
a ben).&lt;/p&gt;
&lt;p&gt;If you go further eesht, the land uf Udissa - the land of irron ("r"
unsilent) where sombalpuroa and Bhubaneshbara are big towns. The people
are bery cordial and if you are Vikram they bill soorly ask your name
starts from B or Bhe. They do not sout, sam or soot but occasnally bawsh
their phace at the wasbashin. James Bond Mohanty in our colleze had a
roll nomber jero, jero, sebhen.&lt;/p&gt;
&lt;p&gt;Bengalees are bery bery similor, but or bery proud oph Subas Chondro
Boash and Shoatyojit Roy (I used to know a director by name Satyajit Ray
who was also pretty good) and eberybody is X da. I used to habe a friend
by name. Dada. Bonder...neber mind. Bot I most conphess, Roshgollas are
bery goooood, tho!&lt;/p&gt;
&lt;p&gt;Bihari kids are supposed to be the smartest kids in India (if not in the
universe!). How we wish they grow up the same way,...but... And Biharees
are bery phond of Laloo and Ranchi, isse bhadiya tumre pass koochi hai
kaa?! spit spit...&lt;/p&gt;
&lt;p&gt;UPites and MPites are busy going to ischool and istudying metals to make
lots of ishteel.&lt;/p&gt;
&lt;p&gt;Punjabis are very sweet and aggressive and offer Rotti Shotti Khayega!
to which I once replied No. He said Tage itu, yaar! By Godu! Surjeetu,
what happenedu, oi?!. Then of course, everybodys a paappe or a kaakke.
Thats Pnjab for you.&lt;/p&gt;
&lt;p&gt;And Kashmir (called Cashmir by many, may be because of the amount of
cash spent to keep it in India)?!? I know Roja (or Roza?)was shot (I
mean filmed) somewhere nearby...&lt;/p&gt;
&lt;p&gt;But at the end of the day, wherever you are in the world, whether it is
in Sunnyvale, CA; Birmingham, UK; UmmAl Quwain, UAE or Serangoon Road,
Singapore, ask them who they are and you'll get just one answer:
"INDIANS"&lt;/p&gt;
&lt;p&gt;AFTER ALL HUM SAAB EK HAIN!!!&lt;/p&gt;
&lt;/blockquote&gt;
</summary><category term="notags"></category></entry><entry><title>Solaris 10 becoming open source!</title><link href="http://praveen.kumar.in/2004/09/15/solaris-10-becoming-open-source/" rel="alternate"></link><updated>2004-09-15T12:48:52+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-09-15:2004/09/15/solaris-10-becoming-open-source/</id><summary type="html">&lt;p&gt;Sun Microsystems &lt;a class="reference external" href="http://news.com.com/'Open+Source+Solaris'+to+debut+this+year/2100-7344_3-5364052.html"&gt;will
create&lt;/a&gt;
an open-source project around its Solaris 10 operating system by the end
of the year, company executives said Monday. Also, Jonathan Schwartz
&lt;a class="reference external" href="http://blogs.sun.com/roller/page/jonathan/20040910#the_difference_between_humans_and"&gt;showed&lt;/a&gt;
32-Way UltraSPARC chip that runs Solaris 10.&lt;/p&gt;
&lt;p&gt;Courtesy: OSNews&lt;/p&gt;
</summary><category term="solaris"></category><category term="sun"></category></entry><entry><title>GMail invitations.</title><link href="http://praveen.kumar.in/2004/09/14/gmail-invitations/" rel="alternate"></link><updated>2004-09-14T16:28:46+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-09-14:2004/09/14/gmail-invitations/</id><summary type="html">&lt;p&gt;I have 6 e-mail invites. Needed persons can contact me through e-mail or
post a comment here.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>[Old news] MIT students suspended for ragging.</title><link href="http://praveen.kumar.in/2004/09/14/old-news-mit-students-suspended-for-ragging/" rel="alternate"></link><updated>2004-09-14T16:25:00+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-09-14:2004/09/14/old-news-mit-students-suspended-for-ragging/</id><summary type="html">&lt;p&gt;Pretty shocked to see the
&lt;a class="reference external" href="http://www.thatstamil.com/news/2004/08/25/ragging.html"&gt;news&lt;/a&gt; that 3
MIT sudents got suspended for ragging.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>What's new in Fedora Core 3?</title><link href="http://praveen.kumar.in/2004/09/14/whats-new-in-fedora-core-3/" rel="alternate"></link><updated>2004-09-14T10:38:45+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-09-14:2004/09/14/whats-new-in-fedora-core-3/</id><summary type="html">&lt;p&gt;Colin Charles released a
&lt;a class="reference external" href="http://www.bytebot.net/talks/FC3-t2rawhide-whatsnew.pdf"&gt;PDF&lt;/a&gt;,
showing us what's new in Fedora Core 3.&lt;/p&gt;
</summary><category term="linux"></category></entry><entry><title>Rebirth of MITAA website.</title><link href="http://praveen.kumar.in/2004/09/13/rebirth-of-mitaa-website/" rel="alternate"></link><updated>2004-09-13T14:14:21+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-09-13:2004/09/13/rebirth-of-mitaa-website/</id><summary type="html">&lt;p&gt;I got a mail from Mr. Krishnan (36317), Joint seceratary of MITAA,
Chennai chapter yesterday on the &lt;a class="reference external" href="http://www.mitaa.org"&gt;MITAA&lt;/a&gt;
website. MITAA is MIT Alumni Association. These guys are planning to
redo the wesite from scratch and they are in the progress of collecting
the Alumni data. I am going to help them as much as I can. It is so nice
that the site has got attention after quiet a long time.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Leader Vs. Boss</title><link href="http://praveen.kumar.in/2004/09/09/leader-vs-boss/" rel="alternate"></link><updated>2004-09-09T15:33:13+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-09-09:2004/09/09/leader-vs-boss/</id><summary type="html">&lt;p&gt;One of my signatures in MS Outlook today read ...&lt;/p&gt;
&lt;!-- --&gt;
&lt;blockquote&gt;
Boss or Leader? A Boss creates fear; A Leader creates confidence.
Bossism creates resentment; Leadership breeds enthusiasm. A Boss says:I;
A Leader says:We. A Boss fixes blame; A Leader fixes mistakes. A Boss
knows how; A Leader shows how. Bossism makes work drudgery; Leadership
makes work interesting. A Boss relies on authority; A Leader relies on
co-operation. A Boss drives; A Leader leads. - Anonymous&lt;/blockquote&gt;
&lt;p&gt;PS: Random signatures; courtesy: Quotes 2002&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>No luck with NFSU!</title><link href="http://praveen.kumar.in/2004/09/09/no-luck-with-nfsu/" rel="alternate"></link><updated>2004-09-09T15:28:20+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-09-09:2004/09/09/no-luck-with-nfsu/</id><summary type="html">&lt;p&gt;To fix the crashing problem at level 26, I tried out the following.&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Download and install the latest nVidia drivers.&lt;/li&gt;
&lt;li&gt;Download and install DirectX 9.0c.&lt;/li&gt;
&lt;li&gt;Download and apply NFSU lastest patch from EA games.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Nothing have solved the problem. Still the game crashes at level 26. I
need a solution for this. Atleast, I should know the reason for this
issue.&lt;/p&gt;
</summary><category term="gaming"></category></entry><entry><title>I have bad time with NFSU</title><link href="http://praveen.kumar.in/2004/09/07/i-have-bad-time-with-nfsu/" rel="alternate"></link><updated>2004-09-07T12:39:02+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-09-07:2004/09/07/i-have-bad-time-with-nfsu/</id><summary type="html">&lt;p&gt;I was playing Need for Speed Underground this weekend. I was able to
advance upto level 25. But in the 25th level, the application crashes. I
suspected the graphics driver (nVidia GeForce2 IGP) and upgraded it. No
luck. Now I downloaded DirectX 9c (I have 9b) and also the latest patch
for NFSU. I have to install these two and figure out if it works.&lt;/p&gt;
&lt;p&gt;Lot of people who play NFSU come across this problem (quite a few
friends of mine). But there is no information about this problem on NFSU
site. EA Games guys are crazy.&lt;/p&gt;
</summary><category term="gaming"></category></entry><entry><title>Back to work.</title><link href="http://praveen.kumar.in/2004/09/07/back-to-work/" rel="alternate"></link><updated>2004-09-07T12:08:53+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-09-07:2004/09/07/back-to-work/</id><summary type="html">&lt;p&gt;I am back to work after a long weekend. Yesterday was "Krishna Jeyanthi"
(B'day of Lord Krishna; belated b'day wishes to him!) and was a holiday
to me.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Damn! I got an adware on my computer.</title><link href="http://praveen.kumar.in/2004/09/01/damn-i-got-an-adware-on-my-computer/" rel="alternate"></link><updated>2004-09-01T17:30:49+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-09-01:2004/09/01/damn-i-got-an-adware-on-my-computer/</id><summary type="html">&lt;p&gt;Today I found out the reason for the wierd behaviour of IE6. There was
an adware called
&lt;a class="reference external" href="http://sarc.com/avcenter/venc/data/adware.180search.html"&gt;180Search&lt;/a&gt;
was installed on my computer. I am not sure how this one got in. I have
removed it completely (Courtesy: Norton Antivirus).&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Gmail review by MKS.</title><link href="http://praveen.kumar.in/2004/09/01/gmail-review-by-mks/" rel="alternate"></link><updated>2004-09-01T14:56:35+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-09-01:2004/09/01/gmail-review-by-mks/</id><summary type="html">&lt;p&gt;&lt;a class="reference external" href="http://mksarav.org"&gt;MKS&lt;/a&gt; wrote a detailed
&lt;a class="reference external" href="http://www.mksarav.org/blog/2004/08/gmail-review.html"&gt;review&lt;/a&gt; on
GMail at his blog.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Vasoolraja MBBS!</title><link href="http://praveen.kumar.in/2004/09/01/vasoolraja-mbbs/" rel="alternate"></link><updated>2004-09-01T12:07:00+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-09-01:2004/09/01/vasoolraja-mbbs/</id><summary type="html">&lt;p&gt;I saw the Tamil movie &lt;a class="reference external" href="http://geminivasoolrajambbs.com/"&gt;"Vasoolraja
MBBS"&lt;/a&gt;, staring Padmashree
Kamalahaasan on Friday at Satyam cineplex, Chennai. I had a great
expectation for the movie when I entered the theatre. The movie is yet
another branded "Crazy" movie (Courtesy: Crazy Mohan). The movie was
entertaining; but was not upto the mark as expected. The same old Crazy
Mohan dialogue throughout the movie. The film is completely dominated by
Kamalhaasan. I don't know what Prabhu is doing in that movie.
Prakashraj's capability is been wasted. Sneha had no (real) work in the
movie; just for fantasy and for the sake of a heroine. Kamal should
think of a new dimension for his comedy based movies in the future.
Overall, yet another Kamal+Crazy Mohan show! Felt like watching a long
"Crazy times" in Jaya TV with new starings.&lt;/p&gt;
</summary><category term="movies"></category></entry><entry><title>Who the heck is this Internet Optimizer</title><link href="http://praveen.kumar.in/2004/08/27/who-the-heck-is-this-internet-optimizer/" rel="alternate"></link><updated>2004-08-27T14:12:09+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-08-27:2004/08/27/who-the-heck-is-this-internet-optimizer/</id><summary type="html">&lt;p&gt;Today I noticed in my IE6 that non-existing sites and other errors are
taking me to a site titled "Internet optimizer". I looked into my
installed programs and I was quite surprized to see a program called
"Internet optimizer" installed. I am puzzled because I never installed
this and also I never allowed any auto-install (scripts) from any sites.
I uninstalled this damn thing. From then on, the IE6 started throwing up
pop-up pages and new pages relavent to the sites that I am visiting. So
strange. This is painful. Anyone have an idea about this?&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Varalakshmi viratham</title><link href="http://praveen.kumar.in/2004/08/27/varalakshmi-viratham/" rel="alternate"></link><updated>2004-08-27T10:51:18+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-08-27:2004/08/27/varalakshmi-viratham/</id><summary type="html">&lt;p&gt;Today "Varalakshmi Viratham" is celeberated by some of the Hindhus. On
this occassion, married women pray to the God for the long life of their
husband. They undergo fasting in the morning (To compensate, there would
be a couple of unlimited meals with a lot of varieties in the afternoon
;-) Indian women are (were?) too sentimental that they should die before
their husband. Long live Indian husbands!&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>myriad-zero.net redirection</title><link href="http://praveen.kumar.in/2004/08/26/myriad-zeronet-redirection/" rel="alternate"></link><updated>2004-08-26T15:53:46+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-08-26:2004/08/26/myriad-zeronet-redirection/</id><summary type="html">&lt;p&gt;Now the redirection of myriad-zero.net works fine.&lt;/p&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;del&gt;http://myriad-zero.net is redirected to http://puggy.symonds.net/~praveen&lt;/del&gt;&lt;/div&gt;
&lt;div class="line"&gt;&lt;del&gt;http://blog.myriad-zero.net is redirected to http://myriad-zero.blogspot.com&lt;/del&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Also the mails to the new domain are redirected to my personal account.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Strange problem with IE6</title><link href="http://praveen.kumar.in/2004/08/26/strange-problem-with-ie6/" rel="alternate"></link><updated>2004-08-26T15:49:06+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-08-26:2004/08/26/strange-problem-with-ie6/</id><summary type="html">&lt;p&gt;Today I am encountering a strange problem with IE6. When I search for
something in Google's site, IE hangs abrubtly. I don't know the exact
reason for this. I am working out to find the same.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Happy b'day Keerthana.</title><link href="http://praveen.kumar.in/2004/08/26/happy-bday-keerthana/" rel="alternate"></link><updated>2004-08-26T12:06:42+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-08-26:2004/08/26/happy-bday-keerthana/</id><summary type="html">&lt;p&gt;Today is the b'day of my 4 yrs old niece Keerthana. May God bless her
and long live Keerthana.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Linux history.</title><link href="http://praveen.kumar.in/2004/08/25/linux-history/" rel="alternate"></link><updated>2004-08-25T19:23:44+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-08-25:2004/08/25/linux-history/</id><summary type="html">&lt;p&gt;After enough amount of googling, I admitted that today is the b'day of
Linux. Shame on my side for not knowing this so far(I am using Linux
since 1999). Anyway, better late than never.&lt;/p&gt;
&lt;p&gt;Here is a brief history of Linux from Li.org.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://www.li.org/linuxhistory.php"&gt;http://www.li.org/linuxhistory.php&lt;/a&gt;&lt;/p&gt;
</summary><category term="linux"></category></entry><entry><title>Linux b'day?</title><link href="http://praveen.kumar.in/2004/08/25/linux-bday/" rel="alternate"></link><updated>2004-08-25T18:03:35+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-08-25:2004/08/25/linux-bday/</id><summary type="html">&lt;p&gt;I recieved a mail (forward) a few minutes back from Rekha, titled "Happy
b'day Linux". It also claimed that on Aug 25th 1991, the first public
announcement about Linux came from Linus. Find below the mail (supposed
to be) from Linus Torvalds.&lt;/p&gt;
&lt;!-- --&gt;
&lt;blockquote&gt;
&lt;p&gt;Hello everybody out there using minix-&lt;/p&gt;
&lt;p&gt;I'm doing a (free) operating system (just a hobby, won't be big and
professional like gnu) for 386(486) AT clones. This has been brewing
since april, and is starting to get ready. I'd like any feedback on
things people like/dislike in minix; as my OS resembles it somewhat
(same physical layout of the file-sytem due to practical reasons)among
other things.&lt;/p&gt;
&lt;p&gt;I've currently ported bash (1.08) an gcc (1.40), and things seem to
work. This implies that i'll get something practical within a few
months, and I'd like to know what features most people want. Any
suggestions are welcome, but I won't promise I'll implement them :-)&lt;/p&gt;
&lt;p&gt;Linus Torvalds &lt;a class="reference external" href="mailto:torvalds@kruuna.helsinki.fi"&gt;torvalds@kruuna.helsinki.fi&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
</summary><category term="linux"></category></entry><entry><title>A nice quote from LinuxQuestions.org</title><link href="http://praveen.kumar.in/2004/08/24/a-nice-quote-from-linuxquestionsorg/" rel="alternate"></link><updated>2004-08-24T17:24:06+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-08-24:2004/08/24/a-nice-quote-from-linuxquestionsorg/</id><summary type="html">&lt;p&gt;I was browsing LinuxQuestions.org and came across this quote as
signature of an user. Very impressive.&lt;/p&gt;
&lt;blockquote&gt;
If we all thought of our father's father's father's father's and so
on for about 6000 fathers before us... we would all be thinking of
the same person!!!&lt;/blockquote&gt;
&lt;p&gt;Nice to know I got family everywhere I go!&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Me and my APC UPS.</title><link href="http://praveen.kumar.in/2004/08/24/me-and-my-apc-ups/" rel="alternate"></link><updated>2004-08-24T12:33:41+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-08-24:2004/08/24/me-and-my-apc-ups/</id><summary type="html">&lt;p&gt;Yesterday I bought my APC UPS from RM Computers at Ritchie street. The
price was INR. 2700. The UPS has 3 battery powered outlets and one surge
protected outlet. I installed the UPS and booted into Microsoft Windows
2000 Professional. The software given with the UPS, "PowerChute" worked
fine on Windows. It gave the information about the available backup
time, battery charge, power drawn from the UPS, etc. The data connection
between the UPS and the computer is through USB port. Then I booted into
my Debian Sarge and installed "&lt;a class="reference external" href="http://www2.apcupsd.com/"&gt;apcupsd&lt;/a&gt;"
and the configuration was pretty striaght forward. I edited the file
"/etc/apcupsd/apcupsd.conf" and "/etc/init.d/apcupsd" and started the
daemon. It runs flawlessly. You should have "usb-hid" compiled into your
kernel or you should insert this module. APC UPS; worth the money.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Quitnet rocks.</title><link href="http://praveen.kumar.in/2004/08/24/quitnet-rocks/" rel="alternate"></link><updated>2004-08-24T12:10:51+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-08-24:2004/08/24/quitnet-rocks/</id><summary type="html">&lt;p&gt;It is almost 24 days since I stopped smoking. There was a couple of miss
in the mean time. &lt;a class="reference external" href="http://www.quitnet.com"&gt;Quitnet&lt;/a&gt; played a major
role in this attempt. Anyone who tries to quit smoking must visit this
site. These guys are doing an excellent job.&lt;/p&gt;
</summary><category term="smoking"></category></entry><entry><title>I got a domain now!</title><link href="http://praveen.kumar.in/2004/08/24/i-got-a-domain-now/" rel="alternate"></link><updated>2004-08-24T11:32:53+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-08-24:2004/08/24/i-got-a-domain-now/</id><summary type="html">&lt;p&gt;Atlast after considering a lot of names, I settled for
&lt;a class="reference external" href="http://myriad-zero.net"&gt;myriad-zero.net&lt;/a&gt;. I registered this domain
for two years. The fee was INR. 700. Have to look out for a good deal of
hosting. If anyone have a good Linux host in mind, please let me know.
At present, this domain is being forwarded to my &lt;a class="reference external" href="http://puggy.symonds.net/~praveen"&gt;home
page&lt;/a&gt; at &lt;a class="reference external" href="http://www.symonds.net/"&gt;Symonds'
machine&lt;/a&gt;.&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Hello, blogspot!</title><link href="http://praveen.kumar.in/2004/08/23/hello-blogspot/" rel="alternate"></link><updated>2004-08-23T13:31:56+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-08-23:2004/08/23/hello-blogspot/</id><summary type="html">&lt;p&gt;Just now created my blog account here. The term "myriad-zero" is a
conjoining contradictory term. "Myriad" meaning infinite and "Zero"
meaning nothing. I already had my journal at &lt;a class="reference external" href="http://www.livejournal.com/users/praveenkumar/"&gt;Live
Journal&lt;/a&gt;. As I am a
hard core Google fan, I decided to move to Blogger.&lt;/p&gt;
</summary><category term="blog"></category></entry><entry><title>Planned to say no for alcohol as well.</title><link href="http://praveen.kumar.in/2004/08/02/planned-to-say-no-for-alcohol-as-well/" rel="alternate"></link><updated>2004-08-02T17:09:00+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-08-02:2004/08/02/planned-to-say-no-for-alcohol-as-well/</id><summary type="html">&lt;p&gt;Also decided to say "NO" to alcohol (of any form; "NO" to beer and wine
as well) from Aug 1. So, one more added to the quit list. If I remeber
correctly, the last time I had alcohol was 25 Jul 04 (Signature scotch).
I don't know why am I becoming more and more health conscious
now-a-days. Good huh!&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>A good site for people trying to quit smoking.</title><link href="http://praveen.kumar.in/2004/08/01/a-good-site-for-people-trying-to-quit-smoking/" rel="alternate"></link><updated>2004-08-01T17:07:00+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-08-01:2004/08/01/a-good-site-for-people-trying-to-quit-smoking/</id><summary type="html">&lt;p&gt;Today is my quit date. I found this site
&lt;a class="reference external" href="http://www.quitnet.com"&gt;Quitnet&lt;/a&gt; exactly today. A nice site.&lt;/p&gt;
</summary><category term="smoking"></category></entry><entry><title>Planned to quit smoking (again)!</title><link href="http://praveen.kumar.in/2004/08/01/planned-to-quit-smoking-again/" rel="alternate"></link><updated>2004-08-01T03:03:00+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-08-01:2004/08/01/planned-to-quit-smoking-again/</id><summary type="html">&lt;p&gt;For yet another time (do not have the exact count in my mind), I planned
to quit smoking. I set my quit date as 1st Aug 2004 (Significance:
Friendship day). Atleast this time, I have to quit successfully. Also
this time, I am not going to tell my friends that I am going to quit.
They are tired of hearing this repeatedly.&lt;/p&gt;
</summary><category term="smoking"></category></entry><entry><title>It's party time...</title><link href="http://praveen.kumar.in/2004/07/13/its-party-time/" rel="alternate"></link><updated>2004-07-13T22:38:00+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-07-13:2004/07/13/its-party-time/</id><summary type="html">&lt;p&gt;Tomorrow is my birthday. Planned to spent time with my friends tonight.
It's party time ;-)&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>New albums in gallery.</title><link href="http://praveen.kumar.in/2004/07/01/new-albums-in-gallery/" rel="alternate"></link><updated>2004-07-01T14:49:00+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-07-01:2004/07/01/new-albums-in-gallery/</id><summary type="html">&lt;p&gt;Uploaded two new albums to the gallery.&lt;/p&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;[STRIKEOUT:&lt;a class="reference external" href="http://puggy.symonds.net/~praveen/gallery/csi"&gt;Country Side
India&lt;/a&gt;]&lt;/li&gt;
&lt;li&gt;[STRIKEOUT:&lt;a class="reference external" href="http://puggy.symonds.net/~praveen/gallery/ra"&gt;Road
Accidents&lt;/a&gt;]&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Also added some photos to existing albums.&lt;/p&gt;
</summary><category term="photography"></category></entry><entry><title>Information of my system's configuration.</title><link href="http://praveen.kumar.in/2004/06/22/information-of-my-systems-configuration/" rel="alternate"></link><updated>2004-06-22T23:44:00+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-06-22:2004/06/22/information-of-my-systems-configuration/</id><summary type="html">&lt;p&gt;I upgraded most of the components of my PC. So, I think about mentioning
the configuration here...&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;AMD Athlon 2000+ XP (256MB L2 Cache) (Gotta move for 2400+ 512MB L2
Cache)&lt;/li&gt;
&lt;li&gt;nVidia nForce 2 chipset (MSI)&lt;/li&gt;
&lt;li&gt;512MB DDR RAM (266MHz)&lt;/li&gt;
&lt;li&gt;nVidia GeForce MX IGP (32MB Shared memory)&lt;/li&gt;
&lt;li&gt;nVidia MCP sound (5.1 Dolby digital) sound (AC97)&lt;/li&gt;
&lt;li&gt;nVidia MCP integerated Ethernet card&lt;/li&gt;
&lt;li&gt;Pinnacle PCTV Pro (TV + FM Tuner with remote)&lt;/li&gt;
&lt;li&gt;Seagate 80GB 7200RPM hard disk (2 nos)&lt;/li&gt;
&lt;li&gt;LG 16X DVD ROM Drive&lt;/li&gt;
&lt;li&gt;TDK 4X/2X/16X DVD all format writer&lt;/li&gt;
&lt;li&gt;Samsung Samtron 55E 15'' Monitor (30-61, 50-120)&lt;/li&gt;
&lt;li&gt;Zebronics 2.1 subwoofer (Gotta go for 5.1 soon)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What else?&lt;/p&gt;
</summary><category term="pc"></category></entry><entry><title>My first DVD burn under Linux.</title><link href="http://praveen.kumar.in/2004/06/22/my-first-dvd-burn-under-linux/" rel="alternate"></link><updated>2004-06-22T23:40:00+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-06-22:2004/06/22/my-first-dvd-burn-under-linux/</id><summary type="html">&lt;p&gt;Today I tried to burn my first DVD disk under Linux and it was painless.
KIIIB is too good. It detected my TDK DVD burner straight away (was
using Fedora Core 2; no scsi emulation). I copied the Matrix all in one
DVD which took around 42 minutes (7.3 GB at 4X). Too good.&lt;/p&gt;
</summary><category term="linux"></category></entry><entry><title>Universal blood donors' day!</title><link href="http://praveen.kumar.in/2004/06/14/universal-blood-donors-day/" rel="alternate"></link><updated>2004-06-14T16:38:00+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-06-14:2004/06/14/universal-blood-donors-day/</id><summary type="html">&lt;p&gt;Today is universal blood donors' day. Donate blood; save life!&lt;/p&gt;
</summary><category term="notags"></category></entry><entry><title>Me and my new Pinnacle PCTV Pro card.</title><link href="http://praveen.kumar.in/2004/06/11/me-and-my-new-pinnacle-pctv-pro-card/" rel="alternate"></link><updated>2004-06-11T16:54:00+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-06-11:2004/06/11/me-and-my-new-pinnacle-pctv-pro-card/</id><summary type="html">&lt;p&gt;Yesterday I bought a new Pinnacle PCTV Pro card for my computer from
Ritchie street. I came around Rs.2700 with one year warranty. Pinnacle
PCTV Pro has BT878 chipset with FM tuner which is Rs.500 more than the
PCTV Stereo model which has no FM tuner (that is the only difference).
Both the cards include an infrared remote control.&lt;/p&gt;
&lt;p&gt;I installed the card in a free PCI slot of my PC and started my Windows
2000 Professional and installed the driver and software from Pinnacle.
After configuring the video standard (PAL) and frequency table region
(India), the TV vision software started scannning for the stations and
it numbered them. I tried capturing and time shift operations and
working more or less promised by the manufacturer. For MPG2 enconding,
it seems that I have to pay online and activate this feature. Well! who
wants this? I will try using mplayer's mencoder for doing this. (Is it
possible) After some struggle, I got my favourite 98.3 (Radio Mirchi) up
and running. I had to connect an external antenna to the FM tuner's
input apart from the normal TV cable input. The hardware was fine and I
thought that then it is time to configure it and getting it worked on
Linux.&lt;/p&gt;
&lt;p&gt;I restarted the PC and booted into my Fedora Core 2. Kudzu detected the
card as "Brooktree corporation Bt878 video capture device". I opened
tvtime and chose the video standard as PAL. It wanted me to restart the
application. In the frequency table there was no entry for India. I had
to run 'tvtime-scan' and chose "Custom" in the frequency table. I got
the channels correctly. But still I didn't see the quality that I saw on
Windows's TV vision software. I think I have to play with the frequency
table. (Anyone has an idea what frequency table is India's based on?) I
wanted to get my remote working on Linux. But I didn't had LIRC. I have
to download and install one. Similar case about the FM tuner. I didn't
had any Radio tuner softwares. I plan to use gnomeradio and try it
today.&lt;/p&gt;
&lt;p&gt;Pinnacle PCTV Pro is definetly a value for it's money. Just my 2 cents
;-)&lt;/p&gt;
</summary><category term="pc"></category></entry><entry><title>Funny quote!</title><link href="http://praveen.kumar.in/2004/06/03/funny-quote/" rel="alternate"></link><updated>2004-06-03T21:03:00+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-06-03:2004/06/03/funny-quote/</id><summary type="html">&lt;p&gt;I just came across a funny quote in a e-mail signature from one of my
friends.&lt;/p&gt;
&lt;blockquote&gt;
Hiroshima..45........Tjernobil..86........Windows..95....&lt;/blockquote&gt;
&lt;p&gt;It may be very old. But I am noticing it for the first time.&lt;/p&gt;
</summary></entry><entry><title>Annonymous mobile calls!</title><link href="http://praveen.kumar.in/2004/06/02/annonymous-mobile-calls/" rel="alternate"></link><updated>2004-06-02T21:42:00+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-06-02:2004/06/02/annonymous-mobile-calls/</id><summary type="html">&lt;p&gt;As I tolerate the e-mail spams that I receive, I have to tolerate the
annonymous calls I receive. In the last three months I would have
received atleast some 100 calls from such sources. They sound like&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Hello sir, I am calling from XXX bank. We offer a free credit card
for only YYY employees...&lt;/p&gt;
&lt;p&gt;Good morning Praveen, This is X calling from so and so club. You
have a lot of benifits if you become our club member...&lt;/p&gt;
&lt;p&gt;Hi Praveen, we are offering personal loans for you at very low
interest rate...&lt;/p&gt;
&lt;p&gt;Hello, we are the providing the lowest EMI option for home loans...&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And so on.&lt;/p&gt;
&lt;p&gt;I asked them how they got hold of my number. Most of them say that they
have a name/number list. Others have a list of valid mobile numbers. But
they don't have an idea to whom they are talking to. In the middle of
the conversation they will ask me "What is your name?". Is this not
worse than spams. I don't know whether I can take some legal action
against them. Sometimes, these calls are frustating.&lt;/p&gt;
&lt;p&gt;The funniest part of this is that I recieved some 6 calls from ICICI
bank so far in 2 months for marketing their credit card; but I have
their credit card (Gold) almost for an year. How many cards do you
expect me to get from you my dear ICICI?!&lt;/p&gt;
</summary><category term="ethics"></category></entry><entry><title>Raja's B'day!</title><link href="http://praveen.kumar.in/2004/06/02/rajas-bday/" rel="alternate"></link><updated>2004-06-02T17:34:00+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-06-02:2004/06/02/rajas-bday/</id><summary type="html">&lt;p&gt;Today is the birthday of Illiayaraja who is respectfully addressed in
the Tamil Film Industry as Raja sir. Illiyaraja is a music director in
the Tamil film industry and he has done a lot of masterpieces so far. I
was a Raja fan long back; once ARR (A.R.Rehman) came into the industry I
became a serious fan of ARR. Still they two are unbeatable in their own
ways.&lt;/p&gt;
&lt;p&gt;I wish a very happy birthday to Illayaraja.&lt;/p&gt;
</summary><category term="music"></category></entry><entry><title>Planning to do MS!</title><link href="http://praveen.kumar.in/2004/06/01/planning-to-do-ms/" rel="alternate"></link><updated>2004-06-01T19:28:00+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-06-01:2004/06/01/planning-to-do-ms/</id><summary type="html">&lt;p&gt;My company(HCL Technologies) is offering a MS in Software Systems
programme (2 years)collaborating with BITS, Pillani. This programme is
treated as a full-time programme though I can do this while working
simultaneously. The idea is that I have to attend classes every
weekends. Attendance is not mandatory though it seems. I am planning to
enroll for this programme. I am not really sure how much will it be
worth. Still, I can keep a Masters degree handy when I complete my third
year at HCL.&lt;/p&gt;
</summary><category term="learning"></category></entry><entry><title>XLIX Anbuselva is no more!</title><link href="http://praveen.kumar.in/2004/06/01/xlix-anbuselva-is-no-more/" rel="alternate"></link><updated>2004-06-01T14:50:00+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-06-01:2004/06/01/xlix-anbuselva-is-no-more/</id><summary type="html">&lt;p&gt;Anbuselva, one of my seniors of XLIX (49th) Elex batch of MIT passed
away yesterday. It is a very sad news to hear. Behalf of the LII (52nd)
Elex batch of MIT, I want to express our heart-felt condolence to his
family and may his soul rest in peace.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I am really sad to inform you that one of our junior 49th batch
elex, AnbuSelva has passed away today morning. Here is the news
forwarded from his batch mate.  Sometime back Anbuselva was
working in Malaysia (deputation) and only just now went back to
India. Really Sad :-(&lt;/p&gt;
&lt;p&gt;He passed away in Chennai and I talked to Satish (who identified the
body in mortuary). Satish informed Anbu parents in Erode.&lt;/p&gt;
&lt;p class="attribution"&gt;—mks --&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Our friend Anbuchelva passed away today morning...  He came back
from his native place by Yercaud express and after getting down
from the train , he fell down on the platform it seems...  People
in the station had taken him to the Hospital . It seems to be an
heart attack... but doctors have not yet confirmed...I got the
news thru Rubber technology Satish Kumar.&lt;/p&gt;
&lt;p&gt;Satish contact no : 9884088131
Let us all pray for his soul to rest in peace....&lt;/p&gt;
&lt;p&gt;Vijayashree.N&lt;/p&gt;
&lt;/blockquote&gt;
</summary><category term="obituary"></category></entry><entry><title>Aayudha Ezhutu!</title><link href="http://praveen.kumar.in/2004/05/31/aayudha-ezhutu/" rel="alternate"></link><updated>2004-05-31T16:50:00+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-05-31:2004/05/31/aayudha-ezhutu/</id><summary type="html">&lt;p&gt;Yesterday night, I watched the movie Aayudha Ezhutu by Manirathnam. The
movie is quite good. One more movie which made its distinction from that
same old masala movies. The screen play is too good. This film is the
one in Tamil of which I noticed a good effort in graphics. The songs are
the highlight of the movie. ARR's wonderful direction (music) is yet
another stone in his crown (;-)). One thing to be noticed is the
performance of Bharathi Raja as villain. He done it very casually. In my
perspective, most of the characters were like our neighbors; so casual;
so natural. Lots of violence though. It is sure that there is some award
reserved for this movie. It may be nominated for OSCAR too! Who
knows?!?!&lt;/p&gt;
&lt;p&gt;PS: I went to this movie for the 10:00 pm show which got over by 1:00 am
and after which we (me and my friends) roamed in the city till 3:30 am
and I went to bed only at 4:30 am. So, ..... (STOP MAN! I know that you
are giving excuse for not doing your jogging and coming late to office
today!)&lt;/p&gt;
</summary><category term="movies"></category></entry><entry><title>Early technique works well for me.</title><link href="http://praveen.kumar.in/2004/05/28/early-technique-works-well-for-me/" rel="alternate"></link><updated>2004-05-28T15:50:00+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-05-28:2004/05/28/early-technique-works-well-for-me/</id><summary type="html">&lt;p&gt;I usually come to office by 11:30 am and leave the office by 10:00 pm.
After going home, I will spend some more time with my computer and I
will go to bed only around 1:00 am in the night. Almost all of my family
members, especially my father is very concerned about this and kept on
insisting me to change my practice.&lt;/p&gt;
&lt;p&gt;I thought of giving a try to change my practice for this week. This
whole week, I came to office around 9:30 am and left around 7:00 pm.
Hey, it works well. Only one problem is about the interaction with my
client (based at Westborough, MA timezone:EST). Some days I have to stay
late no matter whenever I come.&lt;/p&gt;
&lt;p&gt;Anyways, getting up early in the morning is good and let me see for how
many days I am going to follow this ;-)&lt;/p&gt;
</summary><category term="sleep"></category></entry><entry><title>Started thinking about reducing my weight!</title><link href="http://praveen.kumar.in/2004/05/27/started-thinking-about-reducing-my-weight/" rel="alternate"></link><updated>2004-05-27T14:11:00+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-05-27:2004/05/27/started-thinking-about-reducing-my-weight/</id><summary type="html">&lt;p&gt;From yesterday, I seriously started thinking about reducing my weight
(95 kgs @ 178 cm ; BMI=29.98). I am about to enter into the Obesity
category from my overweight category by a BMI margin of 0.02. I was 74
kgs before 2 years. I am not sure how much weight I can drop off. But as
experts say, I am planning to lose 10% of my weight in the next six
months.&lt;/p&gt;
&lt;p&gt;First two steps in dropping off my weight are to make my diet proper and
involve in physical activity. From today, I started jogging. I jogged
for 3.2 kms today. I am planning to increase it slowly and touch 6 km
run. To achieve this, I think that I have to quit smoking. Initially, I
thought of reducing it to one per day and later on I have to completely
stop smoking. Lots of change in my life style. I planned to get up by
5:30 am and go to bed by 11:00 pm. Let me see how much I can follow it
;-)&lt;/p&gt;
</summary><category term="health"></category></entry><entry><title>Low frequency detected!</title><link href="http://praveen.kumar.in/2004/05/27/low-frequency-detected/" rel="alternate"></link><updated>2004-05-27T00:59:00+02:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-05-27:2004/05/27/low-frequency-detected/</id><summary type="html">&lt;p&gt;I am updating my journal nearly after two months. Very low frequent. At
least in the future, I should make up some time to update my journal
regularly. My homepage is still incomplete. I don't know when I am going
to build it completely.&lt;/p&gt;
</summary><category term="blog"></category></entry><entry><title>Hurried works for public Election 2004!</title><link href="http://praveen.kumar.in/2004/03/26/hurried-works-for-public-election-2004/" rel="alternate"></link><updated>2004-03-26T04:39:00+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-03-26:2004/03/26/hurried-works-for-public-election-2004/</id><summary type="html">&lt;p&gt;If you are in India, no matter where you are, you can see some works
going on in your area (like laying roads, etc.) at rocket speed. I
really wonder what an intelluctual idiots these politicians are! Do they
believe that only because they lay road in my area, I will vote of the
alliance of the ruling party? This is bullshit. But still this will work
out in the rural areas. People should be pretty analysing before they
cast the vote. Especially educated people should defintely cast vote.
But the big question is "For whom should I vote? I guy is bad. Another
one is worse and the another is worst!".&lt;/p&gt;
</summary><category term="ethics"></category><category term="politics"></category></entry><entry><title>India done it all!</title><link href="http://praveen.kumar.in/2004/03/25/india-done-it-all/" rel="alternate"></link><updated>2004-03-25T04:55:00+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-03-25:2004/03/25/india-done-it-all/</id><summary type="html">&lt;p&gt;The final ODI between India and Pakistan was almost treated as a world
cup final match. For the disappointment again, India lost the toss. I
heard from someone that Ganguly has never won the toss against Pakistan
and this is the 9th time Ganguly loses the toss to Pakistan. But for
suprise, Inzamam put India to bat first. As usual now-a-days, Indian
opening order failed to put a great start. Again the middle order played
a sensible innings. Thanks to Lakshman who came into form in this match
where it is needed. His strike rate was also above 100 unusually. When
India put up 293 on the board, it seemed to be doable.&lt;/p&gt;
&lt;p&gt;Balaji gave the early break through by dismissing Shabber, who was in a
good form throughout the series. It was lack of foot work from Shabber.
One remarkable thing in this match was umpire David Shepard's mistake in
the dismissal of Yosuf Youhana. It was a rising delivery and had a minor
edge on the bat. Well, to err is human. Sachin took a wonderful catch to
dismiss Inzamam. In my lifetime, I never seen Sachin so excited. He knew
how much Inzamam's wicket meant for Indian victory. That was really the
turning point of the match. Once Inzamam is out, the result was decided
and nothing much to impressive. But Pakistanis put a great effort in
avoiding an embarrasing defeat.&lt;/p&gt;
&lt;p&gt;Hats off to Indian team!&lt;/p&gt;
</summary><category term="cricket"></category></entry><entry><title>Water supply board threatning the life of people!</title><link href="http://praveen.kumar.in/2004/03/23/water-supply-board-threatning-the-life-of-people/" rel="alternate"></link><updated>2004-03-23T02:14:00+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-03-23:2004/03/23/water-supply-board-threatning-the-life-of-people/</id><summary type="html">&lt;p&gt;In-spite of the fact that Water Supply Board quenching the thirst of
people, it also threaten the life of people who are passing by with two
wheelers. Today, my friend Vijay Prasad got skit from his two wheeler
near the Fore Shore Estate tank of WSB. The lorries that carry water
from these tanks are highly irregular wasting almost 20% of the water on
the roads which creates muddy roads nearby. A fortnight ago, the son of
Film Director R. Sundararajan was dead due to the same sort of accident
near the Valluvar Kottam water tank. Vijay managed to escape with some
minor injuries. Some action should be taken against this issue! Will the
Government look into this seriously?&lt;/p&gt;
</summary><category term="ethics"></category></entry><entry><title>YaTV - Yet another Team Victory!</title><link href="http://praveen.kumar.in/2004/03/22/yatv-yet-another-team-victory/" rel="alternate"></link><updated>2004-03-22T04:44:00+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-03-22:2004/03/22/yatv-yet-another-team-victory/</id><summary type="html">&lt;p&gt;After a long time, today I thought of viewing the full match between
India and Pakistan. I felt things messed when India lost the toss for
the fourth time to Pakistan. As expected for any day-night match,
Inzamam opted to bat first. But Inzamam did not got a good support from
his batsmen except himself and Hameed. At one stage I thougt Pakistan
will put up something around 250 on the board. But Inzamam gave some
splendid acceleration to the score (Thanks to Yuvaraj for his couple of
overs that has a lot of wonderful short pitches).&lt;/p&gt;
&lt;p&gt;When India started their innings chasing 294 which was greater than the
average score 263 on Lahore, I thought it is going to be tough one. The
statistics added to my fear. It was sorry to see Sachin failing again
for a simple in-swinging delivery. The hope was really gone down. When
the score was 90-4, I thought that some miracle should happen to make
India win. That happened too. It was wonderful seeing a solid
performance from the Indian vice-captain. Kaif gave him a good support.
Even though Kaif struggled by a lot of inside edges and other thing,
Dravid seemed to be rock solid and cool. Indian middle order proved it
again. Thanks to the extras that were conceded by the Pakistani bowlers.
Inzamam should look seriously into this. Hats off to Indian team!&lt;/p&gt;
</summary><category term="cricket"></category></entry><entry><title>Hello, Live Journal!</title><link href="http://praveen.kumar.in/2004/03/18/hello-live-journal/" rel="alternate"></link><updated>2004-03-18T19:49:00+01:00</updated><author><name>Praveen Kumar</name></author><id>tag:praveen.kumar.in,2004-03-18:2004/03/18/hello-live-journal/</id><summary type="html">&lt;p&gt;Registered with Live Journal a.k.a. LJ. Thanks to Suraj for introducing
this. I didn't have time to experiment more with LJ. Will do it later
(may be this weekend)! Some of the recent photos that I shot are
&lt;a class="reference external" href="http://puggy.symonds.net/~praveen/gallery/"&gt;here&lt;/a&gt;.&lt;/p&gt;
</summary><category term="blog"></category></entry></feed>