existdissolve.com
the singularity of being and nothingness
the singularity of being and nothingness
Oct 17th
Using CSS selectors is not a difficult skill-all of us who use CSS use selectors on every line of code that we write. However, as not as many know, there are more exotic selectors available.
Blah blah blah. You can read all about CSS selectors at W3, and I don't want to rehash what has already been fully documented. So instead, let me go a different direction.
Why, you might ask, would I possibly want or need to use a fancy CSS selector like ":first-child" or something more granular like an attribute selector (a[href="http://askaninja.com"])?
Well, maybe you'll never want or need to. If you have the luxury of coding everything you do from scratch, you'll probably find little use for these. However, most of us do not have ideal circumstances like this.
Consider this: Where I work, we are using an enterprise information management software for our employee intranet. While the product itself is quite powerful, whoever built the layouts and templates that come boxed with the products are certifiable idiots. Strewn across hundreds of layout files in obscure, inaccessible (well, at least to me…) folders are inumerable styles, both external and inline, that handle the "design" of this product.
Can anyone say nightmare? Believe More >
Oct 15th
For Blog Action Day 2008, I have posted an article over at my personal blog. It's pretty short, but it highlights an issue I've thought a lot about over the last year.
Oct 15th
Come, you who are blessed by my Father; take your inheritance, the kingdom prepared for you since the creation of the world. For I was hungry and you gave me something to eat, I was thirsty and you gave me something to drink, I was a stranger and you invited me in, I needed clothes and you clothed me, I was sick and you looked after me, I was in prison and you came to visit me. - Matthew 25:34
This vision of the kingdom of God reveals an interesting perspective into the identification of the face of God. The scenario is that of the eschatological Christ presented as victor and King. Yet the ones who belong to the kingdom of the Victor are not warriors and statesmen, nor kings and rulers-rather, it is the sick, the impoverished and the oppressed. Yet these are not simply citizens of God's eschatological kingdom by proxy, but are more audaciously the ones with whom God in Christ self-identifies. It is in their faces and lives that God dwells most vividly.
It is often said that God is no respector of persons; and in ways this is probably true. However, the eschatological Christ reveals that the More >
Oct 12th
I've read alot of articles on the interblog in which people claim that Google's new browser, Chrome, will hurt Firefox, rather than Internet Explorer. The biggest reason for this, the protagonists claim, is that given that Internet Explorer users are the least likely to change their browsers, the majority of acceptance of Chrome will come from others…hence the hit to Firefox.
But is this really accurate? I don't buy it. The way I see it, the argument made above is true, but in reverse. It is undeniable that people who use IE, besides being horribly misguided in their choice of browsers, are less than likely to switch to a new browser. But it is equally true, IMO, that those who use Firefox are already predisposed to using more than one browser. So rather than a huge pile of competition, Chrome represents just another option.
Of course, if Chrome turns out to be really flippin' cool (which I don't see yet…) and vastly superior to all other options, it is probably more accurate that ALL browsers are in trouble. The time is not far away when Google will be placing proprietary OS's on new computers and, just like the Behemoth Microsoft before it, More >
Sep 15th
Over the last several weeks, I've seen my blog readership increase signficantly. I am extremely grateful for the kind words that people have shared with me, and of course, for everyone who follows my ramblings about web design.
During this time, I've had several readers contact me, seeking advice about how to get more into web design, how to improve their skills, etc. I am extremely humbled that anyone would seek my advice on this, and I have done my best to provide the best suggestions I can. So now, let me distill down some of the things I've said.
I don't want to get overly Dr. Phil-ish on this, but I think the psychology of the web designer is a crucial component to be becoming better. What does this mean? Well, I continually advocate that one of the best ways to become a better designer is to live in the billion-and-three design galleries that are out there. Let me diverge for a second and shamelessly plug my own — css-imagine.com. There, I'm done .
In all seriousness, I believe that examining and learning from the design of others is a great way to improve. First, by doing this, you begin to More >
Sep 1st
As followers of this blog know, I am a pretty big fan of Adobe's JavaScript framework, Spry. Admittedly, it's not a super-huge framework like jQuery, but I like its simplicity and how rapidly I can develop a solution with it.
One thing I've been frustrated with is Spry's effects. While they have some good effects, I never found them particularly flexible or usable beyond little dynamic enhacements. Apparently, most of this is because I hadn't read the documentation enough.
Enter effect clustering. Normally, Spry effects run in turn of function call: so if you have, say, a tool-tip that you want to fade out and move, these effects would run in order (which wouldn't really make sense to do anyway). However, as I discovered with great joy yesterday, Spry allows for something called "effect clustering" which allows any number of effects to be run in parallel with one another.
I about peed my pants when I found this out, it's so cool and useful. So here's an example of this in action.
And here's the code:
FadeMove = function(element, options) { Spry.Effect.Cluster.call(this, options); var duration = 1000; var toggle = 'false'; var from = 100; var to = 0; var fromPos = new Spry.Effect.Utils.Position(); fromPos.x = More >
Aug 30th
So a coworker and I are always talking about code. Not terribly interesting (especially for people who aren't in the biz…), but sometimes we make ourselves laugh. Yes, I know. I am a huge nerd for finding conversations about code to be funny…
But anyway, the other day we were talking about XHTML validation (you're welcome to start sleeping about right now, if you wish) and how validation fails if there are markup tags that are not "closed" (e.g., a "div" tag that hold an image, text, etc. needs to have a "closing" tag to tell the browser what it's dealing with).
Somehow, the comment was made that life feels like failed XHTML validation-replete with open "tags" of disappointment that never close…
Boy, I made myself bored just writing this. Appartently my line of work is dorky and lame. Oh well.
Aug 24th
One question among a million has plagued humanity for thousands of years, and still remains without an answer. No, it's not theological, and it has nothing to do with chickens and their alleged eggs. Rather. it is the question of whether you should bid out your next job based on number of hours or a project basis.
This question is tricky, and I know every designer has a lot of different opinions about the subject. And in all fairness, all sides probably have a legitimate argument. So instead of arguing for a particular perspective, I'm going to simply explain my own view.
From the moment I began freelancing, I have always quoted my jobs on a project basis. Here's a few reasons why:
First, I worked for nearly three years in a law firm where everything was billed by the hour. While legitimate work was done, a standard practice in legal billing is to assign certain number of minutes (or hours) to certain tasks. So for example, every phone call is billable for 10 minutes worth of time, even if it's 45 seconds long.
Now in my last post, I argued that a legitimate part of billing your customer is for your expertise, and More >
Aug 19th
Okay, I'm going to take a bit of a detour here from the "series-in-a-series" that I've been doing to quickly blog about an invaluable CSS trick that every designer needs to use as often as possible.
So here's the scenario: You have a blog that's going to have pictures in it. The thing is, you want to be able to float the images either to the right or to the left with some margins applied. Oh yeah, you also want to have, say, seven different border-color options. And did I forget to mention that you also want different padding between the image and border?
What to do, what to do? When I first started, I would have sat down and mapped out a class for each "scenario." For example, for the left-blue-2px-bordered option, I would have created something like "img.leftbluetwoborder." While this will, of course, work, it's not usable. Who can remember "leftbluetwoborder", not to mention the 23 other similarly named classes? So what's the alternative to this terrible mess?
Enter what I call "class overloading." What is this? Simply, it is applying more than one class to whatever you're applying classes to. So if I have an image with "class='myimage'", with More >
Aug 12th
Okay, so at some point as a web designer you're going to come across a project where you have to design some kind of gallery with image thumbnails.
In an ideal world (e.g., Photoshop), all of the thumbnails will be precisely the same size, so plugging them into nice little skins (the "pretty" that you put around them) is cake. Unfortunately, the real world ain't like that. In the real world, you have hundreds of thumbnails to deal with, none of which will probably ever be exactly the same size.
Now, of course, the thumbnail skins still have to work. So what should you do?
The first thing to NOT do is hard-code the "width" and "height" attributes of the <img> tag. Super bad idea. Okay, not a TERRIBLE idea, but it will inevitably lead to some funny looking thumbnails as the img tag will stretch or shrink your image to fit these values.
So what's the alternative? Well, ideally, you'd be using Coldfusion 8 and could use the super-cool built-in image manipulation tools to properly scale and crop every image to be the same size. Ah, but we're not in an ideal world!
The second alterative I've found that works to a limited More >