About

The Craft of Coding discusses aspects of programming – coding, testing, style, algorithms, problem solving. It focuses predominantly on coding in C, Python, Julia, Processing, Ada, and the legacy languages Fortran and Cobol.

My name is Michael Wirth and I teach in the School of Computer Science at the University of Guelph. My specialties are programming languages, legacy programming, digital photography (as it relates to computer vision/image processing), and food history related courses. My areas of interest include recursion, Fibonacci numbers, analog and digital photography. At the moment I’m transitioning to retirement in January 2025.

While living in a world dominated by information, I am somewhat of a technological Luddite. My thoughts are summed up by a quote by E.F. Schumacher (Small is Beautiful) “The system of nature, of which man is a part, tends to be self-balancing, self-adjusting, self-cleansing. Not so with technology.” In my spare time I cook and collect cookbooks, build things, collect and restore woodworking tools, read books, and dabble in both film and digital photography.

I don’t do any research anymore per se. I am working on some stuff, but it’s mostly related to analog and digital photography. For instance I’m looking at how radioactivity exists in vintage photographic lenses. I’m interested in historical aspects of things, and not really “academic” type research – it’s often boring and somewhat limiting. If you are looking for photography related posts, I have now a new blog pixelcraft.photo.blog. The goal of this blog is to provide well conceived, easy to understand information about photography, both film and digital. It specializes in the use of vintage lenses on digital cameras.

If you’re interested in travel, food, or life related stuff, I also write a blog called despitethesnow.wordpress.com

If you’re interested in woodworking, vintage tool-related info, and stuff related to working by hand, then try workingbyhand.wordpress.com

PLEASE NOTE: I AM NOT TAKING ON ANY GRADUATE STUDENTS (MSc or PhD). I am now partially “retired”, and what little research I do does not require any graduate students. Repeat, I’m not taking on ANY graduate students. Don’t even email me, because I will just delete your email.

NOTE: The “LANGUAGES” page has information relating to programming languages. The PRACNIQUES page contains solutions, and case studies  to various programming problems. I have also expanded the blog to talk about issues related to technology and image processing.

4 thoughts on “About

  1. Hi,
    I have read one of your article regarding memory layout of C, in that you mentioned maximum stack size is 8MB, is that 8MB is contiguous?

      1. That’s almost always true in existing C/C++ runtime libraries, but there are some notable systems that grow stack on demand, and use this for efficient coroutine implementation. Microsoft Research’s Midori was such a system – essentially a reimplementation of the entirety of the Windows OS running as managed code, in a CLR-like environment. It was running in managed, garbage-collected mode all the way to the kernel, and it worked great apparently.

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.