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.
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.
It looks like I got another exercism award. This one is Persistent Perfectionist for submitting revisions for 20 exercises. Today’s PHP was a simple exercise (GO was a hard one). I thought I did it well but when I checked against others they had it as basically a one-liner. So I had to update to match. I couldn’t let that stand when PHP has a dedicated function to do the string translation (it was DNA to RNA by the way).
I am really disappointed by the books I have been buying on Amazon lately.
The WebGL book I got was a mess, there is no complete sample code in the book or on the web that I am aware of and it doesn’t give you enough to boiler plate to do the exercises it wants you to do at the end of the chapter. There are only code snippets in the book. It got me to look elsewhere for code to do the exercises but it disheartened me before I got half way through. I still want to go back and update my python teapot example with the updated code at some point.
My Azure book has an insane font that makes my head hurt reading it. The lower case i doesn’t have a dot on it, making things frustrating to read. It is strangely bold and large too. Also, I am thinking it is not giving me the full meat, this seems a too simple so far. Why do the job applications need you to have five years experience if it is just clicking buttons. I will get back to that one eventually, hopefully it gets better.
My second AI book has me asking why it is even using AI. I know it may be to illustrate a point and their might be savings later but he wants to generate a letter and spends several pages making prompts longer than the letter he is generating to generate the letter. Then he has several back and forth conversations with the AI to get it to not sound like a robot. It would have been much faster to just write the letter. Also when he is done the AI is suddenly blocking out days for a follow up without ever looking at the author’s calendar. <Old man>Do kids these days not know how to write a three to four paragraph letter?</Old man> I am not sure it even has the AI code generations stuff I wanted. I may have goofed up there by not reading the description well enough.
All of that is to say I ordered yet another book (I think I have a problem). This one is for Laravel. I am nearly two-thirds through the PHP track on exercism, and I want to do a project with PHP as a capstone project of sorts. Not sure what it will be yet. Something to-do list-like.
I only have 10 exercises left in GO (all hard, and I will be using prior solutions as a guide, sorry). Then I can start on the Making an Interpreter in Go and Making a Compiler in Go books in earnest.