Writing a Kernel
Every once in a while I dust off the code base of a toy OS kernel I'm working on. In the most-working state it's ever been in, if I remember correctly, it's been able to boot from GRUB, write to a text mode console and read the keyboard, enable paging …
This Is Why We Can't Have Nice Things
Generally speaking, everything nice has small market share, and everything with big market share is not nice. This means that, often, we have to use the crappy system to have access to the tools we need, the games we want, etc. Examples:
PhonesLots of market share:Android has no …Side Effects in a C-Like Language
tl;dr: What if there were no global variables or functions or anything else and functions could only access a limited collection of memory regions, hardware, etc.? Programs would be more structured and composable, and potentially more secure.
Most mainstream languages just let you change global state willy-nilly. Change global …Drupal Woes
So, Drupal 7 looked like it might be a major improvement over its previous incarnations. It was, and I think you could probably knock out the functionality of 64Digits v2 in a day or less if you knew your way around. However, like any pre-built CMS it has its problems… …
C++ Templates
… are idiotic of the devil. Not the idea necessarily, just the details. Pop quiz:
double foo(double);
template <class T>
class Test {
public:
void invariant() { member = foo(val); }
T dependent() { return foo(member); }
private:
int val;
T member;
};
Parsing
If the "right way" is to use tools like Lex/Yacc, Flex/Bison or Antlr, why don't any real compilers do it that way?
The arguments I always see for using a parser generator are that "it makes it easier to change/scale up your language later if you need to," "don't …Choosing a Linux Distribution
I've been using Ubuntu for a while and was slightly irritated with it, so a few days ago I decided to go distro-hunting again. I am no longer irritated with Ubuntu.
My first choice was Debian, for several reasons. I love the apt-get package manager, and Debian uses it insanely …Language Design
So, before I begin, how can I update my submissions? Do I just resubmit them or is that not implemented (yet) in v3?
—C is a relatively nice high-level assembly language. C++ is the kitchen sink sitting on top of that, so you can do lots of things with …Penguins
I've been unable to upload the projects I mentioned a couple posts ago; they're probably too big. So instead, I got my current project into a state that I could upload it as a WIP here. It's a puzzle game a la Sokoban or Chip's Challenge- a maze with blocks …
On Game Maker and 3D
So, I'm doing some simple 3D graphics for my latest project. They're not strictly required but they make it look more interesting- it's essentially a top-down game, I just pulled the camera back a bit.
However, d3d_start() flips the handedness of the coordinate system. This flips the room editor upside …