Monday, May 31, 2004

Why does everything have to be so hard?

So, lets say you capture video in Movie Maker, in DV-AVI format, so it is lossless when you start editing it. Now, for whatever reason (and there are lots of valid ones, including mine, which will have to wait for a later blog entry) you want to do the actual editing in Adobe Premier.

Easy enough, right? Adobe can read DV-AVI files no problem. Well, it can't read Movie Maker DV-AVIs if they are over a certain size. It will import them, but then after some variable amount of time (in my case between 2-5 minutes) it will just keep showing the same frame over and over, and make a horrible noise for sound. But it obviously can read the files to some extent, because it gets the initial part imported, and it knows how long the file is.

So, I looked all over the internet trying to find some solution. I found people having the same problem on Adobe's forums, and the OH SO HELPFUL advice was "Well, it must be a codec issue". "Or, the file is probably corrupt". Well, obviously whatever codec Movie Maker (and Media Player for that matter) uses works just fine. And there is no other lossless format that you can save to out of Movie Maker, so you don't really have a choice (even if I was able to recapture hours and hours of footage).

I found a program called GSpot which will open an AVI file and check it out. It determines that the header is corrupt, because the length value 1069380612 at offset 0x7ff8 is invalid. Breaking out the trusty hex editor, shows that length value to be the chunk size of the moviidx00 chunk. But it seems like a reasonable value, since the file is around 7G and from what I could find on the internet each chunk has to be less then 1G (and really based on the format could be up to 4G). So I checked out some other files from Movie Maker, and they all have 'invalid' lengths at offset 0x7FF8. Except one smaller file I checked out. So I am not sure if it is a difference in what Movie Maker considers the '1G' boundary, or what.

But the end result is that I can't import the files into Premier. Which means I have to convert the avi to MPEG2+WAV with TMPGENC, and then open them in Premier, edit the audio, and then resave the wav file.

That is so much harder then it needs to be!!

Read the whole post.

Saturday, May 29, 2004

The joys of hardware not working

Yesterday evening I went to burn a CD, and Nero was offering only the ImageDrive as a candidate to burn to. I checked, and lo and behold, the DVD burner is suspiciously absent from the computer. Looking at Device Manager, the DVD drive is still in the list, but it is marked as not working because 'The driver was loaded correctly, but could not locate the hardware device". Say what?

Thus started the flailing around that is troubleshooting a non-working hardware device. The BIOS could still recognize the drive, and I could insert CDs just fine so the power was just fine. I tried removing the drive and re-adding it, uninstalling Pinnacle Instant DVD (which was the last semi-related piece of software I had installed), and any number of other unsuccessful activities.

The amusement came when I had exhausted pretty much everything I could think of, and I gave in and clicked the help associated in the Device. That brought up the helpful advice of "Make sure the device is plugged in". After that quality advice, I was offered....nothing. That was the extent of the help. Fabulous.

Finally I uninstalled Nero, and surprise the drive shows back up like nothing had happened. Re-installing Nero didn't hose over the drive, so I guess everything is all fixed. Must have been some sort of conflict with Pinnacle and Nero, although I had used Nero after I had installed Pinnacle. Oh well.

Read the whole post.

Wednesday, May 26, 2004

Timberwolves Tickets Part 2

Apparently the TimberWolves promotion I mentioned yesterday wasn't such a huge hit. Today we got an updated offer for Game 5 tickets:

For $150, you receive:
* (2) $37 second level seats to WCF Playoff Game 5
* (4) $19 lower level seats to Lynx vs. Monarchs game on Thursday, June 17 at 7:00 pm at Target Center

Again, no discount on the price of the tickets, but at least you only have 4 tickets to the MN Lynx, rather then 20.

It will be interesting to see if tomorrow we get a third (and I suppose final :) offer.

Read the whole post.

Tuesday, May 25, 2004

Timberwolves Tickets

Unless you've been living under a rock, you are probably aware that the Timberwolves are in the Western Conference finals against the Lakers.

The promotions staff at the TWolves has been offering extra playoff tickets for the game that weren't pre-sold-out (Game 5+). For the Denver series, they offered $37 seats for face value. The seats are obviously not the best (in fact they are rumored to be not very good, but there are no real bad seats at the Target Center). Anyways, for the King's games, they offered the same $37 tickets, but bundled them with $8 Minnesota Lynx tickets (the WNBA team).

For the Laker's game 5, they offered tickets only if you bought either:
1) Season tickets for next year (Full season, Half Season, or 10 game)
or
2) A $234 package of tickets.

What did the $234 package include you might ask? Well, 2x$37 playoff tickets, and 20x$8 Lynx tickets. All for the same Lynx game. What a rip off. I would rather take the $234 and try to buy better seats at just the playoff game. Screw the Lynx.

That was also the consensus during lunch at work. Two of the better jokes told over lunch:

Frosty: I wonder where $8 Lynx tickets are at?
Me: Courtside

Me: Can you imagine trying to scalp 20 $8 Lynx tickets for the same game?
Frosty: I imagine standing outside holding 20 tickets going "Just wait till the crowd shows up"...."Just wait till the crowd shows up"..."I hope the crowd shows up".
Dono: I imagine doing that with a line of 5 other people who bought the same package of tickets.

Read the whole post.

Monday, May 24, 2004

Books: Assassin's Apprentice

I finished Assassin's Apprentice this weekend. It was quite good, I really enjoyed it. The characters were interesting, and the world was interesting enough to keep me reading. My only complaint is that it took a while for the core plot to get going. The arly part of the book was interesting, but was mainly character development and waiting for 'the stars to align' so to speak, and get everyone doing what they needed to be doing for the end of the book.

But, it was quite a good book, and I dove right into Royal Assassin.

Read the whole post.

Sunday, May 23, 2004

What a difference one sentence makes.

I spent a while on Friday trying to debug a confusing problem with one of my database infrastructure services, written in Perl . It was supposed to do certain tasks only every so often, but one particular thing was happening every loop regardless of what its frequency was set to. After a while, it was narrowed down to something similar to this:

foreach my $sid (@sids) {
    {
        local $Frequency{$name}=&GetSidConfig($sid,$name);
        next unless &CheckTime($name,$DBOffset{$sid});
    }
    #rest of the loop actually doing something
}


Basically looping through databases and using a (potentially) different frequency for each of them.

Now, I've written lots of things similar to this, with the extra block scope to restrict the effects of the local declaration. Eventually it became clear that the 'next' wasn't working as you would normally expect. So I looked in my handy-dandy Perl in a Nutshell reference book to see what it had to say about 'next':

The next command is like the continue statement in C; it starts the next iteration of the loop. Note that if there were a continue block on the above, it would get executed even on discarded lines. If the LABEL is omitted, the command refers to the innermost enclosing loop.

That is all well and good, but it seemed obviously the innermost enclosing loop is the foreach. So why wasn't it skipping the rest of the loop? I spent a while checking out whether the local was working correctly (i.e. that GetSidConfig was returning the right value for each database), and that CheckTime was working as expected (i.e. that DBOffset had been properly initialized for each database).

Everything appeared to be working correctly, and on a whim I checked the next documentation on perldoc. Starting with perl 5.6.1 the 'next' documentation was updated to include this extra sentence:

Note that a block by itself is semantically identical to a loop that executes once. Thus next will exit such a block early.

Well, it sure would have been nice to have that in my book, so I wouldn't have spent all that time debugging the wrong branch of code.

Read the whole post.

Thursday, May 20, 2004

Translating Vendor Speak

As an Oracle DBA, a good portion of my time is spent helping crutch up poorly written applications doing silly things like running a really bad statement 17,000 times a minute. Sure helps the cache hit rate, but man the CPU usage goes to hell.

Anyways, today we got a mail from the vendor of an application where we have had some particularly bad performance problems of late. It contained this paragraph:

Although XXXX was load tested with larger numbers of users and equivalent data to that currently being experienced in production at XXXX, we have been involved with the performance team on this particular analysis project and have identified areas where the XXXX production database has scaled differently than the performance database.

I translate that into "You put data in what table? We didn't test that...".

Of course, considering we are using their tools/application to populate the database, how can they be all that surprised.

At least the problem is getting fixed, it could be worse, I have other environments where we can't even get the vendor to look at the problem statements.

Read the whole post.

Wednesday, May 19, 2004

Spyware

Linzy and I went over to Andy and Laura's house last night because they were having some problems with their computer. From the initial stories I was hearing, it sounded exactly like the typical spyware problem. Random home page they can't get rid of, porn site pop-ups all the time, etc.

I had prepped them by having them download and run Spybot ahread of time. This cleaned up around 80 things (those numbers always sound incrediable, when you consider each cookie a separate thing). But they were still having problems.

After a bit of looking around at things, I found several other things in the various startup lists that Spybot hadn't gotten rid of. Which was pretty amazing, because they seemed obviously wrong from manual inspection. Usually Spybot is hard core with GUIDs and crazy class registrations, so I expect it to also find the simple stuff. But alas, it didn't.

Adaware cleaned everything up though, and the new version seems much improved from the older ones I used to use that took forever to scan.

Read the whole post.

Windows Movie Maker 2

Just a follow on my previous post about Windows Movie Maker 2.

I'm still plugging away with WMM2, but I'm starting to think about trying some other program. Movie Maker works great...when it works. My video is around 150 pictures plus some video clips, with a sound track and a few text overlays. Lately it is like I crossed some magic threshold and WMM can't handle the size of the project anymore. I get random-seeming hangs, almost constantly. Granted there are a lot of pictures to track, but Movie Maker is only using about 100M of my 1G of memory when it goes off into infinite loop land. Very frustrating if I've made more then a few minor changes since saving.

It seems to be random. I can be editing something at the very end of the video, or in the middle, or just browsing through the collections. The worst part is I don't know if another editing program will be able to open my project, so I am pretty much stuck battling through with WMM. Also, there is virtually no information on WMM that I can find on the internet. Certainly nothing from anyone else experiencing similar problems.

I wish the WMM2 guys had blogs like the .NET and other Microsoft guys do.

Read the whole post.

Monday, May 17, 2004

Books (Ringworld)

I finished up RingWorld by Larry Niven a few days back. It was pretty good, I'm not necessarily much for science fiction but since it is a pretty classic book I thought I would give it a try (and Linzy bought it for me for $0.50). I was pleasantly suprised, the characters were interesting, as was the premise. My only complaint was that it was a bit short (342 paperback pages in my edition, from about 1985). Since Larry Niven will be at Convergence this summer, I might bring it and see if I can get it signed. That would be pretty cool.

Now I've started Assassin's Apprentice by Robin Hobb. So far it is quite good.

Read the whole post.

XIII

Since Xenogears hasn't really been doing much for me, I've been branching out of my PS1 RPG rut a bit.

I tried Prince of Persia: Sands of Time on the new computer because I had heard good things about it. Also, I had gotten it before the computer upgrade, and I couldn't play it because (at the time) I didn't have a GeForce 3. Since I've had to see it sitting on the desk mocking my lack of a modern graphics card my expectations were high. And as usual, I was disappointed. The graphics were OK, but nothing that appeared to justify the silly GeForce 3 requirement. The controls were decent enough, considering it is a console game ported to the PC. But the sword fighting is lame/frustrating. There will be like 7 guys all ganging up on you at once, and you have basically three moves: Slash, block, and counter attack. Oh, and at least at the beginning of the game it is not enough to kill the zombies, you have to take time out from fighting the other 6 monsters to stab the knocked out zombie with your dagger, thereby 'killing it'. Meanwhile of course the other 6 guys surround you and start pummeling you.

So, having better things to do with my time then killing zombies over and over and over, I decided to try something else. On Friday night, I was over at Dan's house and we played some of the UT 2004 demo. That was quite fun (I enjoyed UT quite a bit, UT 2003 demo didn't do much for me, and didn't really run well on the old computer). So that got the old FPS juices flowing, and I recalled that Linzy picked up Unreal 2 for me off the Target clearance rack for like $10. Another game that wouldn't run (well) on the P3-933 so had sat unused in a drawer. Alas, the reviews were right, and Unreal 2 didn't grab me. The graphics are quite good, but there was WAY too much talking at the start of the game, and not much in the way of action. Then you get dropped off at a base, and have to fight through millions of really fast bug creatures with either their crappy guns, or a lame assault rife. Oh, and they introduce the Skaarj in almost EXACTLY the same way as in Unreal 1. The lights go off one by one, and then the thing jumps down through the elevator ceiling. I mean, that was cool the first time, but couldn't they come up with anything better?

Anyways, it so happened when Linzy and I were over at Shawn's on Saturday night that he had XIII sitting on his shelf. Since I noticed that was only $20 at Best Buy the last time I was there, I asked if it was any good. He offered right away to let me borrow it, so I did. I had always thought the screenshots looked cool, but then the reviews weren't all that flattering. But, it turns out to be pretty fun! The graphic style is cool, and makes it feel sort of original, even if the gameplay is pretty standard FPS. But the weapons are interesting, there are cool comic-book-like cut scenes that appear inset in the screen when you kill someone in an interesting way, and the levels are quick and varying so that you get to try a lot of different stuff out pretty quickly. The inventory system is atrocious, there appears to be no way to set quick keys for switching to the grappling hook which you have to use every few minutes. Oh, and there is only a checkpoint save system, which is a bit frustrating, but it hasn't been too bad so far, and I am roughly ~50% through. The only other complaint I have is that the story is a bit dry. David Duchovany does the main character's lines (what few there are). You have amnesia (imagine that, a game where you can't remember your past), and sometimes I'm pretty convinced the character is a mute too.

Overall it is pretty fun. If history is any indication, it doesn't look good for ever finishing Xenogears now....

Read the whole post.

Friday, May 14, 2004

RSS Bandit

I use RSS Bandit as my aggregator. Since I started this blog and convinced friends to start their one, I've run smack into the whole Atom vs. RSS debate. Since i have no vested interest in either, I just want to be able to read feeds from Blogger and Livejournal et al in the same tool.

Well, RSS Bandit has been updated (actually a while ago, but I just noticed it last night) and supports Atom feeds now. The latest version worked pretty well, it even got back the menu and tool bars, which had long ago dissapeared and wouldn't come back.

So, moral of the story is upgrade your RSS Bandit install if you haven't already.

Read the whole post.

Windows Terminal Server Clipboard

Have you ever logged into a Windows 2000/2003 Terminal Server session and not been able to cut & paste to your desktop?

Cutting and pasting to a remote Terminal Server session is referred to as Clipboard Mapping. It can be disabled on the remote server, preventing you from being able to copy&paste. Since Clipboard Mapping seems to be enabled on most servers, lots of people don't know how it is controlled and/or what to do if it isn't working. On servers where it's disabled, heres how to enable it (I assume you need Administrator rights, so make sure to 'run as' if you aren't already running as an admin...and you aren't running as an admin for normal operation, right?)

On the server, Go to Administrative Tools->Terminal Services Configuration. Then right click on RDP-TCP and choose properties. Under the client settings tab, make sure that "Clipboard mapping" does NOT have a check by it (the check indicates 'disabling').

The drive mapping stuff configured in the same section is also pretty cool. If you enable it on a server and on your client, you can access your shares from within the terminal server with \\tsclient\share_name syntax. Quite handy for copying files from your desktop to a remote server. And since it gets through the firewalls at work that don't allow drive mapping, it is probably going across the Terminal Server port.

Read the whole post.

Thursday, May 13, 2004

New Windows XP/2003 command-line utilities

Microsoft rolled a large number of command line tools from the various resource kits into the standard OS. They also renamed/rewrote some tools to do similar but different things. Because of this, some utilities you might be used in the Windows 2000 resource kit/support tools add-ons are are no longer provided. Three big ones no longer included are pulist, tlist, and kill are no longer.

1) Killing processes, You need to use 'taskkill' now. Examples:

Killing pid 1977
    taskkill /PID 1977 /T
Force killing pid 1234
    taskkill /PID 1234 /T /F

2) Listing processes, You need to use "tasklist" now. Running the command by itself gives similar information to "tlist". There is no equivalent, that I am aware of, to a tlist -t. You also can't use tasklist to get the command line for a process. I haven't found another built-in program that will show that information. Examples:

Listing all tasks on the host:
    tasklist
Listing verbose task information for all oracle.exe processes on the host:
    tasklist /v /fi "IMAGENAME eq oracle.exe"

3) Scheduling commands:
There is a builtin command line interface to the enhanced functionality of the scheduled tasks, called "schtasks". It will display the same tasks list as "Scheduled Tasks" in the control panel. In the same way that you can not see scheduled tasks with at on Windows NT/2000, you will not be able to see tasks scheduled with schtasks with at.exe. Examples:

Listing all scheduled tasks:
    schtasks
Listing detailed information about tasks:
    schtasks /query /v
Forcing a backup of a database to run "right now"
    schtasks /run /tn "db_backup.cmd"
Deleting a task called db_backup.cmd
    schtasks /delete /tn "db_backup.cmd"
Creating a new scheduled task to run every day of the week:
    schtasks.exe /create /ru SYSTEM /SC WEEKLY /D MON,TUE,WED,THU,FRI,SAT,SUN /TR C:\Utils\SCRIPTS\.\.\ACCREQ.CMD /ST 18:00 /TN ACCREQ.CMD


Read the whole post.

Wednesday, May 12, 2004

Stripping the 'extra' carriage return from the end of lines

Ever unzipped/tarred something on UNIX and ended up with a whole directory structure filled with files all containing ^M codes at the end of each line? The reasons are pretty much uninteresting, and well documented (Here for example). Of course, understanding why they show up doesn't really help you once you have hundreds of files already transferred to some host. On UNIX systems (Solaris in particular, ymmv on others) you can remove the ^M characters with a single find + perl command.

find . ! -type d -exec perl -pi -e 's/^M//g' \{\} \;

Remember to use ctrl-v,ctrl-m to insert the actual control-character for carriage return, not the literal string of a '^' character + an 'M' character.

Read the whole post.

Tuesday, May 11, 2004

Windows Movie Maker 2

Since I've been spending time playing with the new computer, I've gotten fairly adept at Windows Movie Maker. Overall it is a pretty good program and is relatively easy to use. But there are some things I just don't get:

1) Why is it not possible to import a directory structure directly into collections?
This seems like a fundamental thing everyone has to do when they start working on a slideshow. I have my photos nicely organized into various folders under 'My Pictures'. Why can't I just drag My Pictures into the app and have it create a 'Collection' for each subdirectory of pictures? Instead, I have to manually duplicate the folder structure and then drag each group of pictures to the appropriate collection. Which is obviously a one-time deal, but a huge waste of time.
Along the same lines, why isn't there an option to monitor my pictures folder for new pictures and automatically import them into the collections. Otherwise I am reduced to spending 5 minutes digging out the 3 new pictures of Pippen I added, dragging them into my 'Pippen' Collection, finding the 5 new house pictures I took, dragging them into the House collection, etc. Windows Media Player can monitor folders, why can't Movie Maker? Hell, I can do it with the Win32::ChangeNotify perl module.

2) When I choose 'Add a title to this frame', why does that overlay suddenly become a static item in the timeline, and not move with the frame I added it to?
If I want a picture of the San Francisco Bay with the subtitle 'San Francisco Honeymoon' on it, that is easy to do. But then as soon as I add another picture sometime earlier in the move, my title stays at the same time mark and is now on some completely different picture. The option is 'add a title to this frame', not 'add a title at minute 5 and 5 seconds'. The end result is that you have to basically do the whole move and then go back and add titles. This is fine would be fine if I was doing the movie in one shot, but if I create a rough draft, and then go back and change a few things, I have to spend all kinds of time shuffling titles around. The same thing applies if I increase/decrease the amount of time the frame is on screen, then I have to change the duration of the overlay.

3) Why can't I cut wave files in the program?
I wanted to trim out a section of one wave file, and I had to do it in the software that came with my sound card. Otherwise the only recourse seemed to be trying to slide the little timeline ends to exactly the right point, and play the song over and over until I got it just right. In Creative Wave Studio, I was given a wave form, selected the portion I wanted, played it once to make sure it was what I wanted, clicked crop, and save, and was done. Total time 10 minutes, I spent twice that long in Movie Maker trying to figure out if there was a way to do it 'inline'.

4) Why is there no option to purchase a DVD burning plugin?
The whole point of this exercise is to create a DVD to give as a present. I can produce a nice WMV of the video, or a DV-AVI, or even write it back to a camcorder. Why can't I burn a DVD, or at least put together a menu and write out a MPeg 2 for burning with Nero. I understand the MPG2 licensing issues, but couldn't it at least be a $20 extra cost plugin or something (sort of like the MP3 encoder for WMP)? I would be more then happy to pay that, rather then having to buy a whole separate program just to author a menu (since I can use TMPGENC to convert from DV-AVI to MPG2). It all seems overly complicated. Besides the fact that none of the reasonably priced DVD authoring suites seems to have a particularly good menu building system.

Overall I've been happy with Windows Movie Maker, it is just good enough to make up for the various annoyances and inefficiencies it forces on me. But it could be so much better!

Read the whole post.

Xenogears

Due to lack of a better idea for a first post, I will instead post a partial review of Xenogears I originally sent to Brenden in an E-mail.

Xenogears is good, although I have mixed feelings about it. Sometimes it is awesome, with a good, interesting story, fun battles, etc. Then other times it is dull, slow moving and monotonous. I have a couple issues with it:

1) The story is uneven, sometimes it is interesting, other times it just seems to drag and its like they threw a bunch of stuff in just to make things longer. And there is a LOT of story, sometimes I can play for an hour and never do anything but click through a storyline, and run from place to place to hear more conversation. In some spots, there isn't even a dungeon or anything so that you have random battles in between, its just like 'go find XXXX in her room', ok, now 'go to the bridge of the ship', ok, now 'go find XXX and YYY in the gear hanger', etc. That can be frustrating, especially when it doesn't advance the 'core' storyline.

2) Gear battles are retarded. There are two battle modes, the expected one where you are just a normal guy, and you do various strength karate moves on the enemies. You can combine different strength attacks together to do combos, and you can learn new combos by pressing the buttons in combo order throughout battles. So that is relatively interesting, if you don't feel like fighting, you can use combo after combo to just destroy things. If you have some patience, then you can learn new and better combos. The minor problem with that is that I have learned all the combos I can until later in the game when I get a 7th action point.
Anyways, gear battles are a whole different story. When you are in your Mechwarrior-like-gears, You have thousands of HPs. You can only do one action per turn, either attack strong/medium/weak, or charge and regain 30 units of fuel. Various strength attacks use various amounts of fuel (30,20, or 10 depending on the strength). Or you can use the same combo buttons as normal battles to execute different attacks at higher fuel costs. The problem is that you can only do combos after you've done some number of successful attacks. So you are forced to do say '1 strong attack, then one weak combo, 1 strong attack, one weak combo', etc. Or '1 strong attack, 1 strong attack, 1 medium combo', etc. There is no variety, and no way to speed the combat up. Plus there is no way to heal yourself until later in the game, and that costs tons and tons of fuel. Oh, and you can't even make progress on learning new combos when you are in a gear, so there is no motivation to do anything other then strong attacks.

Overall, the beginning of the game was great, it was a lot of fun, they had cool anime cut scene things, the story was interesting, but didn't dominate the action. The middle section (which I am in now) is pretty slow moving, a lot of very lengthy dialogue sequences with no anime, and I am having trouble motivating myself to play it. It is definitely a long game though, I am over 20 hours in, and still have at least that much left to go (from what I can tell glancing at walkthroughs).

Hopefully it will get better.

Read the whole post.