{"id":13622464,"url":"https://github.com/Drahflow/Utilator","last_synced_at":"2025-04-15T09:32:25.750Z","repository":{"id":141891266,"uuid":"3748105","full_name":"Drahflow/Utilator","owner":"Drahflow","description":"Utilitarian \"Todo\" Management","archived":false,"fork":false,"pushed_at":"2017-11-24T23:18:59.000Z","size":197,"stargazers_count":8,"open_issues_count":0,"forks_count":3,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-11-08T10:47:25.426Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Drahflow.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2012-03-17T14:20:08.000Z","updated_at":"2016-11-06T20:35:52.000Z","dependencies_parsed_at":"2024-01-14T05:09:34.842Z","dependency_job_id":"e81f848a-2d82-438e-ab6b-8d906ed35355","html_url":"https://github.com/Drahflow/Utilator","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Drahflow%2FUtilator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Drahflow%2FUtilator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Drahflow%2FUtilator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Drahflow%2FUtilator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Drahflow","download_url":"https://codeload.github.com/Drahflow/Utilator/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249043022,"owners_count":21203400,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T21:01:19.630Z","updated_at":"2025-04-15T09:32:25.313Z","avatar_url":"https://github.com/Drahflow.png","language":"Java","funding_links":[],"categories":["Java"],"sub_categories":[],"readme":"What is this and why do I want this?\n====================================\n\nThis is a (prototype of) a system to compute a better scheduling for personal tasks.\nIt is meant to partially replace your very personal opinion of what is important and\nwhen to procrastinate it.\n\nIt is mainly based on estimating the current \"utility per time\" you can gain from\nperforming an action. If you have never heard of utiliarism before, maybe look it\nup on wikipedia on somewhere. Anyway, you'll need a way to give a linear goodness\nvalue to every single task, or more precisely, the amount of goodness difference\nof the world if only the task would have magically been done. You can go into\ninfinite discussions about how to do this, but this is out-of-scope here.\nAnyway, the software (and many other people) call this goodness \"utility\".\n\nInstallation + Usage\n====================\n\nThe current system consists of loosely coupled parts, all of which somehow contribute\nto a central database on each computer. Integration with the window manager,\nmail client, etc. is done on a hack-by-hack basis, so the installation procedure\ndepends heavily on your personal system setup.\n\nScript-Collection\n-----------------\n\nThe /perl branch of the repository is where the stuff for normal PCs lives. Put it\nsomewhere you can easily access it from the commandline. It's probably easiest to\nunderstand the system by starting from the scripts an only later integrate them\nwith the rest of the system.\n\n### init\n\n    init\n\nInitializes the local database. Execute this once.\n\n### create\n\n    create 'Understand the tutorial' 2.3 30m\n           1111111111111111111111111 222 333\n    \n    1: title of the new task\n    2: the estimated utility of the task completion\n    3: the amount of time you will need to complete the task\n       5s: five seconds\n       5m: five minutes\n       5h: five hours\n       5d: five days (not 120h, as you'll not work 24h days)\n       5w: five weeks (not 35d, as you'll not work 7d weeks)\n\nThis command will spew forth the GUID of the new task.\n\n#### Installation\n\nIt makes sense to configure various software so easy the taskification of their\ncurrent context.\nSo far I only configured\nhttps://addons.mozilla.org/en-US/thunderbird/addon/passtoscript/\ntogether with the create-frommail script to get me a mail-to-task button.\n\n### query\n\n    query\n\nThis will just dump an ordered list of tasks\n\n    query 3 5m\n          1 22\n    \n    1: the maximal number of tasks to show (highest utility per time first)\n    2: the maximal time of the task, useful if you need to go soon\n\n#### Installation\n\nTo make this really useful, it makes sense to display the result of\n    query 1\nsomewhere on the screen continually (or at least after a single hotkey). Then if\nyour attention strays, you can always look up what you should be working on. It\nwill become a habit.\n\nAs I use wmii, my wmiirc includes this snippet\n\n    # Status Bar Info\n    status() {\n            echo -n $(cd /home/drahflow/utilator/perl \u0026\u0026 query 1 | iconv -f utf-8 -t iso8859-15 | cut -c 1-100)\n    }\n\n### dump\n\n    dump CB5BE551-C5C3-4884-B3D7-CC4FC761061C\n         111111111111111111111111111111111111\n    \n    1: task specification\n       XXXXXXXX-XXXX-4XXX-XXXX-XXXXXXXXXXXX: the task identified by this GUID\n       c: the currently most important task (i.e. you will nearly always use 'dump c')\n       l: the task last edited or created (useful if you created a task but it did not become highest priority)\n       /regex/: the single task matching regex, errors out if multiple tasks are matched\n       /regex/a: as /regex/, but also match against completed tasks (if you accidentally marked a task complete)\n\nThis dumps the current task status.\n\n### edit\n\nTask adressing and time intervals are specifed just as before.\n\n    edit CB5BE551-C5C3-4884-B3D7-CC4FC761061C done\n\nMarks the specified task done.\n\n    edit c status 50\n\nMarks the current task 50% done.\n\n    edit l status 0\n\nMarks the last edited task 0% done (if you accidentally completed it).\n\n    edit c wait 5m\n\nMarks the task as impossible-to-act-upon for 5 minutes. Use this only if the external world makes it\nimpossible for you to complete the task, say because the task says 'buy butter', but it's 4 AM. Time\nintervals are not corrected for non-work-time, i.e. 1d is 24h in this command.\n\n    edit c wait_until 2030-01-01T05:00:00\n\nMarks the task as impossible-to-act-upon until the specified date.\n\n    edit c est 5h\n\nSet a new time estimate.\n\n    edit c title 'Make up a better title for this task.'\n\nSet a new title.\n\n    edit c util 0.5\n\nSet a new utility.\n\n#### Installation\n\nIt makes sense to integrate some of these commands into global hotkeys. I only mapped 'edit c done',\nagain via wmii:\n    Key $MODKEY-Shift-d # Mark current task done\n        (cd ~/utilator/perl \u0026\u0026 ./edit c done)\n\n### act / act-context\n\n    act c\n\nThis script tries to switch your computer into a state most helpful in working on the specified task\n(which should always be 'c').\n\n    act-context c\n\nThis script tries to classify some of my window contexts on whether they facilitate the execution of\nthe specified task. Highly wmii specific.\n\n#### Installation\n\nThe innards of script really depend on your system configuration. The current version works against\nwmii, but other window-managers can probably be scripted somehow as well. Also there should be a\nsingle hotkey calling this script. Then you have a hotkey which essentially says \"make me do this\".\n\nThe same applies to act-context. To use it, you'll probably have to rewrite it (and just keep the\nideas).\n\n### background\n\nThis includes various background jobs. Look into it and configure it to call other scripts as\nnecessary to automatically import external events into your task queue.\n\n### import-*\n\nVarious scripts to import from external sources. You'll probably have to edit them to get useful\nresults.\n\nLicence\n=======\n\nThis code is released under the WTFPL.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDrahflow%2FUtilator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FDrahflow%2FUtilator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDrahflow%2FUtilator/lists"}