Skef: a language for developer lab notes
         ========================================
                        2016-11-06


For years I have been carrying around a small black notebook
containing all my work notes.  This is all nice  and  dandy,
but it's not very convenient.  This is why I decided to move
my main notetaking to the PC. There's already a big bunch of
applications, systems, cloud thingamajigs that  provide  all
kinds of note taking and  categorization  goodness,  but  it
doesn't  tickle  my  particular   terminal   loving   fancy.

When I take notes I really don't want to deal with a lot  of
sub windows, having to move the mouse around  and  even  the
excellent  ORG-mode  feels  too  complicated  for   this   -
previously - simple task.  It's a typical  phenomenon  where
something simple in the flesh translates to a big collection
of complex digital counter parts.

Cue Skef
--------
That's why I decided to create a small language that  allows
me to take my notes in my favorite text editor,  having  all
the neat features like tagging,  todos,  time  tracking..etc
while maintainig this simple workflow of  editing  just  one
document.

Let me give you a quick example of an entry:

[Fri Sep 02 2016 - 2016/09/02]
   This is a line of text that is just a general little
   untaxonomized line of text that will be filed under
   September 2nd.

   [project]
       This text is filed under "project". I will be able
       to run queries that gather all my entries filed
       under this tag.

       [subproject]
           You can even nest projects, nifty wifty.

       [todo mow the grass]

       As you can see above here, we're able to setup
       todos. The basic idea is that you'll be able to run
       the Skef commandline utility that retrieves all
       todos for a project, or simply all of them in one
       go. It outputs these todos on the commandline and
       you'll be able to setup your favorite text editor in
       such a way that it's piped into a new editor buffer.

       [todo bft]
           Sometimes you'll need more space to explain what
           to do. You can create a whole lot of text under
           one todo if you like, but you probably won't,
           because this means a lot of things that will
           require taking your lazy bum of the couch.

       [time 4.5h pondering about mowing the grass]

       We can have entries for tracking time. Skef will be
       able to retrieve all these time entries, output them
       as a CSV, or on the commandline for easy viewing.

       [done noticed the relatively high grass length]

       After you're done with a "todo", you can simply
       replace "todo" with done and it'll be marked as done
       :-). You can also use "skip" or "postpone", but the
       Getting Thing's Done philosphy says you shouldn't
       (which we don't care about of course, silly busy
       people).


As you can see the Skef language has significate whitespace.
This prevents a lot of hassle with closing blocks, and wears
down your keyboard just a little bit less.

I'm already using Skef as my work journal, but I'm going  to
add a couple of tools to make it  more  useful.   They  will
allow you to search  for  certain  projects,  get  all  your
current todos and generate a CSV with your time entries.   I
also want to add VIM support so I'll get  to  have  all  the
pretty colors in my fav editor :-).


-----------------------------------------------------------
                      Tags: english