Here’s some rambling about where I’m directing my thinking on topics of interest to this blog.
I spend a lot of time programming, and so I spend a lot of time thinking about things that make programming hard. My day job is almost entirely C#, so I have a nice OO language, garbage collected, with decent performance and a strong standard library and good options for handling databases and web services and all sorts of modern things. One of the things that C# does is protect the programmer from a lot of decisions that programmers get wrong, and it does this through garbage collection – you have to go out of your way to escape that system and start making a mess. But! Resource allocation and cleanup for resources other than memory have a problem that looks just like the memory problem – given a reference to some object, can you prove that at some location in code the state of the world must be such that your reference is good? Has the stream been closed? Has the connection disconnected? In very limited usage patterns you can reason these facts through, and the rest of the time you either encrust some awful and verbose edge case handling code on there or you have a bug and it will blow up.
Rust aims to be a “systems language”, which means that it lets you specify what the software is doing down very close to the hardware, like C or C++ (there are assumptions to unpack there), but at the same time be a modern language in aesthetic and in underlying theory, that can benefit from a lot of things that have never been put into practice outside of academic CS. It does this by doing a lot of new things, but the major tool is its notion of data ownership, and how to govern leasing out read references and write references, and then having the compiler enforce that reasoning.
I haven’t had a personal programming project for a very long time – certainly since starting college, I can’t think of software that I worked on that wasn’t explicitly for class or work – but if I find some problem that engages me, I want to tackle it in Rust to see what I can do.
 I have come to the general conclusion that object oriented-ness is the wrong approach for general software design, and what we should be doing is having our imperative languages kill functional programming and take its stuff. Somewhat relatedly, Rust is doing this.
(And its related peripheral stuff for web service and database management)
This one is largely out of professional interest, but EF Core and the new MVC Core framework (whatever they’re calling it now) look slick as hell, and since I’m standing up a new project that needs technologies like these, I find myself really wishing they had the whole thing feature complete already. Sadly last time I dug into it, .NET Core didn’t have anything for managing X509 cert authentication, or EF support for things that are not SQL Server.
It’s not fair talk about revisiting the trilogy if I’ve never played the third, but writing about the design of RPGs has got me thinking about the differences between Mass Effect and its immediate sequel. That got me replaying Mass Effect again. Some day I’ll find an excuse to break down my trite observations on the subject.
Dragon Age: Origins
More revisiting old games. I’m working on a fantasy RPG while largely consuming science fiction media elsewhere, so I got DA:O stood back up again to see what other ideas I can find.
With a new computer and the Special Edition, I’m trying out some mods that I had never played with before to keep the experience fresh (Ordinator + Smilodon for a gameplay overhaul, summoner/warrior instead of stealth assassin for playstile). Also, I’m playing a Breton named Woods, because obscure references are funny even if they’re only for me, and I’m sharing it here because I’m too amused with myself not to.
I had heard good things about Iain Banks’ novels, and so bought Matter. I found it a rough read, and then bought Consider Phlebas which was if anything even less kind (it took me two readings to really like it). Since then I’ve come to prefer Excession, and Surface Detail, and I did actually enjoy Hydrogen Sonata. Now I’ve got hold of Use of Weapons, which in addition to being a Culture novel (read: fantastical post-singularity science fiction, chaotic collision of competing agendas where the protagonists never end up getting what they set out wanting) also offers something else that keeps me entertained: twisty unusual narrative structure.
 Use of Weapons has alternating chapters with titles counting up (One, Two…) and down (XIII, XII…). One expects the structure of the story to be similarly double-ended. House of Leaves also messes with not just temporal order, but the physical act of reading the book, and I love it. I should get around to Cloud Atlas some day as well.