-- Leo's gemini proxy
-- Connecting to nnix.com:1965...
-- Connected
-- Sending request
-- Meta line: 20 text/gemini; lang=en
.----------------. .----------------. .----------------. | .--------------. || .--------------. || .--------------. | | | _________ | || | _____ | || | _________ | | | | |_ ___ | | || | |_ _| | || | | _ _ | | | | | | |_ \_| | || | | | | || | |_/ | | \_| | | | | | _| | || | | | | || | | | | | | | _| |_ | || | _| |_ | || | _| |_ | | | | |_____| | || | |_____| | || | |_____| | | | | | || | | || | | | | '--------------' || '--------------' || '--------------' | '----------------' '----------------' '----------------'
she went walking when the fit took her: mood, whim, fancy, impulse, caprice, urge, notion, whimsy; desire, wish, inclination, bent.
(photo note: I have since changed out the hardware, so it looks different. I will post more pictures when the new enclosure is done.)
[done] Must be able to count up to time work of indefinite duration.
[done] Must be able to count down to time work of definite (or bounded) duration, like a Pomodoro. This count down will be limited to 30min (a single) and 60min (a double) intervals.
[done] Should be able to categorize work and log time spent by category. Categories need not be extensive. This can be as high-level as GTD Focus Horizons.
[almost] Though the code will be portable, I'll be using a physical device which has no function other than the "fit" routine. This device will also be called "fit". It should be small, substantial, and good looking - something I don't mind carrying and looking at regularly (honestly, this is why the kitchen timer isn't good enough). [I still need to make a proper case for this thing, but the device works.]
Though I plan to use this on the purpose-built device, I will ensure that the application remains useable at least via console, since I have seen some purpose for it there. The reason I use a device is for non-computer fits. In fact, more specifically, it is to encourage fits done away from a computer.
[todo] write the code for use on the cli (fit_cli)
python3 application
csv data file
[done] time representation while in a fit, simplistic, not distracting
[done] survey at the end of a fit, to measure, well, whatever you want to measure. I use it for "whether or not I stayed on task"
[todo] write a data file so analytics can be pulled locally.
[cancelled] implement pausing a fit (I decided I'd rather only allow myself to cancel a fit, rather than permit interruptions)
[done] implement stopping a timed fit
[done] make the fFocus list more easily configurable (tokenized everywhere but a list or set)
[todo] consider making a configuration file from which fit reads
Each invocation is a fit, stored in the csv as a table of "fits". Every fit will consist of the following values:
focus[fFocus] : personal[ffp], work[ffw], learning[ffl], home, admin
type[fType] : 60-minute[ft60], 30-minute[ft30], count-up[ftcu]
hash[fHash] : sha256(fEnd)
hash_short[fHash_short] : fHash[0:4] (used for naming only)
start[fStart] : (epoch at start)
end[fEnd] : (epoch at end)
duration[fDuration] : (fEnd-fStart)
survey[fSurvey] : +[fsgood], =[fsok], -[fsbad]
[press] >> (ffp, ffw, ffl) >> [press] >> (ftcu, ft60, ft30) >> [press] >> (displays epoch from start) >> [press] >> (epoch paused) >> [press] >> (epoch resumed) >> [long press | interval elapsed] >> survey >> log .
[done] selected Pi Zero WH; I wanted to use a pi pico, but they were sold out (well, the tiny 2040 I wanted was sold out), and they don't have wifi just yet. I need wifi for this to be practical at the moment.
[done] selected Waveshare e-ink 2.13" V2 for low power consumption
[done] I've got some MX switches, let's get them integrated. Maybe a rotary encoder? idk, I have both. In the end, the rotary encoder was a nightmare and the MX switches were a little too large. Went for a momentary on double toggle.
[done] freaking decent typography, idk futura pt? I did this on the Waveshare eink verison, but not on the OLED. I prefer the look of the Waveshare, but the OLED is smaller and much more streamlined in code.
[todo] battery? I like working away from power.
[todo] robust enclosure, this needs to travel well and be abused; tactility and finish- use should be a satisfying experience.
[todo] implement a reset button, so I don't have to keep unplugging it.
-- Response ended
-- Page fetched on Mon May 6 08:50:09 2024