The Hablator “Iron” (0.4) – The Best Casual Chat Script Ever

I have just updated a (GPL’ed) PHP chat application I maintain called “The Hablator”.  It is the best casual chat script ever.  (When Amazon.com just opened, it already claimed to have “Earth’s biggest selection”, so saying that about The Hablator isn’t too radical…)  What I mean by a casual chat script is that it isn’t made to be a complete replacement for IRC.  It is designed to serve a few purposes.

First, it allows a site’s visitors to share opinions and collaborate.  It isn’t meant to be a chat room that thousands of “regulars” log into every day.  For instance, if you run a radio station, The Hablator would give your listeners an opportunity to discuss the song currently playing. These people come and go as they wish.  Each time they come, they are greeted with fast and easy access to the chat area.  It isn’t any easier or harder in future visits.

Next, it is a great platform for having online meetings on.  For instance, I joined a documentation project a little while ago.  We had to have a meeting to kickstart the project.  We weren’t going to meet again, so we just wanted a quick and easy solution.  Initially, the first meeting was going to be on Skype, but I refused to install that piece of proprietary junk on my computer and have my bandwidth wasted on other peoples’ telephone conversations.  After that, we tried to move to IRC, but one of the members had some kind of trouble with her IRC client.  She was going to try to find and install a new one, when I suggested we move to The Hablator.  Everyone could easily log on, so we were able to instantly start discussing business matters.  The Hablator worked without a hitch.

Finally, it was made to replace rapid-response email conversations.  This was actually the initial inspiration for creating it.  I found myself getting into several “rapid-response email conversations” in which one person sends an email, and gets a response back almost immediately, to which the person responds and immediately get a response, and so on.  I looked around on Hotscripts for a chat script, but didn’t see any that fit my needs.  All of them were clunky Java/Flash programs, required users to go through a registration process, or didn’t seem relevant to what I wanted to do. (At that time, Java was still proprietary software.  Even if it would have been Free Software, it would have still been a little bit heavyweight for what I wanted to use it for.) What I really wanted was a fully-featured chat program that had just a touch of shoutbox feel to it.  I forgot about it for a while, until the summer of ’07 when I got stuck in another rapid-response email conversation.  I was determined to create a chat script to solve the problem.  The Hablator 0.1 was born!

I don’t know why I just used an exclamation point in the previous sentence, because this version was really ugly, and didn’t work very well. The Hablator 0.1 was an IFrame that contained the contents of a certain PHP file.  That specific PHP file existed for two reasons: to echo the line <meta http-equiv=”refresh” content=”3″>, and to load the contents of the file message.txt.  Whenever anyone posted something, it would open up message.txt and add whatever the user had typed to the beginning.  There was no AJAX whatsoever.  It submitted like any other form, and then once it was submitted,  the user was redirected back to the main chat page.

The Hablator “Stone” (0.2) was released less than a month after.  To be honest with you, I didn’t really change much besides the light to indicate when other users are typing.  That light was really challenging for me at the time, though.  Before this time, I had never had any experience with AJAX.  I suppose learning AJAX during your second month of Javascript is pretty good, but not when you don’t know how to use it.  I spent the longest time trying to figure out how it worked.  What was this XmlHttpRequest thing anyway, and how did it work?  All I knew about it was that I had to use it if I wanted this light to work.  After two weeks of working with it, I finally figured it out.  Everything was in place.  It worked great on Firefox, but did it work on IE?  I had to find a Windows computer to check.  Hoping for the best, I navigated to a demo installation and logged in.  Nope.  Nothing.  I worked for days to get it to work on Internet Explorer.  After numerous email conversations with complete strangers, several forum posts, and hundreds of heaping helpings of frustration, I found the answer.  header(“cache-control: no-cache”).  IE was dumb enough to cache a request made through an XmlHttpRequest object!  What company would be stupid enough to make a browser that caches AJAX requests?  Oh, Microsoft!  After removing this bug, I finally released version 0.2 “Stone” and took a week-long vacation to celebrate.  (It’s a great way to celebrate, especially when you learn that the modifications you did to your server immediately before leaving broke Apache’s configuration, so all requests to the server end up as 500s.  It is even more assuring to know that your server is safely locked up in your father’s bedroom, where no one can get to it!)

While The Hablator “Stone” (0.2) wasn’t exactly a release that introduced a bunch of new features, The Hablator “Bronze” (0.3) was.  All of that time spent working through my problem with the last release had made me a better developer.  I also had a huge list of features I was ready to add.  I started adding feature upon feature, until I knew school would be starting back up soon.  At the time, I assumed my classes would be extremely vigorous, so I thought that I should release before school started.  I finished up some essential features, and started bugtesting.  I made it before school started with two days to spare!  In this release, I realized how complicated I had made the AJAX before, and switched it all over to jQuery.  I also changed the main chat system to an AJAX system based on jQuery.  Yeah, the jQuery libraries were pretty big, but it was still smaller than loading a long list of messages every couple seconds!

At the beginning of the year, I decided I was done with The Hablator.  I really wasn’t all that interested anymore.  Plus, it did everything I originally wanted it to do.  But later that year, I recieved some emails from some people requesting certain features.  It was the first time I realized that The Hablator was actually being used by other people.  I decided to make another release of The Hablator, because there were a bunch of things that still drove me crazy about it.  Once school got out, I had a few music composition projects to work on.  Once those were well underway, sometime near the middle of June, I started back up.  I invited Kate back into my life, an old friend of mine that I hadn’t seen for what seemed like an eternity.  I was ready.  After some sporadic work on both The Hablator and my music composition projects, I started some serious work on it near the middle of July.  Since then, I have been working to produce The Hablator – “Iron” (0.4).

The Hablator has a bunch of really cool features.  It now uses several libraries, including Luke Plant’s FlatFile database, jQuery (obviously), and a slightly modified version of Gary White’s Browser Detection script.  I would like to thank the developers of these projects.  Because of these developers, The Hablator has a feature set far beyond what it would have if I had to make all of those libraries myself!  You can see the complete list of features in the changelog.

I don’t know what is in store for The Hablator in the future.  If I find (or someone else finds) some bugs in this release, I’ll make sure to release an updated version.  There aren’t any new features I want to add, so for right now, it is going to be dormant.  Sometime, I may port it to Joomla!, if I find the need to do so.

I think The Hablator is the best casual chat script ever, but you don’t have to take my word for it!  Download it at http://BernsteinForPresident.com/hablator.php or try the live demo at http://BernsteinForPresident.com/hab-sample.  Hopefully you will find it as useful and fun as I do.

Published in: on July 30, 2008 at 10:03 pm  Comments Off  
Tags: , ,

Explaining Software Freedom to a Beginner

I needed a good way to explain software freedom to people who have little to no computer experience (possibly parents or grandparents, kids, stay-at-home moms/dads, etc.), so I created the following blog post.  Many of these people could benefit from free software, but aren’t going to learn about it through mainstream media.  These people are usually easy to convert to Free Software, because they don’t already have blind opinions about the benefits of proprietary software.  They also don’t resist with the “I don’t want to learn a new program” excuse, because they haven’t put much time into learning any software yet.

You are free to modify and distribute the following under the terms of the GNU FDL.  To redistribute this, you can download it in PDF format or ODT format.

What is Software Freedom?

Many years ago, when computers were just being invented, people really didn’t care about computer software. If a company or organization was lucky enough to own a computer, it would find or create a piece of software to use on it afterwards. Other companies or organizations with computers would be nice enough to give away the software they had written, because it really didn’t mean that much to them. People had all the freedom they could want with this system. They had the freedom to give away their own software, and to receive software from others. They had the freedom to change any piece of software to accomplish the task at hand. They even had the freedom to give their modified version of a piece of software away to someone else in need.

Since then, the times have changed. Now, many pieces of computer software are locked down in a way that prevents people from making changes, just so that the software can be sold for a profit.

What is wrong with most software?

The reason companies lock down their software is because know they can make money off something that should be shared among everyone. Under normal circumstances, there isn’t any problem with people trying to make money. There is a problem when people want to make money so badly that it interferes with progress and innovation.

Different companies and individuals had to keep reinventing the wheel in order to sell their software; they couldn’t just change someone else’s software to fit their needs. Lots of people spent a lot of time writing computer software that somebody else had already written. If these people had shared the software they wrote with everybody, all of the time spent duplicating an existing program could go to improving it.

Another problem with not sharing software is the fact that one company or individual maintains complete control over what that piece of software does. More often than not, that person or company will be interested in making money instead of making the software as powerful and useful as possible. Therefore, the program’s creator is free to put obtrusive or unobtrusive advertisements into the program.

Obtrusive advertisements are pop-ups, nagging screens asking you to buy the “full version”, and other advertisements that ask you to spend your money in a certain way. An example of an obtrusive advertisement that you may be familiar with is the MSN icon (the butterfly) on the bar at the top of Windows Media Player. Another example of obtrusive advertising is when the Apple iPhone adds the text “Sent from my iPhone” to the bottom of all emails sent.

Unobtrusive advertisements are certain features or the lack thereof that force you to use software from a certain company again in the future. Unobtrusive advertisements are far more common than obtrusive ones. An example of unobtrusive advertising is the fact that Microsoft Word saves in Microsoft’s “.doc” format instead of the international standard, “.odt”. This forces you to use Microsoft Word again in the future if you want to view or edit that file. It also forces anyone else who wants to view or edit that file to use Microsoft Word.

The History of Software Freedom

One of the first people to realize a problem existed was Richard Stallman. In the 1970s, Stallman became frustrated when he couldn’t make an improvement to a piece of software he had received at no cost. This made him start to think about the computer software market. He was talented at creating software himself, and he knew several other people who were as well. They decided to create all of the software that a computer needs to run, and then share it with anyone who wanted it. It would be free of cost, but more importantly, anyone would have the freedom to change and redistribute it. Stallman wanted to make sure that, if modifications were made to his software, other people would be able to benefit from those modifications as well. Therefore, he put a modest requirement on his software that stated, “If you make changes to this software, those changes need to be shared as well.” He called this collection of software “GNU”. In 1991, another component was added to GNU to complete it called “Linux”. Therefore, the complete system was called “GNU/Linux”.

What is is called?

Stallman called this form of software “Free Software”. Most people incorrectly call any software that is free of cost “Free Software”. In true Free Software, the “Free” part refers to freedom, not cost. While it is true that most Free Software is free of cost, not all software that is free of cost can be called “Free Software”. Many times, applications that are free of cost are marketed as Free Software. There have been other names given to Free Software to help differentiate it, including “Freedomware”, “FOSS”, and “FLOSS”. Often, is is also called “Open Source Software”, or “OSS” for short. (Open Source Software has a few very minor differences from Free Software, but for our purposes, they are the same concept.)

Stallman also called any piece of software that wasn’t Free Software “Proprietary Software”. He carefully chose not to use the term “Commercial Software”, because he knew that some companies have indeed found ways to make money off Free Software. Calling freedom-subtracted software “Commercial Software” would give the impression that Free Software can’t be used in the industry, which is far from the truth.

Why Free Software is great

Free Software is generally much higher quality than Proprietary Software for several reasons. Many of the people who create Free Software do not get paid for doing so; it is created completely in their free time. These people obviously have a passion for creating software, since they are willing to do it in their free time. This gives the free software community the cream of the crop developers. There isn’t anyone working on Free Software who does it just for the paycheck.

In addition, all software is shared. This means that, unlike proprietary software, the wheel is never reinvented. Let’s say an German developer spends several years of his life creating a computer program that does the user’s yard work, and decides to make it Free Software. Now let’s say that a Russian software developer wants to create the same program, but in Russian. All that Russian developer has to do is go through and translate the existing piece of software. In the world of Proprietary Software, that Russian developer would have to start from scratch and recreate the whole application. Free Software just saved this person years of work. After a while, you can see everyone’s hours, days, and years start to add up to a considerable amount of time saved. This time saved directly translates into quality and progress

Free Software won’t always do everything people want, but it is guaranteed not to do the things people don’t want. If there is anything that the world as a whole does not like inside a piece of Free Software, it will eventually be removed by someone who feels strongly about its removal. This system of checks and balances is one of, if not the best, system of quality control ever created.

Final Comments

Free Software is any software the gives people the freedom to do what they want with it. Proprietary Software is any piece of software that is not Free Software. Free Software offers a massive number of advantages over Proprietary Software, because it is created by people, for people. Features are not added to or subtracted from Free Software based on how much money they will generate, but instead on how useful they will make the software.

One of the reasons not many people know about Free Software is because Free Software projects usually don’t advertise. The creators of software usually prefer to use all of the money available to them to improve the software. The only advertising these projects get is word of mouth.

To help promote the spread of Software Freedom and the advancement of technology, try using some pieces of Free Software instead of Proprietary Software. Two very well known pieces of Free Software you may want to try are the Firefox Web Browser (http://mozilla.com/firefox) and the OpenOffice Productivity Suite (http://openoffice.org). There are Free Software applications to replace most Proprietary Software. Two good sites to go to to find more free software are Osalt (http://www.osalt.com) and the Free Software Foundation Directory (http://directory.fsf.org). Together, we can help spread Software Freedom.

Published in: on July 4, 2008 at 12:45 pm  Comments (13)  
Tags: , , , , , ,
Follow

Get every new post delivered to your Inbox.

Join 242 other followers