Developing environment for solo developer

Yes, I am still a computer science Ph.D student right now. Therefore, for my long-term research projects, there is nobody taking charge of building automatically test environments, document management, several platform configurations and so on. I have to build my own to fit my specific workloads: typically a project starts from collecting ideas (head storms), looking for solutions, prototyping and do some experiments. I know, normally, you will create several directories on you laptop, and put files into it. But I want more than that. As worked in giant internet company, software company and start-ups, I have learnt the importances of developing processes. Therefore I built my working environment as following:

  1. Version control: git. Git is powerful and light-weight. It does not require any centralized server, which makes it is super easy to create to use in my daily development and writing processes. One killer feature of git is its lightweight branch operation, which is great for you to prototyping a new experimental features. However, the official documents suck for newbies, if you wanna learn git, go Pro Git Book first.
  2. Trac, trac is a feature-rich SCM system written in Python with wiki, issue tracking, source browsing features. I have used Trac since 2005 for several projects. It is not as fancy as Github. But it is still a good choice if you have no willings to spend extra money on your private projects. Moreover, Trac has git plugin to observe local git repository.
  3. Continuous Integration(CI). I set up a C.I server in our research lab, because it has a public URL to access. For C.I server I chose Buildbot, and set up two build slaves on Ubuntu Server and Mac OSX , respectively. Since I use my macbook pro as the primary development platform, but do not expect to “accidentally” figure out my projects are not working on Ubuntu for months. Under such configuration, the buildbot runs a fully integration tests on the fresh checked out source codes for each commits. What is missing here is that there is no continuous performance tests here, which I am still looking for an elegant solution.
This entry was posted in Computer Science, Programing and tagged , , , , . Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>