The blog of DAVID KOUŘIL

#WORK update nr. 3

This week I really wanted to see the data. What I had to implement to do this:

  • rendering of a list of ingredients (rather than having them randomly distributed on the screen)
  • make the ingredients selectable somehow
  • mark the day in the yearly view a different color when the selected ingredient has been logged on that day
  • annotations of the yearly view (to be able to orient myself in time)

We went to a Tove Lo concert in Prague this week so I worked some on the train and then a bit over the weekend.

I have to say that I’m really really enjoying this so far. It makes me again excited about writing code that generates something graphical and, more importantly, interactive. The fact that through some simple data and a really primitive code (enabled by the amazing openframeworks library) I can generate some insight (or rather at this point just some entertainment) is the exact reason why I wanted to do visualization, why I went to do a PhD in this. It reminds me of my beginnings with programming, breaking my teeth at setting up SDL, and then jumping around the room when it finally built and I made a rectangle show up on the screen.

Maybe that’s just a coincidence but I’m also getting more inspired in the ‘main work’ project I’m doing (a rework of my rejected paper).

Some ideas for what to do next:

  • indicate when there’s no data logged for the day
  • start making hierarchy of ingredients, eg. carrots, zucchini, potatoes => veggies
    • this captures the concept of tracking on multiple levels (makes it easier and real-world compatible)
  • overlay with ‘status’ data: how I feel, when I have some health issues (headaches, stomachaches, eczema appearance)

#WORK update nr. 2

I’ve spent some time thinking about myfitnesspal this week, deciding if I should use it for the health tracking and visualization project. What I found is that there is an API for which you can register, and there’s also this Python library. In the end I decided not to use it, mainly for two reasons:

  1. I don’t like investing too much into one service/company with my data. Not so much because of security reasons, but rather I don’t want to one day lose it when the API changes, or when the company stops existing.
  2. MFP tracks a lot of things I don’t care about at this moment (calories, nutrients composition). I want to keep it simple and customized.

Keeping things really simple allowed me to actually start coding something. I figured out a system and a format I’m gonna be using to track stuff. It has three levels:

  • small physical notebook, in which I’m writing stuff that I eat throughout the day. This is crucial because for the initial note keeping there needs to be absolutely no format, just write it down somehow
  • google sheet which is basically just a transcription of the physical notebook
  • google sheet where meals are “tokenized” into ingredients

I finally started coding this week. I loaded the ingredient tokens and generated a list of all things (ingredients) I usually eat (and tracked so far):

Just for a start, I rendered them all at random locations on the screen:

I also started to build a yearly view (so far all the months have 31 days). The idea is to select a certain ingredient (or an ingredient group later) and highlight in the yearly view where it has been tracked:

So far I’m using openFrameworks because it’s a familiar environment for me (and I want to learn it more). I can totally see that it might be useful to do this project in a web environment later but for now that would mean learning way too much new stuff.

#WORK update nr. 1

I’m starting to think about what kind of projects I would like to commit to. I keep a list of all ideas I ever have in a notes app on my phone but besides that here are some things from the top of my head I would now want to explore:

  • how to collect personal everyday data and visualize/analyze them in order to improve my health
  • classical mathematics and computer science concepts and methods, things that I’ve encountered while studying at the university but never fully understand (because I only learned them for an exam)
  • learning to use touchdesigner for really visual things, taking advantage of the node-based system to think about it differently than when working with code
  • hardware: arduino, sensors, visualization for that
  • interactive graphics for web (Javascript, threejs and similar): at least basics, to be able to use it for projects when it’s really appropriate

The goals are:

  • improve programming skills, learn to take a project from the initial idea to the technical prototype (which does what it should)
  • get used to seeing coding as an activity that enables creativity, rather than just as something that I do for work
  • learn to finish projects
  • create tools to improve my own (or other people’s) life, augment the world around me using the technical skills that I have
  • explore what kind of software I want to be doing, something that comes out of my own believes and motivations
  • learn to think and write about ideas, present the motivations behind them, document progress

From all the ideas I think the one that deals with my personal health data visualization is the one closest to my heart. I’ve been working in visualization research for a few years now, and it only makes sense that I start using this knowledge, and probably learning way more, by making tools that help me.

The thing is that with any health related application, there’s probably never going to be “one-to-fit-all” solution. Everybody is different, everybody has different needs. So it’s anyway in the hands of the people to keep track and somehow figure out their own health. Why not use computer programs to help with that?

What I like about this idea:

  • the pay off is huge: if I can make something that somehow guides me to learn about how my body works, I can tune it to a potentially great improvement of quality of life
  • it would basically use the knowledge and skills from a field in which I’m currently doing a PhD
    • although I’m in the field in a completely different direction, I still have access to all the materials and people to ask for advice
  • it’s not only about health, but also for sport performance and staying in a good shape as I get older
  • there’s a potential for utilizing an IoT-like ecosystem (and playing with hardware):
    • for example: sensors for measuring dust particles in an apartment

I’ve started with keeping track of what I eat because I suspect that diet has a lot to do with many aspects of a person’s health. The problem that I always found with keeping track of what I eat is that I never know to which level of detail I should do it. This time what I’m trying to do is to a) write it down in a physical notebook (no format, easiest form of keeping a record), and b) track on any level (whatever fidelity I have is better than nothing at all):

I’ve started keeping track of the diet but I still haven’t started the programming and I still have to figure out to which format I’m gonna transcript the manual records.

It’s time to WORK

I’ve decided to make some changes in my life and I’m starting a section of the blog that is just about work.

Up to this point, I’ve been going with the flow in my career. I went to do a PhD because it presented itself as an opportunity, and I can’t deny it—I’ve learned a lot. But since then I’ve realized that I am not as excited about academia and visualization research as I should be. And I really do want to be excited about what I do for work.

That’s what this whole thing is about—finding a new career direction, something where I can apply and improve my coding skills, and, ideally at the same time, do something meaningful and fulfilling to me. I know this sounds like such a typical and privileged wish but at this point in my life I think I still have the luxury to think about this.

My biggest weakness right now: I don’t have much to show for. Although I have some things in my ‘coding portfolio’, it doesn’t reflect the kind of work I want to be doing. That means that I need to put in the work. And that’s what #WORK is about.

In this section of the blog I will be writing every week about what’ve been doing towards my goal of creating software my way. I need to learn a lot, dust off any skills that I have, learn new ones. And I need to finish projects.

Although the goal is finding a fulfilling job, I see this as something to continue even if I get the best job I could ever imagine. In that case, I can still imagine a huge benefit of staying active in side projects, exploring new horizons. Not to be constantly looking for a “ship to jump to” but to keep coding exciting and creative.

I’m a big fan of Ash Thorp. This is me taking his advice of busting your ass in your personal projects in order to get to where you want to be with what you do for a living.

Every week, I’ll be here with an update of what I’ve done, what I’ve read, what inspired me, and whatever ideas I want to explore.

I expect this to become boring at some point (I expect it pretty early in fact). But that’s the point. This is supposed to be the behind the scene, the uncut process reel. It’s gonna be a series of updates which I’m using to light a fire under my ass, to get a small extra push for me to work on things and keep going.

And to finish of, just a reminder of a relevant rule #7: