If you close your eyes tightly and consider the future of the Internet, what does your mind's eye see? Most of us would say "Depends on the day!" Fair enough. Let me share with you what I will call Net Model X for a moment. This is just a capture of one of the possibilities.
The vision starts with deep breathing and relaxation: relaxing the arguments of peer-peer vs. cloud computing, thin vs. thick client, and all the other computing debates. These all become options instead of preferences. Addressing becomes automated and simplified - it disappears. The Internet is a smart, flexible cloud that supports client-server, peer-peer, as well as cloud computing ecosystems concurrently and effortlessly with a special new twist: if you want a computer or server, the cloud simply provides it to you. You don't need a box with memory and disk drive if you want a server. No, all you do is birth a virtual machine inside either your router or the service providers router or a dedicated virtual store on the network. You select the server software of your choice from an online OS vending machine, it installs and you can configure it. You can make this server private or public. Again, addressing is meaningless and fully automated.
The appliance you use can still certainly have disks and memory if you need it (developers likely will), but most of us simply have a killer I/O appliance (a table sized HD screen that can integrate multiple "desktops" with a physical motion detector so my hand becomes the "mouse" and of course the irreplaceable keyboard in the form of a foldable mat that can be standard size, compact or supper compact) and Net Model X does the rest. If I need a farm of servers, then this is provided to me by a service provider attached to the Net Model X. I can install software from a SW Vending machine if I want or use network based applications.
Net Model X costs me money to use. I am billed based on an algorithm that combines processing MIPS with memory consumption and application usage metering plus support - taxing me is eliminated. This billing can be offset by advertising - but a more effective advertising - one that is controlled by me - on things I have interest in. The more I accept advertising, the less my bill is. Advertisers have to pay more to get to hard to reach people, therefore offsetting the higher costs of their services. Regardless, I have consumed less hardware and using less power/cooling/heating at home or work lowering my carbon footprint and lessening the land fill burden of my upgrades. I am also able to do more without as much travel - the usual benefits of networking all still apply. The point is that Net Model X is easily paid for in savings that the technology provides.
My vision of Net Model X blurs quickly in areas like the evolution of television to non-existence, replaced by my ability to watch content as selected from a Video Vending Machine. News and current events will be available in the evolved Twitter model where individuals provide feeds - I can select an event from a global perspective, zoom into the event and then select from one of many feeds to view or listen - like a director would in a TV studio. Social Networking has evolved on Net Model X to one giant tool embedded in Net Model X that like the television director model I can build my circle zoom into the circle and interface with anyone in my circle as needed. The Net X Model also has a new search and information retrieval system that is 1000 times more powerful and accurate than today's grazing model. The ability to focus searching is built into the tools preventing or allowing search results that are more accurate. I'll stop here in this blurry part of the vision since I don't want to confine your imagination on where all this part could go!
So how does distributing and providing Net Model X work? A few more deep breaths and concentration. Delivery requires dedicated teams of people - today's service providers, to deploy the bandwidth, maintain the bandwidth freeways. They are the new "Geek Squad". They are more trained, more knowledgeable than ever before. If Net Model X is broken for someone, then someone has to be reachable locally and in a distributed fashion. They need to have local language and ecosystem knowledge. They provide the bandwidth and the support and earn part of my bill for doing so. I am not sure how long the multiple provider model exists in the Net Model X. After all, for some, it has never existed! It really does not matter, until everyone is served by one method, options will exist.
Mind you, this vision of Net Model X is not completely out of the question. There are a number of network innovations and directions that already hint of this vision as being a real possibility. Then again, now that I am discussing it with the readers of this blog, Murphy's Law will apply, and some of it may never happen. Time will tell.
Saturday, June 20, 2009
Monday, May 25, 2009
Speaking at the Wisconsin State Telephone Association
As many of the CellStream faithful know, we are hugely dedicated to the Independent Telephone market, and have been since the founding of the company in 1998. We were recently invited and happily accepted an opportunity to speak at the Wisconsin State Telephone Association conference.
A short video and interview was made at the conference. Enjoy!
A short video and interview was made at the conference. Enjoy!
Wednesday, April 1, 2009
Skype for the iTouch
It is Wednesday April 1st, the day Skype released its support for the iPhone and iTouch. While I do not have the iPhone, both my wife and I have the iTouch. Here is what you need to know:
In preparation for this momentous day, I ordered ($29) a new earbud and microphone appliance from Apple. It is ridiculously expensive, but really the only source right now. If you have an iTouch, this a mandatory item to make your device an internet phone.
Then I went to the Skype site - click on the download button, then select iPhone (this is stupid, but they do not say iTouch anywhere on the web site, unless you do a search). Realizing this was dumb, I went to the iTunes App store on the iTouch itself. Searched for Skype - and installed the program. Easy.
Ran the application and used my Skype credentials to log in. My contact list showed up, just as if I was on the PC. I repeated the process on my wife's device and we called each other - it worked absolutely perfectly.
Then I decided to have some fun. She called my account again, this time I was on my PC not my iTouch. I selected video call, and things did not work properly. So we tried again and just used the normal voice call - it was flawless. I did a few more tests, comparing calling land line vs. iTouch to iTouch and vs. iTouch to PC. Delay is the same in all. Quality was the same in all (better than cell phone).
This is a no brainer people - if you have an iTouch - you now have an internet WiFi phone! If you have an iPhone, I'll bet you can save minutes by using your WiFi when at home, at the office, or in a WiFi hotspot you can connect to.
I officially predict that the next version of the iTouch will have two additional things: a) a microphone built in, and b) a camera built in.
The down side...well, no WiFi, no phone service. I'm over it. Now both my wife and I have WiTouch!! You heard the name here first!!!
P.S. Just heard on CNN that the app is the number one download today - no surprise.
In preparation for this momentous day, I ordered ($29) a new earbud and microphone appliance from Apple. It is ridiculously expensive, but really the only source right now. If you have an iTouch, this a mandatory item to make your device an internet phone.
Then I went to the Skype site - click on the download button, then select iPhone (this is stupid, but they do not say iTouch anywhere on the web site, unless you do a search). Realizing this was dumb, I went to the iTunes App store on the iTouch itself. Searched for Skype - and installed the program. Easy.
Ran the application and used my Skype credentials to log in. My contact list showed up, just as if I was on the PC. I repeated the process on my wife's device and we called each other - it worked absolutely perfectly.
Then I decided to have some fun. She called my account again, this time I was on my PC not my iTouch. I selected video call, and things did not work properly. So we tried again and just used the normal voice call - it was flawless. I did a few more tests, comparing calling land line vs. iTouch to iTouch and vs. iTouch to PC. Delay is the same in all. Quality was the same in all (better than cell phone).
This is a no brainer people - if you have an iTouch - you now have an internet WiFi phone! If you have an iPhone, I'll bet you can save minutes by using your WiFi when at home, at the office, or in a WiFi hotspot you can connect to.
I officially predict that the next version of the iTouch will have two additional things: a) a microphone built in, and b) a camera built in.
The down side...well, no WiFi, no phone service. I'm over it. Now both my wife and I have WiTouch!! You heard the name here first!!!
P.S. Just heard on CNN that the app is the number one download today - no surprise.
Monday, March 23, 2009
Cloud Computing and Virtualization - A Missing Link
I have been messing rather seriously with virtualization recently. Specifically Microsoft Virtual PC and Microsoft Virtual Server products, as well as SUN's Virtual Box. The good news is they all work pretty much as advertised, albeit they have differences. I now have a machine that runs Windows VISTA, Server 2003, Windows 98, SUN Solaris, Ubuntu, all simultaneously! I even found I can run some old software again, even DOS! This capability also helps me to realize that in this machine I have now created a miniature version of what cloud computing is going to be. How cool is that? But, alas, reviewing the functionality or comparing the two products is not the purpose of this posting.
What is more fascinating to me is that within the virtualization layer - something they call the Hyper-V layer - there has to be a virtual network allowing the virtual machines to connect to one another as if they were on an Ethernet. I have been exploring this virtual network, trying to see what you can fiddle with, and what you can't. While my exploration continues when I have spare moments, I am beginning to realize that we are actually in the very early days of the virtualization product cycle. Let be more specific: in order to truly virtualize computing, I need to be able to virtualize a network, and not just with an Ethernet Switch (both Microsoft and SUN advertise they have a virtual Ethernet switch at their virtualization layer). I also think we need virtual routing, with multiple nodes so that I can clearly configure subnetworks and create rules for routing, authentication/access, filtering, and a whole host of other functions.
I would imagine that having a virtual cloud in between my virtual machines is exactly what the developers of the next generation of cloud computing applications will need as well. This way they can simulate cloud computing more authentically and create the applications that we will all need. Of course the same could be said for testing. But, to have a virtual cloud, you need a plurality of network devices, that can be created on demand, and configured between my virtual machines (If Cisco is listening, I would love to be able to install IOS as a virtual machine!). Without this ability, we are apparently relegated to simple Ethernet connectivity in these early days. This limitation can be problematic at best. I recently fired up two Windows 2003 servers as virtual machines and they went crazy (which one was to be the DHCP king, etc.) because I could not separate them from each other on the virtual network, at least not easily.
Having all these cool virtual machines has limited functionality without networking. I have already conceded that running old applications is a good thing, and running an application that is better suited to Linux vs. Windows may be interesting to some. At the end of the day, having four or five virtual machines running does not improve my ability to multitask per se. I know, I am taking the fun out of it. But really - what is the end purpose of this for end users? Has the computing, memory and disk capacity cost shrunk so small that it is just a neat thing we can now do in computing? I have no clear answers today, but perhaps running simultaneous network games would be cool. I think that getting rid of some boxes in my house would be good, but I quickly return to needing a virtual network. For instance: get rid of my router and DSL/Cable Modem would be cool - just make then virtual machines! Now I just plug my cable or phone line into my NIC and I am there! With the kids getting older and needing their own machines, perhaps having one big server running virtual machines for each family member allows them to carry around cheap laptops, but I need Authentication and Authorization services especially if they are connecting from a friends house or the Starbucks.
Another possibility that cloud computing concepts raise - dare I say it - is the reduction of the role of the IT department. No more updating, imaging or software license management. Its all in the cloud. Before I run completely down that rat hole, let me come back to my point and how it connects. Virtualization and simulation go hand in hand. In order to simulate the functions of cloud computing we need to virtualize the cloud. These first steps to virtualization open the door, but the cloud is not without its components of networking and infrastructure. So to simulate we need more components inside the virtual world - more networking components. It will be fascinating to watch this world of virtualization and whether we get these components quickly, and who produces them.
To try vrtualization yourself, check out Microsoft's Virtual PC at http://www.Microsoft.com/Virtualization .
To try SUN's Virtual Box - go to www.virtualbox.org/ .
What is more fascinating to me is that within the virtualization layer - something they call the Hyper-V layer - there has to be a virtual network allowing the virtual machines to connect to one another as if they were on an Ethernet. I have been exploring this virtual network, trying to see what you can fiddle with, and what you can't. While my exploration continues when I have spare moments, I am beginning to realize that we are actually in the very early days of the virtualization product cycle. Let be more specific: in order to truly virtualize computing, I need to be able to virtualize a network, and not just with an Ethernet Switch (both Microsoft and SUN advertise they have a virtual Ethernet switch at their virtualization layer). I also think we need virtual routing, with multiple nodes so that I can clearly configure subnetworks and create rules for routing, authentication/access, filtering, and a whole host of other functions.
I would imagine that having a virtual cloud in between my virtual machines is exactly what the developers of the next generation of cloud computing applications will need as well. This way they can simulate cloud computing more authentically and create the applications that we will all need. Of course the same could be said for testing. But, to have a virtual cloud, you need a plurality of network devices, that can be created on demand, and configured between my virtual machines (If Cisco is listening, I would love to be able to install IOS as a virtual machine!). Without this ability, we are apparently relegated to simple Ethernet connectivity in these early days. This limitation can be problematic at best. I recently fired up two Windows 2003 servers as virtual machines and they went crazy (which one was to be the DHCP king, etc.) because I could not separate them from each other on the virtual network, at least not easily.
Having all these cool virtual machines has limited functionality without networking. I have already conceded that running old applications is a good thing, and running an application that is better suited to Linux vs. Windows may be interesting to some. At the end of the day, having four or five virtual machines running does not improve my ability to multitask per se. I know, I am taking the fun out of it. But really - what is the end purpose of this for end users? Has the computing, memory and disk capacity cost shrunk so small that it is just a neat thing we can now do in computing? I have no clear answers today, but perhaps running simultaneous network games would be cool. I think that getting rid of some boxes in my house would be good, but I quickly return to needing a virtual network. For instance: get rid of my router and DSL/Cable Modem would be cool - just make then virtual machines! Now I just plug my cable or phone line into my NIC and I am there! With the kids getting older and needing their own machines, perhaps having one big server running virtual machines for each family member allows them to carry around cheap laptops, but I need Authentication and Authorization services especially if they are connecting from a friends house or the Starbucks.
Another possibility that cloud computing concepts raise - dare I say it - is the reduction of the role of the IT department. No more updating, imaging or software license management. Its all in the cloud. Before I run completely down that rat hole, let me come back to my point and how it connects. Virtualization and simulation go hand in hand. In order to simulate the functions of cloud computing we need to virtualize the cloud. These first steps to virtualization open the door, but the cloud is not without its components of networking and infrastructure. So to simulate we need more components inside the virtual world - more networking components. It will be fascinating to watch this world of virtualization and whether we get these components quickly, and who produces them.
To try vrtualization yourself, check out Microsoft's Virtual PC at http://www.Microsoft.com/Virtualization .
To try SUN's Virtual Box - go to www.virtualbox.org/ .
Labels:
cloud computing,
Hyper-V,
networking,
virtual machine,
virtualization
Tuesday, January 20, 2009
Life Vests in Planes - I Officially Change My Mind
A USAir jet crashed today into the freezing Hudson River after a bird strike shortly after takeoff from LaGuardia airport in New York. Miraculously, everyone survived.
The pilot, Chesley B. "Sully" Sullenberger III, was a hero and a good bit lucky, but a hero nonetheless.
I should make clear that I have, for years, asked students in my classes (engineers) to consider why life vests are under your seats in planes. I have been known to say "If you are going to put something under my seat - make it a parachute!" I cite that in my life I have never ever witnessed, seen an image, or read a report of a single person that walked, swam, or has been pulled out of the water after an air plane crash with their life vest on.
Well, today I was proven wrong.
I have seen now people with their life vests on, plucked from a plane that successfully landed - and I can use that word - in water!! While I concede this for today, one in a row does not make a pattern.
This landing will be studied, analyzed, and recreated in the coming months. They will likely load the data into simulators, and one has to wonder if any other pilots will be able to recreate the situation and land safely.
http://www.timesonline.co.uk/tol/news/tech_and_web/article5527910.ece
http://www.cbc.ca/world/story/2009/01/19/hudson-flight.html
http://www.chron.com/disp/story.mpl/ap/nation/6217237.html
Wednesday, January 7, 2009
A Recommendation to Revamp Computer Education in the US School System
You just read the title and must be thinking, more money, better computers, more teachers, you have heard it all before. Actually, what I have discovered in the past 14 days has amazed me, and it has led me to conclude the opposite. In fact, I am beginning to think that we are wasting money on thousands of desktop computers, networks and software, perhaps even wasting millions of dollars. Consider the information I have been digesting below.
The story starts with a TED Conference video I watched about mid-2008. Here is the link: http://www.ted.com/index.php/talks/nicholas_negroponte_on_one_laptop_per_child.html
This video inspired me to consider donating to the One Laptop Per Child (OLPC) program. As I sat on this thinking, I was scanning Amazon.com one day and I noticed that there was an advertisement to "Buy One, Give One" right there at Amazon for the OLPC program. Who says web advertisements are ignored? Needless to say, I clicked on the link and read a little. The simple program was if you donate $399 you give a laptop, and you get one sent to you! [Note: I tried to find the link today - Jan 7th - and it is no longer available, but it may come back]
Well, the real recipient of the "get one" would be my 7-year old daughter as a Christmas gift. Plus, I thought, if children her age are getting this tool, a true measure of the value of the tool, would be to give her the tool and see what, if anything, she would do with it. It was my $399 experiment, if you will.
At our family Christmas celebration, my daughter opened her gift and was thrilled with the 'toy' laptop she had received. It was a cute green and white color, with a handle making it easy to carry, and very much looked the part. "It is a real laptop", I told her, "and later, we will turn it up together." She looked amazed. Keep in mind that this is a child that has a full computer lab (Dell Desktops) between classrooms in her public elementary school and has already mastered the Internet and gaming. As a representative student of her age, she would proudly tell you she knows computers. But does she?
We sat at the kitchen table and opened the XO Laptop Computer. We pushed the power button, and noted these cute little ears that flipped up. Even though we did not know why, we flipped them up. After a little while The screen lit up and she was asked to type in her name on the keyboard that is full QWERTY style and has a rubber cover to obviously make it less susceptible to liquids. After booting, we were presented with a completely non-typical interface. Yet it was entirely obvious, a circle of icons (27 programs in all). By using the mouse pad, if you hover over any of them, the detail of the program name appears. Some of them were really cute, inviting.
We (she) played for over 2 hours. Let me summarize what we found, mostly to my jaw-dropping astonishment:
- it comes with a color camera and microphone for video messaging
- it comes with a really cool wireless networking system that locates using triangulation wireless access points and other XO machines - the neighborhood; it can use wireless relay to connect others to the Internet (why does Windows make this so difficult?)
- it has word processing
- it uses Wikipedia as the resource for research by default
- it browses the Internet
- it comes with a text-to spoken word program that runs in numerous languages (see video below)
- the screen flips (like a notepad computer) so that reading and gaming can be enjoyed
- it comes with a program that teaches programming (called Pippy) where the child selects preconfigured program modules to add to their own or to glue together - so it teaches by example and entices curiosity (what a concept)
- it comes with a program that teaches animation (called Scratch) That allows the user to create animation sequences by dragging scripts in order and then executing those scripts to view the result - genius!
- the screen works as clearly in the bright sun as it does inside (wish my cell phone did that)
- Terminal allows access to the shell!
- it comes with four programs dedicated to music and creating sound - fabulous
- there is chat, measuring, painting and, so much more.
Is it perfect? Unfortunately, no. A couple of squabbles for $200 cost: a) it is not exactly fast, but no slouch either, b) it is running Linux and hung once, cured by a reboot, c) why don't they make a slightly more mature one for me?
Let me stop here and ask a question: Why doesn't every child in the United States carry one of these wonderful devices? One could say, well that is the goal of the program: one laptop per child. Well, not exactly. Most of the units built so far have been sent overseas. Meanwhile we pay for thousand dollar plus desktops (probably much more) plus networks and software licenses that provide little of the true meaning and value of computers to our children. Yet here we have a wonderful device available today on the open market for around $200 that would allow students to have their own laptop. Why aren't the school systems buying these XO laptops instead of Dell or HP desktops?
Then there is the major point about actually learning computers. My child only sees the computer as a glorified interface to a program - like a Math Tutor or a Typing Tutor. This is all well and good, but her use is confined by the abilities of the program she is running. Goodness knows the great programs that would emerge for use to extend their already very powerful base set. Would it come from degreed software programmers or kids like her? Goodness knows what great creative new things our children would invent given the kind of learning and access to the computing environment these machines allow.
So here is my recommendation to every public and private elementary school. Buy One and Give One. Save 80% of your budget over those huge desktop computers at the same time. School Districts can write off the donated part of their $399 and give every 1st or 2nd grader through 5th grader their own laptop to use in class every day, to take homework home, to network, to create, and to learn computers. At the same time for every one of those kids in the district that gets one, there is a child somewhere in the world that also gets one, and maybe they can meet each other and learn about each other, and maybe, just maybe, there will be peace on earth one day.
Your thoughts, questions and comments are always welcome. Happy New Year everyone!
Wednesday, November 12, 2008
Workplace Courtesy and Etiquette
I have seen this several times before in various forms, but thought it a great item to blog about: Work Place Courtesy and Etiquette.
Let's face it, there is a fine line between good and bad on this subject. On the one hand, work is about work, and work usually makes some amount of noise as teammates interact and collaborate to solve problems and produce output. On the other hand a subdued environment allows focus and concentration. Further, what one person may find stimulating, another may find distracting. Ask those same two people on different days, and they may have different responses!
So overriding all of this is that we need an environment of cooperation and understanding, not one of complaining and inflexibility. Let's look at what things we can all do to make the workplace just a little better for everyone.
- Be aware of what you say and how loud you say it. Being sensitive to others is important here, as well as knowing when it is OK to be a little louder than usual. In a cubicle environment, a low voice is all that is needed.
- Control that speaker phone. It is OK to use speaker phones while you are on hold or momentarily while you look for something. But using a speaker phone when there is no group is annoying at the least and disrespectful at worst. Use a conference room whenever a speaker phone is necessary.
- Control that cell phone. Cell phones are a necessary part of any persons life and work these days. Being able to be reached when away from the desk is important. But using the cell phone appropriately is just as important. When attending a meeting, mute the ringer, or if you are expecting an important interruption, use the vibrate feature. If you have a smart phone - stop using it to do emails! You have just interrupted the meeting. If you elect to interrupt your meeting, do so gracefully and respectfully. You may be costing the company hundreds or dollars by just having everyone wait while you take your call. People with superb etiquette skills here will often change their voicemail greeting to advise callers they are in a meeting and to call back after a certain time. Here is an important point: if you or someone is calling you is so important that you have to interrupt the meeting you are in - you have just signalled to everyone in the meeting that they are less important!
- Proper use of email. Email is a great tool for communications, but proper etiquette is very important. First, email should not be used in lieu of a phone call or discussion that can be accomplished in less time. Trying to convey feedback and feelings in email (emoticons won't work) is usually very difficult. Second, email can consume people to the point they really do little else but email - do you remember that being in your job description? Also, distribution of information via email is risky as well as resource consuming. Use the office server system to save a presentation and then email the link rather than emailing the presentation. Lastly organize email so you are an effective teammate. It says a lot when you ask a co-worker to resend something just because you can't locate it: did you delete it as unimportant? did you throw it in the pile of disregard for now emails?
- Be punctual. Of course, we have trouble making things happen on time every now and then, but certainly not every time. Make sure you advise people if you are running late. When someone calls a meeting or is expecting you to be somewhere at a certain time, showing up 5 or 10 or 15 minutes late is disrespectful and poor etiquette. Worse: show up late and ask for a summary of what has been discussed to the point you arrived! Would you do that to an important customer? Then why do that to your teammates? Be on time and be ready. Your team will return the respect.
- Know when to "shut the lid". So many of us have lap tops that allow us to bring internetworking and other powerful tools with us wherever we go. When you are meeting one-on-one or in a team, and you are not using the tools, shut the lid. Suddenly stopping to do an email or respond to a chat session is not multitasking. Only a few can do a good job at simultaneously using the PC or smart phone while attending or being part of a meeting. Usually they are not the ones that say they know how. Again - it is a sign of disrespect to those who are focused, and poor etiquette rather than productive behavior.
- Avoid smelly lunches. So many people eat at their desks, and sometime this can be very productive. The problem arises when either they bring something really yummy smelling or something really awful smelling. Either way it is a losing situation as it causes a distraction. If you are going to eat at your desk, eat something that will not smell, like most sandwiches. Cooked items almost always smell. Be considerate of your office mates, and they will meet you in the lunch room!
- Cleaning up after yourself. Leaving food in the lunch room refrigerator or leaving a mess in the lunch room is a sign of laziness and disrespect to others. Not fixing something that is broken or needs service is the same thing. So be respectful of others, clean up after yourself, in the lunchroom, in meeting rooms, etc. Also, fix things that need repair or service, like put paper in the copier, refill the coffee pot, call tech support for the broken copier. These are not menial tasks, they are part of working with others in a common environment. If you are above doing these things, then where does that leave me?
- Avoid negative rumours and respect privacy of others. It is so easy to spread bad news, and bad news travels fastest in any work environment. However true, being the communicator of negative rumours will eventually lead to problems, and you don't want to be perceived as a busybody or "chicken little". It is best to be a person others can count on to take a problem and solve it rather than talk about it. If you respect others, they will respect you, and they will trust you with seeking your guidance and assistance. Here is the closing thought on this subject: if you are smart enough to identify and discuss the problem, be smart enough to solve it.
- Be an "earner" not a "deserver". The best teammates in work places do all of the things above, and then they put icing on their approach. The icing is they never act or talk about what they deserve. Some people feel that they deserve more pay, or more time off. Naturally that depends on a number of issues. If you really want to avoid problems, avoid deserving. If you earn respect by doing the items above, and you earn time off by working hard, or earn more pay because you invest in yourself to be the best at your job function, you will help your team and your company in an courteous and respectful manner. That is what open competition is about - earning.
Good luck, and we hope these things help someone somewhere. We definitely did not cover everything. Did we miss a couple? Please feel free to comment or add other ways we can be more courteous and respectful in the workplace.
Subscribe to:
Posts (Atom)
