Monthly Archives: July 2009

I Can’t Run Windows

I have two computers at home — a cheapie $400 Gateway T-8635u laptop I bought on sale at Newegg a couple months ago and a homebuilt desktop based on a Gigabyte P43-ES3G motherboard, E8200 CPU, 4GB of RAM, Nvidia 7600GT and FX5500 GTS video cards, 2 Envy24-based sound cards, two Samsung DVD-RW drives, and 320, 500, and 640 GB SATA drives.  Pretty standard, mainstream hardware.

Well, strangely enough I’m completely incapable of running Windows natively on either one.

The laptop has a “restore partition” that you have to use to install Windows.  When I first got the thing, I set it up as a dual-boot Ubuntu and Vista machine.  Well, the Vista partition somehow got corrupted and attempts to restore from the “restore partition” always fail.

No problem, I can just boot to a “real” Windows OS disk.  No luck.  If I boot to WinXP, the machine bluescreens and reboots after I hit the “F8 – I Agree” after the license.

Instead I have Ubuntu with VirtualBox loaded on the laptop and Vista installed in that, which runs perfectly fine.  It just won’t run on the hardware without Linux in-between.

OK, now on to the desktop.  If I try to boot to Vista, it bluescreens before the splashscreen and instantly reboots.  If I try to boot to the install CD, I get as far as selecting the drive to install to before being told that there are no valid drives installed.  I can run Ubuntu fine, and have WinXP installed in a VirtualBox so I can run the essentials — Visual Studio, Netflix player, DVD player (still haven’t gotten DVD playback working in Linux.  How lame.)  The bad thing is that I can’t access my Mustek A3 scanner (but the Canon LiDE works great).

It’s a little sad that I *have* to run Windows to accomplish the things I want to do, but the market share of Linux sucks so bad that I couldn’t *buy* software if I wanted to.  And I do.  I’m not above paying for things that are useful.  I’d gladly shell out $3-600 for a native copy of Photoshop or VS2008 on Ubuntu.  After all, I make more than enough money from doing work on those apps to justify buying them.

It just sucks that I can’t run Windows natively on any of my systems.  If only they had decent hardware support, but Microsoft is trying really hard to fail at OSes.  Everyone says that Windows 7 will be the be-all-end-all operating system, but I’ve used it and just don’t see it.  It’s just Vista for people with touchscreens.

Ready For Some Preliminary Testing Soon

Some time in the next few days I hope to put up the Basternae 3 codebase in its current state temporarily in the hope that a few folks will be willing to help with some testing.

This isn’t a “beta” or anything like that.  It’s more of a “proof of concept” — to find out what’s completely broken and/or needs work next.  After the things in this test are fixed then I’ll be ready to start thinking about getting some help with zones.  For this test there will probably only be one or two zones attached – just enough to try out some combat, etc.

What I’ll be looking for in this test is just for someone (or multiple someones) to try all of the commands, skills, help file entries, socials, etc. and report any that are non-functional, fail to give any feedback, or that just behave weird.  I know that classes and their skills/abilities still need a fair amount of work, but this will also help me with getting everything else in working order.

So, check back later this week.  Next week at the latest.

A Little Overwhelmed Right Now

Progress will have to halt for a bit — started the new job and there’s a bunch of things I don’t know as well as I’d like to, so it’s reading tech books that’ll take up the spare time for the next few weeks.

Masquerades

I just finished reading Masquerades by Kate Novak and Jeff Grubb, tenth book in The Harpers series. I skipped over the ninth book, Crown of Fire, because I ordered it from Paperbackswap and it hadn’t arrived by the time I wanted to pick up another book.

I have mixed feelings on the book. Most of the main characters are from Novak and Grubb’s earlier book, Azure Bonds. The problem is, I didn’t actually like any of those characters. They’re entirely too lifeless and one-dimensional and it’s not really worth caring about what happens to them. Despite the characters, the book has a good plot and in defiance of the lack of character development and choppy dialogue, I had to keep reading just to find out what happened next and which factions were victorious and which were destroyed. It wasn’t as bad as a George R.R. Martin book where the plot is enthralling but the writing is about what you’d get from a 5th grader, but it was still fairly dissonant.

Overall I’d give the book 2.5 stars out of 5. If you actually like the characters from Azure Bonds, give it a read.  Otherwise it’s probably not worth it. As for Azure Bonds, the gold box game (Curse of the Azure Bonds) was better than the book.

More Fixes To File Loading

A week ago I wrote about Mono not being happy with XmlElementAttribute.  I had cleaned up loading/saving for players and zone files, but skill and spell data needed some work.  I took care of that today, so all of the xml serialization is happy now.

I’ve hired the wife as a QA tester to do some preliminary “how broken is it” testing so I know what needs to be fixed before the real work (building) can begin.

Goodbye, Pizdook

One of the things that I do for the FindMUD mud listings is check connections once in a while (approximately monthly) to see if a MUD server is running and then display a log of connection attempts on that MUD’s listing page.

When I was on shared hosting, that was a process that was far more involved than it should have been.

Step 1:  Get a list of currently active mud listings to query.  For that I created a custom hidden view in Drupal that I could copy and paste into my connection test app.

Step 2: Run the connection tests.  I wrote an app specifically to do this by checking telnet connections to each MUD on the list.  If would generate two sets of SQL queries.  The first contained the connection results, while the second contained any changes to IP addresses.  I called the executable file “Pizdook”, which is a scathing insult used in Orson Scott Card’s Homecoming series of novels.  It represented my annoyance at having a multi-step process due to the limitations of using shared hosting.  Here’s a screenshot:

Step 3: Log into PHPMyAdmin and paste the queries generated by Pizdook into the “execute SQL” window to update the database.

Thanks to some new-found knowledge of SQLAlchemy, I’ve rewritten the app as a Python script that I can run with a monthly cron job.  Suddenly it’s hands-off, a single-step automated process that I no longer have to spend any effort on.

Resource Usage For Basternae 3

Here’s the resource usage for Basternae running on Mono on Ubuntu with 1 active user and 6 zones loaded:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root     24624  0.2  6.9  39284 25548 pts/0    SNl  21:40   0:08 mono Basternae.exe

I have to imagine with a full complement of zones and a few active players that the memory usage will reach 64MB VSZ and 48MB RSS with probably about 1.2% CPU usage.  This would be well within the abilities of the current hosting and would use about 15% of the overall available resources.

What I am a little afraid of is memory leakage.  Contrary to popular folklore, running C# does not completely eliminate memory leakage, it just makes it easier to avoid.  The nice thing is that I’ve designed all of the game objects with instance counters, so at any time I can get a count of how many rooms, objects, mobiles, etc. exist in memory at any given time, whether they’re actually active in the game or not.  This will make it easier to track down leaks if any happen.

Worst case is if resource usage expands drastically we may have to upgrade from the Linode 360 to the Linode 540.  In that case, running Basternae would cost a total of $120 per year.  I’ve been spending that much on lunch every two weeks (I really need to cut down, but I work next to all of the best restaurants in my city), so it’s not exactly a huge number in the grand scheme of things.

It should also be mentioned that on Windows, memory usage is only 14MB.  Running on Linux/Mono requires a lot more resources.  Part of this is because some of the things used by .NET are automatically loaded by the Windows OS so they don’t contribute to memory size, and part of it is because in a way Mono is actually a “Windows software emulator” and is less optimal than something like a C executable compiled to run natively.