Wednesday, July 22, 2009

Time to surf the Google Wave?

I just finished watching the 80 minute developer preview of Google Wave on YouTube and I have to say Google has managed to grab my interest in a hurry. The video was taken during a presentation at Google I/O, a developer conference for Google.

The concept behind Google Wave is certainly ambitious to say the least. If successful, Google Wave will essentially fade away the popularity of communicating via email, and replace it with Google's attempt at imagining what email would be like if it was invented today, rather than over 40 years ago (as explained in the video).

From http://wave.google.com/help/wave/about.html:

What is a wave?

A wave is equal parts conversation and document. People can communicate and work together with richly formatted text, photos, videos, maps, and more.
A wave is shared. Any participant can reply anywhere in the message, edit the content and add participants at any point in the process. Then playback lets anyone rewind the wave to see who said what and when.
A wave is live. With live transmission as you type, participants on a wave can have faster conversations, see edits and interact with extensions in real-time.

A screenshot of Google Wave in action, courtesy of Google

If you are interested enough in Google Wave, you may have already seen the developer preview video. Here I am going to say some of the key points about Google Wave as well as some of the things that impressed me, all details I have gathered from the video:
  • Google Wave is a very extensible collaboration and communication tool used with a web browser. With a very modern drag and drop user interface you can instantly "drag" people into a conversation and communicate with them.
  • Google Wave is real time, meaning you can literally watch you friends typing key for key in a conversation that you are a participant in. If you want a little more privacy you can opt to not have it show everything as you are typing. Part of the reason this is done is to maximize the amount of time that you are actually doing reading and writing rather than spending a lot of time waiting for a response.
  • Google Wave has a playback feature to see the developments of a "wave" conversation. If you were to make a comment about something in the middle of the initial wave that was posted, the playback feature could illustrate when your comment was made in respect to all other comments and contributions to a "wave."
  • Google Wave is being modest instead of trying to take over the web with its revolutionary concept. It is open source meaning anyone could come along and make their own version of it for implementation. With widespread adoption we could see the likes of Yahoo and Microsoft making their own versions. Along with this, Google Wave can be used on external servers outside of Google's.
  • Google Wave can be expanded to do almost anything. As shown in the video one could create a "wave" to view "tweets" from their Twitter friends or create an RSVP wave to see which of their friends can attend an event. Even games of chess and sudoku can be played with friends using waves.
  • An intelligent spellchecker is implemented in Google Wave that actually checks the context to suggest spelling fixes. As demonstrated in the video, if someone were to type "I love been soup," Google Wave would suggest changing "been" to "bean" and if the system is confident enough about a correction it will automatically make the correction for you.
  • Google Wave can be embedded in third party websites seamlessly. The demo showed the usage of commenting on a blog using Google Wave embedded inside of the blog, then later showing the comment on Google Wave's official client.
  • Unsurprisingly, there will be mobile versions of Google Wave for smart phones to use, such as for phones using Android and the iPhone.
For more information about Google Wave, you may want to look at the developer video, and checkout this blog entry posted on the Official Google Blog.

Friday, July 17, 2009

A look at my experience with SMF

The following is a significantly polished version of an article I wrote in April of 2008 that has never been posted here.

Many of my peers are well aware of the role I serve for a software organization in which I provide a significant amount of time volunteering for. Those who don't know me as well, probably aren't aware of my involvement with this software organization, which specializes in web development.

The role I perform involves a team leadership position for SMF. Simple Machines Forum (abbreviated as SMF) is a free open source message board software [see wikipedia definition]. The primary function I serve for SMF involves writing documentation and maintaining the SMF Online Manual, which is the primary repository for the official documentation of the software. Since 2006 I have been the coordinator of the documentation team of SMF, just one year after joining the team in July of 2005.

SMF is a free software, period.

The first bit of knowledge I would like to throw out there and emphasize is that SMF is completely free for anyone to use. Yes our organization has had some heat thrown at us by a small group of individuals that go around advocating an Open Source license called GPL, with an attitude very much akin to that those who do not use a GPL license yet still release software free of charge are acting in a bad way, with no questions asked. This is at least the impression I get. From what I understand, these people aren't necessarily so against commercial products, but they feel all software that does happen to be free as in 'free beer', should also be 'free' as in complete freedom. What this means in our context is that currently we do not allow others to modify our software and redistribute it under a different name ("fork" the software as it is frequently called) which is one of the key components of what the GPL license would allow. We actually do occasionally allow redistribution, but only in special cases in which permission is asked and then granted. We have had legitimate reasons for not allowing others to fork our software. SMF traces its roots back to a predecessor message board software called YaBB SE, which was released under a GPL license. Sadly YaBB SE had a fork, and while I know that I wasn't around back during those days, I have heard about how the fork damaged the integrity and reputation of the software. Granted the SMF software is much more mature than YaBB SE happened to be back in the day. If SMF was "forked" it would probably be left standing strong, however we still have our reasons to be against going with a strict enforcement of using a GPL license. Reasons however in which I either lack the expertise to discuss, or are internal matters that I am not privy of mentioning.

Now let me be clear that I am by no means against the GPL. I think for instance GPL is really great for Linux. I think the one of the major problems however is that GPL just was not designed for web development. I will save the argument for another day, but essentially the GPL was not made with the idea of web software in mind. I am not an expert on this subject, but I have had colleagues who are very experienced in programming and licensing who have given good reasons as to why the GPL does not make the perfect fit when regarding licensing web projects.

Why do I spend time on SMF and how did I discover it?
First off, SMF was not the first message board I used. phpBB was, and at the time I didn't mind it. But the version available at the time, version 2, by my judgment, was quickly becoming obsolete as it wasn't quick enough to release a significant upgrade to remain competitive. However I do have a a lot of respect for the people behind the phpBB project, and just like SMF, phpBB is also free (and 'GPL free' for that matter). However phpBB just did not offer a lot of the features I wanted for my own message board that other free competitors had to offer. I eventually found my way to Invision Power Board, another quality forum package and was quite happy with it until the unfortunate change in direction was made for the project when IPB became a software that cost money to use.

From there, I eventual crossed paths with SMF, and almost instantly fell in love with it. What was it that I liked about SMF when I first discovered it? In general I was impressed with all the configurable administrative settings that were available and the good looking, friendly user interface.

I think what ultimately inspired me so much to contribute to SMF was the friendly user community behind SMF. I was essentially a young and inexperienced member when I first signed up to the community as a member, but the community never made me feel like I knew nothing and was worthless. Instead, I only became more and more encouraged and confident in myself, quickly trying out and learning new things on a daily basis. I recall being impressed with how many ordinary users would go around helping other SMF users, providing support for the usage, as well as installation of the software. I realized then that I found something that made me feel good. Sure there was the sentimental feeling from giving back to something that I believed in, but I think more so than anything else, I found a place where I could help others out and feel welcomed by all.

What do I do with SMF? Do I just write documentation?
Documentation is actually only one of the activities I am involved with. The list of everything that I do is an extensive one, but here I will try to keep it simple, highlighting what I do the most.

Documentation is my main duty over at SMF. I write new documents and edit existing ones. As mentioned before, I am responsible for maintaining the Online Manual, which is powered by the SMF software. Maintenance includes the responsibility of upgrading it when new versions of SMF are released. I also do some programming so that we have special features needed for handling the documentation, since SMF was not designed as a wiki software.

But if documentation isn't the only thing I do, then what else do I do or have I done in the past?

Well, for starters, I have written a few modification packages. For those of you who may not know, modifications (often abbreviated as 'mods') generally are third party packages of code that either directly modify code in the software (in SMF's case), or at least provide instructions for someone to manually modify the software by themselves. Modifications that I have written provide additional functionality that SMF does not have in its default download package. One modification I wrote has actually been made into a default feature in SMF 2.0.

A long time ago I even released a few themes, but my theme designing skills are not the best and consequently the themes I released faded to a point where they stopped being updated for more recent versions of SMF.

A huge part of what I do with SMF when I have the time is provide support for those who have installed the SMF software and need assistance with using it. I often like to focus in on areas where there is high demand for a certain type of support, but low supply of those able to help. Such examples often include people asking for minor tweaks that require editing SMF's code to achieve a certain functionality or feature. Many users are not that knowledgeable in regards to coding, and coding related questions usually take much longer to answer than other questions, so I try to step in and help with such questions whenever I can.

Another huge part of my involvement with SMF involves providing feedback to the team behind SMF, offering suggestions and advice on the ideas of others as well as coming up with my own ideas. I also beta test the software and report bugs that I find in SMF so that they can be fixed. There have been some events and concepts that would not have taken place if I hadn't been the one to initially come up with a certain idea. I take pride in helping SMF move forward and helping to make the community into more of a friendly environment. I have often suggested ways of getting the people in the community more involved, by employing the usage of contests and other means. It is my belief that maintaining a friendly community that is able to connect with the team behind SMF and feel welcomed is virtually the most vital thing for SMF to remain a strong message board software.

Saturday, July 11, 2009

Paying Due Respect in a Professional Setting

The following is something I wrote for a team of people I work for in a web software project. You could probably figure out what project with minimal detective work. This isn't anything like the first two things I wrote, however it's been awhile since I've posted anything on here, so I figure a less formal writeup wouldn't kill me.

Basically what I say here I feel can apply to almost any professional environment where there is a lot of online discussion where you do a lot of typing (such as on a message board).

Hello peers, I've noticed little things that get me a little discouraged with the occasional lack of manners and respect going around on the team boards.

First of all, if you want to be taken seriously, please type in comprehensible English. If you do not know English very well, that is understandable, but do try your best! I have seen some posts with so many typos that I literally feel like discrediting immediately anything said in the post because of the lack of effort that the poster put into their post. These are posts that come from people who I know can write in English with no problem. Frankly I find it rude to make a post with very poor grammar and several typos. Please read through what you are typing, I have seen some posts where I am sure that the poster didn't bother to even really look at the screen while they typed and never checked their post once.

Now I am a bit overly paranoid with my posts, often reading them 3 to 4 times over, but I don't expect people to be that careful.

The other thing is I expect everyone here to have the utmost regard for being completely respectful, even to a point where it seems almost comical. Truth is people can get sensitive over anything, and to avoid these problems it really does help to plaster your posts with phrases such as "With all due respect" ... "I appreciate your suggestions, however."

For a good example, think of a time where you may have said "There's no point in that." We all have done it. However as less harmful as you meant for that post to be, what you really are implying is that the person who made a suggestion made a very pointless and stupid suggestion. Now, you may actually think this, but you never want to imply such a thing. Hopefully the person with the suggestion is reasonable enough not to read too far into it, however, it could help to cover all grounds such as "I respect your opinion, and see why you could think that way, however I think your suggestion has two problems that you may have not thought about..."

Call me crazy but I would feel ten times better seeing something like this:

I respect your opinion about why we should add the "Awesome" mod to the default package, and understand your reasoning, but I think your suggestion has two issues..."

Over this:

"There is no point in adding the mod to the default install."

See my point? Please be extra careful to word your posts to be as respectful as feasibly possible as well as making an effort in writing in complete English sentences with proper grammar. Honestly it is a lot harder to read your post and understand it when it is filled with typos and lack of capital letters and punctuation, and I will just have to not take the post as serious as the ones where people took the time and effort to write properly and read through what they wrote at least once to make sure it read properly. Would you type like that in a resume? I would hope not, and the team boards here are a professional enough setting to not act like a 10 year old.
And a good example of me trying out the respect card when someone replied to what I wrote and claimed I was taking things too far with the grammar expectations:
Can you explain what you mean a little bit more? By no means am I trying to say it is a crime to have the occasional typos in a post, no one is perfect after all. What I mean is more when the quality of a post seems obsessively sub-standard for what I know the poster is capable of.
Also I respectfully challenge your claim that I am taking things too far with the basis that I am not mandating anything. I question your reasoning as what I state in my post are merely suggestions, not mandated rules that everyone has to follow. If I personally decide that I will not take posts as seriously when I have to make a huge effort to comprehend them, that is my decision. Quality pays off, trust me on this. There is also a difference between a post with a few small typos and a post with no structure or flow to it. By flow, I mean the ability to follow the train of thought.
I could have lashed out at the individual and called him "lazy" and "irresponsible," but from experience I know no good can come out of trying to outwit someone by throwing them insults. Instead I tried to reason enough with him while still remaining firm to my own opinions. There is a point where you do not wish to disqualify your views just to keep someone happy, but when doing so, I would suggest trying to as respectful as possible.