• announcing stodo - command-line-based to-do list app written in ruby

    From Jim Cochrane@21:1/5 to All on Tue May 30 16:40:26 2023
    I'm not sure where to announce this, since I haven't posted a software announcement in many years and many things have obviously changed since
    then, but I thought I'd start with comp.lang.ruby, since my application
    is written mainly in ruby. The group seem pretty inactive these days,
    but I suspect people still occasionally browse it.

    This is a "to-do" application, but unlike most (all?) other to-do
    apps, it is command-line based. There is no GUI, nor is there a web
    interface or a mobile phone app - just the UNIX/Linux command-line. So
    it is pretty-much for geeks who spend much, or most, of their time on
    a terminal and are "addicted" to the power of UNIX the command-line
    and dislike having to use a mouse or trackball a lot. A list of
    features and "use cases" follows at the end of this post.

    The application, named "s*todo" (short for "stuff to do"), can be
    downloaded from its github page:

    https://github.com/jjttcc/s-splat-todo

    Unfortunately, it currently requires some manual setup, but for those
    used to the command-line, hopefully following the instructions will pose
    no real problem. I may automate part of all of the installation process
    if I get enough requests to do so.

    Feedback (including criticism - and I'm sure there will be) is
    welcome and appreciated. I hope you find it useful. You can contact
    me at the username:

    jtcbsn

    and the SMTP server FQDN:

    gmail.com

    (Sorry about the spam-proofing - with AI everywhere these days, it might
    not work anyway.) Corrections are welcome - For example, if you
    encounter an error or missing step in the installation/configuration instructions, I'd be happy to hear about it, at the above address or as
    a reply to this post. Also, any tips on where else to post this
    announcement are appreciated.


    Jim Cochrane

    ============================================================================= s*todo is a to-do application. It is solely command-line-based[1]. Its current features include:

    o Create entries (called items) for tasks, memos, appointments, and projects.
    o Configure time-based notifications/reminders (currently only via email) for items.
    o Change the status of an item: in-progress, suspended, completed, or canceled.
    o List pending items, sorted by due date.
    o Editing of items with an editor or from the command line.
    o Grepping - search for all items that match a keyword or regular expression.
    o Version control of items with git.
    o Processing of file attachments.
    o item hierarchies for organization/classification.
    o references to other items.

    s*todo currently only runs on Linux systems, although it might be pretty straightforward to port it to other UNIXes,
    including macOS.

    Use cases

    o As a to-do list tool: Keep track of your planned items - projects, tasks, appointments, memoranda, etc. Send
    yourself reminders (daily, weekly, on a specified date/time, etc.) for items you deem important. Prioritize your
    projects and tasks - e.g., send a monthly or even yearly reminder for a somewhat unimportant task that you,
    nevertheless, don't want to completely forget about.
    o As a study aid - For example, I use it to organize and keep track of different aspects or components of my
    Mandarin study, such as listening, reading, speaking, writing, and grammar. As well, I use its "process-
    attachments" facility to begin a study session - for example, I invoke the facility on the attachments (Mandarin text
    files and audio or video files) of a "Mandarin study task" to study a story in my lesson plan.
    o To play music, by invoking the "process-attachments" on a music item whose attachments are audio/music files.
    Or to watch a movie on an item with video attachments.
    o To keep track of and/or archive data that one doesn't want to lose, such as: past events in one's life; one's family
    genealogy; tips, howtos, and URLs for, for example, software development and technology, medicine or any other
    field; birthdays of family members and friends; etc.
    o To plan iterations for a software project and keep track of what was done on past iterations.
    o If you want to change an item but don't want to lose the original content, you can run stodo gitadd to put it under
    git-based version control.
    o Etc.


    Usage

    Run s*todo to obtain a basic usage message - i.e.:

    Usage: stodo <command>

    commands:
    help [<x>] show help (on topic <x>, if provided)
    new|init look for and process new to-do items
    notify send pending notifications to-do items
    combined combine notifications with processing of new items
    report display a report of existing to-do items
    chparent <h> <ph> change parent of the item with handle <h> to be the
    item with handle <ph>. If <ph> is '{none}',
    the item is set as parentless.
    chhandle <h> <nh> change handle of the item with handle <h> to <nh>
    change <h> change attribute(s) of item with handle <h>
    add add a new item
    del delete the specified items
    clear_d <h>... clear descendants of items with handle specs <h>, ...
    remove_d <h> <dh> find descendant (handle <dh>) of ancestor (handle <h>)
    and delete it
    clone <h> <nh> clone item with handle <h> as a new item with handle <nh>
    stat <x> <h>... change status of handles <h>, ... to state-change <x>
    temp [<type> ...] output a to-do item Template (for target type <type>)
    backup [opts] back up data files
    proca <h>... process attachments for items with handles <h>...
    git-<cmd> perform the specified 'git' operation: <cmd>
    version print Version number and exit

    [1] Adding a web interface to stodo is probably doable, but it would take a good deal of effort and time, the latter of
    which I appear not to have enough of these days.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)