The week began for me with my presentation on Emacs artist mode. Even though I was able to show the functionality and basic features of the mode, I had much improvements to make. Main challenge, I thought I had, was not able to show the presentation in way suitable for emacs ( Showing modeline etc). I do think i need to understand the overall tool more before talking about a particular feature.

Also something I couldn't include one package which can convert artist mode ASCII diagrams to the presentation. Called Ditaa. I am including a youtube video here, describing


Main focus this week was git. Git is a tool I have used many times in my career. And I have some understanding about the problems it was trying to solve. But I have to say, I got a much deeper understanding about Git and more importantly the scale of improvement git contributed to the concept of version control itself.

A  routine git workflow include the following steps.

  1. You selectively stage just those changes you want to be part of your next commit, which adds only those changes to the staging area.
  2. You do a commit, which takes the files as they are in the staging area and stores that snapshot permanently to your Git directory.
  3. You modify files in your working tree.
  4. You selectively stage just those changes you want to be part of your next commit, which addsonly those changes to the staging area.
  5. You do a commit, which takes the files as they are in the staging area and stores that snapshot permanently to your Git directory.

The biggest advantage of git comes when there are multiple people working on a project. In git, normally, you just have to create a branch and do the above steps. That will take care of the collaboration issue completely. This is possible because, branching is a very efficient operation in git. Its as simple as reading a line from a file.

I am also reading the chapter on git internals to learn more about git. I think its not just a tool to use, but a code to study also.