Jay Harris is Cpt. LoadTest

a .net developers blog on improving user experience of humans and coders
Home | About | Speaking | Contact | Archives | RSS
 
Filed under: Flash

This just toasted two hours of my morning, and ended with a “Huh. I never would have thought of that!” moment. And whenever I have one of those, I like to toss the problem and the solution up here in the hopes of saving two hours from someone else’s morning, someday.

Problem
We have a Scorm course. The course is coded in Flash and heavily relies on FLVs. For one of our client’s sites, we just rebuilt the Staging environment, upgrading to Windows 2003. Ever since the rebuild, this course in question hasn’t worked in the Staging environment. It works fine in Production, but not in Staging. It’s the same code, but it works in once place and not in the other. I hate it when that happens.

Turns out that we didn’t have and needed a MIME for FLVs.

Solution
Crack open INetMgr. (These directions are for IIS6)

  1. Right-click the server, and hit ‘Properties’
  2. In the Properties window, click the “MIME Types…” button
  3. In the MIME Types window, click “New…”
  4. Extension: .flv
  5. MIME Type: video/x-flv
  6. OK, OK, OK, you’re done

Thanks to Don DiCicco for finding the solution to this one. He googled up a link to a similar post on this same problem / solution. And thanks to good ol’ JT for posting the original solution, whoever you are.

Thursday, 17 August 2006 08:09:57 (Eastern Daylight Time, UTC-04:00)  #    Comments [1] - Trackback

Filed under: Mush

I’m finally leaving the apartment world and entering the brotherhood of the house-poor. The process is exciting, interesting, and oftentimes overwhelming. However, last week when the home inspectors came to check the place out, I was amused by yet another situation where my QA skills applied. Functional testing, automated testing, performance testing: it was all done.

Ways to Performance Test a House:

The water system
Turn on every water faucet in the house at the same time. Can the system handle it? Does the water pressure drop? Can the well pump keep up? Turn on the outside water faucets and the sprinkler system. How does it do now? If the house can handle it, you should not have to worry about the shower getting cold when the toilet is flushed.

The electrical system
Similar to the water system test, what happens when you turn on every light in the house? How about if you also start the dishwasher and the clothes dryer? The air conditioner, too? Maybe do the water test at the same time, since the well pump draws from the power system, too. Get some electrical system meters to make sure the power does not die down when the load is high.

Ways to Functional Test a House:

The electrical system
Aside from making sure that the lights to actually turn on, the outlets work, and that the doorbell actually dings, there are some other cool tricks that were done against my house. I forget the name of the toy, but the inspectors had this cool gadget that would simulate a short in the system, like someone splashing water on an outlet or getting frisky with a fork. The gadget would test that the GFCI outlets would actually trip under such a scenario. Purposely overloading the system to make sure that the safeguards did their job. It’s like pulling the network cable from a MSCS Cluster to make sure that the servers would actually fail over. I thought this one was the most fun of all the night’s tests.

Ways to Security Test a House:

I used to carry a long expired medical insurance card in my wallet. Sometimes I would lock myself out of the house, most commonly when I took the garbage out, and I would use the card to pop the door and get back in. (I would always have my wallet with me, even if I forgot my keys.) I wasn’t thrilled that I could do that, but it did come in handy from time-to-time.

I’m sure there are other ways to test a house. Anyone else have any creative tasks?

Tuesday, 15 August 2006 08:12:24 (Eastern Daylight Time, UTC-04:00)  #    Comments [0] - Trackback

Filed under: Tools

Microsoft has announced that the upgrade to Internet Explorer 7 will be “high priority” in Windows Update, essentially forcing the upgrade on XP users everywhere (news.com). Microsoft has released a toolkit to disable automatic delivery of the browser upgrade, however this is a pro-active path; if a user does nothing, they are going to get the new version. My poor grandma (Usability: What Would Grandma Do?), who has no idea about any of this, is getting the upgrade. If you have Windows XP, and you have an internet connection, you pretty much are destined for this upgrade.

Now, I don’t think that is entirely a bad thing. Far too many people just blindly use this paperweight we call a computer. They don’t read manuals, they don’t educate themselves on this thing, they just start pressing buttons. When they get a phishing email about “Your bank account has been compromised. Please send me your account number and password so that I can fix it,” they reply with their credentials. “Click here and win an iPod” and they click. “Check out this email attachment of dancing babies” and they get yet another virus. Because of this we have to monkey-proof computers, and add far too many security checks on systems, and overall make developer-life a little more painful. So, I think this is a good thing. Yeah, I drank the Microsoft kool-aid, but I’m all for this automated upgrade to help make up for the swiss cheese that is Internet Explorer 6. I’m going to continue using Firefox as my browser, anyway, but if this makes my OS a little more secure…good!

But what does this mean to us, the development / testing community? Test now. Test often. In a few short months a few million people will unknowingly get IE7, and at that time we will no longer have any excuse about whether or not our systems work. Our stuff needs to work on IE7-Day. So download the beta, and start testing your web apps to make sure everything still works. Microsoft hasn’t been too browser-compliant in the past, and other than competition from Firefox I don’t see a lot of reason that they would start, so there is good reason to suspect things might break. Start testing now, or you will be scrambling in a few months when your help desk lights up like a Christmas tree.

Friday, 28 July 2006 08:30:43 (Eastern Daylight Time, UTC-04:00)  #    Comments [0] - Trackback

Filed under: ASP.Net | Programming

Many .Net developers that have experience in presentation-layer development have previous exposure to this one, but to those who haven’t, I must share: Request.ApplicationPath is evil! Request.Application path should never be used. Ever. I hate it!

It’s misgivings are most commonly exposed when concatenating strings to the end of it to create a URL of some sort.

sURL = Request.ApplicationPath & “/someDirectory/somePage.aspx”

This is evil. Neither will work in all situations due to the method’s inconsistency with trailing slashes.

If the application root is in a sub-directory, say “http://server/myRoot/index.aspx”, then the appPath is “/myRoot”. Note: there is no slash at the end, and the above sURL gets a value of “/myRoot/someDirectory/somePage.aspx”.

If the application root is not in a sub-directory, say “http://server/index.aspx”, then the appPath is “/”. Note: there is a slash at the end, and the above sURL gets a value or “//someDirectory/somePage.aspx”. In this case, rather than requesting “http://server/someDirectory/somePage.aspx”, wonderful Internet Explorer requests “http://somedirectory/somePage.aspx”. (I don’t fault IE for this. I commend it. It is actually one of the few cases where IE doesn’t kludge together a band-aid for Developer mistakes.)

So, don’t use Request.ApplicationPath. Ever. With no exception. You could make a method, perhaps MyUtilities.ApplicationPath, that checks to see if the return contains a trailing ‘/’, and if it does, give it the axe. This will turn your domain-root appPath to an empty string. Use your new method rather than Request.ApplicationPath, and all will be well with the world. But, don’t do it! Don’t make a new method. That just continues the evilness.

Use Page.ResolveURL(”~/someDirectory/somePage.aspx”) or the counterpart Control.ResolveURL if you want it to be relative to the control’s location. This is the only scenario you should use. ApplicationPath is evil!

Wednesday, 26 July 2006 08:19:23 (Eastern Daylight Time, UTC-04:00)  #    Comments [4] - Trackback

Filed under: Mush | Xbox

In yet another post on the Xbox 360 and associated games and accessories, I am excited about the upcoming game lineup for Xbox Live Arcade. Contra has to be one of the coolest video games in the history of video games. I lost weeks of my life to that game. In addition, Frogger, Galaga, Dig Dug, Pacman, Defender, Sonic, and Street Fighter have all been announced. I’m going to be glued to my television, with nostalgia oozing out of my pores, once these things hit XBLA.

It is a bit old news by now, but this is all from E3. You can read all about it on microsoft.com.

Sunday, 02 July 2006 08:28:56 (Eastern Daylight Time, UTC-04:00)  #    Comments [0] - Trackback

Filed under: Business

Everyone is always seeking the old cliché, “a bigger piece of the pie.” I propose a new cliché, penned by a colleague, Dennis Burton: “Make the pie bigger.”

In my experiences and interactions with other people, when someone gets a bigger piece of the pie it is usually at the expense of the person that used to have that portion. A simple Google for “bigger piece of the pie” returns a slew of articles about somebody who is miffed because their buddy is getting a larger percentage that they are, or the buddy is miffed because somebody stole their piece. I say, “Make the pie bigger.” When the pie gets bigger, so does your piece of it.

Our company has a revenue sharing bonus at the end of every year. Anyone who has been with the company for three years evenly splits up 1% of the total revenue for the year. For 2006, roughly 20 people will be eligible for that bonus. Hypothetically, let’s say we made $10m in total revenue this year; that means I get a nice check in January for $5,000.

$10m x 1% / 20 people = $5,000.00/person

I could just seek a bigger piece of the pie, off Dennis, and I would get another $263! However, depending on what I did, Dennis is miffed because he lost his job or his wife his miffed because Dennis is dead.

$10m x 1% / 19 people = $5,263.16/person

But, what if I instead try to make the pie bigger? Let’s say some recruiter at “XYZ Placement Services” called me up trying to give me a job, and I refer the head-hunter to our head recruiting guy. Soon, we have a new Corporate-to-Corporate deal with “XYZ Placement Services,” helping them fill job openings, and suddenly we are an $11m company. I gross another $500, which is $237 more than if I off’ed Dennis. Dennis, his wife, and the other 18 eligible people are happy because they also gross another $500, and to top it all off, my boss is thrilled because I just brought in another cool million, so he gives me a raise!

$11m x 1% / 20 people = $5,500.00/person

So, do not be concerned with getting a bigger piece of the pie. Change your focus to making the pie bigger; it will make everyone else happy, too, and you might just get a raise in the end. And, if you are the boss, provide incentives for making the pie bigger, like revenue or profit sharing bonuses; you will look better, too, when your team is contributing to the bottom-line of the company.

Thursday, 29 June 2006 10:46:50 (Eastern Daylight Time, UTC-04:00)  #    Comments [1] - Trackback

Filed under: Testing

If you are new to testing, are looking for some experience in testing, or just want to have fun breaking things, check out the WordPress Bug Hunt on 5 July 2006. The WordPress clan is holding a Bug Hunt against versions 2.0.4 and 2.1 in true “fixing them as fast as we can break them” style, as volunteer coders will be jumping on the bugs as fast as you can get them logged. These guys would truly appreciate any help you can supply, and you can have some fun unleashing all of those crazy testing / breaking / hacking tactics that sit in your closet.

WordPress is what runs this site, so your assistance ultimately helps me out, too.

Thursday, 29 June 2006 09:18:11 (Eastern Daylight Time, UTC-04:00)  #    Comments [0] - Trackback

Filed under: Mush | Reviews

Last weekend was the wife’s birthday. She hates having 14 different remotes to control the entertainment center; none of the “universal” remotes that came with any single component are really universal. The Comcast PVR universal remote cannot change inputs on the receiver. The receiver’s universal remote cannot access the PVR functionality of the Comcast box. So, for her birthday I got her a Logitech Harmony Advanced Universal Remote for Xbox 360. She loved it—or at least, the idea—but it sucked, so we returned it the same day.

I have heard great things about the Harmony remotes. The Harmony 360 is just another choice in the product line, with a few modifications:

  • It controls the Xbox 360, out of the box
  • It contains Y, X, A, B buttons to ease use of the Xbox via the remote

The Harmony 360 is nearly identical to the Logitech Harmony 550, except for different colored display (green vs. blue), different color casing (Xbox White vs. Black / Grey), and a few button changes (Y, X, A, B replace the Info / Guide buttons, though Y is sub-labeled ‘Guide’ and B is sub-labeled ‘Info’).

This is, or was, my first experience with the Harmony remotes. I am not a fan of this remote. Most of my distaste lies from the programming / editing software for the remote that is installed to your computer.

The interface is unbelievably slow
After all, performance is important to me. The installed application (not a browser application) would regularly take 5+ seconds to switch between screens.

The “future proof” codes were incorrect
For my A/V Receiver, my Comcast PVR cable box, and for my TV, the codes were incorrect. Though it identified my receiver, a brand new Panasonic SA-XR57 released only a month ago, it didn’t even know the receiver had a DVR input. As the only other component-video-equipped input on my XR57 besides TV, I use it for my Xbox. The problem here is that the software forces you to choose an input for the Activities macros, after which you can specify additional custom commands. My “Play Xbox” activity macro included ‘Turn on the Receiver’, ‘Set the Receiver to TV Input’, then a custom ‘Set the Receiver to CustomInputDVRCommand’. A kludge. A hack. I’m not a fan.

The “smart help” wasn’t so smart
The remote comes complete with a Smart Help feature via a Help button right on the remote that assists you when things go wrong. Because of my incorrect codes, the remote would do things wrong, but the Help would retry in an infinite loop. “Is your TV on?” No. [Sends IR command] “Did this fix the problem?” No. “Is your TV on?” No. [Sends same IR command] “Did this fix the problem?” No. “Is your TV on?” …
It is quite annoying.

The remote went back into the box after 2 or 3 hours of trying to get it set up correctly. It was more hassle than the 14 other remotes. It was not worth $129.99. I am just going to save some cash, and pony up for a Pronto TSU7000. Touch screen, configure my own button layout using my own bitmaps (for the UI side of me), more programmable interface (for my Developer side of me), and a lot more control over how I want my remote to be.

Wednesday, 28 June 2006 09:03:56 (Eastern Daylight Time, UTC-04:00)  #    Comments [1] - Trackback

Filed under: Mush | Usability

The folks over at SvN found this gem. In another case of “Let’s all point and laugh” or “Don’t be that guy,” I direct you to Usability.gov, courtesy of the U.S. Department of Health and Human Services. Note the side-nav article on “Navigation: Left is Best.” Note how the navigation is on the right side.

Hanlon’s Razor. “Never ascribe to malice, that which can be explained by incompetence.”

Monday, 19 June 2006 09:20:25 (Eastern Daylight Time, UTC-04:00)  #    Comments [0] - Trackback

Filed under: Mush | Reviews | Xbox
If you haven’t bought an Xbox 360, yet, stop reading this and go buy one. Even if you do not play video games–I certainly don’t have much time to play them–then you still need one.

I finally convinced the wife a week ago. We picked one up from Best Buy with a copy of Need For Speed: Most Wanted. It is a great game, and I am quite addicted to it, but I’m more impressed with the non-game features.

Windows Media Connect 2.0. (Sell your CD player)

I have already disconnected my CD player. It is going in a box, and I will probably sell it at the neighborhood garage sale next weekend. All of my CDs were long ripped to MP3, so that they can be played on the computer or on the iPods. The only bad thing is the home stereo system has always been the best in the house, expectedly better than iPod headphones or the computer speakers. However, now all that has changed. The Xbox 360 will stream all of my music from my computer. I no longer have to pick 5 CDs and toss them into the player. I can just turn on the 360 (wirelessly, via the remote or controller) and play whatever music I want to play. I’m not even sure if I will ever even buy a CD, anymore, instead opting from some sort of digital media, like iTunes.

One of my favorite “Cool Features” with this is that you can play your MP3s while playing a game. You can replace the in-game music with tunes to fit your current mood, yet it does affect the other sound effects in the game (like the sound of the police car behind you in NFS: Most Wanted). Through the 360, you can also control the volume of the MP3s independently of the other game sounds.

iPod Friendly

I plugged in my iPod. They had a chat for a few seconds, and I was instantly able to play anything off my iPod, just as if I was playing through the iPod UI. There was no setup, no drivers, and (my favorite) no iTunes installation. The 360 just knew what it was, and that was that. It even uses the iPod name that you gave your unit for iTunes. So, in the 360 Dashboard, I have “Jay’s iPod” or “Amy’s iPod.” This was the system I used in the 2 or three days before I got my 360 on the network. Though it is really cool, I no longer needed it thanks to WMC2.0 and streaming MP3s from the computer, since all of my MP3s are on the computer.

It’s all Wireless!

This may seem small, but it is the feature to beat all other features: the unit is totally wireless. The controllers are wireless, and the controllers can turn on the unit. I no longer have wires running across my livingroom (well, I do when I play GameCube or PS2). And if I’m going to be playing the same game I just played, or if I want to play some tunes while I’m sitting on the couch reading a book, the controller can turn on the unit, so I can be lazy and never have to get off the couch.

Xbox Live Arcade

There are over a dozen (and growing) small, downloadable games you can buy from Xbox Live Arcade. My wife loves Hexic, a small Bejeweled-like game that came with the unit (I got the fully-loaded package), though it can be purchased on the Arcade. She is addicted to it. Soon I will also buy Bejeweled 2, Gauntlet (”Warrior needs food badly.”) and Joust. This feature was available on the original Xbox, though not as fluid. There are a bunch of cool Xbox-only games that I hope come over to the 360, soon, like Pacman.

As for the games:

Need For Speed: Most Wanted
I love this game. It is a mix of NFS: Hot Pursuit and NFS: Underground. I like this much better than either one. It has the city-based racing of NFS:U, without some of the street-racing types that I didn’t like, such as URL or street-X, and above all, drifting. The pursuit is much better than NFS:HP, as the cops are much smarter, and will tag-team you to box you in using 4 or 5 cars.

I did download the demo of Project Gotham Racing 3, and I liked NFS much better. PGR3 was too touchy for me.

The next games on the list to buy are Fight Night and Oblivion.

Sunday, 18 June 2006 09:24:18 (Eastern Daylight Time, UTC-04:00)  #    Comments [0] - Trackback