Saturday, March 21, 2015

#ScienceSunday - Research Diary

Hey guys,

it is a while since my last post. Believe me, I wanted to keep posting every Sunday but I had some busy weeks. Of course I was procrastinating throughout it but it was not that bad and I had even some really productive and creative (what came as a big surprise to me) days. One more reason why I did not post anything is the lack of ideas for writing. A few day ago, I got an idea.

When you are working on some project (especially scientific project) or any research it is very important to keep track of all your steps, thoughts, problems and solutions or any other notes about your work. For this purpose, it is really recommended to write a Research Diary (it is also one of the evaluation points in project competitions such as Intel ISEF or EUCYS).

From the well written diary, you can get picture about your progress in project, about problems that occurred, what caused them and how you solved them. After some time, you can also find many different notes and thoughts that could even change project if you worked on them more deeply. 
However, it is not always easy to write everything at the time you are doing it or thinking about it but after a while you can lost something important. I was struggling with writing my diary while I was working on Planetary Nebulae project and now it would be really helpful.
For this reason, I tried to write a shell script that can make it easier to write notes into one file as well as keep notes ordered and classified. Here is the script for all of you who are using Linux and are interested in it.
You probably do not need instructions on how to run this script but just in case:

Save downloaded file in /usr/local/bin (this is the easiest way to make script global).
There is one line you will probably want to change: the second line after file= should contain the path to your diary file (in my case it was logfile.txt but it do not have to be .txt file). If your system uses other shell than bash you should change also the first line of script. Make it executable by typing (in a command line) chmod +x log. Another way to make it executable is to open properties of given file (not in command line) and there you can change permissions. 
After that, just type 'log' (or any other name you gave to this script) and you are running the script. At first you will be asked to classify your note. Type just one letter to classify note according to help text (D for ordinary diary log; PS for note about problem or solution of some previous problem; F for giving exact name and path or coordinates to some important file - e.g. input or output files; N for some note or comment about project that is not directly related to the current work; T for any thoughts that may be interesting to think about deeply; This is just my classification and you can change it according to your needs and you do not have to follow my categorization). If you write anything else, note will be classified as NOT_CLASSIFIED. Script will write exact date and time in a new line of diary, class and serial number of your note in another line and text of note you will write after classifying given note. Resulting diary looks something like this:

Sun Mar 22 12:13:49 CET 2015
Class=DIARY no.1
This is the first note.

Sun Mar 22 12:14:04 CET 2015
Class=DIARY no.2
This is the second note.

Sun Mar 22 12:14:21 CET 2015
Class=NOTE no.1
This is actual note. The previous notes were Diary notes.

Sun Mar 22 12:14:56 CET 2015
Class=PROBLEM&SOLUTION no.1
There should be description of some problem so you can solve it later.

Sun Mar 22 12:15:31 CET 2015
Class=PROBLEM&SOLUTION no.2
And here should be solution of PROBLEM1.

Sun Mar 22 12:16:00 CET 2015
Class=FILE no.1
The output file from Cloudy calculation is saved in /path/to/output.dat

Sun Mar 22 12:17:08 CET 2015
Class=THOUGHT no.1
Are you thinking about something really inetersting at times you should work on something different? You can write your thoughts here and you can get back to them later.

This is all for today. Feel free to use, change and improve the script and let me know what you think about it.
I hope it will help. 

Cheers,
Jakub

No comments:

Post a Comment