Early 90’s retro haircuts coming back

Can I be one of the first to say?  Early 90’s haircuts are coming back.  I’ve seen a few steps around lately (kinda like the fade, but more defined, MC Hammer rocked one).  I’m rocking a side sweep (skater style with banger tendancies).  There are a few faux hawk mullets i’ve seen that are ready to turn full mullet.  


I’m so happy about this development.

My Phone Number is NOT INVALID.

I was looking through some code on the site I maintain and was struck by how often we use something like

“Invalid Phone Number. Please enter a valid phone number, including area code (example: 555-555-1212)”

If I enter 3133388839 in the phone number field it would yell and say INVALID.

Open the Windows! Why Microsoft should open source Windows.

Life today is tied together by computers.   Our relationship with companies is driven by billing cycles and algorithms implementing these bills.  Our relationship with peers and family is driven by emails, photo sharing applications and instant messaging.   Much of this software is created by teams of skilled software developers.  Analysts and architects let these developers know what features or changes go into the software based on market research, feedback from users, or pure guesses.  When the decisions are made,  programmers go ahead and create the source code that is later compiled into what many people see as the end result;  the software itself.


You may have heard of a concept called Open Source software.  Open Source software is defined as software in which the source code is available to the users (FSFE).  The de-facto standard for calling something open source requires that users be able to add functionality that is not already available in the software and compile it.  Users have the option or are required to make their changes available to other users depending on the license granted to them.  Open source software becomes transparent – any changes made are visible to a number of people and there are no secrets in open source software since the code is available to be viewed by anyone.  Any concern that a piece of code is doing something wrong is reviewed by people interested in the software itself, either as hobbyists, users or even corporations who use the software to further their own needs.


Closed-source software is just the opposite.  End-users may not view the source code for closed source software.  A user has no recourse to add on functionality if he or she chooses.   The user also places the trust of the software in the control of the corporation who created it.  Microsoft Windows is an example of close-source software.  


The benefits of open source software is obvious to anyone who has used Windows at their mothers house after a virus was downloaded and installed.  Since most open source software is also free, you also benefit financially from not paying for software.  Many of the popular software packages today are open source; Linux for operating systems and most of the file sharing applications are open source.  


Open source can take an idea from one corporation and improve upon it.  America Online has an Instant Messaging network called AIM.  For years, the only way to get on that network was to download a client from AOL.  This did not operate with other networks until an open source project named GAIM appeared.  Anyone who used GAIM could communicate with AOL, YAHOO and MSN users without having to install separate clients.  It was also free (just as AIM was free).  


Why then does one of the most recognizable brands not embrace the idea of open source?  For years, Microsoft avoided and rejected calls to open source windows.  Very recently did they unveil licenses which allowed users to review the source code that made up their software but this has been shown to be restrictive and not in the spirit of open source by many advocates.  


It’s true that the company controls their Intellectual property rights by keeping the software closed.   Open Source software can introduce a lot of legal issues.  For example, if someone introduces code in the stream that is copyrighted or owned by another individual, legal issues arise.  Open source software also tends to follow the “bazaar” model, more akin to design by committee rather than one or two experts.  If someone introduced a feature that is not widely liked , or implements it differently than what the majority of the users prefer, people will create another copy of the project (called “forking”) ad continue development on their own software.


But drawbacks aside, the clear benefit to open sourcing Windows is to Microsoft itself.  Competition from Linux, another open source OS, is fierce.  Administrators prefer the idea that a community is working on issues and code reviews can be performed.  Many people have a bad taste in their mouth from Microsoft releasing patches every so often that break the software instead of fixing it.    If people were able to fix the issue themselves, the satisfaction of knowing the job is done to their standards takes ahold and Microsoft clearly relieves itself of much of much of the blame it currently receives.


Microsoft also gains ideas from the community of users who are using their product everyday.   Of course they can continue to hire testers and designers internally and work on the software, but they can not get feedback from the most important people(Raymond 2), the users themselves.  Issues can be solved by the community and the community can take their destiny in their own hands.  Windows has higher quality from having all these extra eyes looking at their software.


One of the fallacies that plagues open source is software becomes free and therefore unprofitable.  Microsoft can avoid this by only open sourcing certain core features of windows.  They may choose to open source their popular web application server, IIS, or they can open source windows itself.  Given this, the popularity the software currently enjoys can be maintained by removing the current differentiation factor that is typically exclusive to hotter, more revered open source software.  Microsoft can also devote many of the resources that are dedicated to bug fixing and send them to newer, more advanced and lucrative technologies.  The resources are free to become  a profit center rather than a cost center.  These teams, armed with development money from Microsoft can compete with other teams from around the world to implement ideas originating from the Open Source world, improve upon the ideas, or create and invent completely new technologies used by families, companies and individuals.  


The final benefit is more abstract but important none-the-less.  By opening the source code up to be viewed by others Microsoft grabs a portion of the hacker spirit.  The hacker spirit is the energy that drives us to improve and develop something new without any benefit other than the joy of developing it.  


Microsoft has made some progress in creating Open Source licenses for it’s software (OSI), but it’s time for the most critical software to be opened up to critical analysis.


Works Cited


(FSFE) Free Software Foundation Europe  Accessed 10 Dec 2007. 



Raymond, Eric S. “The Magic Cauldron” 3.0 25 Aug 2000



(2) Raymond, Eric S. “The Magic Cauldron” 3.0 25 Aug 2000



OSI “OSI Approves Microsoft License Submissions” Open Source Initiative

Accessed 10 Dec 2007 <http://opensource.org/node/207>

Writing a Firefox Extension for AIM

I am learning the wonderful world of Mozilla. Specifically writing an extension for Firefox. There are some really awesome things about this platform. Firefox is not just a great browser, but it’s a really great platform. XPCOM let’s me write javascript code to do sockets and all sorts of wild stuff. I haven’t even scratched the surface yet.

In any case I’m writing an extension to let me send links to people who are logged into America Online Instant Messenger. AOL just released a ton of developer tools for embedding AIM into your web pages, and a ton of SDK’s but I’ve decided to use the old TOC2 protocol for the project. The reason: I didn’t want to start trying to deploy XPCOM, C++ bindings and all sorts of headaches with my first extension. I want this to be fun, easy, and useful for my first try. Something a little more advanced than Hello, World.

In any case i’ve spent the last two nights on it and I found an old TOC protocol implemented in javascript and created my first XUL add-in. Next steps are to upgrade the TOC to TOC2 protocol and figure out a way to test it properly without destroying my user account.