Archive for March, 2007

Alpha PNG Backgrounds in IE, another sleight update…

A couple years ago Drew McLellan created his version of Youngpup’s Sleight script for enabling PNG transparency in Internet Explorer. It's a handy little thing, it's called bgsleight.js and I found myself using it for a recent project that required a decent amount of transparency in background images throughout. The great thing about bgsleight is that you don't have to generally create a separate css file for IE6 filled with progid:DXImageTransform.Microsoft.AlphaImageLoader garbage.

Some of these background images were specifically positioned, and some were repeating (not for pattern, but just coverage of their element's area). After putting Drew's work to use, I found that the background images that were being repeated in my css, were now basically gone (or just being displayed as the very small versions of themselves that they are, just a couple of pixels large). I looked into the pngfix function, and added a check against whether or not the background image was supposed to be repeating or not.

JavaScript:
  1. function fnFixPng(obj) {
  2.     var bg  = obj.currentStyle.backgroundImage;
  3.     var src = bg.substring(5,bg.length-2);
  4.     var sizingMethod = (obj.currentStyle.backgroundRepeat == "no-repeat") ? "crop" : "scale";
  5.     obj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='" + sizingMethod + "')";
  6.     obj.style.backgroundImage = "url(path/to/transparent.gif)";
  7. }

One thing that I forgot to mention is that a transparent 1x1 pixel gif is required to make this script work. i changed the references to it which had previously been x.gif and blank.gif to path/to/transparent.gif... a generic reference (for you understand to replace with whatever path you'd like).

You can grab my copy of bgsleight.js here.

Run Multiple Versions of IE

As I just spent a bit longer that I wanted try to share my local connection with the IE Team's new Virtual PC distribution of IE6, I came across a link down in the comments if of IE Team blog.

Ever wanted to test your website in various versions of Internet Explorer?

It is possible to run Internet Explorer in standalone mode without having to over-write previous versions thanks to Joe Maddalone who came up with a way of achieving that in November 2003. Basically, Internet Explorer is run by exploiting a known workaround to DLL hell - which was introduced in Windows 2000 and later versions - called DLL redirection.

Manfred Staudinger perfected the standalone versions by adding IE version numbers to the title bar of the standalone browser window. Moreover, by removing the "IE" key in the registry subkey [HKLM\SOFTWARE\Microsoft\Internet Explorer\Version Vector] Internet Explore defaulted to respecting conditional comments based on the version number prebuilt in the program.

Some things to point out though...

  • Sometimes IE5, IE5.5 and IE6 crash unexpectedly.
  • The address bar in Internet Explorer 4.01 does not work. This is due to a missing file "browseui.dll". If you have that file with version number "4.72.3612.1706" let me know. As a workaround, press CONTROL+O and enter the address you want to visit there.
  • Microsoft supplemental EULA says : IF YOU DO NOT HAVE A VALID EULA FOR ANY "OS PRODUCT", YOU ARE NOT AUTHORIZED TO INSTALL, COPY, OR OTHERWISE USE THE OS COMPONENTS AND YOU HAVE NO RIGHTS UNDER THIS SUPPLEMENTAL EULA.

Still, it's a lot better of a solution than dealing with Virtual PC.

Multiple IEs
http://tredosoft.com/Multiple_IE

One (movie) to watch out for

Well, not watch out for, but go find. Because it seems like no one actually got to see it when it was "in theaters" or even noticed that it was released on DVD this past February.

This flick I'm talking about is 2006's Idiocracy, and despite the efforts of 20th Century Fox to make sure that I didn't get to hear about this gem, Mike Judge appears to have done a fun job of poking fun of Brands everywhere.

Here's a full review of the movie.

Idiocracy - Being a Dick

Why Does Hiring Always Come Last?

With the amount of time spent on putting together pitches and proposals, doing existing client work to pay the bills, and then maybe working on internal projects, why does it always seem like the reason I'm so busy is because I need to hire another guy (or gal) or two to give my department a hand, but I never have time to actually get people in here for an interview?

Could someone please let me know how I can actually manage to do it all?

Time, Money and the Persuit of Happiness

So I'm sitting on the Acela train from Baltimore to NY trying to work on my laptop with as steady of a hand as I can manage with all the swaying and shaking this "the future is now" train is throwing at me. I started thinking a bit about the direct and abstract relationships we have with time and money. If I were to not stand outside and have a cigarette at 1:15, I could have paid $85~ and arrived in New York at 3:50pm. However, I wanted to have a cigarette, and spend less time on the train, so I instead elected to spend $135~ to leave at 1:30 and get in a 3:45... how does that make sense?

If the initial value of the entire trip is worth $85, a 20 min reduction (my math is terrible but lets say) a 1/7th or so reduction in time is then worth an additional $50? I must be crazy. It's not even like I have Wifi on the train and won't have to wait till I get back to the Ultra16 offices until I can actually post this anyhow. So here's where the thought went.

When writing a schedule and outline for a project, if a client has $30,000 to spend, any agency will figure out how to spend it, regardless of the hourly rate that they bill out their employees at. The scope of the work (scope is a whole topic in and of itself) will be set, get changed and become adjusted based on the client's available funds whether they go up or down. The first priority is to always make sure the client's business requirements met, but the attention to actually delivering what can become a successful project seems directly relational to their budget.

The History

When I was living in upstate New York, and freelancing for any gig I could get just to keep a roof over my head, yeah, I'd throw together something for any client who had the couple of bucks that I desperately needed (within reason). But since none of those folks ever had the kind of money that I could use to hire one or two other guys with, they bought whatever time of mine it took to spend the money. Cool you paid my rent, alright, I'll see what I can turn out for you in two weeks time. Some of these projects involved full custom CMS development as well as creative, and of course I did all the production work as well. The amount of hours I spent on these projects were never reflective of what was put together in the proposal or the actual project "schedule". If I wanted to charge what would have actually been a fair rate, and bill for my actual hours (or even close to my actual hours) I wouldn't have been doing any local business at all. One thing I did do, is never adjust what my rate was on paper, I would only fudge my hours to stay within budget.

When I was in this survival mode, the relationship between time and money was a dirty dirty one, because it had to be. I always gave clients whatever I could since there was/is so little money in that region to go around.

Ok let's get back to what I'm really trying to talk about, "real" clients, "real" projects, and "real" money (in the context of a modern creative and interactive services agency operating in a metropolitan environment with metropolitan overhead).

I'm sure that you're thinking... well there are good agencies and not so good ones, and that's why some agencies produce better work than others. I honestly believe that isn't always the case, I think successful projects are primarily based on two things... one is a concept, and the other is an approach.

The Concept

It's always been difficult to find good people when you need to hire folks, and too hard to let people go when they're not contributing to a company at a capacity that you require.

It's rare that I see a portfolio that impresses me, let alone comes even close to blowing me away. So more than what opportunities a job seeker has already had, I look at potential hires in regards to what they've done with what they had, and just as importantly, their attitude and outlook.

When you hire good people who REALLY care about their work, and are passionate about what they do (or haven't yet had the opportunity to do) they usually have a lot more to contribute than a senior level freelancer who looks at you as just a couple grand in their pocket, and don't care about your business in the long run at all.

The Approach

Spend your money on purpose. Keep people happy. Make sure that your departments are comfortable with the amount of time they have for their contribution to a project. If you development team says they can get it done in 220 hours, give them an extra week, and ask them to not necessarily spend extra time on QA, but to do whatever they need to, to be happy with their work. Maybe do something a little extra, so they can find pride in it... whatever. When a client says, I have a little more time, or a little less money than we were initially talking about, compare it against your "badassness of a project" matrix and spend your money internally on what is going to allow to deliver the best work you can.

Good client management is hard to come by, and for the sake of having a relationship in the first place, initial conversations with a client that don't make their way to paper, usually come back to slap you in the face when the client tells you "but we wanted this, don't you remember us telling you?" or "we totally forgot about this, so you'll have to do it for us as well". It's not an automatic slap. But when clients run free, and can't be told "NO" additional costs become commonplace instead of the exception.

Going back and forth about the deliverables always take the steam out of any team that is otherwise excited about what their doing. By spending money or someone on your team who can actually keep that in check, your designers won't complain to you about having to do busywork or backtrack, your developers will be able to stay focused on their work, and as an agency you will find yourself with happier clients and more successful deliverables.

The Irony (or The Lesson)

It seems like the best executed projects come from a passionate place. The huge budgets don't necessarily return the best quality work. Only once people start to catch on to this fact will competition in the pitch wars be a lot more rewarding. I'd love to be able to say, "We're going up against so-and-so for this project, and I can't wait to see what happens" instead of "I hope we get the work."

Ultra’s got a brand new blog

That's right, in a couple of the few spare minutes I find every week, we managed to get a new blog together for Ultra16.
There you'll be able to find some Ultra-specific posts, news, and general ideas that are going on around the office.
If you'd like to subscribe, you can find the feed here.

Ultra16.com/blog


Nater Kane naterkane personal http://www.naterkane.com LinkedIn Profile Web Technologist personal nater@naterkane.com 1978-09-12 voice 845.234.6698 | fax 707.922.0593
964 Flushing Ave. Brooklyn, NY 11206