Release 0.1

I have forked the Filer repository from Github in order to contribute to the project. Filer is a library which allows you to manage a filesystem within your browser.

Du is a unix command that is used to estimate disk usage by a file or directory on Unix. I have taken the task of working on Filer to implement this shell function in order to have basic functionality and present the directory and file sizes in bytes. The version I have produced will give, for a specified directory, the size of files within it and the size of the directories within it without providing more information about files within the specific directory.

Working with an asynchronous programming approach is a concept I wasn’t yet versed in upon starting this task. I made a large use of the Node API, async README and of course Filer README. Throughout the development I learned a lot about the function nesting and using modularity to make code more readable in order to achieve my goal. An asynchronous functions do not halt other tasks, but instead will continue on to the next lines of code and run the function in the background. This is common in Javascript and especially Node. Further, making use of callbacks once the code has been completed is key to passing values from functions was a lot of get used to.

However, once I started programming and testing, I slowly learned best practices and the workflow. I started by learning from code from other already implemented such as Shell.ls and Shell.cat command and exploring both the implementation and the test cases. Development was largely based on a test-first approach where I would write a test for the command, then program accordingly. This allowed me to easily check if what I had written is correct.

Finally, Grunt was an eye opener. Grunt is a javascript task runner and by using it to run tests, I learned how easy it can be to develop using it. Grunt can automate tasks that developers often run endlessly like minification, compilation, linting, and unit testing. Combined with the test-first approach, it makes sure you’re actually working on the coding, and not the process of compiling everything.

You can check the status of my Du command in Filer in this pull request.