Why morality is important in politics

Jim: "I think we should have nationalized healthcare, so that those who can’t afford it can still get access to it"
Bob: "Why should I care about those who can’t afford it?"
Jim: "Because you may one day be in a position where you need it and can’t afford it."
Bob: "Well, I can save up for my future expenses, so I won’t need it"
Jim: "Yeah, but not everyone has that opportunity"
Bob: "And again, why should I care about them?"
Jim: "Because it’s the moral thing to do"
Bob: "Moral for you perhaps, but why should I be subjugated under your morality?"
Jim: "Fine, it’s a pragmatic thing then. More sick people leads to more civil unrest and instability".
Bob: "And again, I’ll take care of myself. Why should I care about the rest of society?"
Jim: "Because if the people in society work together for each others good, we can accomplish much more"
Bob: "That’s fine, but why should I care? I don’t want to accomplish more, I want more for me"
Jim: "But if everyone thinks that way, there won’t be enough for everyone else"
Bob: "And I ask once again, who cares? With enough might, I can control everything."
Jim: "Then you’d be a dictator."
Bob: "And your problem with …

Refactoring Asterik

Okay, so one of my favorite studios, Asterik, has a pretty snazzy website. It’s very grid based, which is probably why they chose to design it based upon tables.

However, it’s a little sad to see such a cutting edge firm using such 1997 HTML techniques to markup their page, when in the span of literally 2-3 hours, they could have a semantic, cleanly coded, HTML/CSS solution.

So, here I provide proof that it’s possible in only 2-3 hours.

Asterik – a CSS based implementation.
While it’s not 100% to the pixel accurate, it’s probably around 97% there. Another hour would probably take care of any remaining issues. Right now, you’d have to be a designer to see the major differences.

A few notes:

  1. The old method was using inline Javascript rollovers for the Featured Work rollovers. I fixed that to use only CSS.
  2. Code clarity is much improved
  3. AFAIK, it works across the major browsers.

Reinvigorate is BACK!

Well, in beta, at least.

This is so freakin cool. For those that don’t remember, but Reinvigorate was the coolest stats package a few years ago, and it was 100% free.

Due to hosting issues (Acta Divina went under), Sean took it down, and has spent the past 2 and a half years perfecting it, and now I have been offered the Beta Registration (and of course I have taken him up on it :D).

On a more personal note, let me just say how brilliant Sean is. This is a dude who not only has a GREAT eye for design and user interface and interaction, but he is also an insanely smart programmer.
Not happy with the current PHP image rendering algorithms, he actually wrote his own PHP extension that handles curves and aliasing like nobodies business.

The guy has brains leaking out of his freaking ears.

So is the website statistics arena going to be dominated in a Sean vs. Shaun battle?

I think both will have their home, one being a service, the other being a product, each with it’s own set of pro’s and con’s.

2007 is bringing some great stuff so far, and I am really excited about Reinvigorate being back.…

Prayer and Science

Well, it seems as of late I have been reading quite a bit about so-called "empirical" minds criticizing prayer for it’s lack of scientific efficacy.
To be honest, it’s a bit misleading, IMO.

Here is the problem. Prayer is, at it’s simplest, a request. It is not necessarily a request made of a deity, but that is the word we have colloquially attributed to asking God for things.

But, and this is important, it is a request.

Is ANY request scientifically verifiable?

Whenever someone claims that a prayer has been answered, there is always some schmo who says "Well, that would have happened anyways".

And perhaps they’re right.

But that could easily be applied to any granted request.

Perhaps I was going to get the book I wanted for Christmas whether I said anything or not to my wife, and perhaps I wasn’t.

Also, what it seems some people are looking for with prayer is some sort of repeatable, observable phenomenon, when there is not any other interpersonal request that we ask for that.

I can write a letter to Bill Gates asking for a million dollars, and I could send this letter to him a million times, and I may get a million nos. Or I could get 1 yes.
But would I ever get 2 yes’s?
And would this lack of repeatable, observable phenomenon somehow prove that Bill …

Namespacing Prototype

While I am pretty much now a jQuery fanboy, Prototype still has a foothold in the web, and many people still want/need to use it.

Lately, at work I have been having to provide developer access to both Prototype and jQuery.

As another proof of jQuery’s awesomeness, John went ahead and namespaced jQuery’s code base. What this means is that you can very easily avoid conflicts with other libraries.
Yahoo does this with YUI (and while kudos to them for doing it, I am going to post later on why I loathe the way they do it).
However, Prototype, it all it’s shortsighted glory, fails to namespace. I’m not sure why, and perhaps because it is easier to use the global namespace, but it really makes using it a pain.

Until now. I have gone ahead and namespaced Prototype. The version I am using is version 1.5.0 RC2. If anyone cares, I could namespace version 1.4.0, but we’ll see if anyone cares.

So what does this mean? Well now, you can easily rename any of the ‘$’ functions so as not to conflict with other libraries.

You can grab the namespaced Prototype here. At the very bottom, you’ll notice a few lines like so:

Function naming
var $ = Prototype.$;
var $A = Prototype.$A;
var $H = Prototype.$H;
var $R = Prototype.$R;
var $F =

Goodbye, Dad

I buried my father yesterday.

God, I miss him. My dad was/is my hero. My father passed away last Friday, surrounded by his family and friends.

For those that don’t know, my dad has been fighting kidney cancer for the past 5 years, and he fought long and hard, but in the end, God wanted him home.

How and when my dad passed was quite an amazing story.

Thursday night, the 14th, my mom called and said that the nurses were saying he had an hour to two hours left to live. Jessica and I live about an hour and a half away, without traffic. We made it through rush hour traffic in an hour and 15 minutes.
Of course, in typical Mike-style, he was going when he wanted. We were told it was going to be any minute, and so we all stayed at the hospital overnight.

My dad had a stroke this past August, and has been in varying levels of awareness ever since, but this last night, he was thankfully unaware.

My wife and I needed to run some errands on Friday afternoon (we wanted to take a shower and get a few hours of sleep) so we went up to my parents house. We were told that it was unlocked so we could get in. We get there, and everything was locked.

Thank goodness, though. Had …

Prototype vs. jQuery

Okay, I was wrong. I had at one time mocked jQuery as a the javascript equivalent of PaintShop Pro or Fireworks. Something light, but not something you would use for enterprise level work, and not something that would hold it’s own against Prototype.

I was wrong.

For the past few months, jQuery has been knocking my socks off with it’s awesomeness. Don’t let it’s ease of use fool you. It’s got some heavy duty-ness to it that isn’t fully appreciated. I am now actively pushing it in all of my projects, as well as at work in an enterprise portal/CMS.

Why? What was the deciding factor for me over Prototype?

  1. Developer ease of use
    When you’re starting out in web development, it’s hard enough to get HTML and CSS down, and Javascript can seem like a real burdensome beast. By leveraging CSS knowledge, jQuery is finally bringing the power of Javascript to those folks.
  2. Documentation
    This has long been an issue in the Prototype community. While people are making inroads, nothing can compare to jQuery’s available documentation/blogs/tutorials, etc.
  3. Plugins
    Justin seemed to poo-poo this a bit a while back, saying that Javascript is easy enough to plug into, and I think the difference is that jQuery has implemented a formalized API spec that makes it easy. Yes it’s easy to do in Javascript, but that doesn’t mean it’s easy

Fall 2k6 Design

Well, this will probably be the design into the new year, but I am happy with it. I wanted it to have a bit of a mix of Web2.0, grunge, and Renaissance aesthetic. I think it works, but I’ve been known to be a moron from time to time.

Also, I have finally managed to convert the site over to using Expanse. So what’s that mean? More updates! Believe it or not, for the longest time, I was using an old crusty version of Expanse that is so far from the wonderful product I’ve made that I wouldn’t even call it a copy of Expanse. So now, I’m not scare to update anymore 🙂

Okay, off to bed. Enjoi.…

Don’t forget addEvent!

After reading Dustin’s post about forgetting addEvent, I have to disagree.
Not with the part about using Yahoo’s new Event Utility (that part I DO agree with), the part I disagree with is dropping of the addEvent function.

You see, most folks already have some form of addEvent, with all of the standard params, so why force them to go through their code, and replace addEvent with "YAHOO.util.Event.addListener"?

The easier solution is to take your current addEvent function, and make it a wrapper for the new Yahoo event utility, like so:

function addEvent(el, sType, fn, oScope, bOverride){
(el, sType, fn, oScope, bOverride);

Now you have an easy way of integrating it into your current scripts without having to rewrite all of your code.

Perhaps a bit obvious to some, but perhaps helpful to others 🙂…

Weird Dreamweaver bug

Do you have Dreamweaver 8 (might happen in MX or MX2004 as well)? Open up a CSS file (make sure all your other files are saved).

Make a few rules in the file. Now right before the closing } on one of your rules, add an apostrophe ( ‘ ), and hit save.

If your setup is anything like mine, you should see Dreamweaver disappear, and you cant get it open again. Nice, Macromedia. Real nice.

Anyways, to get it to where you CAN open DW again, open that CSS file and remove the offending apostrophe.

I have no idea why this happens, but it sent me for a 10 minute loop.…