ActivityWatch / activitywatch

The best free and open-source automated time tracker. Cross-platform, extensible, privacy-focused.
https://activitywatch.net/
Mozilla Public License 2.0
12.67k stars 565 forks source link

Write mission/vision statement #236

Open ErikBjare opened 6 years ago

ErikBjare commented 6 years ago

I have a lot of ideas about the future of ActivityWatch that I haven't written down, and some of these are highly important since they concern the direction I want things to go in.

Communicating this is important for people who wouldn't otherwise understand the use of the software. While we have some writings in the docs they were hastily written, don't really get to the point, and an update is long overdue.

My ideas so far concern:

Finding synergies in these areas are important. I think ActivityWatch should be able to help will all of the above, but not all of it should be dealt with in the core software. We should also start thinking about ways to push these different use cases forward, and that includes reaching out to people who might be interested in one or more of these uses.

This project began some time after I first wrote my blogpost in 2014 titled "What would you do with your data?" and the question in the title has gotten much attention from me over the years. I now have some answers to what I'd do, but I've only done a small fraction of the things, and I can only do a subset of the things I'd want to do with the data I currently have. Notably, data of how others spend their time is lacking, so any type of comparative analysis is not yet possible.

Experimenting with the data caused me to create the aw-research repo where I can experiment with potential future analysis features of ActivityWatch. Other projects in the same vein includes chatalysis to analyze chat conversations and QSlang to serve as a timestamped diary where, among normal diary entries, there are also entries for supplements and drugs which are interesting subjects for analysis.

I'm open to comments and suggestions.

ErikBjare commented 6 years ago

Another thing I've been interested in, but that doesn't really fit into the existing categories, is the implementation of auto-tagging and thereafter integration into a personal memex-like system or a personal knowledge base. All that would be needed would be a mapping (Event -> Tag) and (Tag -> Memex ID)

Doing this would incidentally do a lot of necessary work to build KnowTree (subject classification and automatic learning log).

Thanks @mekarpeles for pointing me in that direction.

nikanar commented 4 years ago

I now have some answers to what I'd do, but I've only done a small fraction of the things, and I can only do a subset of the things I'd want to do with the data I currently have. Notably, data of how others spend their time is lacking, so any type of comparative analysis is not yet possible.

Other than the github list of technical issues, do you have a roadmap of AW features (/data collection) that would be necessary to proceed with the type of analyses that you would like to do ?

And, do we know what comparative analyses you'd like to do, so that people who want to help could track certain things for themselves, that they could share with you so you could compare them ? Personally I wouldn't mind collecting my data to serve for that purpose for you, but you'd need to tell me what you want first so I can follow.

(all things necessary for a startup/research project once way or another)

aftabnaveed commented 4 years ago

@ErikBjare I really appreciate the effort you have put to this project and trying to improve the lives of individual and allowing them to benchmark their own activities. The individual aspect of this project primarily emphasises on the privacy, while I understand that the individual privacy needs not only to be respected but also protected. However, the same privacy analogy may not apply to the companies who wants to benchmark the productivity and the performance of its employees. Her are a few things that why would a company may need access to certain data:

  1. Benchmark the performance of an Employee
  2. Get the ability and estimate the capacity of the employees working on a project.
  3. Hold the resources accountable for the time they charge the company for.

I will begin with the point number 3 here as they definition of accountability in this case may be different in different cultures and countries. What are your thoughts on this, and how would you approach and make sure a company do not abuse it's power while collecting this data? There are many online SAAS applications available out there who collects this data and use it for the same purpose.

Point #1: Again could be a privacy concern, but do you think the companies should be given the power to benchmark the performance of its employees on a given data?

Point #2: Every company wants to measure the capacity of it's resources and there are many process such as SCRUM available for this purpose but with the support of Activity Watch or any other SAAS tool may provide a better insight to it. Do you think Activity Watch can be a helpful tool in that aspect?

pcuci commented 3 years ago

so any type of comparative analysis is not yet possible

Silvio Micali's work on zero-knowledge proofs should hopefully invalidate this statement :-) https://www.youtube.com/watch?v=zNdhgOk4-fE

It looks, at least theoretically, possible to generate secret common knowledge to query for shared insight without needing to know individuals' private data. We might be able to see how similar one's data is with another's without divulging what exactly the similarity is, and without the algorithm having access to the underlying private data.

All that would be needed would be a mapping (Event -> Tag) and (Tag -> Memex ID)

This reminds me of https://github.com/Zettlr/Zettlr/issues/1690 and sister projects like https://github.com/laurent22/joplin/issues/3723 and https://github.com/foambubble/foam/issues/88

In terms of vision, why not scope down towards "the best holistic passive personal activity suite"?

It would start with desktop and mobile personal use at first, then the IoT revolution will add new smart devices' data stream to the mix, as well as in-body devices.

I think the unit of privacy to design for (since privacy is a collective construct in addition to an individual responsibility) should be "the home" and all the devices one "owns" on their property, to help safeguard the privacy of the "family unit". Microscale vs. individual scale.

How about integrating with something like https://github.com/home-assistant/core where "the humans" would essentially be another data stream alongside our private smart agents?

It's not just my behavior I need to quantify, tweak, and understand. I also need to know what things in my immediate physical environment (as well as my digital environment) are cueing me towards certain habits.

Perhaps the vision is to take a serious stab at the oracle problem.

ZaneBartlett1 commented 2 years ago

Hey Erik,

Let me start out by saying thank you for making this application and the work you've put into it!

Personally, I very much enjoy detailing process, discussing goals, motivations, etc, so this issue definitely speaks to my interests. I am a somewhat new coder, and while I am rapidly getting better at that and am excited to use this project to learn more, this is something I feel I'd be able to contribute to more readily.

I see different aspects of the vision of ActivityWatch explained in a few places, and I think that whatever conclusion is reached here, making sure to update messaging to match this might be in scope for this issue. To that end, I think starting to make note of the places we have messaging would make sense. What do you think?

If so: Here, you mention the goal image

and in the docs you mention a summary of the data philosophy

image

I have a lot of things I'd like to discuss about creating a focus on the messaging between all the different apps your using to organize this effort (A website, forum, discord, discussions, etc) and think that getting the most out of solving this issue means discussing that within the context of this mission statement. I'd like to do things like look in documentation throughout these places and make sure the messaging is consistent and concise. I'd like to know your thoughts/appetite on that kind of thing.

Looking at the summary you have here, those snippets, and just other readings throughout the project, I have thought of these as some example mission statements-

ActivityWatch: Helping people collect their data now, predict their future, and doing it without compromising their privacy.

AcitivtyWatch: Helping people collect their data now to use it in the future, all without sacrificing their privacy.

ActivityWatch: Putting people's data back in their hands.

ActivityWatch: Putting the ownership of the data people value about themselves back in their hands.

ActivityWatch: We believe that people should be able to own their data in a way that makes it useful, without having to compromise their privacy to do so.

ActivityWatch: To give people the data they want about themselves, without having to give up their privacy

ActivityWatch: Recognizing the power of the future, helping people collect their life data today for that tomorrow, and striving to set the standard of ethics for doing it along the way.

I think all of them could use a bit more work, but really more than anything, I'd like to know your thoughts about them. What kind of wording do you like and why? What feels like it's capturing more what you're wanting get across compared to maybe a different phrasing I have and why? After that I think I might have enough for it be worth really combing each word and try to make something more finalized.