Thursday, December 31, 2009

EDuke32: I just couldn't wait...

After downloading the High Resolution Pack (HRP) installer, which includes EDuke32, high res versions of all the textures, and the Duke Plus mod that enables many more things than Duke Nukem 3D ever had in it, I just had to install it.

Then I just had to run it.

Then I just had to play for a while.

When you start it up, you'll get a window that looks similar to this one: (The HRP installer isn't updated quite as often as the core engine installer, so it comes with an older version of EDuke32 than the most current one available)


You won't really need to do much on this window other than hitting Start unless you want to enable Duke Plus, which is enabled in my screenshot.

Once you're in the game, you can (and should) thumb through the options. You can play around with the graphics and sound and everything and tweak it to your liking. Most notably, turn that resolution up.

The high resolution graphics are way better. They take a while to load at the beginning of each level, but I think the vastly improved visual experience is worth it. The old school 2D sprites of enemies are replaced with 3D models. Since I can easily turn the high res stuff off and back on again (there's a toggle in the options), here's a few side by side comparisons of good old E1M1, Hollywood Holocaust. I've customized the HUD and the crosshair a little but other than that these screenshots reflect EDuke32's default options. Both screenshots of each location were taken without moving between taking them.


The spawn point. The texture difference is huge, just look at the wood floor.


The theater, with the film turned on. The difference in the quality of the film is like night and day here. This screenshot also shows the much better overall colors in the high resolution graphics vs. the original graphics.


The bathroom. Screencapped through the mirror for fun. You can clearly see the difference between the 2D sprites and the 3D models here. They might be difficult to see, but the hand dryer and urinals are 3D models as well.

Just like other source ports of other popular old 3D games like Doom Legacy and D2X-XL, EDuke32 allows you to run the game in higher display resolutions than the original engine did. My only gripe regarding this is that it sets my refresh rate to 60Hz, which I can see refreshing. Fortunately, in eduke32.cfg there's an option called MaxRefreshFreq that you can change from 60 to 75.

EDuke32 packs a whole slew of new options. Mouselook is enabled by default and the mouse sensitivity is very configurable. Everything is configurable through its in-game menu, there's no need for the old setup.exe from the old one.

I guess I should talk about that. The installer (for the HRP at least, but I'd imagine that the regular installer does this too) asks at one point if you want to search for the original game's data file, duke3d.grp. If you hit Yes you can tell it where to look and it'll automatically copy it to the right place. Then when you run EDuke32 everything just works. This is in direct contrast with the setup for D2X-XL, where you have to manually move files around into their appropriate directories, and if you want high resolution textures you have to download and decompress like 5000 files separately.

I mentioned that the HRP installer includes a mod called Duke Plus that adds even more stuff. Duke Plus adds all sorts of effects like rain and snow, extra weapons like an SMG and a Gravity Gun (hi there Half-Life 2), movable objects, soda machines that vend health-replenishing soda, grabbable ledges (you can grab a ledge and then move on it to cross a pit, or use it to jump up to higher places), working ladders, and a ton more stuff. It's completely optional but it really does add a lot to the game. It has its own series of levels that show off what it can do, so just start it with Duke Plus selected in the custom game content dropdown (see the startup window above) and then hit up the Duke Plus Levels episode to try it out.

Something I noticed while taking the in-game screenshots: It saves them in .tga format. Photoshop handles them just fine, so it didn't really bother me when I was making the side by side comparison screenshots. I don't think there's an option to make it take .png screenshots instead, which kind of sucks. Luckily, there are free image manipulation programs available on the internet that you can use to convert your screenshots to a more usable format. If you want to travel the open source route, try The GIMP, and if you'd rather have something else try Paint.NET.

The verdict: Hail to the king baby! Duke Nukem 3D running natively on modern operating systems = instant win.

Wednesday, December 30, 2009

Just in time...

The snow is almost completely gone, and I can most definitely go to MAGFest. I haven't packed yet, but that's always the case. I never pack for a trip until right before leaving. It always works out, so... I'll keep doing it.

Since Jon St. John (The voice of Duke Nukem) will be there, I'm going to take my copy of Duke Nukem 3D Atomic Edition and see if I can't possibly get it signed. This also reminds me that I still haven't set up EDuke32 yet. I'll download it now and set it up at MAGFest or something.

I signed up for staff shifts nice and early when I could take my pick, and the result is awesome. I have one two hour shift each morning at 2AM and then both LAN teardown shifts. Due to how they're weighted, they count for enough to get me all the staff perks. I'd have an exact number but the staff system is down since it's being moved to the hotel.

What this means is I'm basically free to do whatever I want during the day, then staff a couple hours and maybe get some sleep or something. I chose my particular shift timing so I could go to the concerts. I've been missing out on most of them, so I decided this year that I'd just go to all of them.

To make this easier I have a package of earplugs. This way I can enjoy the concerts without going deaf. Most people put them in wrong and thus have them sticking halfway out of their ears, and then claim that they don't really work very well, but most if not all soft foam earplugs come with directions that show you exactly how to put them in.

If not, it's simple: Roll one up between your fingers. Pick an ear. Reach around your head with the opposite hand, grab your ear, and pull it back and up. This straightens out your ear canal. J-J-Jam it in there (carefully, don't want to damage anything!) and repeat with the other ear. To remove, twist it as you pull it out slowly. The ones I have are rated at 29dB noise reduction, so I'll be good to go.

All I really have left to do in preparation other than packing is topping off my gas tank, which can either happen this evening or tomorrow before leaving. I'm really trying to avoid having to drive anyone back this year. No offense to the guys I've driven back the previous few years or anything, but I'd really just like to be able to get back to Charlottesville, go home, and go to sleep.

My computer's going with me. I'll have it in the LAN room. Depending on how bleak the internet situation is there (we thought everything was set, then a couple weeks ago it all fell through, but we have another plan now. Just not sure what the new plan is...) I might be able to post, but I probably won't. There'll still be a summary post afterwards, that I'll probably work on during the event because afterwards I usually have a hard time putting it into a definite series of chronological events. That sort of thing happens when you're experiencing high levels of awesome.

Tuesday, December 29, 2009

Classic DOS Games: The 7th Guest

I've mentioned running this game in DOSBox a couple times, but here's a post dedicated to it.


Since this is a full retail game with no demo, I can't just provide you with a link to obtain it. I'm trying to stay legal with these posts.

A few important notes pertinent to running this game in DOSBox:
  • I find that I have to increase the cycles to about 10000 with Ctrl + F12 for the game to run smoothly. You can set this in your config file so you don't have to do it every time you start the game up, this is even easier if you have separate config files for each game like I do.
  • The game will capture your mouse pointer when you click, so press Ctrl + F10 if you need it back.
  • Since the game is on two CDs and you will need to switch partway through the game, if you're running it using .iso images (as I am) you can mount both of them at once and swap when appropriate using Ctrl + F4. Inspect the usage of the imgmount command. Again, you can set this up in your config file if you have separate config files for each game.
Now on to actually talking about the game.

The story of The 7th Guest, though laced with inconsistencies, goes somewhat like this. Henry Stauf was a poor man who had resorted to crime. One night he dreamt of a doll. When he woke up, he remembered the doll and created it. He gave it to a bartender who said his daughter might like it. Then he dreamt of another toy and made that. People loved his toys, and so he built a business around them.

Then, defying any remaining sense of logic, a virus hit and killed lots of children, who died clutching their Stauf toys.

There was one more dream, of a mansion that Stauf eventually built. This is where the game is set.

The cinematics are all of past events that took place within Stauf's mansion, and the people you see are rendered brightly and slightly translucently, giving them the appearance of ghosts. This is only one small element of the horror. Everything about this game tries to creep you out. People's faces will turn into skulls, there's blood everywhere, and plenty of things happen suddenly.

The core gameplay is a point and click free roaming puzzle game, kind of like Myst except a lot creepier. The comparison to Myst brings up another point: all of the graphics in the game are beautiful for a game of its age, due to the fact that they're all prerendered. Today's computers would have no problem rendering the Stauf mansion in real time, but back when this game was released, the only way to get graphics of this caliber was to prerender them.

As you explore the mansion, you'll discover the puzzles. There's one in each room, and you have a map that uses shading to tell you which rooms are accessible and which rooms you've solved a puzzle in. To aid you in getting around the mansion, there are secret passageways everywhere. One of my favorites is the pocket of the pool table in the game room that takes you to the inside of the oven in the kitchen. I'll leave the rest for you to discover.

Below the house is a giant crypt. It's very easy to get lost in if you don't know the way. There's a puzzle you have to solve just to enter it, and a puzzle to solve at the end of it as well. Somewhere in the mansion you can find a map of it, you might be wise to look for it and maybe jot it down or take a screenshot (Ctrl + F5 in DOSBox).

Most of the puzzles are fairly standard puzzles, ranging from placing eight queens on a chess board such that none can capture any of the others, to rearranging cans that have letters on them to figure out what the message is, to more cryptic things like turning lights on in a toy building in a certain pattern. In at least one of the puzzles you're actually playing against Stauf. The most notoriously difficult puzzle in the game is the microscope puzzle. I personally have yet to beat Stauf on this puzzle, but it is possible.

If you get stuck, the book on the table in the library will give you hints. Using it three times will solve the puzzle for you. So if you really just want to turn your brain off, you can just use the book to progress through the game.

As you go through the game, it's only natural that you may find that you really like one or two of the puzzles and want to do them again. Fortunately, there is a way to do this without having to start the game over and get back to that point again, or anything else weird or cumbersome. After you beat the game, it creates an open house save where you can explore the house freely and solve any puzzle you want.

Speaking of saves, you can save at any given time. You can't save puzzle progress, but it'll reload you right at that puzzle. You get plenty of save slots, so if someone else wants to start the game from the beginning just have them use a separate slot. The slots are numbered, but when you choose one you can give it a name.

The mouse pointers add to the creepiness too. Your basic mouse pointer is a skeleton hand. It will wag a finger when you can't do anything, it will beckon when you can go somewhere, and it'll turn into a skull with moving eyes and pulsating brain when you find a puzzle. There are eyeball cursors as well that show up when you're selecting things to move or place or use in a puzzle.

I often confuse elements (particularly the puzzles) of The 7th Guest with those of its sequel, The 11th Hour. Both are set in Stauf's mansion, but the puzzles are all different and The 11th Hour has a lot more stuff to do. I'll touch on The 11th Hour in a later post, though I will say this now: even though they're still prerendered, The 11th Hour's graphics are much better.

Sunday, December 27, 2009

Completely late wallpaper update

Yeah, this is this year's festive wallpaper update. I was hoping for more wallpapers, they never appeared, and then I forgot entirely because I had breakfast burritos on the mind. I don't even know if this qualifies as a "festive wallpaper update" since less than half of the wallpapers are actually festive.

Regardless, have some fukken wallpapers. Also, there's a nude filter in here, so if you don't like that sort of thing, don't look at it.


There will be another Classic DOS Games post before the end of the year, I swear.

Saturday, December 26, 2009

Melty Blood: Actress Again

Engrish title aside, the latest (and from what I've heard, it could be the last) installment in the Melty Blood series is pretty cool. It has several new characters and a couple new gameplay twists to add to its depth and variety.

Aside from balance changes and new moves, there's one important new thing that you'll notice right away: styles. When you choose your character, you now get a choice between three different styles. These change various aspects of gameplay for your character.

Crescent-Moon Style: Balanced. If you don't know what to choose, choose this style. It's the most similar to Act Cadenza/Re-Act Final Tuned. If you've played either of those, you'll be right at home here.

Full-Moon Style: Offense. You can charge your gauge by holding A+B+C (the same combination you press to enter Heat and Blood Heat), but you're vulnerable while doing so. Charging begins slowly but if you keep the buttons held it speeds up. Regular Heat is not available. Move lists are adjusted slightly.

Half-Moon Style: Defense. When you shield against an attack (D button), you automatically counterattack. Your gauge only goes up to 200% instead of the usual 300%, and when it maxes you enter Heat. Max Heat and Blood Heat are not available. This means no Last Arcs and no high power version of your character's Arc-Drive, since you have to be in Blood Heat to do either of those. Move lists are adjusted slightly, but in a different way from Full-Moon Style.

The style someone is using is denoted by the moon icon next to their character portrait. The icons are fairly obvious, so you can easily tell at a glance what to expect during the fight.

Going through arcade mode, as is necessary to unlock the hidden characters, I discovered some of them have Dust of Osiris as their end boss. Since that means nothing if you haven't already fought against her, she stands on the hand of a large monster that takes up the entire screen. She deals tremendous damage and you're always within melee range of her. When her Magic Circuit is charged all the way she almost always immediately uses her Arc-Drive, which can't be blocked (it can be shielded if you time it right). This Arc-Drive deals massive damage and is usually enough to finish you off, though on a few occasions I've survived it.

Thankfully there's a fairly cheap strategy that makes beating her easier. Jump in the air and spam B and C. Occasionally she'll knock you back, push towards her and hit a button to recover and launch yourself back at her. Keep spamming B and C and you should win. Luckily, you only have to beat her once, whereas she still has to beat you twice.

There are also several new characters, some of whom need to be unlocked. Here's a combination list of both new and unlockable characters. In no particular order... (usually when someone says "in no particular order" there is in fact an order, but here I just listed them randomly)

Riesbyfe Stridberg is kind of slow, but powerful. She has a cello shield thing that's also her weapon. She's the only new character I've gone through Arcade mode with so far.

Tohno Akiha isn't new, but there's an unlockable school uniform version of her. This version plays somewhat differently from her regular version. To unlock this version, complete Arcade Mode with Tohno Akiha and Akiha Vermillion. Order doesn't matter. Sounds easy, but involves beating Dust of Osiris twice.

Kohaku & Mecha-Hisui, despite being named like Hisui & Kohaku, aren't a tag team character. Instead, half of the move list (and the d-pad and attack buttons) controls the primary character, and the other half tells the other what to do. To unlock them, complete Arcade Mode with Neko-Arc (who is unlocked by default this time around).

Neko-Arc and Mecha-Hisui also aren't a tag team character. They work in the same manner that Kohaku & Mecha-Hisui do. To unlock them, complete Arcade Mode with Miyako.

White Len is playable on some of the PC versions, but to my knowledge this is the first console version she's playable on.

Michael-Roa Valdamjong uses lightning and is quite annoying to play against in Arcade Mode. I haven't yet played as him.

Ryougi Shiki I would imagine playing fairly similarly to Tohno Shiki and Nanaya Shiki. She's holding a knife in her character portrait, so... yeah.

Archetype Earth Arcueid I haven't actually unlocked yet, so I can't really comment except to say that she's the only playable character that uses the Eclipse style. This style, among other things, automatically charges your Magic Circuit over the course of the battle. According to GameFAQs, complete Arcade Mode with all characters to unlock her. Some people on the message board for the game also report unlocking her when completing Boss Rush mode without continues.

Neko-Arc Chaos is unlockable and plays like a weird combination of Neko-Arc and Nrvnqsr Chaos. How the hell are you supposed to pronounce Nrvnqsr anyway? I just say "nerv-en-q-sir". To unlock Neko-Arc Chaos, complete Arcade Mode with Hisui and White Len. Order doesn't matter.

I briefly mentioned Boss Rush mode when talking about Archetype Earth Arcueid. I'm not entirely sure what the condition for unlocking it is. I got it after unlocking all unlockable characters other than Archetype Earth Arcueid. In Boss Rush mode, you'll have to fight against a series of characters that all use Eclipse style.

The character select screen has the costume selection mechanism from the PC version of Act Cadenza ver.B, where you can freely move about the 36 available colors for each character. This is way better than the PS2 version of Act Cadenza where you just had to hit Triangle to cycle through them, and if you went past the one you wanted you had to continue hitting Triangle until it came back around.

I'm not sure if this is a new mechanic or not, but you seem to be able to dodge attacks if you push down+A+B while on the ground.

Now don't mind me, I'll go back to whacking explosive balls around the screen with Half-Moon Style Kohaku...

Friday, December 25, 2009

Breakfast Burritos

I spent a while doing painstakingly delicious research trying to arrive at a good recipe and I think I've finally got it. This recipe will prepare ten of them, with a serving being one or two.

Ingredients:
  • 20 strips of bacon (I use Oscar Mayer Lower Sodium Bacon, 2 strips per burrito)
  • 5 eggs (one egg for every two burritos)
  • 10 Tortillas (I use ¡Tam-X-íco's! whole grain tortillas because non-whole grain anything sucks)
  • Shredded cheese (I use Sargento 4 Cheese Mexican, no definite amount per burrito, just "not too much". Normally I'd say there's no such thing as too much cheese, but we actually want these to roll up)
  • 1/4 cup Milk (I use skim milk, because whole milk tastes weird. Doesn't scale as linearly as everything else when making more/less)
Let's go! These directions work best if you have a friend helping you, but that friend will probably want some breakfast burritos in return...
  1. Start by cooking the bacon. For burrito purposes you'll want it to be chewy, not crispy. This way it doesn't interrupt the soft texture of the eggs, cheese, and tortilla.
  2. While the bacon is cooking, crack the eggs into a measuring cup and add the milk.
  3. Break the egg yolks and stir your eggs-milk mixture until it's consistent.
  4. When the bacon is done, pour the eggs into the bacon grease and stir slowly with a spatula to scramble them.
  5. Stack your tortillas on a plate, with a paper towel between each so they won't stick together. Microwave for 15 seconds. (1200 watt microwave)
  6. Remove the eggs from the heat. Split them up as best you can into ten small piles. They will look too small, but that's ok. Once you put a burrito together you'll realize that one of those small piles is plenty.
  7. Put together one burrito:
    1. Put one pile of eggs on a tortilla.
    2. Add two strips of bacon, and some shredded cheese. Don't go too crazy with the cheese, you'll need to be able to roll this up.
    3. Roll up the tortilla. This can be difficult, so I'll try to explain how:
      1. Push all the toppings to one side of the tortilla, then rotate the plate so the toppings are close to you. The bacon should run parallel to the edge of your counter, not perpendicular.
      2. Fold over the left and right sides of the tortilla, angled so that they're folded over farther on the side with no toppings.
      3. Slowly and carefully roll up the tortilla. The tapered sides should gradually un-taper, this is normal.
      4. Apply slight pressure to hold the burrito together. This is only really important if the tortilla tore at all while you were rolling it up. The rest of the time it just serves to make you pace yourself.
    4. Place the now finished burrito aside. Set it down on the flap so it won't unroll.
  8. Repeat the construction and rolling process until all burritos are made.
  9. Place all burritos in an oven-safe pan and bake at 350°F for 6 minutes.
  10. Carefully free the burritos from the bottom of the pan with a spatula. Optionally arrange them on a serving plate.
  11. Serve and enjoy. Refrigerate any extras and enjoy them later.
I designed these to be small enough that they can be eaten alongside other food for breakfast, but yet large enough that you're satisfied when you finish them. It's a delicate balance, and I think I achieved it.

If you want them to be bigger, that's no problem. You'll need bigger tortillas, and you should double the amount of eggs per burrito (at the least). You may find it necessary to add some more bacon to each one as well. Another viable alternative is breakfast soft tacos, in case you really suck at rolling tortillas or are just plain lazy.

Also, these things are awesome with some hot sauce on them. Choose your favorite. I go with Tortugas' Lie Habañero Peppa Sauce because it fucking rocks.

I served these to my family this morning and they were very well received. I observed seconds being taken. Of the ten I made, there was only one extra, and 5 people were eating them, including myself.

Thursday, December 24, 2009

Just a friendly reminder...

Corn syrup doesn't keep forever. Here's an example.


My dad pilfered this from my grandfather's refrigerator a while back, and for some reason we kept it around. By our estimation it was either purchased in 1984 or 1985. If it isn't obvious from the picture, it's a glass bottle with a metal cap, instead of the plastic bottle/plastic cap Karo uses nowadays. I took a picture of it so we could finally toss the stupid thing in the trash.

The more you know.

Sunday, December 20, 2009

Snowed In

So most of Virginia has been hit by the biggest blizzard in over a decade. We got about a foot and a half of snow here in Charlottesville. Since pictures of things covered in snow are cool (no pun intended), here's a few pictures.


The back porch. The snow is piled up higher than it actually should be, I think most of it fell off the roof. That and my dad did some slight shoveling so the snow wouldn't be right up against the house.


Plenty of trees in my back yard to get covered with snow. None have fallen down, thankfully. Though a week or so ago, when the weather was perfectly fine, a random tree fell down and took out a portion of our neighbor's backyard fence. They still haven't gotten it fixed.


The front sidewalk. My mom has this thing for going out and shoveling while it's still snowing, so now we get to tease her since three or four inches fell after she shoveled.


My dad's truck, and a few trees. Maybe later I'll put my snow boots on and get pictures of some of the trees. Who knows.


My mom's car, on the left, and way in the back you can see a vaguely car-shaped pile of snow that's covering my car. That's an all-weather American flag, that my parents like to leave out year-round. You can barely see the top of my mom's UVa banner thing.

All I can say is, this shit better melt off before MAGFest. Actually, if it could melt off enough for us to go to the store next Thursday and get our usual week's worth of groceries, that would be awesome. I'd like to be able to eat.

Thursday, December 17, 2009

Random stuff

It's one of those posts again.

MAGFest is right around the corner. And just in time, ScrewAttack announced that Angry Video Game Nerd DVD volume 3 is out. I'll probably pick it up there.

I haven't been playing Guitar Hero much lately, but I did finally FC Lay Down in GH3. After that I fired up GH:SH to repeat that only to realize how much I hate the chart in Smash Hits.

I haven't mentioned Guild Wars in a while, let's see... Oh yeah, I now have a level 20 Assassin and a level 20 Paragon. The only class I haven't gotten to level 20 now is Ritualist.

I've decided that enough was enough and I'm marathonning my anime backlog. I started with Grenadier. Yeah, it's the series I have tagged "spare bullets kept in cleavage" on MyAnimeList, but it has an actual plot and story to go with the fanservice and "innovative" fighting style. It kinda feels like there's more to it, but all we get to see is a quick 12 episode plot.

Which reminds me, the Negima! Magic World OAV is progressing at way too slow of a pace to actually get more than a little bit into the arc. I really wonder what they're thinking by making random short OAVs instead of full seasons. While I like Negima! a lot, these short OAVs just plain suck. They're just not long enough to cover any of the truly awesome stuff.

I really want to set up ArchLinux in a more desktop-oriented configuration. I'm trying to do so using VirtualBox, but it just isn't cooperating with me. ArchLinux installs just fine. So I reboot into the new install, update pacman, install powerpill (a frontend for pacman that accelerates package downloads), then run powerpill -Syu to update my base install just like normal. Then I reboot and VirtualBox crashes during the boot process. Every time. It's definitely a VirtualBox issue and not an ArchLinux issue, as my server boots and reboots without issue.

I've broken down and started work on the web-based wallpaper system I've had in mind for a while. By "started work on" I mean "am designing the database for". I'm torn about how to implement some features, but I suspect it'll all work out once I get going on the code. This largely warrants a post all to itself, which won't happen until after MAGFest.

I've been experimenting with making bacon, egg, and cheese breakfast burritos and I think I'm near the best recipe. I'll post about it once I've got making them down to a science, but the research has been delicious thus far. My goal is to make them big enough that they're satisfying, yet small enough that you can eat them alongside the rest of your breakfast. The major barrier right now is finding tortillas that won't tear when I roll the thing up.

Ending this randomness now. My next post will hopefully be another Classic DOS Game post.

Saturday, December 12, 2009

Crazy Dream Time

Warning: The following is really fucked up.

I just had a really weird dream. I went into the TV room of our house and my dad had made a bunch of large printouts of Hatsune Miku and posted them on the walls. She was SD in all of them, but they had different poses and she was saying things in some of them. Then I walked over to my computer area. My server had a 5 1/4" floppy drive where its DVD drive normally is, but it was just the front panel of it. Then I noticed I had one of those weird Microsoft Natural Keyboards, except this one had white lights on it that were insanely bright. It had a button to turn them off (and back on again if you so desired), but they were so blindingly bright I couldn't understand why you'd ever want them on anyway.

Then suddenly I was on a hill between a couple of buildings. The middle of the hill had been paved over and I was (invisibly) watching two people throwing a soccer ball at the trees trying to knock water out of them. As it turned out, they were playing golf. Then they realized that their caddies had disappeared. Off in the distance, I noticed both caddies explode, one before the other. Just before exploding they did the arm motion like Tim the Enchanter did just before he teleported down to King Arthur and his party in Monty Python and The Holy Grail.

Then I woke up.

Friday, December 11, 2009

There's a fox in my neighborhood.

I have never seen the fox. I have only heard it barking and howling. It sounds like a screaming baby. I only ever hear it when it's dark outside.

This sounds like it's straight out of a horror movie or something.

What would the plot device be?

Lame: Is it mostly harmless?
Cookie-cutter: Would it attack people in the neighborhood one by one? Possibly with rabies?
Overdone: Is it a zombie fox, signaling the beginning of the zombie apocalypse?
I Know What You Did Last Summer: Is it really a demon taking the shape of a fox to haunt the lives of a select few humans?

Seriously though, the way I only occasionally hear it is eerily reminiscent of one of those supernatural mindfuck horror movies.

Wednesday, December 9, 2009

Polynomial update

It's been a while since I originally posted about Polynomial. When I posted that review, version 00c was the latest. Now it's up to version 00h. So naturally some stuff has changed.

Polynomial screenshots and a download link are here.

The game has improved vastly in the sound department, mostly due to the addition of background music. Also, when you kill an enemy and it drops a powerup, there's now a sound for that. It was fairly easy to tell before as the enemy explodes with a different pattern when it drops a powerup, but a sound cue always helps.

It feels more difficult as well. Enemies now have this red-colored projectile (at least I think it's a projectile, maybe it's a suicide enemy) that moves very fast and deals a lot of damage, but can be killed. Even while flying through the fractal it's possible to die if you can't dodge a barrage of them.

As your health gets lower, when you take damage there are video effects similar to those that happen when you die. It's nice to have a visual indicator of low health (in addition to the health bar), but my comment about an audible alarm still stands.

If the difficulty difference isn't apparent, I'll explain it this way. I used to be able to last an hour without dying. Typically at this point the game would be running at about 5 frames per second because it had spawned so many enemies. Those enemies would be locked in a never ending chain reaction of death. In the most recent version, I have yet to make it to this "late game".

With regards to what I said before about waiting for multiplayer, the developer is working on that. Honestly I'd drop the US$20 on it now If I had the money to spare. The Mio figure I preordered has been postponed to January :( Anyway, since full version updates are free and the developer's page basically says "hey, get it now, the price could go up *wink* *wink* *nudge* *nudge*", and multiplayer is in the works.

The only thing I'd suggest is that if the free version gets the multiplayer as well, that it should be compatible with the full version and work over a LAN (i.e. have a mode that isn't dependent on having an internet connection for multiplayer). I've got MAGFest's LAN room on the mind here. If I've got the full version, but I put the free version on the network for people to grab, I'll want to be able to play with them. There's no guarantee that multiplayer will be ready before MAGFest 8 (which is less than a month away!), but, you know, just sayin'...

Monday, December 7, 2009

Whaddaya know, a wallpaper update.

Yeah, here's the wallpaper update I foreshadowed. Including the image I used to make my new MAL signature image. One of the K-On! ones I could have detexted the rest of the way but didn't really feel like it. I'd have had to remove all the snowflakes too since they only exist to compliment the text, and this is one of those rare cases where I think the text compliments the wallpaper well.

/w/ has a nice Azusa thread going on right now, so I'm working on filling the Azusa void since 99% of the K-On! wallpapers that have been made were made before she was introduced.

Also, I now have over 100 wallpapers from The Melancholy of Haruhi Suzumiya. Good ones are still popping up...

No tooltips this time, because adding them is really cumbersome.


Is this enough images for you, Dave?

Sunday, December 6, 2009

Classic DOS Games: Cosmo's Cosmic Adventure

Partly fueling this series is the website classicdosgames.com. They archive the shareware demos of classic DOS games, link to sites where you can buy the full version, and occasionally attempt to get the developers to release the full games under a freeware license. Many developers have cooperated. It's nice to see people preserving these games.

Anyway, on to Cosmo's Cosmic Adventure.

Cosmo's Cosmic Adventure title screen

The game: Link
If you don't already have it: DOSBox

Get yourself set up:
  1. Extract Cosmo's Cosmic Adventure. (Mine is in e:\games\cosmo)
  2. Open your DOSBox install directory.
  3. Copy dosbox.conf to the directory where you extracted the game and rename it to cosmo.conf.
  4. Open cosmo.conf and scroll down to the [autoexec] section.
  5. Copy and paste the following commands in there (after the line # Lines in this section will be run at startup.), then modify it to mount the directory you extracted the game to.

    mount c e:\games\cosmo
    c:
    cosmo1
    exit
  6. Save and close the file.
  7. Create a shortcut to DOSBox and edit its target to have the following command line flags at the end:

    -noconsole -conf "e:\games\cosmo\cosmo.conf"

    Don't forget to put a space between the existing target and this text. Change the path to cosmo.conf to match yours.
Now that you have an easy way to run the game, let's get this show on the road.

Cosmo's Cosmic Adventure is a sidescrolling platformer. You play as Cosmo, a green alien with suction cup hands. While on your way to Disney World, you and your parents were forced to crash land on a strange planet. You went off exploring while your parents were repairing the ship, and when you came back you discovered that your parents had been abducted. So now it's up to you to go rescue them.

The controls are simple. Left and right move left and right. You can look up and down with, well, up and down. Jump with Control. Throughout the game you will find bombs, these can be used with Alt.

To kill most enemies you just have to jump on them. Some enemies will take multiple hits. There are things that can be blown up with bombs to receive health powerups and other goodies. If you want to cling to a wall, just push towards it while in the air. You can use this with the jump button to scale high walls or get powerups out of pits.

Speaking of powerups, if you're in a high place, try looking up. Often a powerup will fall down. While most powerups simply give you points, there are the occasional health powerups, stars, and bombs. Throughout the game you will find "hint globes" that give you gameplay hints. Press up at any one of these to read the hint.

The music is quite good for a game of this era. In fact, the bonus level background music has stuck in my mind to this day, I still find myself whistling it every now and then.

Even though it's shareware and there's only one episode of the three in the full game, the one episode is still fairly long and has plenty of difficulty. While most of the difficulty is simply trying to figure out where the heck you're supposed to go, the extremely varied types of enemies add to it.

There are secrets everywhere. Plus, there are bonuses that you get for doing various things. The only one they tell you about in the shareware version is that there's a bonus for bombing 15 of the eye plants. Every time you bomb an eye plant it gives you another bomb, so unless there's an unreachable platform right above that eye plant, go for it. If such an unreachable platform exists, the bomb that the eye plant drops will land on that instead of the ground next to you. You get the full list of these bonuses with the full version, though some of them are fairly easy to discover on your own.

Being a platformer means there's plenty of things for you to use as well. There are springboards around that you can use to jump very high. Some enemies are stationary and serve as a temporary bridge between high-up platforms so that you can jump from one to another. Some enemies can't be killed but can be forced to let you pass if you bomb them.

You can use enemies to reach higher places, but it's tricky to pull off. I have the easiest time with the ghosts in the cemetery that won't come after you unless you're facing away from them. They're pretty easy to lure to the exact spot you want them in since you can make them stop simply by turning around. Since they take several hits to kill, you can move them while jumping off of them.

Some surfaces, such as ice, are slippery. You won't be able to stick to them as well with your suction cups. You'll stick just fine, but you'll slide down the wall. This only really comes into play in the later levels.

Here's to hoping that Apogee (now 3D Realms) will release the full version under a freeware license. They've already done so with some of their other games...

Friday, December 4, 2009

Classic DOS Games: Sledrider

I posted about DOSBox a while ago but I haven't really touched on anything I actually use it for... until now. This will be a series of posts about the stuff I'm running in DOSBox.

First up is Sledrider.

Sledrder title screen

Since the very first screen you see when you start up the game says "This game may be freely distributed", I'll hook you up with some links.

Sledrider: Download (180KB, shouldn't take too long)
DOSBox: Website

Get yourself set up: (this may take a little bit, but it's a one-time deal)
  1. Install DOSBox.
  2. Extract Sledrider. (Mine is in e:\games\sledride)
  3. Open the sledride.conf file in Notepad.
  4. Scroll all the way down to the [autoexec] section at the very bottom.
  5. Change the line mount c e:\games\sledride so that the path points to where you extracted Sledrider. For example, if you extracted it to c:\sledride, you would change it to mount c c:\sledride.
  6. Save and close Notepad. You won't need to make any further changes to sledride.conf.
  7. Now make a shortcut to DOSBox and name it Sledrider. You can put this shortcut anywhere. I recommend putting it in the Start menu somewhere.
  8. Right click on that shortcut and select Properties.
  9. In the Target: box, at the end of the line, hit space and then add -noconsole -conf "e:\games\sledride\sledride.conf". Change the path to sledride.conf to point to where your sledride.conf is.
  10. Hit OK.
Whenever you run this shortcut, DOSBox will start up Sledrider, and when you exit Sledrider, DOSBox will close. Now that we've got that out of the way, I can actually talk about the game.

The game will sound like ass until you set the sound to Sound Blaster. Accept its default options for IRQ and port, they should work in DOSBox.

The controls are simple. By default, up accelerates, down brakes, left steers clockwise, and right steers counterclockwise. I don't really like this, so I change it so that up is brake, down accelerates, left steers counterclockwise, and right steers clockwise. If you set your steering up one way, but then after you start playing you realize it's just not going to work, you can hit F3 to swap your steering controls.

Go to Info to get the gameplay overview, though I'll summarize it here. Basically there are obstacles like bushes, rocks, signs, fences, and other people. You'll want to avoid these. There are good things like ice cream cones, lollipops, and money that you'll want to pick up. The goal of each level is simply to reach the end of the level.

If you hit an obstacle, your sled will take damage, and when you take too much damage you lose a sled. Lose all your sleds and the game is over. You can find wrenches strategically placed in some levels that will repair your sled, and you get a new sled every 5000 points.

A point of interest is that you get points for and don't take damage from hitting the snowball-throwing kids. Their snowballs will damage you, of course, but hitting the kid doesn't. Every time you hit one of the kids they shout "Hey!" I usually try to hit as many as I can.

The music in the game only plays before the beginning of each level. Once you move your sled, it stops. This is kinda weird, but maybe the developer thought it might be too distracting while you're trying to dodge obstacles. Other games with obstacles to dodge have background music that isn't distracting, but whatever.

The game is 30 levels long and there is a lot of variety in those levels. When you've gotten through them all, you can set the difficulty to Expert and go through again. Expert makes the hills steeper, so you accelerate faster and carry more speed. You'll need to use the brakes a lot more in order to survive each level.

Sledrider is pretty fun, especially for a free game.

Wednesday, December 2, 2009

My Unending Search

Before I finally break down and write my own wallpaper rotator, I figure it's best if I search around some more and see if anything's popped up that fills my requirements.

From a random thread on /w/ I found out about WallPapa, so I installed it and set it up with my wallpapers and played around with it for a little while. Its user interface is way better than Winwall's, primarily because it's resizable and not tiny.

The first thing I looked for, it actually had: resampling the wallpaper while preserving its aspect ratio. Set it to "stretch" and it will fill the screen, preserving aspect ratio. It also has a setting for the background color to use when letterboxing/pillarboxing, as would be expected. It defaults to black, which is what I want, so I didn't have to change it.

Importing directories is really easy. You just click the add button and select the directory. It'll ask you if you want to include subfolders, and then it'll go about looking for every image it can find. Unfortunately, there doesn't seem to be a way to import a directory structure and then selectively exclude certain files or folders within it, which is necessary for me since I have two subdirectories containing images that I don't want to be set as my wallpaper.

So I manually imported all the subdirectories of my wallpaper folder. This would have gone faster if it had an option for "always include subdirectories" so I wouldn't have to select the directory and then hit yes once for each directory.

So now I have the wallpaper list populated with everything I've got. Scrolling through I noticed something strange: it groups files together not alphabetically by filename like one would expect, but alphabetically by file extension, then alphabetically by filename. So all the JPEGs are together, then the PNGs. This is likely due to how it's searching for the files, looking for each extension one at a time and neglecting to sort the results together.

All set, right? I hit Change Wallpaper. It only does things sequentially in the order that they're in the list, but it has a button to randomize the order of the list, so whatever. Then I actually look at the wallpaper. Its resampling is horrible. All the lines are jagged everywhere. It's like it's passing it to Windows' resampler instead of using GD or anything else that's better. I'd actually like to be able to look at my wallpaper without saying to myself "shit that's ugly".

I haven't yet contacted the developer with my concerns, so if I do that maybe there's hope.

Since I like the program overall, I'll do as I did for Polynomial and list some constructive criticisms:
  • Rather than the "shuffle" button reordering the list, it should make the program randomly choose a wallpaper from the list. This way the list can stay sorted.
  • Speaking of sorting, fix it so it's not sorted by file extension.
  • An "exclude file/subdirectory" option is a must for recursive imports.
  • Rather than prompting every time to ask if the directory import should be recursive, have an option for it.
  • Automatically scanning imported directories for new images would be great. I'm not sure if it does this or not because I didn't specifically test it, but it does have an option for manually rescanning the directories.
  • Do resampling with the GD library so it's actually pleasing to the eye.
The verdict: It looks like it'll be an excellent wallpaper rotator in the future.

Monday, November 30, 2009

Convenience, or the lack thereof

Frozen convenience foods are great for when you need food and you don't really feel like cooking. They shouldn't be consumed with great regularity due to their general lack of regard for nutrition, but they're good to have around. I'm thinking primarily skillet meals here. We keep a few skillet meals in the freezer as "emergency meals" to be cooked when nobody really feels like doing actual cooking.

We've been stocking the Stouffer's skillet meals, which are really easy to make. Get out your skillet, add contents of the bag, heat according to directions, then serve and eat. It doesn't need to be any more complicated than that, right?

Well, TGI Friday's thinks it should be more complex.

We've been ignoring the TGI Friday's skillet meals because they're more expensive and they have fewer varieties. But a few days ago we were given one (story largely irrelevant) and decided to make it.

Open up its bag and what do you have? Several smaller bags. There's a bag of sauce that needs to be thawed in a bowl of warm water, and bags for other individual ingredients, generally separating the meat from everything else. The directions say "Easy as 1-2-3!" but closer inspection reveals that their three steps are made up of sub-steps as you heat one part, then add the others in.

Portion-wise, the TGI Friday's skillet meals have smaller servings than the Stouffer's ones. They also generate a lot more trash, as you have to throw out all of the bags that were in the main bag, in addition to the main bag itself. With the Stouffer's ones, you only have one bag to toss out when you're done.

I like TGI Friday's as a restaurant. I like their boxed convenience items. But their skillet meals aren't convenient. What's wrong with just combining everything together like Stouffer's does?

They also tell you to confirm that the internal temperature is 165°F. I've already ranted about this, but... ovens and cooktops are way more consistent than microwaves, so there's no excuse for not knowing if your directions will get the internal temperature to the right level. Having to get out a thermometer and measure that isn't convenient at all.

The moral of the story: Stouffer's skillet meals are awesome.

Wednesday, November 25, 2009

My computer... again

This is a complete history of everything I think is relevant regarding the gradual degradation of my computer gaming experience. Sprinkled throughout are links to relevant blog posts I've written about these events.

During MAGFest 5 (which was in January 2007), something happened to my computer and the power supply died. Due to general idiocy I didn't figure this out for a while. When I got my computer up and running again with the new power supply, I began noticing odd occurrences while playing Guild Wars. This problem eventually evolved to be a lot more serious. Specifically, the entire computer would freeze after about an hour. Sometimes this was accompanied by my screen turning off, sometimes it would almost freeze and then Windows would say that nv4_disp.dll had stopped responding. Sometimes it would just run horribly, like I was trying to run GW with max settings with a much lower-specced computer.

When it froze (either with video or without) the only way to get it back was to hit the reset button on my case. When I got the dialog about nv4_disp.dll, I could just click OK and continue playing, and it would run perfectly well after that. When it ran horribly (or as I've said in the past, "shat bricks"), looking at the Commit Charge figure in Task Manager reveals that it had gone through the roof, but the numbers for Virtual Memory and RAM usage (which I think are added together to make "commit charge", such a useless name) just didn't add up.

A lot of other people have had issues with nv4_disp.dll entering an infinite loop and generating a BSOD. I haven't ever seen a BSOD when this happened.

When this originally started happening, I was running WinXP Service Pack 1. I updated to SP2 just before MAGFest 7 (that would be in December of 2008). Still had the issue.

I found a workaround that would postpone the inevitable, which was to turn the graphics all the way down. It would still eventually run into one of the aforementioned problems, but it took 5-6 hours instead of one. It wasn't very pretty, but it worked.

Then the freeze issue started happening in other games. Specifically UT2004, but since then I traced it to any 3D game.

After I overreacted when my motherboard's onboard LAN died and reinstalled XP, I updated to SP3. The issue was still present, but I noticed something: playing games windowed allowed me to jack the graphics back up and have it still work for 5-6 hours. To this day I've been playing GW windowed. I haven't touched UT in forever.

Just recently I've been on GW a lot more (all the while still successfully maintaining a social life, see kids it is possible to play online RPGs and have friends in real life) and I haven't encountered any issues at all, which is making me start to think I might be able to run the game fullscreen again, as well as other resource-intensive 3D games like UT. But then again, my computer enters "shit bricks" state if I run the latest ZSNES, whether fullscreen or windowed. I'm using ZSNES v1.42 because it still works. I'd heard somewhere that 1.42 was the last decent version of ZSNES, and if this is the reason, I guess I'm never updating. I can run another OS in a virtual machine just fine, but the mere act of running the latest version of a SNES emulator (never actually getting to the point where I could start a game) bogs my computer down like crazy.

Earlier this morning I was browsing around nVidia's forums and happened upon a thread about nv4_disp.dll infinite loop problems. It proclaimed the fix was turning off some memory write queue register. Skeptical as always I read through the thread. People posted issues, suggested that the OP's fix either worked or didn't work, or suggested other fixes (turning off AGP fast write, which won't work for me since I have a PCI-Express x16 video card and not an AGP video card; and updating Realtek sound drivers, which my onboard sound is a Realtek but I haven't updated the drivers). There doesn't seem to be a unified, concrete "do this and it'll work" solution, but the point was made and substantiated that XP and nVidia don't get along very well.

I've been thinking that maybe another operating system would work properly, but I lack the desire to nuke an otherwise perfectly good XP install that I still consider "just set up" (heck, I just got around to fixing permissions on my two non-OS drives so that my new user owned everything instead of my old user) or go through setting up a dual boot just to try something else. I've wanted to dual boot Linux for a while, and I'm interested in Windows 7.

Also on my mind is getting a new graphics card, though honestly if I do that I'm going to build a new computer since this one was built in 2004.

Actually, let's go with that. I need a new computer.

Monday, November 23, 2009

Optimization

A while back I wrote a quick PHP script that, given the dimensions of an image and the target aspect ratio, it would compute a few dimensions in the target aspect ratio that required minimal cropping/editing to obtain. Content that it worked, I let it sit there and forgot about it until today when I found a low res image on /w/ that I wanted to make 4:3. (foreshadowing a wallpaper update?)

Looking at its code, I told myself there had to be a better way to calculate the nearest resolutions. In my haste to have a working solution I just took the easy way out and used loops that decremented/incrimented the width and height by one until it found something that fit the desired aspect ratio.

I figured it would be faster to rewrite it so it didn't use loops at all. Using the handy-dandy modulus operator, I rewrote the function so it just did straight calculations instead of stupidly looping. Since the most it ever has to incriment/decrement is within the modulus of the relevant portion of the aspect ratio, we can use the width modulus the aspect width to see exactly where we stand, the same for the height. In best-case, the modulus is zero and we just have to do one calculation. Worst-case it's nonzero and we have to do two.

The loop algorithm always calculated by increasing and decreasing both the height and the width, regardless of anything. By design it wouldn't loop if the value we started with was a multiple, but it didn't use any modulus to check. In fact, all the original algorithm got was the computed floating point representation of the aspect ratio, whereas the new one gets the separate width and height components of the aspect ratio and computes the floating point representation for ease of calculation later on. That and computing a value once and storing the result is faster than recomputing the same value four times.

Tested it with the new algorithm, and it works, with a bonus: It now does a minimal amount of redundant output elimination purely by design. Since we check to see if the modulus is zero, some but not all redundancy is eliminated. Perhaps I'll facepalm and realize how I can change it so that all redundant output is eliminated (without specifically checking post-calculation), but for now I'm satisfied.

Then I wondered just how much faster it really was. So I added in an option in the HTML form to let me select whether or not I wanted to compare the two algorithms, and wrote the code to calculate how long each one takes to execute. It's pretty simple, in PHP 5 you can just call microtime(true) before and after the function and then do a little math and call sprintf to format the result.

Here are the tests I did:

Best case test data:
Aspect ratio: 16:9
Width x Height: 1920x1080 (1920 / 1080 == 16 / 9)

Mixed case test data:
Aspect ratio: 16:9
Width x Height: 1920x720 (1920 % 16 == 0, 720 % 9 == 0, but 1920 / 720 != 16 / 9)

Worst case test data:
Aspect ratio: 16:9
Width x Height: 1928x725 (1928 % 16 == 8, 725 % 9 == 5, basically here the given dimensions are halfway between multiples of their relevant portions of the aspect ratio)

After running several tests it turns out my new algorithm is approximately 1.5-2x faster. I'll take that.

Oh and here's the script so you can play around with it.

Sunday, November 22, 2009

Maybe I'm too paranoid

I was being paranoid about what my computer was connected to earlier today, which prompted among other things a reboot.

One of the domains in my netstat output had caught me off-guard: 1e100.net. Don't try it in your web browser, it doesn't work. I did some searching and then promptly facepalmed as I realized it was owned by Google. 1e100 = 1 * 10^100 = a googol = another of Google's bad jokes. It shows up as the reverse DNS for GTalk and GMail. That's almost as bad as Microsoft's faked reverse DNS of whatever.phx.gbl for when you're connected to MSN.

In the process of discovering this I happened upon a pretty neat tool called TCP View. It shows you not only what your computer is connected to, but also which process owns each connection. It's basically netstat on steroids. In addition, it updates constantly, letting you know what's happening. It also provides some useful tools, such as the ability to kill the process or the connection, or to whois the remote host.

The verdict: eases paranoia.

Thursday, November 19, 2009

This is driving me crazy

Every so often, my trackball's driver's "Snap mouse pointer to default button" option mysteriously re-enables itself. I'll notice it's back on, go and turn it off, then forget about it only to notice it's re-enabled later. This is highly annoying, I wish it'd just stay off like it used to.

For anyone reading this (all maybe two of you), I have a Kensington Expert Mouse (you can even read my review of it on Newegg, though depending on the age of this link you may have to navigate pages to see it) which is a really awesome trackball with a scroll wheel that's allowed the tendonitis in my wrist to almost completely go away. I got said tendonitis from using a mouse improperly.

I think it's an accessibility option or something, but it's hardly intuitive. I don't want my mouse pointer going anywhere unless I manually move it there. I don't automatically want to click the default button on every single dialog that comes up. This includes dialogs like Open File dialogs where I'd need to navigate somewhere, using the mouse, so moving the pointer is pointless because I'm just going to be moving it around to find the file I want.

I'm hoping a reboot will fix the issue. Some very weird things in Windows and Windows applications require restarting either the application or the computer in order to truly take effect. I'm thinking mainly of Foobar2000, where if you change anything on the options dialog, it doesn't actually save it to its preferences file until you close it manually. So if you change a setting, listen to music for a few hours/days/whatever, then turn your computer off or reboot or something and Foobar2000 closes because of the shutdown/reboot, it doesn't fucking save your preferences.

I think the mouse issue might be related to something that happened towards the end of last month. My parents went to the beach for a week and left me to take care of the house and the dog. I figured "hey, while they're gone, I'll move my computer into the other room and use the plasma tv as a second monitor and watch some anime or something!"

So I did. However, when I turned my computer back on after moving it, first off, the mouse didn't work until after I logged in (it's USB, though I could have sworn I enabled Legacy USB Keyboard/Mouse support in my BIOS). Then I had to reconfigure all the buttons to my usual layout. During this I missed the tab of the dialog with the "snap to default" bug/feature. I watched the episode of Darker Than Black 2 that was current at the time, played some Guild Wars (with GuildWiki open on the monitor so I could easily reference stuff I was doing or looking for or whatever), and then my computer promptly shat bricks. I think it was related to the dual monitor setup because I've played GW with Firefox open with all my usual tabs and then some since moving my computer back and it hasn't happened.

Why would you ever want your mouse pointer to snap to the default button of a dialog in the first place?

I wouldn't have this issue using it under Linux, mainly since they don't have their bullshit driver available for Linux. It works anyway (and is fully configurable) using xmodmap, xbindkeys, and the xte program from your distribution's xautomation package. You can use xev to figure out what button sends what event so you can hook it up properly in .xbindkeysrc. The beauty of all of this is that it's independent of whichever window manager you use, since it just modifies how X interprets the events that it receives; and like the rest of Linux, it operates in a "set it and forget it" manner. Maybe in a later post I'll go into greater detail on the finer points of messing around with xbindkeys.

If it weren't for the computer games, I'd migrate my desktop over to ArchLinux already... I really need to get a new gaming computer so I can turn this one into a Linux box.

Oh wow I've drifted topics this much? I guess I should just end this post now.

Monday, November 9, 2009

Nekocon 12 report

Friday

Getting there was simple. In fact, I beat out both the other cars, both of which were armed with GPSes. By a half hour. My only problem was that I got dyslexic about the exit number we had to get off of I-64 at, but thakfully I was dyslexic in the direction that didn't cause us to miss said exit and we reached the hotel without issue.

Since we beat the other cars there, including the car containing the all-important Person Who Paid For The Rooms And Therefore Must Be Present So We Can Check In (i.e. Citrus) wasn't there, so we got some food (my once-annually visit to McDonald's). When we finished everyone else rolled up. Apparently one car stopped for food on the way down and the other made a wrong turn and ended up having to go around multiple sections of a cloverleaf to turn around. GPSes for the win, amirite?

Honestly, the trip isn't that difficult.

Dealers' room was closed when we got there, so I checked out everything else. I was disappointed that there wasn't a Rock Band 2 setup in the game room, even though they had the controllers for it.

Since everything went JUST AS PLANNED finance-wise (actually, BETTER THAN PLANNED, by $90), I was able to get a full weekend reg.

We discovered almost right away that the door to our hotel room didn't lock properly. It wasn't an issue when we were inside it, since we could just close the little thing that prevents the door from being opened all the way, but we couldn't leave anything valuable in it. We informed the hotel of this and they said to use that thing overnight.

I can never sleep at conventions, I don't know why. Part of it was that when we went to sleep I'd only been up for about 14 hours, so I still had energy and had to lie there for at least an hour before actually falling asleep.

Saturday

We stormed the hotel's free breakfast and made our way to the convention. Since the dealers' room was now open, I debated about buying some volumes of Negima before ultimately deciding to take a look around at the other vendors first. I ended up buying the 10th Anniversary re-release of Azumanga Daioh in Japanese. All three volumes. I can't read it (moon runes and no furigana to help with kanji), but I know what's going on anyway so it doesn't really matter. I've read the three new chapters written for the re-release scanlated, so... otaku badge of honor?

Besides, I couldn't remember which volumes of Negima I didn't have and I forgot to write it down before leaving. I leafed through a few but since I've been reading the scanlations, I remembered everything and couldn't figure out on the fly where I'd left off.

We got back to the hotel and stashed some stuff in my trunk (since it would lock), then went up to the room and discovered that the lock had been fixed. I discovered this by turning the handle and walking headfirst into the door. Anyway, now we could leave stuff (merchandise, laptops, etc.) in the room!

Also, in the room containing Artist's Alley, there's the R/C Racing thing. These aren't your ordinary toy R/C cars, these are the high quality racing ones that are really expensive, and a couple of professional-quality tracks to race them on (one easy, one difficult). Unfortunately it wasn't up and running when we checked it out, and was desolate the rest of the weekend.

While I was in Artists' Alley I remembered that I'd gotten the Yomi button I was wearing there, so I decided to browse for more buttons (or anything else worth buying). Apparently buttons sold pretty well last year (when about two people had them), because this year almost everyone had them. I happened across a Churuya button, which I immediately bought. Unfortunately, MAGFest didn't have a table/projector/MAME ROMs in there this year, so I couldn't bug Brendan or play any Michael Jackson's Moonwalker. If I had any emoticons I'd put a sad face here.

Distinctly notable in Artists' Alley was the unfortunate lack of anything K-On!. No prints that I saw, no buttons, nothing. The dealers' room was short on it as well, there were some posters and other assorted flat things but I kind of expected more. The lack of it in the dealers' room was forgivable since the series hasn't had the chance to generate much merchandise, but Artists' Alley? Seriously, was everyone who had a booth in there living under a rock? Prints/buttons/stuff from K-On! would have sold like wildfire. I probably could have commissioned something, but didn't really feel like it.

Despite having had a large breakfast (two sugary-fruity-iced-pastry-like-things, sausage patties, eggs, a waffle, a muffin of unknown type, a cup of grape juice, a cup of orange juice, and two cups of coffee), I tagged along and made a second visit to McDonald's for lunch. Since I wasn't all that hungry I had some chicken nuggets and a soda. I tend to stock up on calories since so much of congoing is walking around (and fangasming about things), but the lunch was kind of unnecessary.

So then for dinner we decided to go to a Chinese restaurant listed in the con program book. Getting there meant driving, but it wasn't that far away and looked pretty easy to find.

Except that it didn't exist.

So after calling people and talking (hey, who'd'a thought cell phones would be useful?) we went to Denny's.

Decided to go to the game room and play some Rave Racer for a while. Same old gimpy machine as the one at MAGFest where the left side's screen flickers any time either player hits the brake pedal. I demonstrated this at one point because the left side had glitched to be "letterboxed". I hit the brake pedal on the right side and it un-glitched. Then we got kicked out because some Call of Duty fags wanted to have a tournament or something. I thought that was a PC game, but apparently they released it on consoles as well. The controls are guaranteed to suck anyway. Also, the room right next door was the tournament room. Bleh, whatever.

Sunday

There's nothing ever really worthwhile happening at an anime convention on Sunday. So we had breakfast, checked out of the hotel, packed up the cars, hit up the dealers' room one last time, and left. I grabbed a Setsuna plushie in the final raid on the dealers' room.

Since last year I had to stop at a rest stop and buy a caffeinated soda to stay awake while driving, this year I planned ahead and bought the drink from a vending machine in the hotel. This was important because the Virginia Department of Transportation recently closed the rest stop I stopped at last year.

Luckily nobody left anything in my trunk this year.

I will note that I spent the weekend sober, since CAINE's resident alcoholic was in a different hotel. Asshole.

Last but not least I totally hijacked Enigma's laptop and used the hotel's free wifi to write the Friday and Saturday portions of this down so I wouldn't forget them when I got back. Writing in the past tense about something that's currently happening is difficult, so if it reads strangely, that's probably why.

Merchandise (with pictures!)

10th Anniversary Azumanga Daioh (all three volumes)
Churuya-san button (to go with the shirt, which I was wearing when I bought it)
Sakurazaki Setsuna plushie (yay Negima!)

A shot of both buttons

Here are the pictures from last year. I don't remember having linked them before.
manga
Tsuruya
Yomi button
Churuya shirt

Sunday, November 8, 2009

Blogger's new post editor

So I was cruising through my options at random after setting up Google's web developer tools so I could get some pageview statistics and shit and I noticed they have a newer post editor.

I typed this post in it.

The first thing I noticed is how fucking sluggish it is.  Text appears in bursts rather than immediately.

They've added a strikethrough button (yay!), but they're still neglecting underline.  What the hell.

There's also a "jump break" button, which I guess would allow me to post a short bit of the post on my main page and then the whole thing is expanded when you view the post by itself.

Their page listing the new features goes into more stuff, most of which is cool like not fucking adding <br /> tags inside the more complex HTML markup like lists and tables, so that you can actually view your markup without it just being a huge word-wrapped jumbled mess.

A new option that I used on this post allows you to control what it does with HTML typed into the WYSIWYG editor.  Either it will interpret it and use it to format your post, or it'll show it literally (basically automatically adding &lt; to it so the tag doesn't get picked up by the browser)

Seriously though, this text burst thing is driving me crazy.  I'm going to switch back to the older post editor just because of it.  I don't know if it's related to the performance of my computer, but an AMD64 3200+ with 2GB of RAM should be able to handle typing a fucking blog post.

One thing I'd love to see is the ability to add custom formatting buttons.  I have some CSS classes set up for things like keyboard keys that when I use them I tend to use them extensively and it means a lot of copying/pasting since I can't just highlight the text and add the style.  It would also be a short term fix for the "lack of underline button" issue. I can do this with Greasemonkey, but that's retarded.

The preview function is better but still far from perfect.  It still doesn't show the post as it would appear on your blog after publishing it.  This means there's still no way to be 100% certain of the appearance of your post until you publish, and then it becomes a game of "edit, publish, read, disapprove, repeat" until you get it looking like you want it to.

Okay, the text burst issue affects HTML mode as well. Definitely switching back to the older editor.  It preserves double spaces now, which is neat.  And it properly escapes HTML entities, which I hated how it evaluated them to the unicode character before so once this annoying text burst thing gets fixed, it'll be a useful editor.

I call it "text burst" but it's more like "input burst" since it affects all keystrokes, not just alphanumerics and symbols.  Trying to move around this post or use Backspace is a real chore.  Given that I'm making lots of typos because text isn't appearing immediately, I'm using Backspace a lot.

Let's try a link and see what happens.  Okay, first off it still doesn't give the option of setting target="_blank" (I added it manually as usual), and second off, typing at the end of the line puts text inside the link tag instead of after it.  Which means wallpaper updates are still going to be a chore since I can't easily add target="_blank" in after the fact either.


(the excessive line break after that is the new editor's fault, not mine. It puts a newline at the end of the link text and another after the closing link tag, then it gets to the one I added.)

At least now it won't fucking timestamp a post until I hit publish, almost all of my posts have an incorrect timestamp because it timestamped them when I started typing them instead of when I finished and hit publish.

Oh and Nekocon report up whenever I get around to taking pictures of the stuff I bought. Which since it's on my mind, will probably be soon. Either that or I'll schedule the post to publish later just to be a dick.

Edit: It fucking removes my custom CSS classes when I switch between HTML and WYSIWYG modes. What the shit.

Friday, November 6, 2009

Thank You Internet

More Linux stuff in this post. If you don't really care, then go ahead and skip, I'll only hold it against you for the rest of your life.

There's lots of fixed-width-font formatting in here that won't be visible unless you're actually reading it on my blog. It really adds a lot of helpful emphasis, so your opinion of my technical writing should go up by reading it with that emphasis intact. (and down from the sheer number of parenthetical statements, but whatever)

So after successfully getting my server set up and running lean and mean with ArchLinux, I figured it was time to pimp it a bit. I wanted to see if I could get Samba working (Samba = the Windows Network file-sharing protocol) so I could have a directory be remotely accessible from a Windows computer with no password (i.e. a public share, necessary to make drop boxes and stuff).

Samba's configuration has way more options than are initially in smb.conf but eventually I got it. So now I have a subdirectory in my home directory (aptly named "share", though it appears on the network as "eckstee" because that's what I named its section in smb.conf.) shared with no password, and I can browse to it on Windows and read (and even modify, since I allowed write permissions) the file I stuck in it (named youfoundit.txt).

That actually happened several days ago. What just happened tonight, however, was something that I'd wanted to do for a while but never really knew how to do.

When you install Apache, there's a certain directory set as its document root (configured by the aptly-named DocumentRoot directive in httpd.conf) that files are loaded from when you request http://servername/filename.ext. This directory (/srv/http/ on ArchLinux), by default, has its permissions set so you have to be root in order to create or modify anything in it. Now, there isn't really that much of a problem there, since I know my root password, but I really don't want to be doing things as root with full root privileges. Bad Things™ can happen when you do that.

So I said to myself, "I'll just make a group called 'webdev', stick my account in it, then configure the permissions on that directory so anyone in the group webdev has write permissions!"

The first part of this was relatively easy. Made the webdev group, stuck my account in it, changed the group on the directory to webdev, chmod'ed it to 775, then logged out and back in for the group change to take effect. I can now create and modify files in the directory using my normal account.

Then the problems arose. First off, the group owning the new files I was creating to test was the primary group my account was in, users, instead of webdev. That was easily fixed with chmod by setting the setgid bit on the directory. For reference the command is chmod g+s directoryname. You could do it with octal (it would be chmod 2775 directoryname), but using octal obliterates existing permissions whereas the letter syntax leaves them alone. Now when I make new files, webdev owns them and the proper permissions can take effect.

The second problem was just that: permissions. The default permissions are read/write for owner, and read only for the group on the directory and for everyone else. I wanted the permissions in this directory and this directory alone to default to both the owner and the group having read/write.

A quick Google search told me I'd have to use an ACL to make this happen, and even showed some sample commands designed to do just this. Except that the command (modified for what I was trying to do, of course) wouldn't work. Every time I ran it I got an error message saying I hadn't provided enough arguments.

Some more Google searching with the proper command name (I had searched 'umask', not 'setfacl', silly me) found me the reason why my attempts at setting up an ACL weren't working. There's a mount option you have to set on that partition in /etc/fstab (aptly named acl) to actually enable them. So I did that and rebooted (I probably could have just told mount to remount the root partition, but rebooting works too), and then after some slight facepalmery, the command succeeded.

I made a new file and crossed my fingers. One ls -l later, I was pleased to see that the new file had the exact permission set I wanted. Running getfacl on the directory now shows that for the group webdev, permissions are overridden so that group read/write are always available.

So in case anyone else happens to want to do this (I ran across a few forum posts in my Google searches where people were asking how to do exactly this), here's a quick reference. You'll have to do most if not all of this as root. If you're a lower-level linuxmancer like myself, look all the commands (and the one file) up with man before doing anything. Also of interest would be mount's man page.
  1. In /etc/fstab, make sure the partition containing the directory you want to change default permissions on has the acl mount option.
  2. Remount the partition, or if you're lazy and/or a BOFH, reboot.
  3. Make a new group with groupadd, then put your account (and any other accounts you want to be in the group) into the group with groupmems.
  4. If any of those accounts are logged in, log them out and back in (or tell people to do that if you're in a multi-user setting). Once this has happened, running groups as the user(s) you added to the group should return a list of groups including the group you just created. For instance, mine returns users webdev.
  5. Change the group on the desired directory to the one you just set up, using chgrp.
  6. Change the permissions on the directory to have the group write and setgid permissions bits set. Easy way out = chmod g+ws directoryname.
  7. Now use setfacl to tell it that the group permissions for all new files should be rw-. Your command should look something like this: setfacl -d -m group:groupname:rw- directoryname.
Now if you ls -ld directoryname, you should see something similar to this: drwxrwsr-x+ 2 owner groupname 4096 2009-11-06 00:13 directoryname. The s in the group bits indicates setgid, and the + indicates that there's an ACL in effect on the directory. You can view the ACL with getfacl directoryname. Any files created in the directory after this will also have a + at the end of their permissions bits. You'll have to chmod and setfacl existing files and directories to the appropriate values manually. Keep in mind that both chmod and setfacl take the -R argument which makes them recurse subdirectories, so keep that in mind if you've got a large directory structure and you just said "fuck my life!" because you thought you'd have to manually chmod and setfacl everything.

Important to note is that so long as you don't fuck with the everyone read permission, Apache will still be able to serve files from the directory. So basically it Just Works™. And I like that.

On a non-Linux note, I'm going to Nekocon this weekend, so expect a con report late Sunday evening/early Monday morning.