Motivation

Standard

Peter Torr’s blog post on signing Mozilla binaries (Firefox, primarily) was a good article. Most people will flame it, but his argument holds some water. I respect his opinions and recognize the validity of his statements, especially considering his follow-up post, which responded to many of his Slashdot readers.

Overall, this is good stuff, it helps Mozilla become stronger in the long run and gives us additional motivation (there was already plenty) to “do the right thing”.

In the coming weeks we will be working on increasing the security of Bouncer in its coming version (v2.0) in addition to many other features (versioning, languages, statistics, statistical exports).

More to come, folks, doing the right thing takes time, and sometimes a little bit of pressure and criticism.

Bouncer v2.0

Standard

v2.0 is almost complete. This past week I worked on completing the additions of languages and versions, and also made quite a few adjustments in order to accomodate the new database and its relationships. v2.0 should hit production within the next week (pending testing).

Thunderbird 1.0 came out this week, which was relatively lackluster in the wake of the Firefox 1.0 release. Polvi agreed that the lack of excitement is partially a result of market share and competition. Mail clients are largely web-based, and those that aren’t are pretty thorough and do not posess many of the security flaws or standard-ignorance that IE posesses in the browser market. Regardless, you should get your hands on it and test it out. By the way, bouncer is dealing out Thunderbird 1.0 — http://download.mozilla.org/?product=thunderbird&os=win&lang=en-US. 🙂

Nonetheless, Thunderbird is a great program, and beats the crap out of Outlook Express. That said, it’ll be interesting to see what happens with the mail client world — will it start to merge with the web or maintain its tradition of being relatively stand-alone? Time will tell.

One interesting point is that with the development of Gecko and XUL, why did Mozilla try to develop a stand-alone mail client? Isnt’ the idea behind the revolution the un-desktopilization (holy crap – new word!) of the internet and its applications? The future of the desktop lies in the browser and its integration with modules that expand on HTTP — I think developing a complex XUL-based extension to Firefox might have been in line with what some see as the next generation of desktop applications.

My thought is that in order to get consumer buy-in for Thunderbird and increased interest in the foundation, Mozilla needed to cater to the existing market, which means creating replacement tools that are much better in the ways of security and functionality. When, though, will we collectively take the plunge towards a more seamless web/mail browsing environment? The next ten years will be very interesting.

All things considered, Thunderbird is an excellent application and I use it exclusively. Mutt fanatics and Outlook junkies aside, it is probably the best solution around if you’re looking for a newsgroup/mail client that is not retarded. The development team did a great job.

Thunderbird isn’t circa 2040, but as a desktop app, it kicks ass in 2004-05.

reclaim your inbox.

download.mozilla.org

Standard

Most great things in life are silent and intangible. In many ways, the backend support for communities like the Firefox Community can be so subtle; so easy to miss unless something is going wrong. After a long day, the server group of the Mozilla community showed why it is so important. I developed an appreciation for how much people seemed to care about and recognize the importance of the release of Firefox 1.0.

I saw server admins up past midnight working on getting things prepared for the onslaught. Communication and teamwork are what held things together. It was great to see such unity in a time where many of us stand divided and in search of our sense of brotherhood.

I saw Scott doing everything he could to help, setting up boxes left and right. I saw Dave and Myk working all night babysitting the servers. I saw myself staying up until 3am working on version 2.0 of a mirror managing tool I wasn’t sure anyone would use. And no, I didn’t need caffeine – I had motivation from everyone else who was doing the same damn thing.

Around 2pm things were looking bleak. Load was increasing, memory was disappearing and the pressure was on. Scott and I had worked so hard on the mirror management app — it was ready to go. It was made for this very reason. We had a great box to run it, load-tested code, and finally — the need.

It took off — Plan B was in effect. And there it was — our app — handling hundreds of thousands of requests — redirecting users to Firefox to rediscover the web. Between 2pm and 5pm it handled nearly 200,000 download requests.

It was awesome to see that we actually made a big difference. The app helped the main mirrors stabilize by dividing load evenly across the other 18 mirrors that were still up. Eventually things stabilized and requests kept coming in. DMO handled it nicely. It felt so good just to help out.

And sure — the system isn’t perfect. The servers, they might need work. Maybe the infrastructure needs a little tweaking. But we have good people, good minds and hearts. We try to do what is right. We think. We adjust. We admit mistakes. We learn. We step forward. We fail. We get up. We struggle more. We still stand tall. We grow.

You know – Firefox 1.0 is just a program. It lets people see into their world, and from that world they learn about themselves; they find answers. In a way, helping the project, helping the foundation, it let me see into myself, into the people I worked with, into that same world.

What did I see? Well, I saw something that looked unfamiliar in today’s red-blue age.

I saw hope. That was my motivation.

Bouncing mirrors, too much chocolate and beer pong

Standard

November 9th marks the release of Firefox 1.0. When the product is released Mozilla will experience server demands never before seen. Everybody will be trying to get 1.0 at the same time, and dividing the load between as many mirrors as possible becomes much more important at times like this.

I have been working on a project for the past month or so to help with this. Using PHP, Apache, MySQL and Perl me and a couple of developers have created a mirror management application to allow for management and logging of mirror usage depending on load and bandwidth capabilities. The app redirects user requests based on a fairly simple mirror weighting system. Using a simple admin interface, mirrors can be re-weighted, disabled or added. It also provides for management of products and file locations. An accompanying “sentry.pl” pings all mirrors for the availability of data and updates the database accordingly.

It’s been fun – there will be more coming regarding statistics, the addition of versioning and reporting features using jpgraph. We’ll see how it goes. Remember, don’t forget to grab Firefox!

This weekend I went to a tailgater and bought way too many chocolate bars for s’mores. That was funny. What the hell am I going to do with 4 pounds of Hershey’s? Damn you Costco why are you so awesome?

After the BBQ, my buddy and I rediscovered the ancient sport of beer pong. Beer pong is played using a ping pong table and two cups. Each cup shoudl be filled 3/4 of the way with high-quality Pabst Blue Ribbon. You score points by hitting the cups, after which your opponent is penalized 1 drink. If you get the ping pong ball into your opponent’s cup, he has to finish all his beer. We played for a while, and it was so fun my face hurt from laughing. For some reason I don’t remember who won.

Beer pong rules.

Ethical Computing

Standard

So 8 months ago I helped someone with getting their hands on the 2nd disc of the Gentoo LiveCD set. Someone in IRC needed a copy of it but didn’t have access to a burner or a CD-R so I felt bad for them and made it myself while I was working overtime on a Saturday.

I met them outside work, and gave it to them — seemed harmless enough. On my way home I got some good marks for helping a lady cross the street, got someone’s stolen purse, and sold some girl scout cookies. It was good to help out.

Flash to the now – same person got caught running versions of Knoppix and some accompanying software to scan a university network and distribute some nasty messages to the public on opening day. To say the least I was disappointed.

For one, it was contrary to my original impression of the person. I felt they were young and inexperienced and needed some help getting their feet on the ground. And they did — because they are bright and talented — and unfortunately they took a turn in the wrong direction and misused their talents to do some mischief.

Ok, so maybe at some point in their lives the best artists spray graffiti out of boredom or lack of a proper canvas. An even more probable cause is the theory that those who are good at rare arts or have special talents often lack the resources and direction needed to nurture those abilities.

So while most would probably pawn a handful of negative actions off as criminal mischief, I instead place blame on our schools, our leaders, our community for forcing this young adult into what pretty much seems like an act of pure boredom more than anything else.

It’s my hope that this person will learn from this experience, maybe seek a more honorable canvas and paint pictures with better paints and the finest brushes — and not be deprived of their right to creatively exhale.

Pressure and time lead to good things; they can also destroy youthful dreams and ambition.

Crime 0.8 Alpha

Standard

After the introduction of new technology, society goes through a recognizeable cycle. At first we experiment — everything is new and the sky is the limit. Then something arbitrarily bad happens and society creates countless laws as a result. Over-regulation becomes so hindering that movements are made against the authorities to slacken the rules because they are not reasonable once the paranoia subsides. Sooner or later democracy prevails and a middle ground is reached.

Right now I can spot many areas where we are in a period of over-regulation:

  • Arguably, (and don’t judge me for this) affirmative action will at some point be unnecessary. I don’t think it has reached the point where it is over-regulation, however.
  • Rape, sexual assault, and stalker laws are heavily weighted against males in reaction to years of neglect towards women.
  • The nuclear power industry was crippled due to over-regulation during the 70s and 80s that made it virtually impossible to make money at it. Only now is the industry recovering from the effects.
  • Hacker penalties for somewhat inconsequential tampering are greater than what would appear to be much more violent and disruptive crimes.

I can certainly understand why things are the way they are today in America. It is not at all surprising that years of neglect induce equal and opposite reactions by the government and community. In a way, it is like a societal immune system where you need to have a flare-up in order to preserve the greater whole. And while the flare-ups suck, these controlled fires are necessary for self-preservation.

On the other hand, our own immune system and natural flora can also be harmful when misused or misdirected. Bacteria that help us can easily kill us. Laws and regulations that protect some can also destroy others unjustly.

I hope societal judgement improves over time, so medium ground may be reached before any of the innocent pay the price.

Division of Labor

Standard

When you create common functions, it’s important to make sure any wrapped queries do one thing at a time.

Today I was working on a function I originally wrote that queried something based on a primary key and returned related data for 1…..n records.. It was then modified by someone else so that it had successive left joins. Consequently, other pages and functions assumed it was returning one row per entity found, while it was actually returning one row per another entity per entity.

I made the assumption that others would not make existing 1-dimensional queries multi-dimensional.

So basically, instead of getting the expected n items from this function, I got more like 8*n due to the 2 left joins. Equally exciting is the fact that the majority of that stuff was NULL.

When you are expecting a certain retval, don’t update a function to return something completely different or your coworker will spend 2 hours figuring out why your application isn’t working right.

New Mozilla Site Released

Standard

The Mozilla Foundation released their new site this week. It was a good improvement on the previous template — I’d consider it another step in the evolution of the site.

Of course, this means that work begins on another revamp of the Bugzilla main page. At first it seemed overwhelming; “oh no, not again….” After poking around, the majority of the hard work is really already done. Now the job consists of adjusting the site template, which is vastly simplified when the site has a solid structure and utilizes includes to reduce redundancy.

It will be fun, just a matter of finding the time, then doing it. It should progress rapidly this weekend, as I finally got my CVS access back and have a window of time to dedicate to this (and do it right).

Check out bugzilla.org in the near future, and don’t forget to…

Get Firefox