Forget about contexts.

Oogiem

Registered
I would give an ear to work on something I was actually using myself.
There certainly are advantages. I've done things like code something I thought would work. Then go out to the sheep and try it out and then come back in and recode it. My golden rule of software development on LambTracker is that "No code survives first contact with the sheep." ditto for the first hardware designs. Sheep can be amazingly destructive to computers and lamb slime , snow and sheep nose prints can do very bad things to the code when they are pressing buttons because you set the tablet down to fish out a lamb and other sheep got curious.

Normally you would host the db and hit it through an api, but are you keeping the sqllite on the phone to avoid the need for data connection?
Correct. Heck I can't even guarantee I will have cell phone coverage or electricity in some use cases so the mobile/handheld version has to be completely self contained.

Why not build a webapp? These days with modern browser apis you can even design the thing to operate offline.
Web app possible but a totally separate user and use cases. I loathe mixing languages so I'd rather just stick with Python.
I would just see if you can think more micro-service-y about the setup so the parts that require python are hit through some interface but you can choose whatever language you want for the normal app logic. Sounds like maybe you'd prefer Java with all your Android experience
That was one of the early prototypes, mixing Java and Python but it proved more hassle than starting over. I went through several language ideas with prototype code before settling on Python. Looked at Javascript, Java, several flavors of C, Wolfram, Livecode and Rust are just a few. We prototyped it on a Chromebook and also used the now deprecated stuff from google to run an android app on both Windows and Mac.
I wonder if there aren't DB's that natively store as a tree so you don't have to reinvent that in sql.
There are, they're called hierarchical databases ;) but they have all sorts of other issues and problems and are much harder to normalize. One simple example is that it's very hard to dynamically extend a hierarchical databse structure without affecting everything else. In a nice relational db like SQLite or SQL if I suddenly decide I need a whole new function, tracking show class entries and winners for example. I can create a few more tables, link to the existing sheep tables using foreign keys and be off and running. None of it will affect existing code and all I have to do is add the new show class code. If those tables are empty they won't affect the functionality at all of other parts. My big database redesign I finished last year was mostly to take the LambTracker database much further along on the normalization path to make it even easier to expand as needed. That DID break code but mostly just my queries and that was/is relatively easy to fix. Had to join a lot more tables.
I took a brief look at your gitlab (which why not github? just curious)
LambTracker was on github originally and an older version is still there but once Microsoft bought it I bailed out for my current and updated stuff.
 

scamden

Registered
Sheep can be amazingly destructive to computers and lamb slime , snow and sheep nose prints can do very bad things to the code when they are pressing buttons because you set the tablet down to fish out a lamb and other sheep got curious.

Correct. Heck I can't even guarantee I will have cell phone coverage or electricity in some use cases so the mobile/handheld version has to be completely self contained.
Wow! Ya that's a really interesting and bizarre set of constraints! Has to be sheep proof haha! And I imagine with a totally self contained thing you need to do some kind of reconciliation between the databases when they come back in from the field? Maybe that's not so bad if people are working with different sheep tho idk.. just really interesting to think about a non-internet based multi-user app haha

Web app possible but a totally separate user and use cases. I loathe mixing languages so I'd rather just stick with Python.
I meant as a replacement to the desktop app, not in addition, because you had mentioned cross platform Issues (using something like Electron so it feels native). But maybe those issues aren't enough to warrant switching to full on web development :) You could still run the "backend" (served locally on the machine) in python, but ya if you hate mixing, there's not really any getting around JS in that scenario for the front end at least. I also try to avoid multiple languages when I can, which is why I would never write another backend on anything other than Node running Typescript unless my company forced me lol. If only for shared type interfaces alone, but it's also just so much better as a language / framework and as a dev community (and I've worked with Java, Python, even Kotlin and Go.. have to be careful mentioning those last two tho or the die hards will find me and we'll start a flame war :eek:). But Python might still make sense for the science-y bits unless you could find similar packages on npm.

That was one of the early prototypes, mixing Java and Python
Ya mixing doesn't sound great if that means literally running python code from java or vice-versa. You have to really draw clean edges around those to make it not awful in my experience. I experienced the terror of running native JS inside Google's Java-to-Javascript framework GWT (which was a terrible thing that should have never been made). But if you separate cleanly into services it's not too bad imho. I always think in terms of web dev, so I'd have like a Science Service, literally running as a python web server and hit that from java through a nicely curated api wrapper or something (and python doesn't get db access or anything, it's just input output for data processing, or if it has a db it's for it's own stuff, not the main app db). I'm sure there are other ways to do it cleanly but that's just the way I know. But ya like you said as a single person team you have to make concessions to speed.

There are, they're called hierarchical databases ;)
Ah ya I thought I'd read about that somewhere :) Never had the use case myself.

but they have all sorts of other issues and problems and are much harder to normalize.
Totally, I was imagining just storing the parentage information in that db for performance and everything else in sql since it's a fixed tree that presumably doesn't change structure much. Only suggested it cause my gut went "recursive sql queries! ruh roh sounds expensive!" but that could be premature optimization. Was just a gut feeling. And once again my overall philosophy is very micro-service-y, so was also thinking use the right tool for just that part and keep the concerns separated with nice clean lines. But as a team of one you also have to do what's fast! (Plus let's face it writing recursive algorithms is pretty fun all other concerns aside :p)

LambTracker was on github originally and an older version is still there but once Microsoft bought it I bailed out for my current and updated stuff.
Ah ya I wondered. I got nervous too, but so far it's been alright. Microsoft's dev stuff is actually pretty slick. I truly hate windows, but Typescript / VSCode are both really nice, and I've even heard good things about c-sharp.

Anyway, I get excited about technical architecture :D (speaking of which this forum doesn't support the standard set of emojis! all my cute additions are getting removed! I had to go back through and choose the closest from the set of 10 or so they support <crying emoji> )

This thread has now officially become about software dev lol... hope that's ok... :p
 

Stephen Dewitt

Registered
I use contexts very differently for work and personal.

In my personal life i.e. all the personal tasks I tend to do during evenings and weekends, Allen's standard contexts work very nicely for me, and 'computer' vs 'phone' is a very important distinction, as are 'at home', 'errands' etc - I even have one which is for while watching TV in the evening e.g. sewing up a pair of trousers, sorting through some papers - mindless stuff like that

For my work hours I do indeed 99% of the time have my laptop with me, so my major break downs of my work list are mostly by energy (I do my hard work in the first 4 hours of the morning) - I also keep an agenda list for my line manager and of course a waiting for list
 

TesTeq

Registered
I even have one which is for while watching TV in the evening e.g. sewing up a pair of trousers, sorting through some papers - mindless stuff like that
Why do you need to have your TV turned on while sewing up a pair of trousers or sorting through some papers. Isn't it better to do it mindfully? And to watch TV mindfully if you have to?
 

Stephen Dewitt

Registered
Why do you need to have your TV turned on while sewing up a pair of trousers or sorting through some papers. Isn't it better to do it mindfully? And to watch TV mindfully if you have to?
Haha, is this a GTD critique or just of my lifestyle? :D I watch things in the late evening when tired but it's a time I can still do very easy tasks so prefer to be a bit productive if possible - and I mean those things that require near zero attention. Swap TV for radio or audiobook or just the sound of a roaring fire or pure mindful silence if you like :)

I think the more important point I wanted to make here was that another use for contexts is to give you a ready made list of things to do when you have very low motivation / energy. If I had to do the thinking about what I could do at this point I know I would just do nothing. Another example of this is my train commute home. Beyond just a generic 'low energy ' list also, having one that you know was made for EXACTLY the situation you're in right now can be quite motivating I find.
 

TesTeq

Registered
Haha, is this a GTD critique or just of my lifestyle? :D I watch things in the late evening when tired but it's a time I can still do very easy tasks so prefer to be a bit productive if possible - and I mean those things that require near zero attention. Swap TV for radio or audiobook or just the sound of a roaring fire or pure mindful silence if you like :)
Not a critique. It's an expression of my personal shortcoming. I am the XMT - eXtreme Mono Tasker (©2020 by TesTeq). When I watch TV I watch TV but when I write this comment I write it in a complete silence. No spoken audio (since I listen to people very carefully), no music (since I love to listen to perfect harmonies and "conversations" between instruments), no TV or anything.
 

Oogiem

Registered
Why do you need to have your TV turned on while sewing up a pair of trousers or sorting through some papers. Isn't it better to do it mindfully? And to watch TV mindfully if you have to?
I use watching movies as a time for my brain to wind down. During that time I also like to do other things. So I spin yarn when watching TV. I know people who knit or do mending. It's a way to relax, like listening to music while doing something else.

You don't necessarily have to be mindful to listen to music or watch/listen to something on TV. It can be relaxing to just let your mind relax and enjoy the display and there is no reason that you can't be doing other stuff at the same time.
 

Gardener

Registered
Not a critique. It's an expression of my personal shortcoming. I am the XMT - eXtreme Mono Tasker (©2020 by TesTeq). When I watch TV I watch TV but when I write this comment I write it in a complete silence. No spoken audio (since I listen to people very carefully), no music (since I love to listen to perfect harmonies and "conversations" between instruments), no TV or anything.
I'm the opposite. My mental model for it--and the mental model has worked for me--is that my brain must be fairly precisely full. If it's not full, it will go out and find something to fill it. Things that add to 'full' include mental input, all forms of sensory input, movement, etc. So when I have a cognitive task that doesn't really require much cognition, I need to keep my senses and muscles busy to fill up the rest of my brain.

So if I'm reading something that I need to read but that is easy to absorb, I'm likely to have music on headphones and be eating sunflower seeds (in the shell, so a manual task as well as a sensory one) or pacing around the room. If it gets harder, my brain is overfull and I eliminate the seeds or the walking. If it gets harder, I'll pull the headphones off my ears. Then I suddenly find that I've finished the hard part and I've been sorting beads for forty minutes, with the television on, because I was caught without my brain-fillers.

This is if I don't build in safeguards. For work, I have to do that--a lifetime's worth of tricks. For my time off, I may let myself drift at will.
 

TesTeq

Registered
You don't necessarily have to be mindful to listen to music or watch/listen to something on TV. It can be relaxing to just let your mind relax and enjoy the display and there is no reason that you can't be doing other stuff at the same time.
If by "you" you mean "one" ("One doesn't necessarily have to be mindful to listen to music or watch/listen to something on TV.") I agree.
If by "you" you mean "TesTeq" it's unfortunately not the case. I immediately fully engage in listening or watching. I often rewind audio or video when I accidentally miss something or don't understand or simply want to see it or hear it once again. To relax I close my eyes and listen to birds singing or cars and trains passing by. @Gardener @Stephen Dewitt
 

Stephen Dewitt

Registered
If by "you" you mean "one" ("One doesn't necessarily have to be mindful to listen to music or watch/listen to something on TV.") I agree.
If by "you" you mean "TesTeq" it's unfortunately not the case. I immediately fully engage in listening or watching. I often rewind audio or video when I accidentally miss something or don't understand or simply want to see it or hear it once again. To relax I close my eyes and listen to birds singing or cars and trains passing by. @Gardener @Stephen Dewitt
Is this something you've trained or just comes naturally to you?
 

TesTeq

Registered
Is this something you've trained or just comes naturally to you?
I think it's innate. I can switch off my ears but it requires a lot of effort. Without real or "internally forced" silence I cannot do any really deep and important work. To tell you the truth I even don't like when somebody's talking to me when I'm nailing something...
 

John Forrister

GTD Connect
Staff member
I think it's innate. I can switch off my ears but it requires a lot of effort. Without real or "internally forced" silence I cannot do any really deep and important work. To tell you the truth I even don't like when somebody's talking to me when I'm nailing something...
You may have what Frank Sopper would call a highly active cognitive preference for listening. I do. My definition of hell is to be at dinner with several people I want to converse with, in a crowded restaurant that has live music playing, and several nearby tables with interesting conversations, and everyone has had a second drink to ratchet up the volume and the volubility. I'm trying to process everything I'm hearing at once. If my brain had cooling fans like this laptop, they'd be whirring away to cool the circuitry.
 

PeterByrom

Registered
Computer can be split out into different digital contexts. Eg software or web services that you need to log into. That’s how I handle @computer!
 

Cpu_Modern

Registered
Can you explain what hard edges mean a little more? I’ve seen people use that term so much in here and I think
I recall DA using it in the book but I’ve honestly never really understood it well. I’d be curious to know what that means to you.
Under the subheading of "The Importance of Hard Edges" David Allen writes in GTD - The Art of… :

"It's critical that all of these categories be kept pristinely distinct from one another. They each represent a discrete type of agreement we make with ourselves, and if they lose their edges and begin to blend, much of the value of organizing will be lost."

I emphasized what I think is the meaning behind a hard edge in a GTD system: the discrete type of agreement.

In our discussion about contexts here, I would say it is the part of a a context that makes us aware that a given task belongs to a specific context - it has to happen there!

And I think those hard edges will change based on the person and the work.
Thus I agree with @Oogiem here, this inner agreement what it consists of will vary from person to person. Even the type of things that make up vary from person to person.

Firing up a dev environment is a strong context for some, well, it is more the mental context, the "I am in dev mode" context than the programs. Or is it? – what is the hard edge here?

Bringing this back to agreements with self. If I have an @Xcode context list, I made the agreement to give each task in there a chance the next time I am "in dev mode" which is a different commitment than @computer, if you are at the computer virtually the whole day.

The former is a more distinct moment. It is "harder an edge" than a general, uhm, guess I'll come around to this someday, when at my box.
 

GTDengineer

Registered
I’m sure everyone can think of at least 2 or 3 contexts which are useful in the course of life. Even that will work better than none. No need to overcomplicate it.
 

RS356

Practicing GTD since 2005
For me, it's about options and reminders - when or where will I see what I need to see in order to be productive? That might be one context or many, and they change often. For example, with COVID-19, I've filed away my @Public Library list as a someday/maybe, but have multiple contexts for things to do around the house. I fully expect that to change when the stay-at-home orders are eventually lifted. With a young child and a working spouse at home with me, I'm experimenting for contexts such as when my spouse is on a conference call (and I need to be available for childcare), things to do in the yard (because I've never been able to take advantage of nice weather during the workweek), and a daily punch list of assignments that need to be accomplished for my daughter's distance learning with school. It's very fluid and surprisingly simple.
 
Top