/* attempt to deal with prototype, bootstrap, jquery conflicts */ /* for dropdown menus */

Jump to content

February 2017 »

19 20 2122232425

The Bag of Holding

4: Adsense


I've sort of been posting a fair bit in here lately, so I figure it'll be easier to keep posting regularly than to go back to posting rarely but with massive entries. At least, that's what this guy Newton keeps telling me - insists it's some kind of law, even. Dunno. I'm not sure I really believe him, seeing as he looks to have been dead for a while.

The cutscene engine stuff continues to go well. I've nearly finished the data loading/representation side of things - the bit where you actually have running code that is storing the runtime manifestation of a cutscene. Basically, it's the input half of the wood chipper: it funnels the wood down towards the swirling blades, and sets off the little warning light if the sensors detect an abnormally high human-arm-to-wood ratio.

OK, maybe that's a bad analogy.

Once all the data structure stuff is done, the next step is to make a few passes over the in-memory "live" data and simplify some timing information. Specifically, the cutscene data format lets you control timings based on the timings of other stuff - so for instance you can have a shot of an exploding freighter that automatically cuts in when the explosion starts, then automatically cuts back to whatever was going on before after the debris cools a bit. You can also trigger a sound effect to play after the third shot transition in a particular scene, and so on. Basically it's just a framework for coordinating timings.

Essentially, what needs to happen is the cutscene engine has to go through these implicit timing references and turn them into hard-and-fast numbers. That way, when the rendering code comes through each frame, it can say "hey look, this event was supposed to begin at 458 milliseconds, and it's now 473. Time to start that event, and maybe fudge it a bit to make up for lost time."

I fully expect the timing resolution stuff to be ugly and messy. I haven't really had much of a chance to plan out the logic side of it yet because I realized last week that I needed to get the data into memory first and then worry about how to traverse it and compute timings. In reality, I suspect that it'll be a lot easier than I think, but it never hurts to be careful - I'm assuming a worst-case scenario and estimating it'll take a couple of days to plan and code the timing logic.

After the timings are done, the next phase is to put in dummy rendering hooks. For the moment they'll just draw little colored boxes to show where things might actually go in the final render. That'll be enough to help get the content creation team introduced to the system, so once that is finished, I'll be putting out an XML schema for the cutscene data, updating the team wiki a little bit, and then sending out a sort of "alpha build" of the whole system.

It might be a little optimistic, but I'm hoping to get all this finished by the end of the week, or at least by Saturday, because after that it's E3 and I'm sure as liver juice not taking work to E3 [grin]

Haven't looked at Milton again since the other night; I did end up staying up a little later than I'd planned and hacked out a couple more tweaks, including fixing the CD drive issue (just needed to hack a quick insmod into the init.d scripts). I would have liked to have had the wiki up for Epoch by the time I leave next Monday, but I don't see that happening, especially not with the broken port forwarding on my router (which still perplexes me quite a bit).

Not sure I'll have the motivation to do much more with that this week, but we'll see.


The E3 materials arrived via postal delivery service today. We get a nifty little red token thingy that we use to claim our swäggenbag upon arrival at the convention center.

The badge design is nifty this year - a lot nicer-looking than last year's. Still doesn't have a sexy RFID thingy in it, but I guess that'd get expensive for 30,000-odd people.

I had been sort of casually disinterested in E3 lately, but as the time draws close, and the promise of crazy revelling and nerdry in downtown L.A. wafts under my twitching geeknostrils, I am positively energized.

Oh $#&%... work. Right.

The Milton Chronicles: End of a Chapter

Woohoo! Everything is finally working. I just crushed a couple of final glitches with some USB support modules, and now it's all golden - 100% error free boot on

I was going to post this from Milton, but then I realized that I don't have a working X-Windows install, and even if I did, the default Mozilla browser that came with the distro totally blows. Since I never really did get the hang of text-mode web surfing, I'm posting this from my Windows box instead.

But Milton lives, and lives strong.

Remaining stuff to do:
  1. Fix the fact that the CDROM drive still won't work under 2.6... stupid thing. Must have missed a module.

  2. Hack up the boot process so it doesn't load all the crufty excess daemons that I never need, like printer services.

  3. Lock down the security and get things ready to go live

  4. Install Webmin

  5. Install Apache

  6. Install PHP5

  7. Install MySQL

  8. Think long and hard about installing Ruby and redoing my web software in Rails...

Right... bedtime.

The Milton Chronicles... again!

I cannot believe how stupid I am.

All this time, I've been trying to solve the oh-so-difficult problem of how to get updated tools and drivers onto my 2.6 install when the CDROM and NIC drivers are both barfing profusely.

Well, duh... I still have a working 2.4 install, and both are booting on the same exact filesystem. So all I have to do is boot to 2.4, get the packages I need, reboot in 2.6, and install them.

Maybe I should hold off on trying to finish this until I'm actually awake.

Milton part 4b

Ahhh, now I remember the problem I had before.

The problem, to put it briefly, is that there's a really important package of programs called module-init-tools. This package was updated between kernel versions 2.4 and 2.6, except nobody bothered to include the updated version in the kernel package itself. The result is that, if you upgrade from 2.4 to 2.6 and don't manually upgrade your module-init-tools beforehand, you're buggered.

Since my NIC drivers need a module to run, I have to have working module support. But I can't get it without updated module-init-tools. But I can't update anything without Internet access to download it, which requires a NIC. Linux is like a giant Catch 22 waiting to happen.

Thankfully, I've got a CD burner and lots of spare coasters.

Unfortunately, my kernel for some reason refuses to mount CDs.

I'm starting to question my use of LAMP and wondering why I haven't just switched to running ASP.Net stuff straight off my existing (and stable) Windows servers.

Milton part 4, finally!

Well, I've finally got a working kernel. Now comes the really icky bit: solving all the little glitches.

The first main glitch is with my NIC; for some reason it's giving me bogus errors about eth1 not having a valid wireless ESSID, which is really bizarre, seeing as I have no eth1 device, let alone a wireless device of any kind. I'll have to figure that out and squish it.

The next annoyance is that modprobe is whining on boot for some reason. No idea what that's about; probably going to take a few minutes with Ye Olde Googlemeister to solve that one.

While waiting on things on Milton, I started poking into the broken server issue. It looks like, for some reason, my router is not doing NAT correctly; Ethereal reports that connection packets are indeed arriving from The Outside World, but they're being discarded by the network stack for having invalid checksums. Buhhh? So that'll be another fun challenge to solve... but probably not tonight, seeing as I'm already pretty tired and don't feel like being a total zombie tomorrow.

So... let's see what kind of progress can be made on getting this sucker to boot cleanly as a 2.6 box. I'll consider it a successful night if I can get a clean boot before I pass out. Tomorrow I'll see about starting to download, build, config, and install Apache, PHP, MySQL, and all that cruft. I'll also need Webmin, because frankly no Linux server should exist without Webmin.

Milton part 3(still?!)

Ha! Ha! I'm compiling the Linux!

You'd think I'd never done this before. In fact, I made this exact mistake last time, too. I forgot to compile ext3 support into the kernel, which leaves me with an unbootable system.

Thankfully, I've long since learned something with Linux kernel hackery: never, ever, ever, ever remove stable kernels. So I just have to pick the other GRUB option and rebuild my kernel again. Hurray.

Stay tuned... sometime this year I might actually get a booting 2.6 box [rolleyes]

Milton part 3c

After a rather long interlude for Real Life, I'm back on the task.

Being the forgetful and generally less-than-competent moron that I am, I forgot to do a modules build when I did the kernel compile. So naturally, my first attempt at booting didn't go real far, since I had it configured to stick all the interesting functionality in modules. At the moment, I'm watching the modules compile scroll across the screen.

I'm kind of annoyed that the kernel README still talks about LiLO as if people actually used it. GRUB is such a far superior bootloader that I'm frankly put off by the anachronistic adherence to LiLO in the kernel notes. The way I see it, GRUB is basically the de-facto bootloader for Linux these days, so at least the kernel docs could describe the procedure for doing a GRUB setup rather than just assuming you're on LiLO. Of course, for me, the point is kind of moot, because I can do the GRUB config by hand. But it's the principle of the thing. Yet another reason why the Linux philosophy will prevent it from ever taking over the world.

So anyways... something boring to brood on while I watch the build process.

(On a totally unrelated note, RfaD was amazing. Absolutely brilliant film. If you've got a strong stomach, definitely see it.)

Milton part 3b

Kernel compile begins: 7:06PM EST.

I now leave to do something not mind-dumbingly dull - namely, watch Requiem for a Dream.

Milton part 3

OK, maybe my rant was premature.

As of right now, I'm successfully downloading the kernel (make that done downloading). So either the most-recent nForce drivers are less sucky than the last time I did this, or the real pain is that they don't work properly on 2.6 kernels. I'm re-downloading the freshest build from nVidia just to be safe - it looks to be a couple months more recent than the copy I found lurking on one of my old Miscellaneous Junk CDs.

So... maybe this will go nicer than last time. But before I jinx all of that, I should go make sure that I can actually build and deploy properly...

Oh, and screen is just bloody amazing. I swear, if I didn't have a dual-head box for Windows, I'd want something to emulate screen. Nothing is quite as handy as going between install docs and the actual install process with a single key combo.