I’m in the beautiful Bay Area this week, being shamelessly wined & dined by some of my favorite people in the ‘verse. As the logic goes: since I’m being exposed to such culinary excess, you should be too. Here, have some pecan pie.
I’ve been griping all too much about this Apache-config thing. Yes, it’s been a thorn in my side for some time, but that was all of my own doing. In my search to take the most systematic, educational approach to understanding what the configuration does, I deluded myself into believing I could grok the entire system. That may be feasible for smaller systems or more immediate coding challenges, but when applied to a massive open-source software project like Apache, it’s foolhardy at best.
The good news is that I realized this, which led me to scale back my expectations appropriately. That done, I was able to accomplish what I had originally set out to do without too much trouble. To recap, I needed to configure the server software such that if I opened a browser and navigated to, say, http://mysite.local/, I would see the website I was developing on my machine. Technically, the default setup does something like this, but I wanted my working site to stand apart from other files on my computer — the goal was to make it appear as if it were actually online. The best way to do this is by setting up it up as a virtual host. What’s a virtual host? I’m glad you asked.
This happens often enough that I feel I should hang the words above my doorway: “When all else fails, use Python instead.” Optional addition: “Like you should have in the first place.”
After learning that educational lesson, shaking my fists impotently, and returning to my lair to nurse my wounds, I decided it was time to approach the problem again. I won’t deny I was somewhat inspired by the recently-released online textbook Making Games with Python & Pygame. I had been eyeing the pygame library for a while (Python being one my favorite scripting languages), and this new resource offered a great opportunity to dive right in. Obviously, the imminent arrival of this term’s final exams played no part in the timing of this project.
Hey, remember that time when I said you shouldn’t set comestible rewards for coding failures? That was dumb. You should totally set comestible rewards for coding failures. And coding successes, for that matter. In fact, you should give yourself that kind of reward all the time! So let’s just pretend I never said that, k? K.
Alright, internet. We have a lot to catch up on. Last time I was here, I was about to start hacking into my Apache configuration files. I’ll get to that in a minute, but first, let’s zoom out to see what else has been going on over the past month. My last post was written and published from the back of a lecture hall during one of the most stultifying courses I have ever attended. Though the subject matter (C++) is interesting, the professor managed to render it into enthusiasm-draining drudgery, leaving my mollified brain with little desire to write code after hours. Moreover, I was just starting on a series of site designs with short, drop-dead-style timelines, a couple of which were in a new content management system. Though the sites look good now, and I have learned that I really like Expression Engine, free time was not in abundant supply. Mere excuses, I know, but there you have it.
This just in: I hate Apache config files. I’ve been trying to set up the server software on my computer, but not only are the directives difficult to sight-read (to use a musical analogy), but the documentation seems particularly obtuse. Maybe I shouldn’t be too harsh; after all, the intended audience consists of professional server administrators. But still! How is someone relatively new to the application supposed to approach it without shooting themselves in the foot? Even when I’m confident enough to try a particular set of directives — and consequently witness it fail miserably — I don’t have any reliable way to debug the setup short of returning to the documentation to find what I misunderstood.
In other news, I can let myself become very engrossed in C++ multi-threading, if only because it keeps me distracted from Apache config files.
Since I haven’t come up with something reliable enough to talk about, it’s time to pull out more food. (Note to self: be wary of this strategy — don’t set consumable rewards for coding failures.) This here is probably my favorite steak recipe of all time. I discovered it late in my college career, when a few friends and I established a monthly “Extravagant Cooking Night.” The “extravagance” in question was variable, but it was a fun opportunity for broke, dorm-kitchen-numbed, but nevertheless enthusiastic students to throw together some meals that we never would have otherwise.
With the beginning of the new term — and, consequently, a new course load — I’ve been trying to work out the right balance between class work and hobby projects. And maybe even spending some time away from the computer (imagine that!). For that reason, I put aside Conway in order to focus on a lighter task: futzing about with the web application database. Though I did get a few tasks accomplished, I was doing just that: futzing. So this update won’t be particularly fascinating, by any accounts.
Rewind to a few weeks ago, and you’ll recall I was discussing the basics of designing and building a database. Primary Keys and Foreign Key contraints and all that. Well, with the database schema (the configuration of tables & columns) firmly in place and tested, I was almost ready to build a very basic prototype/proof-of-concept. All I lacked was actual data to manipulate, which meant it was time to generate some. Verisimilitude wasn’t the top priority here, but I figured, the more realistic the data, the better: the prototype will then provide a better subjective “sense” of how the app works.
Howdy. I’m in Russia. (Ok, not anymore, but I wrote most of this last week.)
I just wanted to get that out of the way, because I think it’s awesome and worthy of attention. Also, it explains why I haven’t been doing too much since around Christmas. I’ve been spending all my time between the opulent museums, palaces, & churches and hidden little corners of St. Petersburg. It’s fantastic and wonderful and I’m having the time of my life. I am not, however, accomplishing much on my computer.
That said, traveling is a mixed blessing when it comes to coding projects. Even though the art and history and architecture and LIFE of the city is distracting, I also spent a lot of time in planes and airports to get here. As it turns out, restricting oneself to 3x3x5 cube feet of space for 22 hours is pretty good incentive to write some programs — games, in this case — offline. Though I suppose Tetris would have been more appropriate given my destination, I used the journey to implement Conway’s Game of Life.