kscope, rsync

17 08 2007

While trying to install cbrowser (cscope tag browser), spotted kscope and tried it. I instantly liked it. Has file browsing, cskscope_screenshoot.jpgcope tags browsing, tags display with in a file, tags graph (I mean real nice clickable graphs), can still use gvim if you want (with external browser). Nad its light weight (compared to eclipse).


  • Small foot print
  • Easy to add dirs and source files(no need to create a project, etc)
  • Shows Function, Var and Defines in side pane
  • Call graph (collapsible, clickable, expandable)
  • Allows to edit file with GVim (External editor)


  • No make integration (or is there?)
  • no network read/write (or is it?)
  • Not GVim 😦

This combined with rsync (for some reason sitecopy is broken and it does not work anymore for syncing) is a pretty and powerful local dev env.

Download files to local disk:

$ rsync -avuzb –exclude-from=/home/nram/.rsync/rsync-exclude kramer:/idev/users/nram/$rel /idev/users/nram/

Upload files to remote host:

$ rsync -avuzb –exclude-from=/home/nram/.rsync/rsync-exclude /idev/users/nram/$rel/ kramer:/idev/users/nram/$rel


cups printing from evince – fixed

17 08 2007

For some odd reason, I could not print from evince (pdf viewer). Printing works ok from all other apps.

** (evince:6844): WARNING **: Error result: HTTP Error in GET Success


localhost – – [17/Aug/2007:13:55:14 -0400] “GET /ppd/PYP_01.ppd HTTP/1.1” 404 0 – –
On googling, seem like Iam not alone in this. Some folks in this thread suspect this is due to the fact Ubuntu (incorrectly) add local ip as (instead of making evince to use which is declined by cups for security reasons. I tried what they suggested, listing first, but that did not help. localhost marvin localhost marvin

Then someone suggested to use a generic printer. Tried that with gnome’s print manager. Instead added two default printers it found. Using one of them ( LaserJet-8000 Iam able to print now.

firefox plugin problem – fixed

14 08 2007

MozPlugger somehow did not do itsjob right. Removed it my

root@marvin:/usr/lib/mozilla-firefox/plugins# mkdir unused
mv root@marvin:/usr/lib/mozilla-firefox/plugins# mv mozplugger.so unused/

Now, the default popup asking for app to use to open for unknown mime types (like pdf) works ok.

SSH tips

14 08 2007

password less ssh login

$ ssh-keygen -t dsa [-f id_dsa]
( DONOT give password for passphrase *
This shd create two files id_dsa and id_dsa.pub)
$ cd ~/.ssh
$ cp id_dsa.pub authorized_keys2
$ scp id_dsa.pub user@remotehost:/tmp
$ ssh user@remotehost “cat /tmp/id_dsa.pub >> ~/.ssh/authorized_keys”
(note: On Linux systems use ~/.ssh/authorized_keys2)
$ ssh user@remotehost “uname -a”

Keeping SSH session Alive

Add this to ~/.ssh/config (create if required)

Host *
Protocol 2
TCPKeepAlive yes
ServerAliveInterval 60

HelloWorld in Eclipse

7 08 2007
  1. Downloaded the JRE 1.6.0_02 from the sun site (bin version) and extracted it to /opt/jdk
  2. Removed the Ubuntu’s version of JDK. I think the Ubuntu version of JDK (1.6.) was ok, but the java common binary was incorrect (1.0.4 something). Could n’t find what package provides this. For now, set PATH to refer to /opt/jdk before /usr/bin to solve this.
  3. Download and installed whole bunch of eclipse stuff from Ubuntu repository.
  4. Open Eclipse … wait for few minutes
  5. Add /opt/jdk in Eclipse’s JDK. Under Window->Preferences->Java->Installed JREs, click Add and select /opt/jdk
  6. Select File->New->Project->Java->Java Project.(check the JDE version is 1.6.0_02)
  7. Enter Project name and press Next
  8. Enter Finish
  9. Select File->New->Class
  10. Enter Name (Class name) : HelloJavaClass
  11. Eclipse generate the template for you: public class HelloJavaWorld {
  12. Enter your code now: public class HelloJavaWorld {
    public static void main(String[] args) {
    System.out.println(“Hello java World!”);
  13. Select Run->Run As->Java Application
  14. Wait… pray and the console displays ‘Hello java World!”

Now, THATs simple programming.


3 08 2007

Scoop: A fried of mine referred me to this USB based VoiP service MagicJack.magicjack.png Quite interesting … you get a USB to telephone jack  convector and connect a traditional phone out. Apparently MagicJack has extensive network and gateways to route calls throughoutand has a huge pile of free numbers to give away (during its promo offer).

Pricing: $40 for device with memory or $20 without. $20 annual fee after first year.

My Thoughts:If they maintain the call quality and give enhanced services as freebies, this can be a killer service.

twinkle twinkle little SER

1 08 2007

I was attempting to make a call from two softphones via a SIP server. Something like twinkle <=> SER <=> twinkle. Simple! right ? OpenSER seem like a popular choice. But I had little trouble starting up with that. Contrary to popular opinion, I found SER documentation, esp this getting started guide to be a good tutorial. If someone can point me to something similar in OpenSER, it would be great!

Based on the guide, I made simple changes to my /etc/ser/ser.cfg

# ———– global configuration parameters ————————
#debug=3 # debug level (cmd line: -dddddddddd)
#log_stderror=no # (cmd line: -E)
debug=7 # debug level (cmd line: -dddddddddd)
check_via=no # (cmd. line: -v)
dns=no # (cmd. line: -r)
rev_dns=no # (cmd. line: -R)

# —————— module loading ———————————-

Start the server up

/usr/sbin/ser D E
/etc/init.d/ser start

Start twikle up,

Set User Profile->Registrar to localhost IP

Set System Profile->Network->SIP UDP Port to 5061 (since SER is listening on the default 5060)

Invole Registration->Register

Check with Registraton->Show Registrations

Wed 17:52:43
localser: you have the following registrations

Now open twinkle as another user (right now from the same box, will try from different box later)

essentially do the same as before using different port (5062) and different user name (nram2)

Show Registration on the nram2 displays this:

Wed 17:53:32
default: you have the following registrations

Verify that SER got these as well.

root@marvin:/var/log# serctl ul show
Dumping all contacts may take long: are you sure you want to proceed? [Y|N] Y
1(10033) **** done consume
===Domain list===
name : ‘aliases’
size : 512
table: 0xb5f1dd58
d_ll {
n : 0
first: (nil)
last : (nil)
name : ‘location’
size : 512
table: 0xb5f1bcf8
d_ll {
n : 2
first: 0xb5f1fd60
last : 0xb5f1fe58
domain: ‘location’
aor : ‘nram2’
domain : ‘location’
aor : ‘nram2’
Contact : ‘sip:nram2@’
Expires : 2032
q :
Call-ID : ‘zgbfjpjwtkjwsbd@’
CSeq : 932
User-Agent: ‘Twinkle/1.0’
received : ”
State : CS_NEW
Flags : 0
next : (nil)
prev : (nil)
domain: ‘location’
aor : ‘bsnram’
domain : ‘location’
aor : ‘bsnram’
Contact : ‘sip:bsnram@’
Expires : 2075
q :
Call-ID : ‘ftolomycgbosabi@’
CSeq : 739
User-Agent: ‘Twinkle/1.0’
received : ”
State : CS_NEW
Flags : 0
next : (nil)
prev : (nil)
===/Domain list===

Now just call the 2nd SIP user ( sip:nram2@ from 1st instance of twinkle. Works great

I think once registered, the calls don’t go thru the proxy. I see no logs, Even if SER is shutdown the calls still go thru, until twikle instances themselves are shutdown.

I also tested services like Do not Disturb and Call redirection. All worked great (I redirected the calls to SER server itself and I did see it take the message from the logs)