The Development Environment
Posted on 30 Sep 2011
Outline
I intend to write all backend code in Clojure, using Cake as the build tool. The frontend is to be written entirely in HTML5, CSS, and JavaScript (making use of jQuery and other libraries). Ruby may be used in certain places to automate tasks.
The infrastructure will likely consist of some relational data store (PostgreSQL, SQLite, etc.), and a full-text search engine (most likely Lucene). This is, of course, subject to change.
The source code will be stored in a Git repository and hosted on GitHub. I intend to edit all of the code in the Sublime Text 2 editor. Development will take place on either OS X or Linux, with the possibility of Windows being added at a later date. This fulfills my desire to utilize a simple text editor combined with the command line. Cake allows me to automate many of the compilation, running, testing, and deployment aspects. Git allows me worry-free development. By making use of these simple yet powerful tools I will have a complete grasp of exactly what is going on, hopefully making it simpler to debug.
Plan of Action
As per agreement with my supervisor, intend to provide a summary of work performed every week, posted by each Friday evening or early Saturday morning. It will summarize readings I have done, any thoughts towards the project, and a brief or detailed (depending on time constraints) report on the progress made.
Committee Meeting
I have a committee meeting scheduled towards the end of October 2011 to prepare for. This will involve some sort of demo of what has been done so far, as well as a presentation outlining essentially what is posted here in the weeks preceeding the meeting.
The presentation will cover some of the following topics:
-
Motivation for choosing this problem
-
Possible challenges that will be faced in solving the problem
-
(Optional) cover previous work done in this area
-
The method in which I intend to solve the problem
- Tools, technologies, etc. I will be using to assist me
- Possible resources I can tap into
-
What I hope to accomplish by doing all of this