Still Up

If you can read this, this site survived a server migration. Whether it survives authorial inattention is TBD.

LoCo Discontinuity

Apparently my posts for Friday and Saturday never made it out of draft form, and so didn’t appear on the blog until now. Just in case you were wondering what I was up to after Thanksgiving.

Comments Off

Rickroll with the punches

We’re no strangers to blogs
You know the rules, and so do I
But when I go and check my server logs
I see you hotlinking graphics on the sly

I just wanna tell you all to stop it
Gotta make you host your own

Never gonna give you up
Never gonna let you download
Never gonna host your graphics on my server
Never gonna just sit by
Never gonna let that fly
Never gonna be an idle observer

For those of you now reading this
You shouldn’t notice any thing that’s different
If images in posts now look amiss
Please post a comment and I’ll repair it

But if you hotlink graphics from me
I hope you aren’t too blind to see

Never gonna give you up
Never gonna let you download
Never gonna host your graphics on my server
Never gonna just sit by
Never gonna let that fly
Never gonna be an idle observer

For those of you who don’t speak Astley:

I’ve noticed multiple sites hotlinking images I’ve included in posts here. I don’t particularly care if people take images here and use them for other things — often, that’s how I came by them myself — but I do care when they just link the files directly from here instead of hosting them on their own server. If they want to use my bandwidth to power their site, they can help chip in for my hosting fees.

So, from now on, if some other website tries to hotlink images from here, they’ll be getting an image of Rick Astley informing them otherwise.

If you notice the change somehow breaking posts on this site, let me know and I’ll fix it at my earliest opportunity.


For better or worse, all 30 chapters of my NaNoWriMo entry have been outlined, and starting tomorrow I’ll be pounding them out. I still haven’t quite settled on a title — I have a few ideas, and one of them is just so daring and/or horrible I might actually go through with it. I’ve still got a few hours to decide, though.

The plan is to post the chapters here, one per day, all through November. I hope to go all Howard Tayler and build up a buffer right away, just in case forces conspire against me to prevent me from writing, or at least having readily available Internet access, through the month. I figure I should be able to write two or three chapters on a Saturday or Sunday, right?

I’ll eventually put up an index page with links to each chapter, but for now they’ll just be posted here like anything else I write. I’m not as cool as Renee or Peace, each of whom have set up separate blogs for their stories. But then again, it’s been said that the three great virtues of a programmer are laziness, impatience, and hubris. I’ve got at least one of those working for me right now.

In any event, over on the right you should see a NaNoWriMo word count meter. At least, you will when their server isn’t overloaded and the image actually downloads. That will report my actual total word count, which (unless buffer-fu fails me) may be greater than the number of words posted.


NaNoWriMo is all about writing a 50,000-word novel, or at least a (very) rough draft of one, entirely in the month of November. Assuming that workload is spread evenly across all 30 days, that works out to be 1,666 and 2/3 words per day, every day. Call it 1,667 words, unless you’re planning on having a character die at the end of each day’s allotment, each time with his last word being cut off 2/3 of the way through.

OK, there might be some humor value in doing that, but I’m guessing it would wear a little thin by Week 2, to say nothing of having to teach your word count tool of choice how to interpret fractional words.

Last time I did NaNoWriMo, way back in 2002, I was just making things up as I went along, with little thought to how each day’s work would fit in with the overall structure of the story. As a result, I’d throw in chapter breaks wherever the plot seemed to call for them, and besides that just wrote in 1,667 word chunks. (In practice, more like 2,000 to 2,200, since I had to make up the day lost trying to come up with a story, and after that I didn’t want to ease up on myself until the blasted thing was finished.)

This time around, I’m going to take the approach that most others seem to take, and have each day’s writing be a chapter unto itself, with the goal being 30 chapters that total 50,000 words. This will undoubtedly work better for me this time around, since I do have a general idea of the storyline already figured out more or less, modulo an inconsistency here or deus ex machina there, but I’ve still got about 10 days to work those things out. I can go ahead and outline what basic events happen in each chapter, helping to keep things more or less on track, and avoiding the possibility of having the big epic showdown happen on Day 15.

Unless I wanted to come up with a sequel real quick, of course.

So now, during the planning stages, the trick is to get an idea of how much story can be reasonably fit into each chapter, again to keep things balanced and flowing smoothly. It’s hard to visualize how much text there is in 1,667 words, thanks to the human brain’s inability to have a good intuition of numbers larger than you can count on your hands.

Thus, this post is intended to serve as a calibration device. This post shall be precisely 1,667 words long, according to the word count that WordPress periodically displays off to the side while I type this. When all is said and done, I’ll at least have a visual reference for how much writing I’m getting myself into each day next month.

Of course, if I wanted to be really ambitious, I ought to leave open the possibility of writing more than one chapter per day, queuing up the extras so that you the reader still get them in daily installments. This isn’t entirely unreasonable, especially since November 1 is a Saturday, which in principle leaves more time available for typing furiously than does your average day.

Discipline is the key to winning NaNoWriMo. Blind stubbornness and a willingness to follow through with something that no longer seems like such a good idea also help, but mostly it’s discipline. To enforce that discipline upon myself to ensure that I don’t fall behind the minimum 1,667 words per day goal, I shall hereby set upon myself this constraint:

No web surfing until the day’s writing has been achieved.

No checking the online copy of the newspaper. (And seriously, does Firefox’s spell checker recognize neither “online” nor “Firefox” as properly spelled words?) No reading any of the blogs getting pulled into my RSS feed reader. (“Blog” isn’t in there either?) No following webcomics. And absolutely no, under any conditions, visiting TV Tropes. That server runs entirely on wasted time.

Distractions are the enemy. All distractions must be eliminated to assure that this year’s NaNoWriMo effort is a success. Or at least, not a failure. Victory is decided by the word count, but true success is in the eyes of the reader.

In other words, in case this wasn’t clear already, each chapter is going to be posted here, one per day, all throughout November.

But to really kill off any possible distractions, I ought to also forbid any video games until the day’s writing is in the can. That one could be rough, though. I’m almost through Super Paper Mario, and I’m pretty sure I can finish it before the end of the month, but NaNoWriMo’s going to be taking away time that could’ve been spent playing Mother 3. It’s going to be sitting there, the sequel to one of my favorite video games, taunting me while I type and/or bang my head against the keyboard repeatedly. And from what I’ve heard about the game so far, it’s right about up there with EarthBound.

And how the heck am I still nowhere close to 1,667 words on this post? I’m still mired in the triple digits. The high triple digits, to be sure, but triple digits nonetheless. This is taking longer than I thought, and I’m doing little more than spewing stream of consciousness at this point.

This could be a bad sign for the story. I really don’t want to wind up with a bunch of 900-word chapters padded out to nearly twice that just to hit my daily quota. I guess I won’t know for sure until I actually draw up an outline of the story and see what will be happening in each chapter, but I’m starting to wonder whether I truly have 50,000 words worth of material right now.

And just think, in the original concept of the story, the finale was going to be what I’m guessing will take place somewhere between chapters 10 and 15. A lot more stuff has accreted onto the core story since then, and much for the better, but I would’ve been doomed had I been going with the original concept. Well, I guess I would’ve had to start making up the better/extended version as I went along, without the benefit of having been able to set some things up before the big reveal that would’ve been at the climax.

It’s kind of annoying talking about the story in vague generalities like this, but there’s not really any getting around it without dropping spoilers about key plot points, or committing myself to things that may well change over the course of the coming month. Given that most of the changes I’ve thrown in to the mix so far have improved things overall, I don’t want to cut that off just yet.

Which leaves me wondering just how exactly I’m going to squeeze another 500 words or so out of this post. And here just four paragraphs prior I was complaining about how low the word count was. I’m clearly running out of ideas, so I think I’m going to resort to a complete change of topic to pad things out some more.

In fact, since I mentioned Mother 3 up there not too long ago, I’m going to ramble on about EarthBound until I can finally kill this experiment and weep at how much work this sort of thing is going to be come November.

EarthBound is, at some level, a deconstruction of the Japanese Role Playing Game (JRPG) genre. A lot of the humor in it is playing the standard tropes to the point of absurdity.

For example, in JRPGs the silent main character‘s only “dialog”, per se, is answering a “yes or no” prompt, and usually re-answering it until you answer the correct way. EarthBound also has you answer yes or no to questions like “Pop quiz: a Beatles song, ___terday”. Another area has an NPC rattle off pages and pages of types of nuts, asking “Which one do you like?”, with a yes/no prompt for your answer.

EarthBound also likes to make the reasons you can’t go to the next area until doing something else as absurd as possible. For example, the Onett police close roads whenever anything happens. Later, an inexplicable statue of a pencil blocks your path, requiring you to fund the development of the Pencil Eraser. Much later still, an inexplicable statue of an eraser blocks your path, requiring the development of, yes, the Eraser Eraser.

Then, of course, there is Dungeon Man, the ultimate fusion of man and dungeon. Besides doubling as both dungeon and NPC party member, he is full of signs pointing out the standard tropes in JRPG dungeon design, noting how monsters inevitably move in once you build a dungeon, and how he forgot to put a treasure at the end of a particularly long dead end path.

Speaking of treasure, most “treasures” aren’t found in standard treasure chests. Gift boxes are commonly found lying around dungeons, and let’s face it, those are just as explicable as treasure chests would be. But you can also find items in trash cans, such as finding a hamburger in the trash can outside the Onett fast food place. (Yum!) And when you first get control of Jeff, you have the option of loading your inventory up with cookies, if you don’t mind unwrapping all the presents Jeff’s friend stayed up all night wrapping for a birthday party. (And yes, the friend gets upset if you take any.)

Other things you’ll find in EarthBound: A cave full of five giant moles who each boast that they are the third strongest. A monkey that comes free with a pack of bubble gum. Beating up New Age Retro Hippies. Fighting the kid who lives next door as the part of the final boss.

Bonus tip before I hit 1,667: you can damage Giygas’s first form by Brainshocking him, which oddly doesn’t get reflected back at you like everything else does. If he attacks himself, his attack will bounce off him and hit… him.

And that’s 1,667.

Database FAIL

You know what’s not fun? Having MySQL report that one of the database tables your blog relies on crashed, making WordPress think it wasn’t yet installed, since the “am I installed yet” check relies on that crashed table.

Things should be working again, but if you see any weirdness, let me know.

Lazy Spammers

I see that nowadays comment spammers don’t bother figuring out what markup they need to use to make hyperlinks, so they try half a dozen different formats and hope one works.

They’re also apparently too dumb to not put two dozen spam comments in the same recent post and think that won’t get noticed right quick.

Browsable bzr repository

I’ve finally set up a browsable web interface to my bzr repositories. Now you can more easily track what’s going on in my various software projects without having to actually check out a copy of the repository. In particular, there’s also feeds that track the latest updates. I’ve also added those feeds to the sidebar of my blog, thus letting you keep tabs on what’s going on with almost no effort on your part.

If it breaks, let me know.

New WordPress hotness

Since I finally went ahead and upgraded the site to the latest version of WordPress, I finally made a few tweaks to my ugly-but-functional theme to take advantage of some relatively new features. In particular, the sidebar over to the right is being managed as a series of widgets, instead of all being hard-coded into the theme. Doing that also gave me the opportunity to put up a tag cloud, which I believe all the cool kids started doing a couple years ago. Note that only posts I’ve made since upgrading to 2.3 have been tagged (since that’s when WordPress added native support for tags), so don’t think the cloud is going to give you an extensive archive.

And since I was mucking about in the theme, I also added some CSS that plays nicely with Vim‘s :TOhtml command (with let html_use_css = 1 somewhere in your .vimrc). The result gives me an easy way to syntax highlight the code I post, like this:

#include <stdio.h>
#include <stdlib.h>
static unsigned long long
fibonacci (unsigned int which)
        unsigned int i;
        unsigned long long a = 0;
        unsigned long long b = 1;
        if (which < 2)
                return which;
        for (i = 2; i <= which; i++)
                unsigned long long tmp = a + b;
                a = b;
                b = tmp;
        return b;
main (int argc, char *argv[])
        if (argc >= 2)
                int which = atoi(argv[1]);
                if (which >= 0)
                        printf("Fibonacci number #%u is: %llu\n", which, fibonacci(which));
                        fprintf(stderr, "Must give an nonnegative integer\n");
                        return EXIT_FAILURE;
                fprintf(stderr, "usage: %s number\n", argv[0]);
                return EXIT_FAILURE;
        return EXIT_SUCCESS;

Yeah, hardly the most exciting code for a demo, but easy syntax highlighting will come in handy later.

As with most upgrades, if something broke, let me know.

The System is Up

It appears that the DNS changes have finally started going through. I had hoped that migrating this site to my provider‘s new servers was going to be almost seamless, but so much for that.

I mean, I knew it would take some time between telling my registrar about the new name servers for and those new servers going into effect, but I assumed that the domain would keep pointing to the old server in the interim, instead of nowhere. If I had known that, I would’ve posted a warning beforehand to let everyone know. Sigh.

Well, anyway, the fact that I can access the site without any stupid /etc/hosts tricks is promising.

So, if you’re still having problems accessing this site, e-mail me at my GMail address (, since the usual could also be busted if problems resurface. But then again, if you were having problems, I don’t know how you’d be reading this anyway. Maybe your favorite page vanished during the migration or something.

Anyway, feel free to commence whatever the opposite of a lightswitch rave is in celebration.

Comments Off

Wallace: Behind the Scenes

Out of curiousity, how interested are people in reading about the technical details behind the Wallace rewrite? I could write up a couple posts about some of the technical challenges encountered and/or achievements made since the last update, but there’s not all that much in the way of stuff that can be shown off.

For example, does anyone want to hear about how user input is collected? Or maintaining audio/video synchronization and minimizing audio lag? Or performing caps negotiation with downstream elements in the processing pipeline? (I’ve certainly learned quite a bit on that last one over the past couple days.) There’s interesting stuff there for anyone who wants to know more about writing GStreamer elements or who is just curious about what kind of processing is needed to make Wallace work.

I’ll probably write about some of this stuff anyway, if only to have it out there and Googleable for anyone that’s interested. But if there’s not a whole lot of interest in that sort of thing, that’ll set the bar higher for deciding what’s blogworthy about Wallace development, especially given that there’s a non-trivial investment in time preparing a post about something like that.

At least they’re apologetic

The past couple of weeks there’s theoretically been an uptick in the amount of spam hitting this blog. I say “theoretically” since it’s all getting caught by the spam filter.

All this spam takes the form of a meaningless one-word comment like “Nice” or “Cool” followed by a bunch of (often malformed) links apparently to some sort of automobile sites. I guess I’m supposed to believe the “Nice” or “Cool” makes it a legitimate comment or something.

Anyway, scrolling through the moderation queue to make sure nothing worthwhile got trapped, I noticed that for a few of them, the intro word was “Sorry :-(“.

Comments Off

WordPress 2.1

I just upgraded the site to the latest version of WordPress. Let me know if anything has mysteriously broken.

Baleeted! (or, Return of the Halting Problem)

It seems as though my account on Purdue’s web server has finally been disabled. Hopefully you updated your bookmarks to point to this server by now….

Of course, anything of value that used to be hosted there is also available here. For example, this Dinosaur Comics fan comic on the Halting Problem I made a while back.

301 Moved Permanently

It’s time for a little bookmark-updating action:

Yes, after all that deliberating over a domain name, I ended up going with the one I initially rejected out-of-hand: Why? All the names I liked and that were available were also bizarre enough that I’d have to spell them out anyway. (Fun fact: the word-I-just-made-up is not only unregistered, but as of this writing “rephlogisticated” has zero hits on Google! [That’s right! Phlogiston, bitches!] Hasn’t anyone ever given any thought to undoing the effects of dephlogistification?)

Besides, “kuliniewicz” is in my e-mail address anyway, and for the past few years it’s almost been in all my URLs, so why bother changing? And since “kuliniewicz” is practically a GUID, it’s unlikely I’ll encounter much competition for the namespace.

I’ve migrated essentially all the files I care about from Purdue’s server to my new digs at HCoop, and as you can see, my old blog redirects here now. Nothing else does yet, though, and lots of links in earlier posts here still point to the old site. That’ll be fixed all in due time.

So, I advise all of you to update your bookmarks at your earliest convenience. I figure Purdue will shut off my account sometime during the fall semester, so don’t wait too long.

And of course, if something looks broken over here, it probably is. Let me know and I’ll take care of it.