Filemerge / opendiff confuses me

This post is an attempt to remove my confusion when using opendiff AKA filemerge. Opendiff is a very handy and quick tool for visually comparing files. However, the way it visualizes the portions of two files that are to be merged into one keeps confusing me. The symbol is an arrow, However, I always wonder whether the direction of the arrow symbolizes the direction of the changes (text at the blunt edge of the arrow will survive) or if the pointed part of the arrow points at the text that will survive.

The message to me is:

“THE TEXT AT THE ARROWHEAD WILL SURVIVE”.

Keep this in mind, Tobias!

Change svn commit message after commit

D’oh! A mistake in a svn commit message. And now it’s there forever…. or at least until you fix it with:

svn propedit svn:log --revprop -r N --editor-cmd vim

of course, you have to replace N with the proper version number. Pick another –editor-cmd if you don’t fancy vim.

Use filemerge with svn diff

Looking at diffs is essential when working with svn. However it can be quite cumbersome because the default behavior is not very user friendly. The output is ugly and hard to read and it is a pain to the eye. Fortunately you can easily substitute the default diff function of svn with something more fancy – filemerge on Mac (it comes with the xcode tools) or vimdiff.

First create a wrapper file that will handle the calling of filemerge or vimdiff. I put it into ~/bin/svndiffwrap.sh

#!/bin/sh
DIFF="$(which opendiff)"
DIFF $6 $7

opendiff is the command line tool for filemerge. Put vimdiff there if you like vim better.

Make vimdiff more useful

Next tell svn to use your beautiful shiny new script. Edit ~/.subversion/config search for diff-cmd and replace it with:

diff-cmd = /Users/heer/bin/svndiffwrap.sh

Of course /Users/heer/bin/ should be the path to your newly created script.  Next try svn diff and love it.

Mobile Collaboration Systems Workshop

I am co-organizing the “Mobile Collaboration Systems” workshop in Aix-en-provence next week. The workshop will be a platform to share and discuss theories, understandings, experiences and lessons learned in the field of mobile collaboration systems. The workshop is held in conjunction with the COOP’10 conference.

From the call for papers: Mobile devices are expected to soon become the “primary computer” and tool for sharingand connecting with others. In our thriving world of mobile communication, technologicaladvances have brought a number of novel and improved ways of collaboration; in business, commerce, healthcare, education, and society in general. Collaboration can help to overcome the limitations of a single user, device, and network. However, creating mobile collaborative applications and systems requires careful consideration and design. This workshop aims to bring together designers, practitioners and researchers who share an interest in the study and design of mobile collaborative systems.

UPDATE: The workshop was very interesting and productive. We benefitted from a very diverse set of people, research areas and opinions. A perfect combination for a topic that spans social and technical aspects.

New paper: PiSA-SA: Municipal Wi-Fi Based on Wi-Fi Sharing

A new paper related to Wi-Fi sharing and municipal Wi-Fi will be published this summer at ICCCN (IC3N) in Zurich. The paper is eight pages long and can be downloaded HERE. The paper covers the service architecture that we developed for the Mobile ACcess project. Here comes the paper abstract:

Large-scale municipal wireless networks are currently being established all around the world. These networks provide a rich set of local services, such as tourist guides, environmental information, pedestrian navigation, and local shopping guides. As recent financial failures of prominent municipal wireless networks show, it is economically challenging to achieve the bandwidth and coverage that is necessary for such a network. At the same time, Wi-Fi-sharing communities achieve high bandwidth and good coverage at a very low cost by capitalizing on the dense deployment of private access points in urban areas. However, from a technical, conceptual, and security perspective, Wi-Fi sharing community networks resemble a patchwork of heterogeneous networks instead of one well-planned, uniform and secure network as required for the economic success of a municipal Wi-Fi project. In this paper, we show how to realize municipal wireless services on top of a Wi-Fi-sharing infrastructure in a technically sound and economically attractive fashion while taking into account legacy devices and mobile clients. Our solution cleanly separates the roles of controlling and administering the network from providing bandwidth and wireless access. This allows municipalities to focus their resources on municipal wireless services instead of providing Wi-Fi access.

Try !! to save some keystrokes

ever found yourself typing a complicated command that requires superuser rights without typing sudo? What do you do? Step up in the history. Move to the beginning of the line, type sudo?

Try

sudo !!

instead. !! means the previous command as it was. It can be very useful to save some time in certain cases.

Connect to a serial console using screen

I prefer to use screen instead of minicom. It is simple, installed almost everywhere.
It works like this:
screen <device> <baud rate> <mode>
For example, when connecting to a La fonera or a Linksys 160NL router via USB serial cable simply use:
screen /dev/tty.PL2303-0000103D 115200 8n1
The device may change from OS to OS and from device type to device type. Sometimes it is only /dev/ttyUSB0 or something similar. However, you should be able to recognize the device name in /dev.

Shell shortcuts

There are quite some shortcuts that make life on the command line easier. Here are my favorites:

- C-a Beginning of Line
- C-e End of Line
- C-u Delete to beginning
- C-k Delete to end
- C-d Delete char to left
- C-h Delete char to right
- C-f Move forward
- C-b Move backwards
- C-t Transpose char
- alt / meta modifies this behavior (word instead of char)

Oh, yes: C stands for cmd/command

Pretty printing IETF RFCs and Internet drafts as PDFs

If you are tired of printing IETF documents on A4 or letter with txt page breaks in the middle of the page you may try this little script:

#!/bin/bash$
TMP=$(mktemp -t ps)
enscript -o $TMP -2 -r $1
ps2pdf $TMP $1.pdf
rm $TMP
Give a txt file to the script as first argument and it will produce a nice PDF with two pages of the IETF document on each PDF page.