by lazyLambda
Unfortunately I have been so busy I didn't even realize that no Galen (that's me) it is not October 2nd and the 7th is not "in the future". I'd also like to pretend this isn't the second time I am writing this, as my emacs autosave file chose to just not. Alas, oh well second time's the charm (lets pretend).
We spent our time this past few sessions focused on refactoring. We had achieved collision detection + handling and rendering. Our code had become full of large functions and it was time to refactor. Personally refactoring Haskell is when I find I most thoroughly gain an understanding of what I am doing. It allows you a moment to scope out from the focused individual problems of how to turn A into B. It can be overdone (and useless even dangerous if using some "programming language" like JavaScript or Python, which I'm told are the best languages ... anyways not going there. It's a lovely exercise because we end up with these visual sections of our domain, where we can see concretely "Ahh! this is what a game loop is" or "this is how rendering happens" we take this type and this other one then bam, by some mapping we get out a thingy. As refactoring can go, we had a bug (the python dev shouts "Aha! I knew it") we witness the balls, from the collision begin to stretch along the Y-axis as time in the program goes on. It allowed for an interesting discussion on how we can use bracket :: m a -> (a -> m b) -> (a -> m c) -> m c
to limit chaos with external resources, for instance in cases where we operate with OpenGL and SDL, we can limit shared resources not being destroyed and then having a new surprising state, the next time we interop with them.
We also gave our community a sneak peek of the "Jenga" framework which is just essentially our infrastructure where we have removed the core Ace logic, leaving a skeleton of a number of IO interfaces, one can plug pure haskell business logic into. Like I mentioned last time, it's really just a lovely combination of awesome libraries that exist in Haskell + some markdown + static building + some libraries of my own.
Most exciting piece, we will begin hosting local events in Kitchener-Waterloo (ON, CA), and quarterly in Toronto. While they will be in-person, anyone can tune in virtually, including presenters.
We are also always trying to find how we can solve a burning desire for Haskell companies, and while it is true that it's hard on it's own to find Haskell devs, it seems eeeeeeeeespecially hard to find Haskell devs who know Nix, and know it very well! Granted, it's obvious, as we ourselves have found troubles with this, it seemed silly to even try to limit past hires to those who know Haskell + Nix. Seems silly to say, as I know they are out there.
I see creating Jenga as being a potential "killer app" so to speak but more importantly, perhaps a way to make it easier for new developers to jump from Project 2: Tic-Tac-Toe CLI -> Project 3: Twitter Clone. The projects from then on being much more indicative of someone being top tier skill-levels (and thus someone who should be an obvious choice to hire).
I almost forgot to mention we released our application to the Android play store and will likely have iOS deployed by next update.