Go home

Learning new things (org-mode and Canvas API)

Posted on 2023-09-18

Wow, I feel like I've been learning a lot of stuff the past few months! Let me talk about it a little bit! :)

Emacs and org-mode

I originally taught myself emacs (with spacemacs) back in 2019 as a way to slow myself down at a software development job. I work very fast and very efficiently, but the reward for finishing all your work is to just be given more work. So, instead, I write testing tools and learn things on the side.

I hadn't used emacs much since leaving that place, but as a teacher I've been frustrated with my assignments: Writing LibreOffice Writer docs is okay for formatting but it's not plaintext so it doesn't look nice in source control. Markdown is ugly. I love LaTeX for when I teach math classes but it's kind of overkill for everything else. Nobody is going to read a .txt file. HTML is the most versatile but also a pain to be writing assignments in it constantly.

I had posted about this frustration on my Mastodon at some point, and someone suggested reStructuredText and someone else brought up org-mode. I bookmarked them for later and eventually came back and realized org-mode was via emacs. So I decided to try it out to just see what the process was like to write something up and export it to HTML and PDF.

Turns out it was actually really easy.

I basically watched one YouTube video on writing in org-mode and have searched the rest as needed. Exporting is easy. And the pages look pretty good. I can embed HTML into my docs to include additional CSS files to clean things up a bit more as well. Great!!

Learning new things always gets me passionate about my work again, and I've been converting my assignment documentation to org files and hosting them in one repository.

Canvas API

Canvas LMS is pretty bad. Last week on a whim I decided to see if I could do a basic API request for a test course I have set up just using a curl command. I figured out how to generate an access token, found the API docs, and successfully duplicated an assignment via the API.

This week I've been expanding that with Python scripts to help automate course creation in Canvas... Manually doing stuff via the user interface is so slow and inefficient and now I am pretty excited that I will be able to automate a lot of it.

Portable Linux

I am 35 years old and I've had back pain for a month now. I don't think that I'll ever wear my backpack again because I don't want to deal with it messing up my back like this anymore. So, instead of carrying my main laptop around (running Linux Mint), I've been trying to find alternatives. (And no, using the work laptop running Win11 is not a valid alternative.)

First I was using my PinePhonePro plus the keyboard case to use as a portable computer. And, bonus points, I can plug the PPP into my work dock via the USB-C port. The PinePhonePro can then display out to a monitor and I can use the mouse and keyboard at my work desk, and that went pretty well. A little slow, but I mostly was in emacs to write documentation or code for programming assignments.

Another thing I've tried is I installed Slax Linux on a flash drive that I keep on my work lanyard. Usually that flash drive just has some portable apps to make my life easier (Dia, CodeBlocks, Geany, other utilities I use a lot). Slax was pretty easy to get up and running and it also saves its state, so you can treat it like a desktop OS. I haven't had a chance to test it out between multiple computers yet but it seemed really nice!


Those are the main new things I'm hyped up about learning. Both improve my work productivity. I love streamlining what I do because once you've been teaching classes for over 6 years you get tired of having to manually set stuff up every semester. And I like consistency, so being able to write some scripts to automate creating Modules, Rubrics, etc. will help with that as well.

Post list

Go home