Johnny [Life & Code]

Semper Exploro!

Archive for the ‘Linux Fun’ Category

NIE Mysore – Libre’ 08 – Open Source & Careers

with 7 comments

On Saturday, I was in NIE, Mysore to give a talk on ‘Open Source & Careers’. The event was organized by “OBSCURA Open Source Club“. The purpose of the talk was to let students know that there are good career options in FOSS.

Talk on Careers & Open Source

All I tried to do was project some statistics to show that they can pursue their contributions in FOSS as their career. As usual, they had doubts on FOSS business model and lots of questions on “How to get started?”. Thanks to Sankar (Our SUSE Goodies guy ! ;-) ), I gave out DVDs of openSUSE 10.3.

I enjoyed the day. First thing I noticed in Mysore was very less traffic and wide roads !  :) . Went to my favourite restaurent in mysore, “Gufha” for lunch. Thanks to Bipin, was with me the whole day ( Geeky chats ! ). And i learnt little about night photography !

Written by Johnny

April 8, 2008 at 8:58 am

Posted in GNOME, Linux Fun, Tech

Evolution : MAPI Provider for MS Exchange connectivity

with one comment

Almost over a month back we started writing a MAPI based provider in Evolution for MS Exchange connectivity. libmapi from which provides APIs for native MAPI calls, is the base library for this provider. Currently we are using libmapi 0.6.

Advantage of this provider among others are

  • works with MS Exchange 2007 servers. (this is the main motivation behind this work )
  • has compatibility with older exchange servers (*this is not tested yet!*)
  • Simple implementation in EDS/Camel. (No exchange-storage process to manage. This will be similar to Groupwise provider architecture.)

Most of the common code (servers/mapi) is almost completed. And we have started working on the backends for all the components. All the components have some basic working code which will evolve into a solid provider. Currently ,

  • Calendars can fetch and display appointment/meetings.
  • Contacts can fetch/display/modify/create items.
  • Mailer currently has some hacky code running which can fetch folder list / mails. More work to be done in handling cache.

MAPI Provider is planned to be merged into trunk by end of March. There are some challenges :

  • libmapi depends on some samba4 libraries (ndr, ldb, talloc, samba-config, dcerpc, dcerpc_samr and some more) which are under heavy development.
  • libmapi itself is under heavy development. libmapi 0.7 (PHASER) is scheduled to be released soon.

Currently all work is going on in these branches :

Meanwhile we are planning to do incremental releases of this provider as a plugin RPM (RPMs for the distributions supported by OBS) using OpenSuSE Build Service. I have a placeholder for this in my Build Service Repo.

Lot of learning / Fun wrt to Camel for me ! Yipee !

Written by Johnny

December 19, 2007 at 10:43 am

Who is stealing (eating) my disk space??

with 3 comments

Everybody knows (i mean most of the users) that a Linux box is haunted by mysterious daemons. They are invisible, invincible and sometimes do a lot of weird stuff!.

Recently i’ve been facing “No disk space” problem with my $HOME. It happens every two weeks after i cleanup. I’ve been using the same $HOME for around 1.5 years (3-4 upgrades/installation). I cleaned up all the unused applications “.$application” directories.. nope .. not much changed. Then when i was cribing about this to srinidhi over lunch, he suggested me to take a look at “.beagle” . And yes he was right ! I have a 25GB /home and “.beagle” was using 11 GB of it :( . Looks like it maintains a mirror of my $HOME!!

Bad daemon beagle ! There should be a option to set the maximum cache size that beagle can use or some interface to check how much diskspace beagle is using for cache !

Written by Johnny

December 15, 2007 at 4:42 pm

Posted in CODE, GNOME, Linux Fun, Mono

FOSS.IN/2007 Report

with one comment

Itz a bit late. But before my amazing MMU decides to put this event into swap, I just want to write it out. Here goes :

  • Introduction into practical real-time programming in userspace on Linux : Lennart Poettering
    • This is one of the best talks that i was in. Very practical. Now if i want to write a real-time process in linux, I know where / what to look for.Enjoyed it !
  • talloc: The Power of C : Rusty Russell
    • This was very usefull since we are using talloc in the mapi provider for evolution which we are writing now. And also how the underlying talloc works over malloc.
  • How and Why You Should Be a Kernel Hacker : James Morris
    • zero technical information in this one. Probably thatz the reason i (and almost all) enjoyed this talk. His talk was a very casual narrative of his experience on how he became a kernel hacker. I would dub this talk as “The spirit of a open source hacker.”
  • The PulseAudio Sound Server : Lennart Poettering – Red Hat
    • Basically a demo of pulse audio. How it works. and some internals. Now i know why it rocks and it is called ‘compiz for sound’ or ‘ear candy’.

Those are some talks that i really enjoyed listening to. And some others too that i was in like ‘open moko’ / ‘mozilla’ / Danese Cooper’s ‘treking with elephants’ and some more :)

FOSS.IN/2007 was designed to inspire new contributors. It is very clear that they (the organizers – Team FOSS.IN) didn’t want this to be very technical (Ulrich Drepper commented that his talk was rejected beacause it was `too technical` and he had to redo something else :) ). Hope to see more technical talks (and the right balance for beginners ) in the coming years.

Me , Tux & Swen @ FOSS.IN

Overall it was fun ! Great work ‘Team FOSS.IN’ !! Looking forward for FOSS.IN/2008 .

Written by Johnny

December 13, 2007 at 9:41 pm

GNOME Project : FOSS.IN/2007 Day 1

with one comment

The registration queue wasn’t so long like last time. Probably because the main conference is on 6th. Almost all the halls were full (atleast the GNOME hall was)

I was disappointed with the GNOME project day since most of the talks were for beginners with/without any knowledge/experience with GNOME. I was waiting for Andrew Cowie’s talk “The challenges and opportunities of properly writing multi-threaded GTK based GNOME programs “. Again disappointed : Very basic information and a demo of java-gnome bindings !

  • There was a session on GNOME Translation. Some interesting discussion/questions came up.
  • hunting bugs – Ritesh Khadgaray : Probably the worst of the day. The talk was a big joke! He sounded like “the guy who hates GNOME .. but forced (paid) to work on it” . And his false claims on Evolution and other GNOME products revealed his immature brain!
  • Clutter: Fun with opengl interfaces : Shreyas Srinivasan . This one was nice.probably the best in the GNOME session.

Written by Johnny

December 4, 2007 at 4:08 pm

Posted in GNOME, Linux Fun, Thoughts

FOSS.IN/2007 – Talks I’ll be in (probably)

leave a comment »

I’ll be there for GNOME project day.

Some the talks i’ll probably sit through… are :

Written by Johnny

December 3, 2007 at 9:47 am

Posted in GNOME, Linux Fun, Thoughts

Weekend report : Low on Energy

with one comment


Realized the importance of backups of your data (code / patches / local repo branches ). My laptop was sick for a whole day. So i had to spend my time waiting for it to recover. Sitting in your cubicle and doing nothing ( of course i was reading blogs / news / man pages ) is very frustrating. So i came back to office on a saturday to setup my backup machine (still in progress).

I use GIT for my work on GNOME and other projects. I setup a public git repo on my test machine and pushed (git-push) my repo there. Then I edited the GIT’s ‘commit’ hook in my laptop so that as soon as i commit locally on my laptop, the changes gets pushed to my backup machine.


End of the week i felt very low on energy. So i dropped / canceled (at the last minute :( and sorry.)

  1. Lunch at my brother’s house (missed yummy fried fish !)
  2. XBOX 360 Gaming (Gears of War) session (at ConSoul/ Java City) with Srinidhi.
  3. Shopping with Kalyan.
  4. Meet with my travel agent.
  5. 10.3 DVD delivery and some nice conversation with Bipin.

Having fun with killzone liberation. Can’t wait to get my hands on SOCOM: Tactical Strike Demo . I’m having trouble downloading it from

Lesson Learnt this week : Being sleep deprived can make you sound like a arrogant idiot !

Written by Johnny

November 25, 2007 at 5:44 pm

Posted in LIFE, Linux Fun

openSuSE 10.3 Boxes.

with 2 comments

Soon after the release of openSuSE 10.3 , Contributors recieved Boxed versions of 10.3. (I recieved it few weeks back) . Feels Good !!

openSuSE 10.3 Box

Written by Johnny

November 7, 2007 at 8:55 am

Posted in CODE, Inspired, LIFE, Linux Fun, Work

GIT – The `cool thing` in a developer’s toolbox

with 2 comments

I wish i had known GIT a few months back. It would have saved me form a lot of trouble (loosing half done work ..). Well this post is _not_ a (yet another) GIT tutorial.

Some of the workflows i like (and use) is something like this :

Interrupted workflow (taken from git-reset man page)
Suppose you are interrupted by an urgent fix request while you are in the middle of a large change. The files in your working tree are not in any shape to be committed yet, but you need to get to the other branch for a quick bugfix.
$ git checkout feature ;# you were working in "feature" branch and
$ work work work       ;# got interrupted
$ git commit -a -m 'snapshot WIP'                 (1)
$ git checkout master
$ fix fix fix
$ git commit ;# commit with real log
$ git checkout feature
$ git reset --soft HEAD^ ;# go back to WIP state  (2)
$ git reset                                       (3)

Isn’t that wonderful ! I was trying out svn + quilt. But very hard to manage.

Some resources :

My GIT Ref Card :

# Initialize a repo (like git init):
git-svn init
# Fetch remote revisions:
git-svn fetch
# Create your own branch to hack on:
git checkout -b my-branch remotes/git-svn
# Merging in master.
git merge --squash foo-branch-name
# Do some work, and then commit your new changes to SVN, as well as
# automatically updating your working HEAD:
git-svn dcommit
# Something is committed to SVN, rebase the latest into your branch:
git-svn fetch && git rebase remotes/git-svn

GIT is fast (super fast) ! and git-svn helps you if you are _stuck_ with svn !

Now GIT has moved out of my ‘staging area’ to everyday use. Yay!! I use it for GNOME/Evolution (and GNOME just moved to SVN a few months back ;-) )

Written by Johnny

October 30, 2007 at 8:40 pm

In the NEWS : Attachment Reminder E-Plugin (Evolution Plugin)

with 2 comments

Note : Writing this post so that i don’t forget. ppl know very well about my memory. ;-)

After OpenSuSE’s HackWeek , Attachment Reminder made it to evolution/trunk and made it to Evolution 2.12.

People appreciated that and somebody (on irc) promised to send me some chocolates and bear (didn’t get it though!) :-) .. Even though code wise itz simple to write. Anyway … it made it to Novell Open Audio (PodCast) , OpenSuSE News :-) and GNOME 2.20 Release notes.

Links :

Now gotta improve that code. I Love working on GNOME !! :-)

Written by Johnny

September 24, 2007 at 12:53 pm

CopyFS – Your personal file versioning system

with 2 comments

There were times when you edit code or a document and wish that you could go back to the previous version. Yep ! Thatz one of my serious issues. So I take cron’d back up diffs which is not so straight forward. Even when doing that you could miss some versions. Revision Control System (svn , cvs , bzr … ) may be the solution, but again you have to manually write / save it to the repository (commit). So i was little frustrated and planned to write my own simple versioning filesystem using FUSE.

Googling led me to CopyFS. Its a filesystem in userland using FUSE. I’m currently running OpenSuSE 10.2 and it took a few minutes to download and get it running.

Quoting from CopyFs HomePage :

CopyFS aims to solve a common problem : given a directory, especially one
full of configuration files, or other files that one can modify, and which
can affect the functionning of a system, or of programs, that may be important
to other users (or to the user himself), how to be sure that a person
modifying the files will do a backup of the working version first ?

This filesystem solves the problem by making the whole process transparent,
automatically keeping versionned copies of all the changes done to file under
its control.

It also allows a user to select an old version of the files, for example to
repair a mistake, and allows him/her to continue edition from this point.

CopyFS is distributed under the terms of the GNU GPL.

Project page :

Home Page :

There is a HowTo / Usage document on the CopyFS home page

There is a catch here . Currently When you save a file it maintains a full copy for each version. So diskspace will become a issue here. But I guess it’ll be fixed to maintain diffs ( deltas ) in which only the changes are saved and maintained.

Currently I dont have any data on performance. But I created test mount point and tried it out. So we have some storage data. Following are the data on-disk (copy-fs-storage-area) and copyfs (copy-fs-mounted )

jjohnny@trantor:~> du -h copy-fs-mounted/

jjohnny@trantor:~/copy-fs-mounted> ll
total 16
-rwxr-xr-x 1 root root 9504 2007-07-11 23:32 a.out
-rw-r–r– 1 root root 85 2007-07-11 23:33 main.c
-rw-r–r– 1 root root 0 2007-07-11 23:30 test.txt

jjohnny@trantor:~/copy-fs-mounted> copyfs-fversion main.c
File main.c (‘*’ is active) :
v1.0 : -rw-r–r– root root 43 Wed 11 Jul 2007 11:31:51 PM IST
v2.0 : -rw-r–r– root root 73 Wed 11 Jul 2007 11:32:15 PM IST
v3.0 : -rw-r–r– root root 85 Wed 11 Jul 2007 11:33:35 PM IST [*]

jjohnny@trantor:~> du -h copy-fs-storage-area/

jjohnny@trantor:~/copy-fs-storage-area> ls
00000001.4913 00000001..main.c.swp 00000002.4913 00000002.test.txt 00000003.test.txt metadata.4913 metadata..main.c.swp
00000001.a.out 00000001..main.c.swx 00000002.a.out 00000002.test.txt~ 00000004.4913 metadata.a.out metadata..main.c.swx
00000001..command-line.swp 00000001.test.txt 00000002..command-line.swp 00000002..test.txt.swp 00000004.a.out metadata..command-line.swp metadata.test.txt
00000001..command-line.swpx 00000001.test.txt~ 00000002.main.c 00000003.4913 00000004.test.txt metadata..command-line.swpx metadata.test.txt~
00000001.main.c 00000001..test.txt.swp 00000002.main.c~ 00000003.a.out dfl-meta.a.out metadata.main.c metadata..test.txt.swp
00000001.main.c~ 00000001..test.txt.swx 00000002..main.c.swp 00000003.main.c metadata. metadata.main.c~ metadata..test.txt.swx

Too many files !!. There is a modifed version of CopyFS available here :

Still no diffs. Sounds like a good project to contribute to .. :-)

Written by Johnny

July 11, 2007 at 7:15 pm

Posted in Linux Fun, Programming, Tech

$HOME goes wireless

with 3 comments

Well there are talks abt Bangalore UnWired. Not sure when i’ll be getting that .. But for now I purchased a Linksys WRTG54G .

Linksys WRG54G

I choose this over other options because of this: Good number of OS projects providing linux based firmware. Awesome !!

Gonna have some WiFi Hacking ( two weeks later, as my buddy wants it to run as such for atleast a week .. without screwing things up :) )

Written by Johnny

July 4, 2007 at 7:15 pm

Posted in Linux Fun


Get every new post delivered to your Inbox.

Join 453 other followers