It is common to find that libre software developers use certain tools to improve their productivity and facilitate the collaborative work. I don’t work as software developer, nor write code in my free time, but I use some of these tools for my daily work and my student homework. I am happy to see that most of them are great tools and bring benefits to me even if I (still) don’t know them in-depth, but and I am a bit sad because of my infra-usage. In this post, I will talk about the tools that I use, and how I think I could improve my “developer toolkit” (most of the cases sudying more about the tools!). I will try to use Christmas time to achieve some of these “pending tasks” and in January I hope I will tell you about the new wonderlands that I discover.
Git for multiple purposes
Using git and a public repository to hold almost all my student homework (LaTeX and other text files, LibreOffice documents, R and mysql scripts, Python scripts, images, FreeMind maps, audio and video files) gives many advantages to me, even using only the basic commands:
- My public git repository serves as a backup copy for all my documents. An improved backup, since I can recover any version of any file due to the versioning control, and know which changes did I at which time.
- Facilitates other people’s contributions, and redistribution of my free cultural work (and of course I fulfill the pre-requisite of any free work to give access to the sources). For example, anybody wanting to “fork” my documents, may get any version of them.
- Facilitates the collaborative work for the exercises and reports that should be done in group.
First I thought that the binary files were not interesting to be included in a Git repo, but anyway I uploaded them for backup purposes, and to avoid people having to, for example, compile the LaTeX docs in order to obtain the PDFs. However, right now I discover that, in fact, you can tell Git to handle some binary files in a different way so you can benefit also from content diffs: with some tweaks in the git configuration files and some scripts it can be done. Scott Chacon gives some hints in its ProGit book, if I have time I will read that chapter and tell you my improvements on this topic.
Integrated Development Environment
At class we learned a bit about Eclipse for helping the code programming. I installed Eclipse plugins to handle git repositories and also to manage LaTeX documents. But for my LaTeX and script writings I use a humble netbook laptop, so I think that for now, Eclipse is not for me: slow, and too many windows to fit my small screen.
As I read a bit about Eclipse, I find it a very interesting project. So I am glad to have met it. But I think I would be more confortable if I use an improved text editor like Vim or Emacs as IDE. I know it is possible! I don’t use Vim nor Emacs. I used vi a bit, 15 years ago. Since some months ago I use rudimentary Emacs for my “org-mode” docs. And I use Kile for my LaTeX writings. I would like use Vim as an IDE (just to try), also learn a bit more about Emacs and org-mode, and compare it with my Eclipse and Kile experiences.
I need a forge!!
At the University we learned about Redmine as software forge, and used a Redmine instance for our Python programs: the SideLab Code Forge. For my current needs, I would like to use a public, free hosting site ruling forge software, to maintain my free cultural work and my scripts (and my libre software, if I develop any from scratch…). I don’t know any public, widely known forge, ruling Redmine, nor I found any suitable in WeAreUsingRedmine wiki. For now I host my git repository in Gitorious but I would not call it a forge (yet), since it has no forums nor issue tracking system, and other desirable features.
As an active user (not developer or contributor, just download, participate in forums, file a bug or things like that) I know Sourceforge (now libre software again, as an instance of Allura project? not very sure), the CENATIC forge (using FusionForge) and the RedIRIS forge (using GForge). The recent good news about BerliOS made me think about becoming a BerliOS user (BTW, they use a modified version of the SourceForge software, and Mantis as bug tracking system. There is a list with the services that they offer to their users/developers and another list with the software used by BerliOS for providing that services). But I still did not make up my mind.
Well, you can see there is still a long way to go for me, have you got any recommendation?