Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

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

5 views
Skip to first unread message

Jim Cochrane

unread,
May 30, 2023, 12:40:33 PM5/30/23
to
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.
0 new messages