here's a "little" video showcasing stuff (roughly the first half) and ideas (the rest): https://youtu.be/VxjLTERtDaw

so, how'd that go?

expectation: have a nice, usable, polished note taking app by the end. (yes, really)

reality: I have re-learned what it means to prototype, to jam. Working all by myself on my "ambitious" projects, I may or may not have lost touch with reality, a bit. I'm really looking forward to working on my projects again and just producing crap until I know how to make them proper.

One thing, that has been very enjoyable, was working with javascript and the browser. Shocking, I know. Recently I've explored dynamic programming languages and why people like them. The freedom they give you is perfect for jam projects, or perhaps for prototyping in general.

For example: In my note app, when a new Text node is created, the focus has to switch to the new node's widget. But that widget doesn't exist until the next frame, so how do you tell it to grab the focus? It's not impossible, of course. But I didn't want to rabbit hole on figuring out how to do that in a decent way. So what I did was: I just put a field "is_next_focus = true" on the Text node data object. When the widget for the node is created, it just checks that field (if it doesn't exist, undefined => false). Not a good way to do it, of course. But, all it took was 2 lines of code and I could move on from that unexpected hurdle to focus on actual problems.

So when doing this for real, what will I do differently?

  • Use a static language after some more prototyping. Not because js was a bad choice, but because I want to have more confidence in my code for a real version.
  • Write my own little web framework (boy, that was a whole nother thing). Sadly, the browser still is the right choice, because I don't really want to do iOS programming.
  • Other than that, the things I have implemented turned out roughly as expected. So that was nice.

Cool, thanks for the awesome jam!