Everybody else is doing it, so:
Seems like I’m into politics lately, as many others have been.
Holy shit. Best Blazers game I’ve ever been to.
I have never seen a crowd cheer all the way into the train and back to downtown.
And, as an added bonus, we all got free chalupas because of that last shot.
A core principle for our government is the separation of church and state. Tuesday many states showed that the American people believe that it is acceptable to single out a group of people and deny them equal rights. They are wrong.
The ballot measures passed this Tuesday make the election bittersweet. The right person was elected president, and America showed their distrust and disgust with the way things have gone in Washington.
Why, then, such a backwards-facing and hateful election in the state arena? Keep in mind that 50% of the United States was voting for McCain. This after terrorist accusations, false socialism fear mongering, blatant hypocrisy and political scandal all at the forefront of their campaign. For me, in hindsight, the question isn’t why Obama won, but why wasn’t this race a landslide in the popular vote?
Racism? Ignorance? Intolerance? Fear? Discrimination? Fox News?!
They are alive and well in America. Americans everywhere made it clear that they don’t understand the difference between a Muslim and a terrorist. They made it clear that honesty is low on their list of priorities when it comes to choosing a presidential candidate. We learned that the content of someone’s character still competes with the color of their skin or their sexual orientation. And we learned that 50% of this nation is pretty easy to mislead if you say the right lies.
Yet we claim to be ready for change. Yeah, right. Maybe when it’s convenient for us.
We still have a lot of work to do. We have a lot to answer for and a lot to live up to. The conservative movement has damaged us, and tricked this country into abandoning two key values in many areas – separation of church and state and equality.
How can we claim to be REAL Americans when we try to create laws that impose religious beliefs on others? The constitution doesn’t say all are created equal with an asterisk. You aren’t exempt for your rights as an American if you’re Muslim or gay. You don’t make exceptions to these ideals when it suits your homophobia or religious intolerance.
Even in the highest court of our land, Larry Flynt was defended for freedom of speech. Even a pig has rights. And he said something very important that we should remember: “Majority rule only works if you’re also considering individual rights. Because you can’t have five wolves and one sheep voting on what to have for supper.”
States should not have the power to trample individual rights. States with homogenized demographics and little or no minority representation should not have the power to amend their constitutions to deprive people of their right to life, liberty or the pursuit of happiness.
So with this marriage thing — what is considered by most to be a religious institution should not be influenced by laws. State and federal rights for married couples should be completely blind to religion or value systems. In fact, in many countries such as Germany this is a clear and obvious line that has to be drawn.
What if someone belonged to a religion where it was common practice to support gay marriage, and it was a part of the beliefs of that church? Would it still be okay to prevent members of that religion from getting married?
The laws passed in Arizona, Arkansas, Florida and California are not really American at all. They subscribe to the same old beliefs that our ancestors ran from when they escaped religious persecution in England. They perpetuate the same hate and discrimination found at the center of our last civil war. These laws tear the fabric of freedom and what our country was founded on.
No matter which way you cut it, those ballot measures are being used to divide us and take rights away from a group of people who should be considered equal.
It’s bullshit.
Nothing like clinging to a politics of fear and divisiveness via hundreds of thousands of automated phone calls. Nothing says “country first” like spamming phone lines with vitriol to serve your own ambitions.
But hey — please at least register to vote, read the issues, and make an educated decision this November. It’s never been so important.
This weekend my laptop decided to die after the latest batch of Apple system updates. Not sure why, but on the first startup after the update, it wanted to randomly shut off (hard power-down) and could not get out of that cycle. Thanks, Apple.
So I did my first successful restore from a Time Machine backup. However, while I was waiting, I used a vanilla install of Firefox. I noticed that I couldn’t tab through form elements and it would jump straight from the page to the address bar. WTF?
Here is how you enable this tab behavior that you’re used to on Windows:
This will let you tab through individual web elements normally. Screenshot below, in case it helps.

Update: Alex Faaborg noted that you can track Bug 437296 if you’d like to follow overriding OS keyboard settings to maintain a consistent user experience in the browser across platforms.
Update: Chris Ilias pointed out so kindly that this is already in the Mozilla Knoledge base.
So apparently this is news in America and also, it’s against the law to shoot your own property now.
This guy essentially went Office Space on his own lawn mower and now he’s going to get an 11k fine? Give me a fucking break. No harm, no foul. Find something else to waste taxpayer money on, and also:
Dear CNN,
Please stop posting stupid bullshit stories like this that make me question the worth of my own country. Make me believe in the free press again.
Thanks,
Mike
My 30th birthday was one to remember, for sure. I wanted to thank everyone for coming and share some thoughts about it all.
First, Jaime is amazing — she put this all together and… wow. Just, wow. ❤
Second, I realized that I didn’t give any sort of speech or say anything monumental to everyone there. I was sort of speechless and made a point to move from table to table, so didn’t really give a speech or anything.
But I thought about this a bit afterwards, and if given another chance, I probably would have said something like:
You’re only as good as the people who support you. When you stumble, they help you pick yourself up. When you succeed, you succeed together. I’ve had the luxury of friends who tell you the truth even if they know it hurts. I’ve been lucky enough to have the loyalty and love of my friends (real friends, not Facebook friends), and as I get older I value them more and more. You’ve made my first 30 years amazing, and I’m guessing life will continue to be one hell of a ride.
Cheesy, but true. Anyway, here are some of my favorite moments:
Finally, about birthdays — and many of you know this about me — I’m not generally a huge fan. Mainly because I don’t think it’s super fun to have people kiss your ass on your birthday if they don’t care about you the rest of the year.
This was different, of course — it was a time to stop and appreciate relationships, and I can roll with that. This meant a lot to me — just seeing everybody there made me think about all the things we’ve done together and how crazy life has been. It was just really special, and I was totally blown away. I’ll never forget it.
And even though there’s so much I can’t even fit it all into my head, it’s really just a start. We’ve got more memories to make and more things to do. So I guess the ending to this blog post is: To be continued… 🙂
You might know about some of the more glamorous Firefox 3 security features, but behind the scenes Firefox is protecting you from malicious extensions and plugins through its blocklisting service.
Depicted below is a diagram of how Firefox talks to its blocklist service. This is how it works:

What is remarkable about this is that it covers you from things Mozilla doesn’t even release. One of the things I’ve always been proud of is Mozilla’s dedication to its users, and I think this is a good illustration of how we’re finding ways to make the web better and safer. We don’t just care about Firefox, we care about you — and if you are put in a bad position because of poor security in a third-party plugin, we will be there to cover for you — on our dime.
Extension blocklisting has been available since Firefox 2, and we’ve used it in the past to blocklist extensions that cause major crashes or have security problems. Plugin blocklisting is new in Firefox 3, and this is a pretty big feature given recent security news involving plugins.
All major plugins have had arbitrary code execution issues at some point. Plugins like Quicktime or Flash have had some popular cases where hackers could execute code on your system just by having you load a corrupted Flash object or Quicktime movie. Usually vendors are pretty good about updating once these exploits are disclosed, but with Firefox 3 we’ve added plugin blocklisting so we can protect you if vendors aren’t quick enough to respond or don’t provide an easy way for you to upgrade.

Mozilla doesn’t want to leave you out in the cold, and Firefox’s blocklist service is another tool we can use to look out for you.
It’s important to use this tool responsibly so we have discussed a policy for quite some time. The blocklist policy is in our public wiki, and we welcome any questions about it. Any time we consider blocklisting, we contact the vendor or author of the add-on in question to encourage a quick update and let them know we are considering blocklisting. Decisions to blocklist are made by committee to make sure we are not using this service incorrectly or blocklisting things prematurely without just cause.
To show you what the XML document looks like, here is an example of what we are currently serving:
<?xml version="1.0"?>
<blocklist xmlns="http://www.mozilla.org/2006/addons-blocklist">
<emitems>
<emitem id="fdm_ffext@freedownloadmanager.org">
<versionrange minVersion="1.0" maxVersion="1.3.1">
<targetapplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
<versionrange minVersion="3.0a1" maxVersion="*"/>
</targetapplication>
</versionrange>
</emitem>
</emitems>
<pluginitems>
<pluginitem>
<match name="name" exp="Yahoo Application State Plugin"/>
<match name="description" exp="Yahoo Application State Plugin"/>
<match name="filename" exp="npYState.dll"/>
</pluginitem>
</pluginitems>
</blocklist>
What this does:
Information about the blocklist is always found on mozilla.com’s blocklist info page. To learn more about the service itself, feel free to read more about its specifications.
Overall, the blocklist service is another way Firefox is watching out for you, and even though it doesn’t get much press coverage, it’s a remarkable thing and speaks volumes about how serious we are about keeping Firefox users safe — even from stuff that wasn’t Mozilla’s fault.
Using Webgrind and Xdebug, you to tack on ?XDEBUG_PROFILE=true to any URL and view profiling information for that particular URL instantly.
One of the main criticisms of profiling PHP applications has been how difficult it is to manage different kcachegrind or wincachegrind windows — assuming you’re a pro at pointing them to your Xdebug output directory and all that good stuff. I am excited about how easy webgrind makes things because easier profiling will help prevent a lot of stupid performance mistakes (for those of us not using the Zend IDE and its sexy profiler, which is a lot of people).
This is really quite simple to set up, and is best used on a dev box behind a firewall with port 80 closed. People can file surf your web server if you leave webgrind on an open port, don’t do it.
So, you’ve read the last paragraph, right? Ok, good. Let’s go.
pecl install json pecl install xdebug
You’ll run into a possible missing phpize issue, in which case you’d need the php-devel package for building PHP extensions.
A simple configuration to get you what you need is below. Read the Xdebug docs if you want to get crazy.
; Enable xdebug extension module zend_extension=xdebug.so ; Turns it off by default xdebug.profiler_enable=0 ; Turns xdebug on when ?XDEBUG_PROFILE=true is in GET or POST xdebug.profiler_enable_trigger=1 ; Your output directory - you'll eventually point webgrind at this xdebug.profiler_output_dir=/tmp/xdebug
If you’re not on PHP 5.2.x, you’ll also need the json extension.
; Enable json extension module extension=json.so
Restart Apache.
Webgrind is easy to setup, download it and follow the instructions. The main thing you’ll want to do is make sure your Xdebug directories are the same. In this case, it’s /tmp/xdebug
Now you’ll want to hit your web server with the appropriate GET argument set up. So, you could hit localhost/helloworld?XDEBUG_PROFILE=true and it’d create a new cachgrind.out for that request.
Webgrind will do a find on your Xdebug output directory and have a list of all your cachegrind.out files up on the top right. Now all you have to do is choose one. Webgrind’s use of jQuery and AJAX makes the app a great example of what you can do with JavaScript and a little motivation. Check it out.
Update: You should use “zend_extension” in your .ini file, not extension. I had a typo above, but it’s corrected.