I’ve decided to tweak my default stylesheet a bit to use some fancy features available in Firefox (and any other highly compliant browser).  As usual, I’ve designed the effects for Firefox and just made the site work with IE. 

Here’s a rundown of the stuff I did:

  1. Added position: fixed; to the header above and navigation bar on the right so that they stay on the screen.
  2. Added real transparency to the logo.
  3. Added a transparent gradient background to the header, underneath the logo.

These effects are all available in any browser besides IE.  I’ve used the conditional comments to set the body class depending on whether the browser is IE or not:

<!-- dirty CSS hack alert! -->

<!--[if IE]>
<body class="ie" onunload="rememberStyle('lastStyle');">
<![if !IE]>
<body class="nonie" onunload="rememberStyle('lastStyle');">

This sets the body class to either “ie” or “nonie”, which can then be tested for in the CSS. I’ve wrapped most of my new effects in these tags to keep them IE-clean.

The only problem is that if IE ends up getting “position: fixed” support in the future it won’t show up unless I modify these conditional comments. I’m not holding my breath, however.

Read full post

I was playing around with getting NAnt to build all of our VS.NET projects today - it’s much more pleasant to build 90+ C# projects using an XML-based build script than with VS.NET’s native build system.  I highly recommend anyone with more than a few dozen projects to consider using it!

It’s a bit of a pain to get around some of the VS.NET locking issues, but once you’ve got it figured out, you’ll be thankful.

The trick is to create a number of empty C# projects with a “pre-build” step that runs NAnt.  It’s easier if you create a new solution configuration named “NAnt” based off the “Release” solution configuration.  This is the important part.  If you create the solution configuration based off the “Debug” configuration, VS.NET’s Intellisense engine will end up locking the files that NAnt is trying to build.  Basing it off the Release configuration allows VS.NET to use the set of DLLs in the bin/Release/ directory, while NAnt builds to your bin/Debug/ directory. 

You may need to build the full bin/Release/ configuration on occasion if you do a lot of designer-based editing.  VS.NET will be looking for DLLs in the bin/Release/ directory and, if it doesn’t find them, the designer will bomb out.  Don’t forget to rebuild the Release configuration if you make changes that need to show up on the designer side.

Note that I’m assuming you’re using the NAnt task to build.  If you’ve got a build file set up with manual tasks, you’ve probably got different output directories anyway and the above is moot.  :)

Another benefit - it’s about 50 times faster (no kidding) to open/close the solution when all of the C# projects are disabled.  VS.NET is clearly not designed for anything more than a couple dozen projects.

Read full post

Just bought a circular saw today in preparation for building the MAME cabinet.  The guys at Rona/Revy are nice enough to explain the basics of cutting and the pieces I’ll need. 

My plan of attack so far is:

  1. Cut all of the required pieces of wood (from the plans I’m using)
  2. Draw out the control panel layout from my sketches
  3. Purchase required control panel electronics
  4. Assemble control panel and test with regular PC
  5. Paint, add T-channel edging to all other wood pieces
  6. Assemble the rest of the cabinet pieces
  7. Attach control panel to cabinet
  8. Figure out computer and TV bits to make it a real, working cabinet

So far, I’m still waiting for myself to finish step 1.  This is the hard part - making sure I still have ten fingers to play games with afterwards.  I’m going to have to record my receipts somewhere so I can accurately total how much this cabinet cost.

Read full post

Just bought the necessary wood for the cabinet today.  It was a pain to load up on the truck - the wind was ferocious!

Here’s a tip for anyone looking to build a MAME cabinet: get the big, straight cuts done when you buy the wood (if possible).  It cost me CDN$0.50 a cut - worth it to reduce the number of long cuts that I’ll have to make myself.

Total cost so far is CDN$120.

Read full post

Looks like the Candian Federal Court has decided in favour of the anonymous John and Jane Does in the recent file swapper case.  The Judge has determined that the following criteria must be satistified for a disinterested bystander to be compelled to aid in discovery as a third party.  In the case of the recording industry versus KaZaa users, this means that the ISPs would be releasing the confidential customer data that would map a user’s IP to his home address.

  1. the applicant must establish a prima facie case against the unknown alleged wrongdoer;
  2. the person from whom discovery is sought must be in some way involved in the matter under dispute; he must be more than an innocent bystander;
  3. the person from whom discovery is sought must be the only practical source of information available to the applicants;
  4. the person from whom discovery is sought must be reasonably compensated for his expenses arising out of compliance with the discovery order in addition to his legal costs;
  5. the public interests in favour of disclosure must outweigh the legitimate privacy concerns.

The judge ruled that the affidavit filed by MediaSentry was largely hearsay.  This might be a result of faulty lawyering by the recording industry however - they may be able to succeed with more detailed records.  The judge touches on this:

At the very least, Mr. Millin should have identified the employees who conducted the work….

As well, it turns out that MediaSentry didn’t even listen to the files downloaded by the sharers.  The court wisely ruled that it can’t trust this information without more detail of how it was determined.

It looks like the recording industry will have to prove knowledge on the part of the sharers that they are, indeed, sharing the files willingly and show that they are “advertising” the fact that they are sharing the works.  Passive sharing of files seems to be safer than actively transmitting files.  These arguments together eliminate the first criteria.

Criteria 2 is easily proven to exist, 3 is found not to exist and 4 is determined to be an expensive operation.

Criteria 5 is a balance between justice and privacy.  It makes sense that privacy can be overruled to a certain extent to allow civil and criminal matters to proceed. 

The recording industry lost this round, but they may win the next with more rigorous documentation.  The case may also hinge on whether the sharers are actively engaging in distribution of copyrighted works or not.  We’ll see next time how this works out.

Read full post