[{"data":1,"prerenderedAt":53},["ShallowReactive",2],{"$f273sb70s8xxpn":3,"recommended":22},{"title":4,"path":5,"date":6,"updated":7,"tags":8,"excerpt":11,"readingMinutes":12,"commentCount":13,"html":14,"comments":15,"next":16,"prev":19},"[TSTIL] The WaterRower Camera","\u002F2024\u002F03\u002Fthe-waterrower-camera\u002F","2024-03-03T08:28:00.009Z","2024-06-12T20:12:04.335Z",[9,10],"the-software-that-i-love","hardware","[ This is a part of \" The Software That I Love \", a series of posts about Software that I created or had a small part in ] I was getting more and more heavy during this period, almost reaching 90kg \u002F 200lbs. I never…",2,0,"\u003Cp>[ This is a part of &quot;\u003Ca href=\"\u002F2022\u002F10\u002Fthe-software-that-i-love\u002F\">The Software That I Love\u003C\u002Fa>&quot;, a series of posts about Software that I created or had a small part in ]\u003C\u002Fp>\n\u003Ch2>2021 - The WaterRower Camera\u003C\u002Fh2>\n\u003Cp>I was getting more and more heavy during this period, almost reaching 90kg \u002F 200lbs. I never exercised but I had bought a rowing machine with a water tank because I wanted to exercise, in principle. The machine was bought in 2019 just before the pandemic and during the boring early pandemic months it was a welcome way to distract myself. For some weeks I started rowing like a maniac but of course it wasn't sustainable. The machine started collecting dust.\u003C\u002Fp>\n\u003Cp>It had a small &quot;workout computer&quot; displaying the stats, but it was very dumb and not connected to anything. For some reason I thought it would be a good idea to measure my stroke speed, depth, and power more closely. The (black) elastic band is wound up around a cylinder. By painting the cylinder white and tracking with a camera how much black\u002Fwhite pixels are visible, it shows how far you've extracted the cord. Doing that a lot of times per second you can see stroke depth, speed, power, and recovery speed. I attempted to do this with a cheap ESP32 board with a camera but found that I could only get 1 FPS due to the way the library worked. I have since learned more about interacting with the hardware, and think that I can get it much faster because I only need to count pixels that match a certain threshold in brightness.\u003C\u002Fp>\n\u003Cp>Anyway, that would take a lot of time. Instead I hooked up a raspberry pi zero 2 w and reached 60FPS with brute force. Then I built a simple web interface which I used to exercise about 5 extra times. It felt really good to exercise and have it monitored intensely at 60FPS.\u003C\u002Fp>\n\u003Cp>Then my wife's cousin Johannes came by, saw me rowing and laughed his a** off. Apparently my rhythm was completely wrong and I should do short and very fast pulls, then a slow recovery. I had taught myself rowing in the wrong way and now couldn't get used to the right away anymore. I haven't rowed since, but I discovered that running is very nice. In the summer of 2022 I lost 13 kgs and got down to 77kg and feel a lot healthier.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>next\u003C\u002Fstrong>: \u003Ca href=\"\u002F2022\u002F10\u002Ffda-crawler\u002F\">2021 - FDA Crawler\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>previous\u003C\u002Fstrong>: \u003Ca href=\"\u002F2022\u002F10\u002Fqms-integrity-checker\u002F\">2020 - QMS Integrity Checker\u003C\u002Fa>\u003C\u002Fp>\n",[],{"title":17,"path":18},"The unreasonable effectiveness of i3, or: ten years of a boring desktop environment","\u002F2024\u002F03\u002Fthe-unreasonable-effectiveness-of-i3-or\u002F",{"title":20,"path":21},"Aiyima remote control codes","\u002F2024\u002F01\u002Faiyima-remote-control-codes\u002F",[23,28,33,36,40,43,46,50],{"title":24,"path":25,"note":26,"series":27},"Mapping out Dark Code","\u002F2026\u002F03\u002Fmapping-out-dark-code\u002F","2026",false,{"title":29,"path":30,"note":31,"series":32},"The software that I love","\u002F2022\u002F10\u002Fthe-software-that-i-love\u002F","Series · 36 posts",true,{"title":34,"path":35,"note":26,"series":27},"Navigating the Fog of War: Age of Empires, AI Agents, and the Rise of Dark Code","\u002F2026\u002F05\u002Fnavigating-fog-of-war-age-of-empires-ai\u002F",{"title":37,"path":38,"note":39,"series":27},"The Future of Programming Systems - four thoughts","\u002F2024\u002F09\u002Fthe-future-of-programming-systems-four\u002F","2024",{"title":41,"path":42,"note":39,"series":27},"Always Optimize the Feedback Loop","\u002F2024\u002F07\u002Falways-optimize-feedback-loop\u002F",{"title":44,"path":45,"note":39,"series":27},"\"Security Is Our Top Priority\" is BS","\u002F2024\u002F07\u002Fsecurity-is-our-top-priority-is-bs\u002F",{"title":47,"path":48,"note":49,"series":27},"10x teams","\u002F2025\u002F02\u002F10x-teams\u002F","2025",{"title":51,"path":52,"note":49,"series":27},"Hiring, from the Other Side","\u002F2025\u002F10\u002Fhiring-from-other-side\u002F",1792876808812]