The Danger of Mediocrity

Standard

a bobombAddons make the difference between a regular web browser and a browser that just got “pimped” (you can also pimp your email client, too :D). Having a wide variety of extensions and themes helps developers and product managers focus on core features the majority of users will need without having to simply say, “sorry, nope, can’t do that”.

Okay, so maybe your average extension isn’t going to turn your world upside-down the way West Coast Customs spending a week with your Honda would… fine. But addons for and by the people are a vital and important bridge between a non-bloated application core and end users who want personalized functionality.

Once we understand the importance of addons, and the role addons.mozilla.org (AMO) plays for Mozilla products, we can start to focus on improving it.

So it’s great to see healthly discussions about the future of the service, and how it should be modified to ensure we ship addons with a level of quality that is comparable with Firefox or Thunderbird.

I recently read David Baron‘s excellent post about the danger of extensions and how an undersupported and relatively unregulated addon service could mean disaster for Mozilla products and Mozilla’s reputation in the community.

To say the least, I am now filled with uncertainty and doubt.

Though it’s not about the service itself, or whether or not the community will be able to recover from the first security hole found in an extension, or how extensions are external to the normal Mozilla review standards.

I’ve got FUD about how these products will thrive if they cannot change and adapt themselves quickly to new trends, web services or client-side tools that are available in other browsers.

Despite the theoretical holes in AMO, it’s there, it’s important and it’s popular — for better or worse. It has many great extensions, some good ones, and many poor extensions as well. It’s a distribution as diverse as the community; filled with the good, bad, and the ugly.

And the dangerous? Maybe. David’s points are valid — I share his concerns as well — but assuming problems with extensions will translate into plumetting consumer confidence in an application isn’t necessarily such a straight line. The risks we take with AMO would also need to be compared with consumer confidence in a product that didn’t adapt and offer unique features not found anywhere else.

It’s clear — we’ll have to find the solution halfway. We need to improve the overall quality of addons by improving the review process, and making moves to encourage the same openness and exposure Firefox and Thunderbird get. Most of these changes start with an improved (and solidified) policy, which is currently a major focus.

The technical solution could be CVS integration, stricter review requirements, Bugzilla integration. Ideally, we would have all of those, and everybody would develop, test and verify quality for their own extensions the way Mozilla does for Firefox and Thunderbird.

That all sounds great. Now, who’s going to do it? What would the practical schedule be for a new addon? A new extension version? When does the process of controlling the processes become simply overwhelming?

While I wish it were, I have to say the complete Mozilla review process isn’t a perfect fit for addons. It would delay addon releases, create a barrier between developers and the community, and create a lot of additional work for addon developers — who would most likely be satisfied with keeping their extension simply on their own site, in their own repository, with their own bug reporting software.

So how do we properly review this stuff, then? Myk Melez brought up some good ideas about a modified rating system to guage the overall “trustability” of a given extension. I thought that his approach would be a good one given the unique nature of the addon life cycle:

(Our current system) has a number of problems:

  1. it ignores other trust metrics that would refine our sense of each extension’s trustworthiness;
  2. there have never been enough reviewers, so extensions often wait days or weeks to get reviewed;
  3. generally only one reviewer reviews each extension, increasing the risk of human error;
  4. reviewers review extensions they aren’t personally interested in, so they exercise them less thoroughly than the ordinary users they approve them for;
  5. there’s little reward to being a reviewer, and the downside (being held responsible for approving a harmful extension) is significant.

An alternative approach is to publish each extension to the site the moment it is submitted but hide it from the majority of users until it reaches a trustworthiness threshold which takes into account all available trust metrics, including user feedback, code review, whether it is open-source, whether it is signed with a valid code-signing certificate, the trust score for other extensions by the same author, etc.

Until then, only specially designated “tester” users who have been apprised of the dangers and are willing to face them can access the extension. These testers, a much larger group than the current pool of reviewers, will provide feedback on such extensions like ordinary users, and that feedback will serve as one of the trust metrics through which an extension can reach the trustworthiness threshold required to make it available to the rest of the users.

This approach has several benefits over the current approach:

  1. testers try out extensions they’re interested in using, so they exercise them more thoroughly;
  2. multiple testers must look at and provide generally positive feedback for each extension before it satisfies its “user feedback” metric, so no one tester is solely responsible for deciding if an extension is good;
  3. each extension’s trust score comprises multiple trust metrics, increasing the quality of our decisions about each extension’s trustworthiness.

And, I strongly suspect, the mean time to publication will decrease significantly.

Myk’s idea is basically to properly weight the different metrics unique to the AMO process to determine whether or not an extension is trustworthy. It’s like an improved Digg mentality with a bit of moderation. While there is definitely more discussion needed in the next month, this would be a great place to start.

Sometimes pushing the envelope can give you a paper cut.

Between the Bars

Standard

Edin thought it was funny that people who don’t have real problems sing angry songs.

So I thought about it on the drive home from Portland late Saturday night after we sent off Rick to Seattle. Some thoughts crossed my mind:

  • Was the grunge movement just whiny drifters mad about their station in life?
  • Pseudo-existentialism aside, what substance did it all have?
  • How does alternative rock in the 90’s compare to the music of the 30’s, when there was a national depression?
  • How does American music differ from music in underdeveloped countries? Is it angrier?
  • Aside from hard rap, why is African American music generally happier?
  • When we have everything, are we the least fulfilled?
  • Where is my shirt? Did I even remember to wear it today?

When I added it up, I started to realize that a large majority of the “happy” music I know was sang during some of the worst periods by people living through some major drama.

Where I tend to differ a bit, though, is that I find a lot of beauty in hard beats and rhythms created by people who probably didn’t have a legitimate gripe. Though I liked them especially if they carried a significant message — something closer to the heart than, “my dad didn’t by me an Escalade now I’m going to bust a cap.”

And while I tend to like bands like Stone Temple Pilots, Nirvana, Alice in Chains and Pearl Jam — I really did have to wonder what the hell all these guys were so pissed off about. Maybe it was their long hair, which was tangly and unmanageable.

Stevie and Ray were always smiling, even though they couldn’t see a damn thing, and the Duke didn’t grow up in the best of times.

SQL Weirdness

Standard

Maybe I was just really tired from putting together my toolbox, but I couldn’t figure out why my initial query didn’t work last night when I was debugging the SQL for the Extend Firefox Finalists Page. The original SQL query would not sort the result set based on v.vid DESC and I would receive the same v.version everytime (the smallest one).

I fixed it with a subselect to ensure we were pulling the max v.vid per main.id, but the original query still bugs me. So if anybody has any comments or ideas about why the initial one was borked, I’m curious to find out.

If you stare at something long enough, the solution disappears and instead you find yourself staring at a pretty unicorn.

MLK Drew the Line

Standard

mlk imageI read a bit about Martin Luther King today, and I ventured past the typical biographical sketches into some of the less publicized issues he spoke on. One thing I found interesting was how a man of the cloth so readily upheld the separation of church and state.

King understood the reasoning behind the separation of church and state, something our leaders don’t. After thinking about it, his views were consistent with his support of freedom, justice and equality. In order to ensure freedom of religion and show no bias towards one faith, the government had to remain detached from any church.

Browsing took me towards Speaking Truth To Power: Martin Luther King On Church And State — a well written blog post found on blog.au.org, the home for Americans United for the Separation of Church and State. I’m not big into activist sites, but I suggest you take a look.

In the AU post, I saw their reference to an interview MLK had with Playboy. So I then found myself (no joke) reading Playboy’s full article on MLK, which I found to be really interesting. The post was very informative and insightful. Careful though, you might see some nipples (gasp!). (Yes, I only read the article — this time!)

Another interesting article was this article from towardfreedom.com that discussed King’s philosophical wisdom towards all kinds of issues.

King was a great leader because he didn’t lead for himself. He lead for a better world — a smarter more tolerant one. He strove for a greater good that was “good” regardless of race, religion, or sex. He didn’t abuse the system to achieve personal goals or agendas — for himself or his friends, and he only defied it when it was completely wrong.

He was strong, courageous and just. Unbelievably intelligent and well spoken, he commanded attention and respect. His type of leadership is what I’d like to see from the political leaders of today. There’s no doubt a man or woman with his qualities would make a great president, senator or supreme court justice.

It made me wonder why there aren’t great leaders anymore. Presidents used to be very special people (usually) who weren’t alcoholics, addicted to drugs, involved in scancals, or stupid enough to trade Sammy Sosa to the Cubs. They didn’t have spinsters or media monkeys talking about how good they were in order to cover up their incompetence. They did all the speaking, and the reporters would report — nowdays it seems like the reporters do most of the talking.

Where the hell are our great leaders? We need them so bad it hurts. Someone to unite, not divide. Someone who was marginally intelligent to help us focus on the important issues — serious problems we have to face, not stupid shit like steroids in baseball (seriously why the hell should congress give a shit about steroids — can you say, “complete waste of time and taxpayer money?”).

All that aside, I’ll take a leader we can at least trust. Someone who doesn’t bullshit us on a daily basis. Someone who shows up to work, puts in the time, and fights for us — for all of us. Martin Luther King would have done that. Our leaders today — well, I’m just not sure anymore. It seems like they made their own team, and I can’t afford the membership dues.

I’ll leave you with a quote that I think addresses “faith” and the problems it presents when it isn’t balanced by reason. Could be faith in a god, group, cause, leader, or an ideal. The bottom line is that faith cannot live alone — it needs science (facts) to confirm belief and justify actions.

Science keeps religion from sinking into the valley of crippling irrationalism and paralyzing obscurantism.
— Martin Luther King

Many of the problems — the real problems — we face today are the result of decisions based more on faith than on science. I hope the coming years bring balance to our thinking, and somewhere along the way we find reason.

Last but not least, make sure to read this article at the Dailiy Kos. Despite a daring comparison between what Gore said yesterday and King’s speech 40 years ago, it had a great common message — whatever the problems we have today, we — the people, us, you and me — are the solution, not the powerful few.

Is it hard to find great leaders, or is it just hard to find great leaders that aren’t destroyed by the crappy ones?

AMO Movin’ On Up

Standard

movin' on up!!!

2006 brings some awesome news for AMO. There have been many meetings and discussions with MoCo about the progress of AMO, and it has all been very encouraging.

We have taken steps to speed up development by contracting with programmers, and there is more of a project management presence. Overall, things are progressing very well since the Firefox Summit gave us a chance to get together and talk about everything.

In December, mconnor and I discussed a schedule and what we really needed to get done. Getting everything out on the table was important, and it made the rest of December more productive. We accomplished the following since then:

  • Reconfigured and cleaned up addons CVS
    • Split public and developer tools into two separate applications
    • Removed Smarty from CVS, since it should be managed on the server level
    • General house cleaning on unnecessary files or directories
  • Migrated new template
  • Migrated search-engines page, started on recommended (getting started content)
  • Implemented Smarty’s caching capabilities to improve LVS node performance and noticed a great perf gain
  • Fixed all the stuff that Smarty caching broke 🙂

The upcoming month will be a time to focus on a re-release of the public-facing side of AMO. See the TODO list and the tentative schedule for more on what’s going on.

There are also some important things to think about as we approach this next version:

  • How can we better utilize the community to moderate comments and addons?
  • How can we make the site simpler for the average user?
  • How can we make site content more community-driven?
  • What can we do to make the review queue smaller without sacrificing QA?

There has been a lot of valuable discussion about these newer features/needs. Please chime in — join #umo and discuss it with me or anyone, or add your thoughts to the wiki.

There have been great thoughts about comment rating and user moderation, using “trust metrics” in order to determine the overall quality of a given extension, and making a Digg-like interface for deciding “what’s hot” on AMO to encourage user participation in the site.

2006 is going to be a better year for AMO, Mozilla and Firefox.

Kong is King at the Movies

Standard

If you haven’t seen it yet, go see King Kong. It is a tribute to old-school captivating movies that take you away into a different world. A remake of the famous classic was a big feat, and although we’ve all seen remakes done before (and poorly, at that) I think this remake was really something special.

What made me happy was to see a fresh and seamless use of today’s special effects. Jackson was able to integrate some cutting-edge graphics without spoiling the realism or flow of the story.

I think the use of these effects was responsible and well done, because I often see today’s directors choosing to scenes just for the effects instead of using effects to improve an already great scene.

The characters are palpable, and are built well over the course of the movie, which is about 3 hours. Yes, three hours. A bit long, you might say, but if you stop and look back at all the truly great classics, they are all longer than 90, even 120 minutes.

It’s probably because the theatrical epic needs to have substance. It is a journey that should take you out of your world for longer than just 90 minutes. It’s a movie that is long, but doesn’t seem long, and when it is over you are a little sad that your journey has ended.

Overall, King Kong was a tribute to the epics — great movies like Citizen Kane, The Godfather, Casablanca — because it has brought back imagination to the big screen that has recently been suffering a complete lack of ingenuity in the wake of rapid special effects advancements.

I’d like to see more movies coming out like this one. It reminded me of how far our imagination can take us, and that’s something we should always appreciate and cherish.

A giant ape has feelings too. It takes a great director to show it.

College Basketball Doesn’t Measure Up to the NBA

Standard

The NBA is the best basketball league in the world. It’s primetime, best-of-show, extreme, nail-biting, you name it. It tries to make basketball what it was supposed to be: exciting.

You might disagree. You might enjoy little league, high school or college games more for some reason. But not me. Give me a good NBA game and I’m happy. Here some reasons why:

  • Arguably the best overall athletes in professional sports. NBA players are tall, quick, strong and intelligent (most of them — on the court anyway).
  • Traditional rivalries. They go way back, I guess you get this in college, too. But come on – Lakers vs. Celtics? Bulls vs. Pistons? That is what legends are made of.
  • One-on-one battles between great players. Defensive matchups between a great defender and great offensive talent are often seen on a nightly basis. It is hard to have these marquee matchups when you’re playing a box-and-one or 2-3 zone.
  • No boring zone defense. Defenders have to be better at one-on-one assignments, and have to be smarter during rotations. Teams have to be smarter about who they commit to, and they pay a price for overloading and picking on one particular player.
  • Shorter shot clocks. Seriuosly, 35 seconds to run a play? The NFL has twice the players on each team and it only takes them 25.
  • No three-point shooting contests. No zone means players get guarded on the perimeter more closely. Teams don’t play four-courners and end up chucking threes all game because the defense is plugging the lane.
  • Three-pointers are actually worth three points. Instead of the traditional 20-foot 3-point line that was introducted in 1961 by the American Basketball League (ABA), the NBA now has a 22 foot perimeter. Because of the 2-foot increase, the shot is a low-enough percentage that it is used as an additional weapon, not the main focus of today’s offenses. In contrast, college games are typically decided at the 3-point line because of its relative closeness. For example, Illinois hoisted over 40 3-point attempts in the 2005 NCAA Finals.
  • Post-up moves? Hook shots? Pick and rolls? Three reasons why college basketball lacks some of the fundamentals. Zone defenses put a strangle hold on all three.
  • Better refs. They make more money, they are professionals, and they miss less calls.
  • Better coaching. Plays, defensive and offensive, that have been proven at the college level or elsewhere in the NBA to be effective. No standing around looking listless. The troops have a more capable general.

Now don’t get me wrong. A great college game is as good as a great NBA game. But what I won’t agree with is saying that _overall_ college basketball is way better than NBA. That’s bullshit. In my mind there is no comparison. March Madness, yes, I think it is awesome — but the fact remains — there is definitely a lot of shitty basketball being played every week around the country, and it’s pretty sad.

Here are some reasons why people hate the NBA:

  • Illegal defense? You don’t even understand the whole point of it. First off, illegal defense no longer exists, and hasn’t for over 4 years. The NBA board realized that the rule was hurting basketball and it was rescinded at the beginning of the ’01-’02 season. The only standing rule that regulates defenses is the defensive 3-second rule that prevents defenders from sitting in the paint for longer than 3 seconds when they are not guarding an opponent. The violation is hardly ever called.
  • Egos, which don’t really matter to me when it comes to great basketball. So the guy is a punkass? So what, sometimes a baller just schools your honor student. Get over it and tell them to practice more.
  • Over-hyped? What isn’t?
  • Other rules and regulations? You probably haven’t read the rulebook, so this probably isn’t a good point for you.

Why college games tend to piss me off:

  • It sucks having to watch inexperienced players make mistakes I wouldn’t make. Some college players are just that dumb.
  • I don’t like watching guys who made the team “just because they were tall”.
  • I hate watching a good team suffer because they have a first-time crappy coach who doesn’t know what a pick is, or doesn’t know how to run a defense that is anything but a 3-2 zone.
  • Defenses cheat. They sit back, don’t guard the three, and most of the time rely on the fact that college players can’t shoot threes very well, which leads us to…
  • Three point contests. Sooner or later a team realizes the other team is sitting back, and they give it to their best shooters and just chuck threes all game instead of trying to play basketball. Or, they lack the ability to play real basketball and are satisfied with throwing up 40 3-point attempts.
  • Flukes. In the round of 64, believe it or not, sometimes the best team doesn’t win. The NBA playoffs keep flukes from happening. There are no cinderellas, just great teams who deserve a championship.

You know, in the end, it’s about the game. I personally don’t give a shit about who likes what, and I don’t necessarily believe that the NBA is better in all aspects. I think it’s more fun to watch, and that’s my opinion. Just don’t count out the NBA when you don’t really understand what it’s about or fully recognize the difference between the two leagues.

Overall, though, give me a good ball game that is well played and I don’t care about where the line is, who is coaching, or what silly rules there are. I’m happy, because all things aside, on most nights, the best team usually does win.

Rulebooks are interesting to read. More people should try it sometime.

AMO Year-end Summary

Standard

During the Firefox Summit, there was a lot of healthy discussion regarding the immediate future of addons.mozilla.org (AMO). We came up with a solid plan and timeline for top-priority items. The general idea is:

  • Split public and admin pages into two separate appliations.
  • Re-use core libraries, store them in a separate place in CVS.
  • After the rewritten public site is re-launched in January, start development on admin CRUD pages and inremental rewrite of all developer tools.
  • Profit! (just kidding)

random picture

The topics covered in the AMO breakout session ranged from standing problems, project overview, and additional resources needed to improve progress. I think it was a valuable discussion. Mostly I was happy that people recognized the importance of AMO. I left the room with a much better feeling about the future of the project (and also the knowledge that I need to work on my public speaking skills).

That said, I’d like to talk about why AMO is actually so important, because I don’t think everyone truly understands how vital it is to Firefox and Thunderbird, and consequently the entire Mozilla Foundation and Corporation.

It comes down to feature coverage, really. Most projects can hit 70-80% of the core feature requests. Firefox or Thunderbird don’t differ from this norm — Mozilla as an organization can only get so much done until they have to make the decision on where to draw the line for the next release. At some point project managers have to say, “Ok, these features are the most important and they will be what we focus on. These other ones will be slated for the next release, or whenever we get to it.”

And it’s not something unique to Mozilla — it happens everyday in projects across the world. The key, though, is managing what happens to the other 20-30% of the features. You might want to read a Wired article passed to me by Scott Kveton called The Long Tail — it explains the concept in more detail.

Successful projects today realize the value in developing for the developer — empowering the community to improve the application on their own. And I think that so far we have hit the tip of the iceberg in terms of getting a return on the ingenuity and open-mindedness of the general community.

We are already seeing a trend in more popular projects like Flickr or Google Maps where these services kick ass and deliver some awesome features just out-of-the-box, but what makes these apps _really_ special is their APIs. It’s also what makes Firefox and Thunderbird so special.

Coming down the pipe we are starting to see uses of these APIs that are mind blowing. With Katrina we saw an interesting use of the Google Maps API to report area status updates in Louisiana. On AMO we have seen some awesome extensions that have actually been integrated into 1.5 because they were so, “Duh, we should have done that from the beginning”.

For Mozilla, AMO is the playground for the determined user to do their thing and get exactly what they want to get out of their web browser or email client. It covers the extra 20-30% and best of all it benefits the product, the community, and the world (yeah, melodramatic, I know) by improving an already sound base of features.

Over the past year I’ve developed an appreciation for the importance of AMO. I’ve learned about its challenges, all the players involved, and hopefully we’ve come up with a solid plan for 2006. I’d like to see us provide a better tool for the community to develop, submit and distrubute great ideas. With that in place, Firefox and Thunderbird will continue to have a community-centric family of extensions that sets them apart from all competitors.

Oooh. Shiny.

Web 2.0 Has its Consequences

Standard

When people want to find information, they don’t care how well it’s packaged. They care more about:

  • Is it easy to find?
  • Is it accurate?
  • Is it simple to read?

Web 2.0 is a buzzword that almost makes me want to vomit. What gets me is the complete lack of understanding and responsibility when it comes to reinventing the usability model of a web interface. By “usability” I mean “things that people expect from a web site”.

Technologies such as Flash or JavaScript can compeltely alter web site behavior through manipulation of the DOM. I typically approach these technologies as only necessary when you have extra time to create value-added user experiences. This means that if you stripped these items out, the site should still be understandable and would work for anybody using a modern browser that supported HTML standards.

Web 2.0 is completely misunderstood on two fronts:

  • It’s not just AJAX. Get over AJAX.
  • It’s more than Flock, Flickr, Gmail or Google maps.

Myth #1 is that if you plug AJAX into your site you are Web 2.0 and you will be greeted in outer space by 72 virgins, etc. Please give me a break already. Most people misuse AJAX, because they don’t take responsibility for recreating the usability model of Web 1.0 (or whatever you want to call it) and create asynchronous pages that have no context.

Case in point — say you are on your homepage and you use an AJAX operation to request data for the current page. You decide suddenly that you messed up your page and you want to go back. Well, most of the time, there is no back. Because your browser isn’t aware of the change in state.

To be fair, it could be, but most browsers aren’t. I’m not sure if they should be. The fact of the matter is that people became used to a standard for viewing web pages and that is endangered by the media buzz surrounding Web 2.0.

And shame on the media — and their followers. Again, they have blown things out of proportion and have left caution to the wind. The Web 2.0 ideology truly surrounds a user-centric approach to information sharing versus a server-centric or website-centric approach. It’s a new way of thinking that puts the user at the center of the internet universe.

This doesn’t doesn’t equate to riddling web pages with unnecessary scripting that takes advantage of The Next Best Thing just because Slashdot had some bullshit article about why it was cool.

Myth #2 is that using AJAX can easily make your site this wonderfully dynamic web application. People don’t realize that Gmail and Google maps are very complex, and they go through painstaking lengths to reinvent the common web interface using JavaScript. All of their efforts are put into preserving familiarity and client state. Normal operations and functions of a web browser are reinvented. Imagine having to reimplement:

  • A back button.
  • The address bar.
  • A forward button.
  • A refresh button.

Arguably, you may not successfully be able to reimplement all of these with today’s browsers in a “Web 2.0” application. Still worth it? Maybe. It depends on what your users need. Oh yes — the users.

Overall, Web 2.0 is mostly about making better use of standards that do exist (which, ironically, is almost what AJAX is — although it’s not treated as such). It’s about creating sites that make sense, use less words, and utilize existing technologies to their fullest potential.

In the end, I’m not saying AJAX is bad — it has great uses. Flash and other plug-ins also have their place amont the web elite. But as far as Web 2.0 goes, the best thing you could probably do is assume responsibility for what the hell you are doing and truly consider the best experience for your users.

Oddly enough, it doesn’t always mean overcomplicating things. Most of the time it means cutting down on the fluff and just delivering the goods. If anything, it’s shortening the path between any user and what they need.

All the fancy Flash and JavaScript in the world can’t make up for shitty content.