#programming tag pages

World of Warcraft

These days I don't play much WoW, but when I do I only play on private legacy servers like Nostalrius (RIP) and Elysium. Private servers run older versions of the game, as you would have played years ago when those versions were considered "live" and "retail". The demand for these kinds of servers appears to me to be growing. Nostalrius and Elysium are "Vanilla" servers; that is they run the very first, original, expansion of the game (specifically for client version 1.12).

Rust / Various notes on Rust.

These days, Rust is hands down my favorite programming language. I think traits are a vast improvement over C++'s flavor of OOP and polymorphism; I love Cargo, the included build system and package manager; and overall I just find it a much more enjoyable language to use, more so than even Python. It was pretty difficult to get used to, but the lessons I've learned along the way have been invaluable.

Python / A primer for Python that I wrote.

I wrote this because many classmates and friends had little to no experience with Python before the MATH-340 class. Programming in Python (and in general) will make much more sense if you pay special attention to tidiness, syntax and semantics (what does things mean). In many Java and C++ classes I'd see poorly formatted code, making projects basically impossible for me to read and understand let alone the person who wrote it. But in Python we must be tidy, the syntax requires it. Python is a rare language where whitespace actually matters (every control block must be consistently indented). And lastly, because Python is a language which does not ask much of us as programmers (i.e. dynamically typed) we actually should be more careful in understanding what we're writing and how things change.

Pyright and Pylama for neovim Python development

Switching to pyright 🪨

It turned out that pylsp wasn't all that I thought it was, and I've switch to Microsoft's LSP, pyright. It's job is to do, in addition to a limited amount of linting (which I'll probably turn off), the static type-checking that I was using mypy for, except even better: finally match statement support! This left me to re-include null-ls for formatting with black and isort, and diagnostics with pylama. But there were a few problems.

Writing Python libraries

If working on a library that has some strict lower Python version, e.g. lower than 3.10, then it is a good idea to require pyright locally, to have a local poetry.toml file with the following