/images/bio-photo-small.jpg

Shallow and Pedantic

A person/tech/code blog of a coder/techie/person. Like calculus in a kiddie pool, the author of this blog is known to be quite shallow and pedantic.

Using git for code review

At my workplace, I’ve recently been using git for code review purposes. I work on code in my own git clone, and ask a peer to review it. It works somewhat like this:

  1. master branch is same code as currently in upstream.
  2. Working to resolve issue #1234 pertaining to “Performance for gizmo”, I work on a branch 1234-gizmo-performance.
  3. I mail a peer, John, with this information, as well as my repository location.
  4. John adds my repository as a remote, lutzky. Then he branches review1 (or review2 if that is taken, and so on) at lutzky/1234-gizmo-performance.
  5. John adds comments with nice big FIXME tags, which are highlighted in any decent editor. He commits this, the commit-message stating that it was code review.
  6. John tags his final review commit (or, if he had no comments - lutzky/1234-gizmo-performance) with a reviewed1 (or reviewed2, etc.) annotated tag. Since the annotated tag includes all the necessary information (who tagged, when, and what), the number doesn’t really matter.
  7. I merge john/review1, incorporate the changes (or reject them) and remove the comments. If no further review is necessary, I submit this - and once submitted, I merge this back into master.

It’s a nice system. I wonder what other methods there are of doing this.

Another SSH trick

Ever have a machine you can only ssh into through another machine? It’s a very common situation in the Technion. Here’s one way to get around it: Assume you can directly ssh into alpha, and from alpha you can ssh into beta. Have the following code in your ~/.ssh/config:

1
2
3
Host beta
        Hostname 1.2.3.4  # IP Address of beta
        ProxyCommand ssh alpha nc -w 1 %h %p

This requires you to have nc (netcat) installed on alpha. Once you do that, you can run ssh beta directly from your own box.

Automatically starting rtorrent within screen

These days I don’t stay at home often, but I do have an RSS/BitTorrent combo fetching me all kinds of neat stuff for me, so I can have it ready for me on the weekend. I love rtorrent, especially due to the fact that I can run it in screen, ssh home and see how things are doing (or add more torrent to the download). However, sometimes my net connection breaks down, computers gets shut off, or things like that. This week my router broke down, so I can’t even ssh home to manually start up rtorrent. My solution: A small script, which checks whether rtorrent is already running, and if not - runs it in a detached screen session. Run this with your favorite cron software.

Quick time tracking hack

Gnome 2.24 adds a new Time Tracking feature, which I would have found useful. I don’t have Gnome 2.24 at work, but I do have a Unix-based operating system… Here’s my new ~/bin/track:

1
2
3
#!/bin/bash
date >> ~/time_tracking
vim ~/time_tracking +

Now, if I could only get vim to automatically hit “A” and space for me afterwards… (I’m betting there’s a way to do it, but AFAIK vim can only receive ex-mode commands as parameters).