Showing posts with label project management. Show all posts
Showing posts with label project management. Show all posts

Thursday, 15 May 2014

Geeknote - Command line interface for Evernote

Geeknote 
I have been using Evernote for several years and have been a premium member since 2011 as I was using it so much before then. I use it for work and for home, for recipes and for code, for pretty much everything. I use a modified version of The Secret Weapon for tracking tasks and priorities. I also use IFTTT to connect it to my Google calendar for repeating reminders, such recurring tasks at work and worming the cat. You get the message I like Evernote. However, I also spend a lot of time at the command line and while the global shortcut keys are really useful it is a very one way process. I often use them to save beautifully crafted one-liners, quickly store the results of an ad-hoc analysis or take a quick screen-shot. They are great, but they don't really let me get at the project management and task tracking features that I use Evernote for. It has never been a big deal, just a niggle that it doesn't quite fit together as well as I like.

 Then I found evernote-mode for emacs and thought I had found the solution. I hadn't. I could see that is was useful, but it didn't really fit with how I work, even though I spend a lot of time in emacs. I realised what I wanted was something like the amazing todo.txt but with Evernote as the backend. Then I found Geeknote and I could tell from the tag line "Are you a geek? Do you like Evernote? Geeknote - is for you!" that I had found what I wanted. I got it installed without too much trouble, and logged in, which I was pleased to see supported the two-step authentication that lets me sleep at nights. I just needed to change the editor to emacs (actually 'emacsclient -t', but that is for another post, maybe) and I was set. I could create new  notes, complete with my Secret Weapon GTD tags, edit existing notes, re-tag notes to change priorities, everything I wanted. I love the search functionality and the ability to refer to notes from previous searches simply by their number. I now have set up a bunch of bash aliases to add new tasks and view what I should be doing. It isn't quite there yet but I will tweak and expand on my workflow.
For those that are interested this is in my .bashrc at the moment:
These just allow me to quickly add notes with a priority then view notes by priority. I just need to type show.todo.now and I know what I should be doing. I will probably add more wrapping to simplify some tasks such as changing the priority of a task etc, but for now I am just loving the way I can add a note at the command line and within seconds it appears on my phone's Evernote widget, amazing integration. Also in reverse I can add a reminder on my phone while dropping the kids at school and find it waiting on my command line at work ( after typing todo)

I will try and post more of my config and experience after I have used it for a while and see how it fits with my workflow. 








Thursday, 6 August 2009

Organizing Computational Biology Projects

I saw this interesting article in PLoS Computational Biology: A Quick Guide to Organizing Computational Biology Projects. It makes some interesting points and though most people come to the same conclusions after working in computational biology for a while, it might save some people making the same mistakes over and over. Organizing computational work is a problem for everyone in the field, especially people just starting out.

The main problem is that we never feel we have time to organize and document computational analyses fully at the time, however after several occasions of having to repeat analysis because we forgot how we did it the first time, or writing a script only to find you had already written one you just couldn't find, it becomes apparent that it is quicker, in the long run, to do things properly the first time.

Everyone does these things differently and will find their own way but I think the article is a good description of best practices. I always try and think, "Could someone look at this and repeat what I did?" Normally that someone is me a couple of months later, so it is well worth making sure they can.

I am not perfect, but the key for me is documentation. Good notes within scripts about what they do, to what and how. Also keeping a computational version of a lab book. Which I do in wiki form, so other people in my core could repeat my work is necessary. However a simple text time does the job as well. Version control is another important aspect for me. I have only recently started to use subversion to track changes to my code, but version control can be as simple as documenting which genome build you did some analysis with, or which version of a dataset you used and noting its location.

I think I might try and write some more about this, as formalizing my thought might help me improve my system too. I have particular problems in keeping track of some work that is spread across computer systems, on my desktop and on the cluster. I really need a more formal way or organizing that, maybe a file that indicated the location of the analysis on the other platform, anyway enough for now. Enjoy the article.