DONE! I have been doing this since New Years day and I finished. Hooray!
Anyway, today’s exercise was triangle in python. Check to see if the given side lengths form an isosceles, scalene, or equilateral triangle. Not hard although I think I gold plated it a bit. Not as much as a community solution which turned the equivalent of my is_triangle() function into a decorator. Gotta figure out how to make my own decorators some time.
I decided to extend yesterday’s little project, and added an OBJ file loader. I tried adding texture mapping but the texture coordinates don’t seem to be making sense. Granted I just made up a texture so there is that. I also tried loading the Stanford dragon but that was way too slow and I couldn’t make out much since I don’t have proper lighting. I probably should have been using shaders and vertex buffers which is why everything is so slow. Anyway I like the Utah Teapot so it is today’s star.
I decided to continue with the #12in23 here in the far overdue year of 2026. Just a few years out of date.
This month was Nibbly November that wants you to do some assembly language coding. The available options were MIPS, X86_64, and Web Assembly. As you can tell from the title I chose Web Assembly. Mostly because it seemed smaller/easier than the others. Maybe it is but it was still hard. Strings specifically were a royal pain. I am still not sure I did them correctly.
I don’t think I would have had the confidence to try this month’s theme if I hadn’t gone through the GameBoy programming book earlier in the year.
I also thought if I ever tried making my BASIC interpreter into a compiler, then web assembly might be a good target. It is automatically multi-platform that way, you just need a recent browser.
Today, I finished the dreaded Zebra Puzzle in the exercism.org track of PHP. That was the last exercise on the track and got me the Exemplary Expert award for finishing the track. Unlike most languages, PHP passed arrays by value instead of by reference. I never did get debugging working so trying to figure out why my undo stack wasn’t working because of this gave me a long set of headaches.
I also started learning Dart recently. I have now finished 20 exercises and got the Prolific Padawan award. Switching back and forth so much is kind of making the different language syntaxes get confused in my ol’ noggin.
I do kind of want to do something in Flutter. Flutter is a GUI library that lets you write a phone app, web page, or system application all in one code base and uses Dart as it’s backend language. I also saw that Flutter can do games with the Flame engine. If I wanted to do a game jam on itch.io, it would be nice to make binaries for all of the platforms from one code base so that people might actually try out my game. It would also be nice to do something non-trivial as a phone application.
I decided to go for the Slimline September award and started the Perl track on exercism.org. It strangely seemed like the least foreign programming language. It is probably the easiest to set up too.
Speaking of setup, I didn’t get it working right. There was a nice installer for the language itself, but the instructions for getting the packages working did not work, and my version was still older than what they wanted. I even tried on WSL, but that was no better. Eventually I decided I would just work in the online editor. I was only in it to collect the award, and don’t plan to finish it, so the online editor isn’t so bad.
I must say things like references and the type specifiers really threw me off in many ways over and over.
I did the first five exercises and I got …. nothing. I thought it was five exercises for the Slimline September award. After that I decided I had to do the five they wanted, but I was too unsure of the syntax to not bumble forward more until I felt ready. I only did one today and it took me a very long time because of those special type character combinations and references. I guess I really should have read an introduction to Perl or something.
On submitting the code for the sixth exercise however, something happened. I got my award anyway. I also got the Fundamental award for finishing the learning track. I guess the learning track is only five exercises (six if you count hello world). Maybe the Slimline award didn’t count hello world as a proper exercise. (I just checked and Hello World indeed doesn’t count.)
One of the things I noticed is that some of the strange syntax choices in PHP probably come from Perl. The leading $ on variable names for example.
Anyway, here are the awards.
January looks like a free-for all just do five exercises but I think I did far more than five Javascript exercises back in January and didn’t get an award. I don’t think they made a badge for January. Maybe I will count my New Years Resolution one for January. The rest of the months I haven’t done are (with probable picks in bold):
Functional February (Elixer, F#, or Clojure)
Mechanical March (C, C++, D, Go, Nim, Rust, V or Zig)
Mindshifting May (Ballerina, Pharo, Prolog, Red, Tcl (Tickle) or Unison)
Summer of Sexp [June] (Clojure, Common Lisp, Emacs Lisp, Racket or Scheme)
Jurassic July (C, C++, COBOL, Fortran and Visual Basic)
Nibbly November (MIPS Assembly, x86-64 Assembly or WebAssembly)
December Diversions (ColdFusion, Groovy, Lua, VimScript or Wren)
Today I finally finished the GO track with the dreaded Zebra Puzzle exercise. I started on May 1, 2026 and finished on September 2, 2026. Just over four months. I feel accomplished but not really fluent. I have 33 left on the PHP track. Now I can go back to the How to Build and Interpreter in GO and How to Build a Compiler in GO books I put on the back burner until this was done.
Yesterday I got two new awards from exercism. The first is Lackadaisical for completing the “Bob” exercise in five different languages. The Bob exercise is one of the ones I like best. Nice and easy without being pointless, and a little funny.
The other one I got is for doing five difficult problems on the GO track. Yes I did look at my previous solutions on other tracks for most of them. They were still hard none the less. I have just five more problems on the GO track, all of them hard. They are: Book Store, Change, Dominoes, Knapsack, and the dreaded Zebra Puzzle. By that point the PHP track should only be about a months worth left, and I will be hating that I never got debugging working. After that I may take a break from exercism for a bit.
I may try for that badge of the month thing next month too.