Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I'm searching for a FLOSS tool (for GNU/Linux) for the following job:

I have written a diary for some years. For each day, I noted what I did resp. what happened. Now I want to formalize/record some of these things. In the end, I want to be able to create statistics.

Example:

2012-11-23: watched a DVD; jogged; cooked 2 times

2012-11-24: cinema; cooked 1 time

I have only a handful of categories (DVD, cinema, jogging, cooking, …). I want to record a) what and b) how often something happened each day.

              DVD    Cinema    Cooking    Jogging    …
2012-11-23      1         0          2          1
2012-11-24      0         1          1          0
…

Then I want answers to questions like:

  • How many movies did I watch in 2012? (→ count all "DVD" and "Cinema" entries for that year)
  • On how many days did I cook in 2011 and 2012? (→ count all days, where I cooked 1 or mor times)
  • On which month did I jog the most in the last 3 years?
  • Is there a correlation between movies watched and holidays?
  • Did I watch more movies on sundays than on other days (on average)?

It would be fantastic if some actions could have attributes. E.g. so that I can mark if I watched a DVD alone or together with friends. Or to mark if I cooked for dinner or for lunch etc. Then I'd ask questions like:

  • Did I watch more movies alone or with friends?
  • Did I cook lunch more often in the summer or in the winter?
  • How often did I cook in 2010, and what is the lunch/dinner ratio? (→ create a bar chart for the cook count and color each bar in red (lunch) and blue (dinner))

My main concern is how to record all the data. It should be easy/fast to do, because it's a huge load of work. The statistics part is only my secondary concern at the moment.

Would OpenOffice/LibreOffice Calc be the right tool? (Can it create a calendar, so that I don't have to enter all dates manually?) Or should I look into R or similar? (have no experience with statistics) Or should I create a SQLite database? (but how to create a form to enter the data?) Or something totally different?

share|improve this question

closed as off topic by Dave M, Dave Rook, CharlieRB, 8088, Karan Jan 2 '13 at 18:03

Questions on Super User are expected to relate to computer software or computer hardware within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.

add comment

1 Answer

Given the floss tools requirement, here's how I'd tackle this:

Use Calc as your forms application to input the data

Import this to SQLite (if that's your preference, postgresql has a bit more grunt), and run the sort of queries that you mention

I would setup the columns in Calc as follows:

Day  |  Cooking  | Jogging  |   DVD  |  Cinema |  Month  |  Year  |
  23 |    2      |    1     |    1   |         |    11   |  2012  |
  24 |    1      |          |        |     1   |         |        |

This way you can do quick data entry (without going to the mouse all the time), by simply inputting the day of month and only typing the month number and year number when they change (ie hit return when you finish the category data input for that date).

Copy down the month and year to the blank spaces and join the info in another cell with the concatenate function before the database upload. Import the data from that new date cell and the categories columns and you should be able to run your queries.

For the edited enhancement request, you could add a comment field if it was just a free form addition. If you can make the data simple to input, you can add columns accordingly (eg instead of 'did I watch alone or with a group?' (coz then you'll go 'was it a large group or just a couple of friends or just me and partner?') make it 'number of ppl watched with' which can then be blank for just you or have a number for how ever many other people were watching too). Just remember your own spec about making the data input easy due to the large amount of data.

hth.

caveat: I don't know R, so I could be completely wrong and it may be the tool for the job, but as far as I'm aware the stats it gives you (3rd std deviation, & other funny greek symbols) aren't what you're looking for (amount / time).

Also, the way I've suggested won't result in a properly normalised database but you should be able to do what you have requested with it.

share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.