Aug 17, 2010

The Spare Parts of SecondLife

When you are building something complex, it is said that if you are left with spare parts in the box when it's finished, there is a high likelihood that something important is missing. Now that we've been using the SecondLife viewer for a number of years, it's time to take a look at this box full of spare parts sitting in the corner.

Global Atmosphere Settings

Related JIRA: http://jira.secondlife.com/browse/VWR-7677

W
ith Windlight in 2007 came a number of atmospheric effects such as water, sky and lighting which allows us to change the look and feel of the sims we are in if we feel so compelled. From brilliant sunsets, to an eerie fog and overcast day, the atmosphere settings allow us to truly set the mood of an area and create a better immersive environment. However, since the inclusion of windlight settings in 2007, there has not been the obvious inclusion of Global Atmospheric Settings along with it.


Would it not make sense to allow the sim owners and parce
l owners to set the atmospheric settings for global use? Imagine going to a sim and the skies are darkened with overcast clouds, or a brilliant shade of pink. The water would be tweaked as per the sim owner as well, allowing for countless water possibilities with the atmosphere to create just the right look and feel.

What does it take to actually do global atmospheric settings? I'm assuming those settings are in an XML file, and as such it would only require that the global settin
gs are saved as a server asset for the sim (just like all the other settings in estate and Land management) and thus would be downloaded as an asset to be applied by the user automatically (unless they are manually overriding the settings locally). The transition from one global preset to another should be set on a slow fader in order to go from one transition to another smoothly (and not suddenly switching).

Weather Effects

Associated JIRA: http://jira.secondlife.com/browse/VWR-6632

Windwardmark Interactive: http://www.windwardmark.net/

Again, with the inclusion of Windlight in 2007, Linden Lab has acquired a very powerful atmospheric system for their viewer, but seem to have ignored one of the major components of the Windlight system: Weather.

The Windlight system includes built in weather effects such as rain, snow, and more but by some fluke of logic in 2007 they were never enabled in SecondLife. Instead we are left with third party solutions which essentially require a ton of particles in 3D space and are not nearly as good looking or effective as would be the native solution such as found in Windlight. The reason the native solution looks better and runs much faster than an in-world solution with particles, is because the Windlight system runs the weather effects natively and attached to the user camera viewport, versus partic
les in the 3D space.

Video Courtesy of Windwardmark Interactive (makers of Windlight)


The weather effects for Windlight are actually quite impressive, considering they use the local viewport to render the effects quickly. I believe that using Windlight Weather effects would not require processing time on the server, as the effects can be run locally at full speed. It's not as though each individual raindrop needs to be able to be scrutinized by each person, so locally running the effects via camera screen space should suffice. Of course, weather would also be an option in the the Global Atmosphere Settings for the sim owner (and land management).

An excellent place to begin in order to figure out why weather was not implemented when Linden Lab acquired Windlight would be to understand that there is a missing essential in SecondLife (yet another spare part) which would effectively make enabling weather natively not feasible.

User Created Zones

"Zones are 3-dimensional areas in the scene. Within a zone the normal environmental world rules can be changed. The world itself can be thought of as one or two large zones. The primary zone is the main part of the world above the world water level. If water is enabled, the area below the water level can be thought of as another zone. However, what if you want an area below the water level that is not flooded with water, such as a doomed city or submarine? Or what if you want water that is not part of the world's "ocean", such as a swimming pool? This is where zones are useful.

Using zones, you can define areas that have different gravity, water, or fog settings, as well as change some of the sounds used within."


This is a quote from another system that already has this solved. Under water should be treated as a zone and as such the ability to "swim" should be native to the viewer. Likewise, the concept of defining zones is inherent to game design as a basic staple. In a sandbox system such as Second Life, allowing the participants to define Zones via special permissions on a prim, whereby the containing space of said prim would be the defined zone whereby those rules are in effect, would be the ideal route.


In the context of Second Life, Zone creation should require a Group Specified permission as it is a specialized prim whereby the laws of gravity, lighting, VoIP Exclusivity, and yes even Particles can be limited or expanded. The usage of Zones is also something to consider when creating an in ground swimming pool, for instance, whereby one of the faces is declared to be Linden Water and act as such, while the inside of the zone acts as modified gravity (buoyancy) and automatically trigger the swimming animation and movement archetype.


Defining zones for buildings and structures which would normally impede or block weather actually take about 30 seconds when the ability to do so exists in the building interface. It's simply telling it that particles outside of that zone do not enter that zone.


And that, is how to implement the already built in weather system of Windlight while ensuring it does not rain, snow, etc inside of buildings. Restricting via Parceling would be a bad idea because the parcels extend upwards into the sky, and would not look natural as you would see columns of no weather extending into the sky (and not in shorter limits of a zone space)



Linden Water Should Invoke Swimming Natively

Coming from the topic of Zones, most game engines define two zones immediately much like you can only have 6 lights in view at any given moment (and two of those lights are the Sun and Moon by default). The two zones which get automatically defined are usually the Above Water zone of the sim space and Below Water zone in sim space and are defaults. Above water, your avatar acts normally unless acted upon by another zone or force, and below water your avatar automatically swims unless acted on by another zone or force.

I find it odd that this basic foundation of programming a 3D environment was neglected since day one and continues to be neglected to this day. When I jump into the ocean, I should automatically swim - not walk along the bottom of the ocean like I have concrete shoes on.



While there are third party solutions available such as Scuba HUDs and swimming wearables which do this for you, it only goes to show that the community is making up for lack of basic functionality in the viewer, and presumably doing so with the ease that should have been present in actually incorporating that functionality natively in the viewer.

Particle Effects Natively in Build Window Options

Of course you can script particle effects in SecondLife, and there are now a number of HUDs you can purchase which give you some basic particle making abilities with a point and click interface, but a Tab on the Build Window natively allowing a user to have a prim generate particles would have been a no-brainer. This is one of the options that I actually miss from Activeworlds in that the Particle system is tied to the building window with a tab and GUI options to modify the settings of the particles you are generating, including ability to specify an image asset to use for the particle itself and glow.

When I first entered SecondLife a few years ago, I was baffled that particles weren't a native option on the build window, and that I either had to script them from scratch, buy a script and modify it, or purchase a separate HUD to use a function that was native to the SecondLife system.

This is one of those spare parts that have been sitting in the box for years (and probably since day one) collecting dust, forgotten. I think it's time to take the part out of the box, dust it off, and put it to use properly.

Enable Dynamic Reflection

Related Web Address: http://secondslog.blogspot.com/2007/01/first-look-into-mirror.html

Way back in the first look viewer when water reflection was enabled (2007), Linden Lab also temporarily enabled Reflection by itself, allowing prims to act as mirrors. At the time, this was huge news and was shown off quite a bit by users in SecondLife via videos online. However, something happened where the normal reflectivity option was removed prior to the release and the only thing we were left with was the water reflections. In effect, the mirrors were disabled before release, and seems to have been relegated to the spare parts box, forgotten.

In the world of Viewer 2 series where Dynamic Lighting and Shadows are being worked on, I feel it is wiser to go back and enable Dynamic Reflections before we continue forward. The reflectivity option would simply use the existing shader that is used for the water reflections, and the Graphics Settings would read "Reflections" instead of "Water Reflections".

I see no reason why mirrors should be disabled and forgotten in SecondLife, since it is clearly not a lag concern if we can already enable water reflections and choose "Everything" on the graphics setting. It has been about three years or longer since reflective surfaces were introduced and then subsequently removed before release, so I would believe at this point that whatever limitations there were to implementing it at the time (three years ago) should be easily overcome today in the year 2010. Below is a video from 2008 showing the use of the water reflections as a mirror (by turning the structure 90 degrees).

Video Courtesy of Adeon Writer in SL



Native Translation of Text


I'm fairly certain something similar exists for Emerald users, but I'd like to take it a step further and suggest browser language be used as the Google Translate API Language pairing, but instead of showing the original text, simply show the translation in text chat to the user's native language so all text is in their native language (whenever it's possible to detect the language properly and translate). Again, there are lots of third party HUDs which translate chat for you, but this is a feature which should be native to the viewer.

RTF Formatting of Notecards

In a world of Web 2.0 and text editing on the web, you would think that it would be possible to have a rich text formatting ability in our notecards by now. I'm writing this blog entry on blogger, and even the interface for blogger is more advanced than SecondLife notecard editing (which is really just sad).
I have the ability to choose a font, text size, bold, italic, text color, web link, text justification, bullet point options, text quote formatting, spell checking, as well as picture and video embed into the document. Don't you think it's about time that we should be able to use rich text formatting in our notecards as well?

Sailing the Null Space Oceans

When you look out into the vast seas of SecondLife, you often get a yearning to sail a ship. Unfortunately this is only possible in Linden protected waters, but really should extend to the null space oceans that extend outward in all directions from sims. Avatar tracking would be done by nearest sim or a central server which simply hands off connections to the users so that users in vicinity of each other connect via a multicast P2P and update each other as to movement, actions and VoIP proximity. In the null space ocean, it wouldn't be possible to build so a majority of those authorizations would be a moot point. Items left in the null space ocean would be set to autoreturn in a set amount of time by default if not being interacted with. This would essentially make it feasible to sail a ship or vehicle out into the infinite oceans without requiring costly servers to handle regions for them.

Allow Multicasting P2P

If there are hundreds of people in an area, it is safe to say that their local cache's are very similar. This is redundant data, and should be shared among peers in order to lessen the load on the main asset servers. Cascading Multicast information would allow the servers to lighten their load by instructing viewers to cascade redundant information to their peers (such as movement) and would remove the burden from the main servers greatly when attempting to process the simultaneous users in bulk. Aside from actions that require authorization such as building, there is quite a lot of information that can skip the main server and simply cascade to nearby peers in a multicast fashion. In the long run, this limited decentralization would allow for many more people to be in a single area without server issues.

Epilogue

Over the course of time, SecondLife as a system has left quite a number of useful additions aside, and forgotten them in their haphazard rush forward. Looking over the things which were forgotten in the past, as well as very obvious things today, it is safe to say that part of the disappointment with SecondLife isn't what it is unable to do, but instead what the viewer is able to do but has been relegated to the spare parts box in the corner to collect dust and remain forgotten.

Can you think of anything else that should be on this list? Go ahead and leave them in the comments.

Aug 16, 2010

The Kaaos Effect | Operator's Station

This is the second part of The Kaaos Effect in SecondLife, by MadPea Productions and presented by Orange Island. Covered here is the Operator Station (Telephone Era). Since I've already beaten this game, my slipstream points are all open and I do not automatically teleport to the next area. Instead I always teleport back to the Help Desk (last level).

Note: I did the 1933 Era first because that's the era I see most people get hung up on (aside from the Dark Room)

Wanna Play? Here's the Link:
http://maps.secondlife.com/secondlife/MadPea%202/21/217/42


The Kaaos Effect | Intro, Helpdesk & 1933

#SecondLife

This is the first part of The Kaaos Effect in SecondLife, by MadPea Productions and presented by Orange Island. Covered here is the Entry Area and Help Desk, leading to the 1933 Newspaper Office. Since I've already beaten this game, my slipstream points are all open and I do not automatically teleport to the next area. Instead I always teleport back to the Help Desk (last level).





Better Living Through Viewer 2

#SecondLife

We're going to start this post out by saying that most people who read the title immediately called their friends and told them to gather the torches and pitchforks. However, I'd like for you to suspend your disbelief (and possibly get off my lawn) long enough for me to tell you that this isn't an article that will entirely be praising the merits of Viewer 2.

If you aren't already aware, I'm a Viewer 2 user and probably one of ten people in SecondLife who actually like it. You're probably asking, "Aeonix... have you gone insane?" , and I completely understand where you are coming from. Rest assured I am not wearing Rosedale colored glasses, or drinking the Linden Lab Kool-Aide. I am, however, looking at Viewer 2 completely from an objective viewpoint which I find it hard to believe that most users of Emerald or other TPVs are able to do.

This doesn't mean that I am gung-ho about Viewer 2, because let's face it; there is quite a lot that needs to be fixed before it is the choice of a new generation (did I just use an old Pepsi slogan? uggh). Anyway, for what it is, Viewer 2.0 is not as horribly bad as people make it out to be. What we really have here is a situation where people are comparing Apples and Decepticons, in that many people who criticize Viewer 2 are people who are already biased from being die hard users of Emerald. As such, it's incredibly hard to remain non-biased when checking out the latest Viewer 2 from Linden Lab.

So let's take an objective look at Viewer 2, and along the way I'm going to make some suggestions on how to improve the Viewer 2 experience in order that we can find a middle ground for more experienced users.

To begin, I'm going to say right now that Viewer 2 isn't entirely up to par but by no means should we be advocating throwing the baby out with the bathwater. Let's focus a bit on what needs to be corrected:

That @#$%! Sidebar

Some like it, some absolutely loathe it with a passion usually reserved for lesser demons of hell. It's a simple solution: Allow the sidebar to detach as a separate window, and switch from docked to button on the bottom. I'm not saying to get rid of the sidebar, but an option to have it only as a button on the bottom would be nice.

I'm also not saying the sort of button where you click it and a little tooltip with more buttons pops up either, because that's just stupid (TPVs you know who you are). What I'm saying is as a button on the bottom, the sidebar is no longer docked to the side of the screen and upon clicking the button it simply opens a window with the tabs on it.

In Preferences, the user should have the choice as to which they prefer - button or docked.

Advanced Layout

In the great battle between which is better - Emerald or Viewer 2, (before you say anything just hear me out), many people have neglected the obvious. Viewer 2 is not the NASA console you've become used to with 1.23 and Emerald style viewers (especially Emerald). For the advanced user, Emerald is absolutely wonderful since it allows you to tweak to your hearts content. You open the Preferences and there are so many tabs it makes the mind boggle. However, if you hand Emerald to a first time user who has never used SecondLife, that amount of complexity will likely overwhelm them.

This is where Viewer 2 comes in. The point of Viewer 2 was to address aesthetics as well as first time user experience by making the interface more comfortable for people who are accustomed to a web browser. This layout is surely going to rub advanced users the wrong way (as I have seen from the mountains of feedback people leave concerning Viewer 2), but it's all misguided anger.

So let's look at a middle ground that makes sense.

When you activate the Advanced Menu (CTRL ALT D) you should be presented with a dialog asking if you would like to use the Advanced Layout for the viewer. Obviously if you are activating the Advanced menu, and even the Developer menu, you are knowledgeable enough to be using something like 1.23 or Emerald layout and functionality. Therefore it would make sense that activating the Advanced menu would give you the option to switch the UI to 1.23 or Emerald style (with an easy way to switch it back to standard Viewer 2 layout).

In terms of Viewer 2, the Advanced Layout would automatically take the sidebar off the side and make it a button on the bottom, the address bar at the top would be hidden, and most viewer UI items and layout would revert to 1.23 style which is very minimalistic.

Orientation Island Sucks

The Welcome Islands which were essentially tossed and the Orientation Island are both failures. I know this, you know this, and it's fairly common knowledge in SecondLife. What needs to happen is to build into the viewer an actual interactive tutorial. This tutorial doesn't require an entire island to be devoted to it, because moving, jumping, flying, wearing items, customizing your avatar, none of those things requires an island to teach somebody to do. If Video Professor can send me a DVD teaching me how to use a plethora of software and they don't need a fancy virtual environment to get the point across effectively, then SecondLife shouldn't have a problem.

New users should be greeted with this built-in tutorial mode, using the entire viewer as the teaching canvas. A little checkbox on the first tutorial splash should indicate "Show Tutorial On Login" to give users a chance to disable the tutorial mode on future login. In order to activate the tutorial again (should you wish) it should be a checkbox in Me -> Preferences -> General.

Teens on Main Grid

This has been a topic of recent debate since the announcement recently from Linden Lab. Yes, the Teen Grid will be shutting down, and/or merged with the main grid (depending on how you look at it). What this means is a flood of teenagers will be coming into the main grid, and the first reaction I've heard concerning this has been:

"The main Grid is no place for children or teenagers! What about all of the pedophiles and sex junkies in SecondLife?!"

If you let your children and teenagers on the Internet in the first place, chances are you aren't nearly as up in arms with that as you are with Teenagers coming to SecondLife. I find this amusing at best, considering the issue with Teenagers coming to the main grid isn't that there is quite a lot of seedy content and activities in the main grid, but that there is a lack of adequate age verification and enforcement of ratings. The issue isn't that teenagers shouldn't be on the main grid, it's simply that the main grid needs to make the age verification and ratings more robust in order to adequately handle them.

Of course, if you're thinking that teenagers aren't already on the main grid, think again. There is a high likelihood that it was teenagers who figured out how to spoof the age verification to begin with, and you've been dealing with teenagers a lot longer than you may realize. The only thing that closing the Teen Grid and moving them over to the main grid is doing, is to openly say there are teenagers on the main grid, but that doesn't change the fact that they were probably already here to begin with.

Let's worry less about the teen grid, and more about getting the ratings and age verification in order.

Updating In The Background

I already covered this in the last post (Asynchronous Updating) and even used a quote from my book chapter on the subject. The funny thing is, I wrote that chapter in 2009 (and it's heading to the publisher as of yesterday). The point of the chapter was to predict the future of virtual environments and e-commerce, outlining the things people need to be aware of going forward in order to succeed. One of those observations was implementation of asynchronous updating in the background, passively, in order to outline the effects of accelerating returns in information technology.

Why is this important? Well, I wrote that solution before it was announced at SLCC by Phil Rosedale, and while the blog entry was written the day before the SLCC announcement, one could argue that Linden Lab had been planning Background Updating before that, to which I nonchalantly point to the quote from my chapter written in 2009. I actually had written it in early 2009 while outlining what sorts of things businesses and users should expect to see from virtual environments in the future, and I had based those trending forecasts on current paradigms in progress.

I'm elated to see that Linden Lab is actually following that trend, however it worries me that the people at the helm of the ship figured it out over a year after I figured it out.


Oh, Magic JIRA of the Lamp!

The official JIRA (http://jira.secondlife.com) is your forum to post bugs, issues, and glitches. It's also the place to post suggestions for improving or adding new features. The main problem I see with the JIRA is that it runs entirely on popularity (and the whims of Linden Lab). Where else can you report that you are missing your offline contacts list in Viewer 2 and have the bug untouched since April 2010? (http://jira.secondlife.com/browse/VWR-18808)

I'm all for Agile Development tactics, but it actually helps to prioritize and quickly solve those issues if you are working on one and two week release cycles. Having bugs sitting in the JIRA for months on end really shows how little things are prioritized at Linden Lab. Of course it doesn't help that Linden Lab also laid off a large part of their team, either (including the talented Qarl Linden).

I'm a bit baffled about Qarl Linden being laid off, to be honest. Just out of curiosity, what qualifies the corporate cheerleader (Torley) to be more valuable to Linden Lab than Qarl Linden? Don't get me wrong, I think Torley is absolutely awesome and I'm in no way bashing him. But when it comes down to Torely or Qarl, how exactly was that decision made to lay off Qarl?

Who knows... maybe Torley works for watermelons and Qarl actually wanted a paycheck.

This brings me to the final point:

Linden Lab Needs to Stop Being Irrational

It's no secret that Phil Rosedale (Phil Linden) isn't actually making any changes to the roadmap that was enacted by M Linden. At this point in time, it's safe to say that the only reason Phil Linden is back as Interim CEO (notice how I put the Interim on that?) is because the company needed to settle the community by putting in their visionary at the helm again.

It's sort of like a room full of children raising hell and tearing the place up when the babysitter is there, but immediately falling into line the moment the parents show up. In this case, M was the babysitter, you are the children raising hell, and Phil is the parent coming home to make sure the kids stay in line.

Just because the parents are home, doesn't mean they are going to change what they are doing at the office. Which is to say, exactly what we were seeing with M Linden (Mark Kingdon). Mark is a business guy, so he knows what needs to be done to make things better at Linden Lab, however he doesn't know too much about the social structures and nuances of the virtual world, nor does he know that often times real world logic clashes with virtual world logic and outcomes.

In this aspect, we can say that Phil is telling us all the same thing that M was telling us, except that since it's coming from Phil, we all have our Rosedale Colored Glasses on and are willing to listen (mostly).

There is plenty more things that can be improved upon for Viewer 2, however there are a few things that Emerald and TPVs need to improve on as well. We cannot just heap all the blame on Viewer 2 without a critical eye on TPVs like Emerald.

What can be improved with Emerald

Of all the things chosen for Emerald to be worked on, it seems Dynamic Lighting and Shadows was the big thing. However nice it is to have a half working beta feature that only works correctly on very high end hardware and a specific subset of nVidia graphics cards, I think the Emerald team has their priorities a bit mismatched.

There are a handful of game changer additions to SecondLife in the Viewer 2 series that Emerald should be concentrating on implementing.

Shared Media

Alpha Layer/Transparent Layers (Skins, Tattoos, etc)

I believe the latter is being worked on in the beta, though I think Shared Media should be the first thing they should be concentrating on going forward since it is the biggest game changer in the virtual environment. The faster Emerald implements Shared Media, the faster the virtual world gets on the same page and moves forward.

Shared Media is going to play an integral part of the evolution of the grid and how designers and developers in SecondLife evolve their creations. Of course there is also Mesh Importing as well, but let's focus on what is important right now -

As far as I'm concerned, as long as Emerald does not have Shared Media, it is just as useless to me as Viewer 2 is to existing Emerald users. Plain and simple.

Without shared media, I see Emerald as a viewer that is just as crippled as Emerald users think Viewer 2 is. And quite honestly, I refuse to lose that large amount of potential and functionality just to join the masses over in the Emerald City.

Epilogue

There is plenty of issues with Viewer 2 that can be corrected, and I see there could be plenty of things to fix or make better with Emerald. So let's make this an interactive blog entry:

What sorts of things would you like most to be fixed about Viewer 2? Leave your answers in comments here, and link to the corresponding JIRA entry if you have one. I'm interested in seeing what the reader priorities are versus the JIRA priorities. If you are simply reading this, then by all means go ahead and vote on the issues posted here by our readers. Let's get the ball rolling to a better SecondLife!


Aug 13, 2010

Asynchronous Updating

Logging into the virtual environment, users began to notice that the frequency of system updates began to increase, eventually culminating into passive updates streaming behind the scenes. Dynamically updating the protocols and software did away with cumbersome batch updates and awkward installations from the past. Rightly so, it was noted, because the near constant updates would have made it completely impossible to utilize the technologies in any other manner, and each time the users logged into their accounts, the virtual environment greeted them with more to offer and ever higher fidelity.


At some point during the past week while I was making final corrections and edits to my book chapter in the upcoming book
Virtual Worlds and E-commerce: Technologies and Applications for Building Customer Relationships I had a revelation upon logging into the Second Life virtual environment. I currently use the Viewer 2 alpha for testing purposes and to participate in the JIRA feedback and bug reporting, however I noticed something interesting over the past few days that I don't believe really hit home previously.

The plot to this blog entry is found in the initial quote (from my chapter) which outlines how the progression of updates will be handled in a virtual environment program as accelerating returns begin to take hold. If you aren't aware, accelerating returns is the speeding up of paradigm shifts over time, and in terms of software and how people handle their information, I make the assumption that it will be commonplace to begin doing passive updates to software rather than direct bulk updates.

When you log into a software system such as Second Life, quite often you are greeted with a message saying that a newer version is available and you must download and install it before you can continue. I find this method to be ill-conceived at best in the 21st century, and would go so far as to say that asynchronous updating should be the preferred method for software updates going forward.

There is no need to wait until a person runs the software to inform them that a new version is available, force them to quit the program, download the new version, install it, and then continue. When faced with the alternatives, it seems quite silly that software still does this, and I can only stare in wonder and ask "Why?".

So what's all this about "Asynchronous Updating", you may ask? Well, it's nothing spectacular or new; it's simply the order of how updates are handled that is changing. Take, for instance, if the software does an update check and finds that there is indeed a newer version of the software available. Instead of telling you a newer version exists and prompts you to quit the software application to download the new version and install it, the following should happen:

  1. You execute the program
  2. It checks for new versions or updates
  3. If it finds updates or a new version, it downloads it in the background to it's own temp folder.
  4. User continues to use the old version of the program unhindered
  5. When user closes the program, and later restarts it, the updates are automatically applied as part of the start-up process.

This is more of a passive updating system, or transparent update system whereby the experience is not abruptly interrupted for a mandatory update. In the meantime, they continue to use the old version unhindered and without a noticeable interruption. When they run the program again later, the updated version which was downloaded in the background is installed before running the main software.

I believe as release times shorten, and updates for software become more numerous, this sort of asynchronous update system should be used. What do you think?

Aug 9, 2010

5 Lessons About How To Treat People

- Author Unknown

First Important Lesson

"Know The Cleaning Lady"

During my second month of college, our professor gave us a pop quiz. I was a conscientious student and had breezed through the questions, until I read the last one: "What is the first name of the woman who cleans the school?" Surely this was some kind of joke. I had seen the cleaning woman several times.

She was tall, dark-haired and in her 50s, but how would I know her name? I handed in my paper, leaving the last question blank. Just before class ended, one student asked if the last question would count toward our quiz grade. "Absolutely," said the professor. "In your careers, you will meet many people. All are significant. They deserve your attention and care, even if all you do is smile and say "hello." I've never forgotten that lesson.

I also learned her name was Dorothy.


Second Important Lesson

"Pickup In The Rain"

One night, at 11:30 p.m., an older African American woman was standing on the side of an Alabama highway trying to endure a lashing rainstorm. Her car had broken down and she desperately needed a ride. Soaking wet, she decided to flag down the next car. A young white man stopped to help her, generally unheard of in those conflict-filled 1960s. The man took her to safety, helped her get assistance and put her into a taxicab. She seemed to be in a big hurry, but wrote down his address and thanked him.

Seven days went by and a knock came on the man's door. To his surprise, a giant console color TV was delivered to his home. A special note was attached. It read: "Thank you so much for assisting me on the highway the other night. The rain drenched not only my clothes, but also my spirits. Then you came along. Because of you, I was able to make it to my dying husband's bedside just before he passed away. God bless you for helping me and unselfishly serving others."


Third Important Lesson

"Remember Those Who Serve"

In the days when an ice cream sundae cost much less, a 10 year-old boy entered a hotel coffee shop and sat at a table. A waitress put a glass of water in front of him. "How much is an ice cream sundae?" he asked. "50¢," replied the waitress. The little boy pulled his hand out of his pocket and studied the coins in it. "Well, how much is a plain dish of ice cream?" he inquired.

By now more people were waiting for a table and the waitress was growing impatient. "35¢!" she brusquely replied. The little boy again counted his coins. "I'll have the plain ice cream," he said. The waitress brought the ice cream, put the bill on the table and walked away. The boy finished the ice cream, paid the cashier and left. When the waitress came back, she began to cry as she wiped down the table. There, placed neatly beside the empty dish, were two nickels and five pennies. You see, he couldn't have the sundae, because he had to have enough left to leave her a tip.


Fourth Important Lesson

"The Obstacles In Our Path"

In ancient times, a King had a boulder placed on a roadway. Then he hid himself and watched to see if anyone would remove the huge rock. Some of the king's wealthiest merchants and courtiers came by and simply walked around it. Many loudly blamed the King for not keeping the roads clear, but none did anything about getting the stone out of the way. Then a peasant came along carrying a load of vegetables. Upon approaching the boulder, the peasant laid down his burden and tried to move the stone to the side of the road.

After much pushing and straining, he finally succeeded. After the peasant picked up his load of vegetables, he noticed a purse lying in the road where the boulder had been. The purse contained many gold coins and a note from the King indicating that the gold was for the person who removed the boulder from the roadway. The peasant learned what many of us never understand - "Every obstacle presents an opportunity to improve our condition."


Fifth Important Lesson

"Giving When It Counts"

Many years ago, when I worked as a volunteer at a hospital, I got to know a little girl named Liz who was suffering from a rare and serious disease. Her only chance of recovery appeared to be a blood transfusion from her 5-year-old brother, who had miraculously survived the same disease and had developed the antibodies needed to combat the illness. The doctor explained the situation to her little brother, and asked the little boy if he would be willing to give his blood to his sister. I saw him hesitate for only a moment before taking a deep breath and saying, "Yes, I'll do it if it will save her."

As the transfusion progressed, he lay in bed next to his sister and smiled, as we all did, seeing the color returning to her cheeks. Then his face grew pale and his smile faded. He looked up at the doctor and asked with a trembling voice, "Will I start to die right away?"

Being young, the little boy had misunderstood the doctor; he thought he was going to have to give his sister all of his blood in order to save her.

________________________________________________________


The previous set of lessons are ones which are fairly well traversed online, and have graced the pages of countless emails and blogs over the years. The author is currently unknown, and probably lost to time and reprinting countless times. Unlike other repostings, however, I'd like to take a look at these lessons and explain how they each have had an effect on my own life throughout the years (even before I knew about these lessons).


Know The Cleaning Lady


I've had the pleasure of meeting many wonderful people in my time, from high end corporate executives and CEOs of major companies, and even prominent musicians with albums and tour buses. While I was visiting one of my musician friends in between his tours, we were relaxing at his home on the lake and just chatting about what sorts of things he was working on currently (as it turns out he was doing some editing for his next album). It was a fun time, and I watched his tour DVD from his last tour, and saw all the fans waiting in huge lines to come see him and his band.


After the evening had waned, and he retired, I began to think about how life tends to work in strange ways. Here was this guy who was a high profile musician and a celebrity in his own right, coming from a family who was always out on international business or vacation. And there I was, sitting with him as a friend, drinking fine wine, and enjoying the evening... you could say the high life for what it's worth.


The next morning, after we had woken up, he was already downstairs with a cup of coffee and at his laptop doing more editing, and sending out emails to the band... swapping music tracks for the editor program, etc... but there was something else I immediately noticed where he had seemed to be oblivious to: The cleaning lady.


It was a lazy Tuesday morning, and the cleaning lady had let herself in quietly and had begun to clean the house, top to bottom, starting with the kitchen. Loading and running the dishwasher, scrubbing the floors and counters, etc. Of course, I had wandered into the kitchen to grab some coffee and in the process I set my coffee cup on the island counter in the kitchen and struck up a conversation with the cleaning woman.


With Tom in the dining room working on music tracks and editing, I figured a good conversation was in order for the morning. Interestingly this caught the cleaning woman off guard, apparently she was used to being ignored in that household while she went about her work.


Her name was Linda, by the way, and she was a wonderful person to talk with. Very down to earth, a little rough from the blue collar work, but nonetheless a very pleasant person.


That moment turned into a recurring ritual between us for quite some time, as we'd laugh about Tom in the corner buried in his work and completely oblivious to the cleaning lady. Having the entry code for the house at the time, Tom had told me to come over whenever I felt I needed some time to get away. A few occasions I did actually take him up on the offer and the conversations the cleaning woman and I had were outstanding.


Now that I think about it, I don't believe it ever occurred to Tom to associate with the cleaning woman, and on a few occasions he would ask me what I was up to, and would be confused when I would tell him "Just chatting with Linda in the kitchen."


"Linda who?" He would ask me.


"Linda, your cleaning lady." I'd reply.


Pickup in the Rain


This is a simple matter of having some sort of empathy for others. Well, that and a healthy dose of faith in humanity as a whole. I know there are stories about axe murderers roaming the streets and such, but just put that aside... suspension of disbelief. On the whole, people are good and that is something you need to acknowledge.


The world won't be a better place until we all begin to trust each other just a little more, and to have a bit of empathy for others. So when you see somebody on the side of the road walking, have some sense to pull over and ask if they need a ride. It doesn't matter if they are hitchhiking or just walking along.


The idea here is to put yourself in their position, which is something most people ignore these days. If you were walking along the road to wherever, and unless you were obviously walking for the point of walking (exercise), wouldn't it be nice if somebody offered you a ride?


Our lives are full of hustle and bustle these days, and we quickly forget to look up from it all and pay attention. Now would be a good time to start thinking about somebody other than ourselves for once, and to instill that in our children going forward.


Remember Those Who Serve


It's no piece of cake, I'll tell you. Whether you are a waitress in a diner, or a person in military uniform, your job is rough and the sacrifices you make are great. I've known quite a few waitresses in my time, personal friends and even my own mother when I was growing up, and being on your feet all day and working for tips plus the measly wages they provide is rough. They have to put up with obnoxious customers, screaming children, and bosses who don't give a damn - not to mention other waitresses they work with who get an attitude.


While this isn't the case all the time, because there are nice people involved quite often, it's nice to run into a truly delightful batch of customers who have a bit of empathy for the people who are serving them. Sure, maybe the food came out like crap, but that's not the waitresses fault... and even if we say the cook messed up, let's take that empathy a little further and put ourselves in their shoes... trying to make up dinners for a room full of people who are impatient and demanding. You know just how hard it is to make up a full dinner for your own family (or else why are you eating out?), so imagine how hard it is to make up full dinners for twenty families to order.


In the end, the lesson I take home from this is that we need to relax a bit. Maybe the food is taking forever to come out, and maybe you've been waiting for 45 minutes. Maybe the waitress is in a foul mood or has an attitude. But that doesn't mean we should drop to their level and mimic their negativity, because that's not going to solve anything. If anything, that will just make their day worse and drag you down with it.


No... the entire point of going out to eat was to spend some time out with family or friends. So if the food is taking longer than you expected, then remember why you went out in the first place - to spend time with family or friends. Enjoy that time!


If you're a waitress, just remember... some people do have some empathy for you and understand how your day has been. Some (like myself) even go so far as to understand that your life in general may be a wreck and you may be having issues outside of work which are dragging you down. Relax... take a deep breath... and continue.


I liken this to when you are in school. Have you ever noticed that you never really put much thought into the fact their your teachers are normal people like yourself and have real lives outside of that school? Maybe they're married, or dating... they go out to eat and have a good time, they might have children or even grandchildren. Heck, they even have sex just like normal people would (and maybe not so normal depending on the person).


We have a hard time visualizing people and their entire lives, and often remain limited in scope and understanding for those people. Maybe it's the idea of the monkeysphere where we have a hard time thinking of people outside of 50 close interactions as actual people. I would suppose then that is why a single death is a tragedy and a genocide is a statistic.


As a planet, we need to change that.


Obstacles in Our Path


It's often all too easy to brush off an obstacle in our path, or complain that it's somebody else's job to move that obstacle for you. For the vast majority, we tend to put it off and pass the buck whenever possible, taking the easy route, but for the peasant in this lesson, they happened to have a bit of empathy for others and enough determination to change the situation.


Boulders do not move themselves (at least when we want or need them to), and the only way they are going to move is if somebody is willing to take the time to try. When there is an obstacle in your path, will you be the one to move it or will you just be one of the people who ignore it or blame it on somebody else?


Of course, you should also remember that timing is everything. There is always a time now and again when the answer will be neither to ignore the problem or try to change it, but instead to wait. I believe that is the hardest lesson to learn of all, and the hardest to enact because it requires a great deal of patience which is something the world is losing exponentially in a digital fueled rat race of technology.


Giving When It Counts


Let's make one thing clear - I'm not against organized charities. They do a lot of good on a broad scale and should totally be supported. However, I believe that in order to do good on a more meaningful scale, you will have to be willing to roll up your sleeves and face the problems personally.


How many homeless people do we have on the streets today? People hungry and destitute. Their entire lives broken and shattered. Maybe they're on drugs, maybe they spend life in a drunken haze. The real question is not what their problems are, but how often you bothered to actually care.


We're back to that monkeysphere idea again. None of those people even register as actual people in your mind. You don't know their names, you don't know what happened to them, you don't know anything about them other than that they asked you for money on the streets.


And nine times out of ten you walked right by.


I'm not saying that they wouldn't use that money for drugs or alcohol, and I'm not saying either that they will go and get some food or clothes to help themselves. What I am saying, however, is that it isn't your choice to make on their behalf to judge them for decisions that are not yet made.


People are ultimately good, despite the wickedness and evil. You need to have a bit more faith in humanity and trust that people are ultimately good. Because if you cannot have faith in humanity, then you have no faith in yourself, and that my dear readers, is a very bad place to be.


Sure you can give donations to charities, but that is a very hands-off approach. It's sort of like passing responsibility to somebody else just to ease your mind that the situation will be solved. You're washing your hands of it, essentially. Give when it counts, and make it personal. That level of empathy and sincerity makes you feel good about yourself... that you are actually doing something to make a difference in the world.


Giving when it truly counts, is what distinguishes you from just a faceless nobody to a person who really does give a damn in this world.


In the end, I would rather live in a world where people like you truly did give a damn, and broadened their understanding outside of that personal monkeysphere long enough to see the big picture.


This isn't about your country... this isn't about your beliefs. This is all about the fact that we are a species who live on an insignificant speck in the universe, alone. All we have is each other, and we can't even treat each other right. If there are higher forms of life in the universe, chances are they are waiting to see that level of compassion and empathy from us as a whole before they will even bother to say hello.


Imagine yourself to be an outsider looking in at our planet. See how we treat each other, the same species. Fighting wars, killing, stealing, not trusting each other. We have no empathy for others, we have no concept of "other" and what exactly that entails. We're caught up in our own delusional lives, ignoring the universe, and everything around us.


I believe we need to truly change to be a better planet, and these five lessons are a good beginning.