Giter VIP home page Giter VIP logo

eva's People

Contributors

procrat avatar tivervac avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

tivervac coopshop

eva's Issues

Documents

Rationale

Through the course of a day, I tend to get a lot of stimuli. A friend asks me something, I receive an email, I stumble upon something interesting on the internet, suddenly I get inspired and an idea starts developing in my mind, and so on.
For the wannabe-productive-person that I am, this is very annoying, because it takes my attention away from the thing I should be doing. The solution GTD suggests is throwing all these stimuli in a collection bucket, to which you get back later for processing (how do I help my friend out with this? Should I act on this email? Is this paper I found really relevant to me? Is this idea any good, and should I develop it further?) . I am very fond of this concept, and would very much like to have it in Eva.
However, currently, it does not really fit, since we only have the concept of tasks, and these are not tasks, but things that might become a task. So, what are they?

I say 'documents'.

Documents?

A document is like a file on your computer. It can be a blog post, a paper, a web page, a note you wrote, an email, a movie, an image, a documentary, ...
You can think of a document as an indivisible unit of information. Here, indivisible means that it cannot be split without taking away information. A book that covers multiple topics could be split in a series of chapters that each cover their own topic, but you take away their context. So, the book is the document, not the chapter. This does, of course, not prevent you from making a part of a a book its own document, provided you are not interested in the other parts.

Why documents are awesome

Documents are actionable

Some examples:

  • A paper
    • Read it.
  • An email
    • Perform the task that it calls for.
    • Reply to it.
  • A note
    • Describing a task
      • Do it.
    • Describing an idea
      • Develop the idea.
      • Split it into actionable parts.

In the case a document is not actionable, it does not belong in your task list. You could still archive it, though.

Documents can be archived

When you decide not to action an idea, you can still choose to archive it. In case you have a new idea that relates to an old one you had, you'd still have your old notes. When you want to try something new and remember that paper you once stumbled upon but didn't read properly, you will still have it. Eva can keep everything safe for you. When you add a tagging system to your archive (which can be 100% the same tagging system as you use for your tasks, so no extra complexity there) it gets easy to use as well!

Documents are tasks that you did not commit to

I loved @Procrat's determination in the statement 'if you do not have a deadline, you do not intend on finishing that task, so it is clutter on your task list'. I totally agree, however, there are tasks that I maybe would like to do. I sometimes have ideas that I really like, but I don't feel I have time for it, or there are more pressing issues in my life. I would still like to keep this idea, of course. So, it is a document!

Documents can be reviewed

As time goes by, someone who has tons of stupid ideas like I do will drown in a 'maybe' list filled with tons of crap ideas. Or, a more useful person who has many good ideas, but alas not enough time, might not get back to his million dollar idea. The solution to this is incorporating documents in regular reviews, for example using spaced repetition (In that case, you would get reminded of the idea periodically until you decide you are not going to do it, and you archive the idea). To me this sounds like a good solution to the 800-tabs-to-read problem.

Documents are a personal reference system

If you dutifully let all your stimuli pass through Eva in this way, you are essentially building a hard-copy of the information in your brain, and all information that is connected to it. This means you can't forget anything. It also means that you start building a model of how you, personally, handle information. I believe this opens up great possibilities ;-) .

How should documents be integrated in Eva?

I might be wrong, but I am starting to believe that documents should be first-class citizens in a personal assistant software. More precisely, they should be the first-class citizen.

A documents-first approach

Managing time in the information era largely comes down to managing information. Getting a grip on the never-ending information stream that enters our head every day is the first step to making room for productive endeavours.
By capturing all stimuli you experience and produce into documents, and filing those in your personal organization software, you move the part humans are not good at (managing huge amounts of something) to your computer, while you can focus at the things humans are good at (creating, interacting with the real world, enjoying your life).
A task is, essentially, a document. It's a piece of information that can be actioned. In other words, a task is a scheduled document.
So, approach it like documents. Your 'inbox' is a list of documents that you can either schedule or archive. (You could also include a 'snooze' option, which is the 'maybe / some day' list).

The far future

For this system to work optimally, you would want it to both collect as much information as possible, and present you with the least work possible.
The first part is achievable by using smart, contextual capture methods (have a browser plugin that sends a link to Eva instead of opening a new tab, have a github integration that captures issues assigned to you, have templates for your notes, have purpose-specific capture devices for specialized cases).
The second part can be achieved by machine learning techniques. Basic text classification is very easy to do, but yields enormous advantages to the user. You could let Eva guess which action will be taken on each item in your 'inbox'. She could then suggest 'maybe archive this bunch?' 'plan this task?' 'put this on your 'maybe' list?

But what about my flat tire?

I did not form an opinion about how desirable this is yet, but your flat tire and other mundane tasks can also be fit into this flow. When you notice that your bike has a flat tire, it is just that: an observation. A piece of information. Something you can note.

Hey Eva, my bike tire is flat.
Okay, we will get back to that later. We were designing a poster for lightning talks event.

sorry I did not proofread I have an exam tomorrow the procrastination is real please excuse any brainfarts I would love to hear what you all think love you xoxoxo

What should the first interface be?

At some point far in the future, it would be great to have multiple user interfaces, so everyone has something that fits their needs. However, for bootstrapping, I think it would be a good idea to entirely focus on one user interface for the time being. The current CLI was a quick win and is easy to play around with, but its current intention was not to be a great user-facing tool.

It seems to me that a GUI would be attractive to the largest group of people. A command-line interface seems burdensome to use and even other kinds of terminal interfaces will restrict Eva to only be used by tech savvy people.

Within the domain of possible GUIs, I can think of three kinds, with the following pros and cons. (I'll keep it updated when others are mentioned.)

  • Web interface
    • Pros
      • Very accessible
      • Easily updatable
      • Cross-platform for free
    • Cons
      • You have to make an account to use it
    • Possible cons
      • You have to be online to be able to use it. Offline usage with delayed syncing might be doable, but perhaps a pain. (Does anyone have experience with that?)
  • Offline GUI
    • Pros
      • Offline usage
    • Cons
      • Extra barrier of downloading and installing
    • Possible cons
      • Are there decent cross-platform graphical toolkits?
      • How should updates be handled? Forced (cfr. Steam)? Full user-control (with the possibility that some users will fail to do so)? Something in between, i.e. nudging the user until they decide to turn off that message? ๐Ÿ˜„
  • Mobile app
    • Pros
      • Rather accessible
      • More likely to have a smartphone on you than a larger computer
    • Cons
      • I personally don't like using smartphones, especially typing on them feels like a pain
      • Extra barrier of downloading and installing (which I feel is a bit lower on smartphones)
      • Might be too separate from your workflow on your computer
    • Possible cons
      • Same questions about updates
      • We must support different platforms unless languages/tools that combine this are decent enough these days. (Does anyone have experience with them?)

There is an intention to have a strong separation of the different parts of Eva as to make it easy for other interfaces to be written as well. If anyone strongly objects to using a GUI, it should be made easy to write another kind of interface and I encourage to do so. However, during these early days of Eva, I would really love it if we could agree on one kind for starters and work together on it. ๐Ÿ˜„

Tagging some people who might have interesting ideas about this: @silox @NoctuaNivalis @iasoon @tivervac @wschella

Piecewise goals/tasks

I have a personal goal of riding my bike for at least 5 hours every week. This can occur in one go, but I could also go twice for 2 hours and a half or tree times for 1 - 2 -2 hours.

More broadly, this could be expanded for all tasks that occur regularly, e.g.:

  • Do the dishes | 1 hour | every week
  • Learn to play the piano | 1 hour | every day
  • Read a book | 5 hours | every week

It would be nice to plan these kind of tasks in Eva and let Eva divide the time herself. Maybe a "minimum" time spent should be added to (e.g.) avoid going for bike rides of 5 minutes while it takes 10 minutes to prepare.

Repeated tasks

Some tasks have to happen regularly, for example:

  • Doing the dishes | 1 hour | every week
  • Shop groceries | 1 hour | every 2 days
  • ...

It would be nice to be able to enter these with a repeatable time-interval so one does not have to bother to enter them manually every week/day/...

Task dependencies

Some tasks depends on other. You cannot clean the dishes while having eaten first. You cannot vacuum when you haven't dedusted the furniture. If 2 tasks would have the same importance, Eva might schedule them in the wrong order.

Adding a dependency between tasks might solve this possible issue.

Task execution time limits

A useful feature when you want to use Eva both for work and home tasks: adding time-limited cathegories to tasks. E.g:

  • Tasks labeled "Work" should preferably be planned between 9am and 5pm on weekdays.
  • Tasks labeled "Weekend" should be preferably be planned on saturdays and sundays...
  • Tasks labeled "Morning" should be planned early, e.g. I like to go running in the morning.

Note how this is related to not doing any tasks when you're asleep: the default (unlabeled) prefered period could be 8am to 12am.

You might also assign a strictness to these prefered periods. After all, when the deadline is really close I might work in weekends. Or when I don't really have time in the morning, I don't mind running in the afternoon.

Fuzzy time support

At the moment, a precise time has to be given. But I seldom know the precise time a task will require or what the precise deadline is. So maybe it would be a good idea to think about if and how to support fuzzy times? For example when a deadline is soon it could be + 2 days. Or when a task is short it could require around 10 minutes.

I eva could even ask you some questions, like Is this task earlier due than task X?. And with a clever logarithmic search she could make a guess about when she should schedule that particular task. This could of course also be used for the task length and priority.

To be able to schedule tasks, we only need an ordering between the tasks, not real values. Right?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.