Chapter 6: Collaborating


In today's always connected world, few people work in isolation. In office environments, files and folders are shared with coworkers. In research groups, documents are passed back and forth. Even the hard-core hacker working along in a dark basement isn't really alone-he's sharing files and projects with other people online. Teams of people collaborate on projects in real time while members can be physically located around the world. Incompatible operating systems do not work. Collaboration includes working with people who don't run Ubuntu (let's call them "Windows users"). The default install of the Ubuntu desktop includes a wide variety of collaboration tools, and additional tools available in the standard repositories offer many more options.

Collaboration begins with sharing and compatibility. If you cannot share documents, then you cannot collaborate. And if your system and software cannot handle the files you need, then you won't be able to work with other people.

Unfortunately, some file formats lack strong support, and many applications demand specific operating systems. In order to work with others, you may need to share desktops or actually run a different operating system. Fortunately, Ubuntu has many options for supporting both of these needs.

Synchronizing the Clock

With the need to share files, file systems, desktops, and tools, where do you begin? You begin with the system clock. This may sound like a trivial piece of information, but if your clock is off by more than a little, then it can actually hamper collaboration efforts. e-mails won't be sorted in the right order, files won't have consistent timestamps, and some applications are time sensitive. For developers, timestamps are used to determine what files to compile-if your clock is way off, then source code may not compile correctly.

When you first installed Ubuntu (see Chapter 1), it asked you to set your time zone and to choose whether the hardware clock should be in UTC. Everything else about the clock has been silently done behind the scenes.

Ubuntu sets the clock automatically each time the network interface is brought up. This happens in the script /etc/network/if-up.d/ntpdate. Ubuntu checks to see if the file /etc/default/ntpdate exists. This file should contain one line-the host name of the network time protocol (NTP) server. By default, this file does not exist and the operating system falls back to using the server ntp.ubuntu.com. Here are some tips to make sure your clock is set correctly:

  • If you cannot access the default server (ntp.ubuntu.com) from your network, then your clock will not be set at boot time and will likely drift. Use /etc/default/ntpdate to specify an alternate NTP server.

    Warning 

    NTP uses UDP packets. If you use a proxy or outbound firewall that blocks UDP, then you will need to change the default NTP server, or configure an alternate network route.

  • If your computer never reboots (and uptimes of over 100 days is common), then your clock can drift-usually by a few seconds per month. Consider adding ntpdate to your root's Cron entry so it runs weekly.

     sudo crontab -e 

    And add this line to run ntpdate every Sunday at two minutes after midnight. (Cron is detailed in Chapter 7.)

     2 0 * * 0 /etc/network/if-up.d/ntpdate 
  • For Ubuntu systems that operate as network router, tying the clock to a network interface can be a problem-particularly if the network connection continually bounces up and down. (Do you really need to synchronize the clock a few times each hour?) In these situations, you might consider removing /etc/network/if-up.d/ntpdate and creating an /etc/init.d/ntpdate command.

Note 

The boot scripts found in /etc/init.d/ are discussed in Chapter 3. Actual sample scripts are in Chapters 10 and 11.

NTP is just one protocol for setting the date. Another option is to use rdate (sudo apt-get install rdate). By default, rdate uses TCP to query the network daytime service (port 13/ tcp) of the timeserver. You will still need to create /etc/init.d/rdate, /etc/network/ if-up.d/rdate, and Cron entries, but this command will work through a proxy.

Tip 

The server ntp.ubuntu.com only supports the NTP protocol; rdate won't work with this server. If you want to use rdate and need a time server, consider one of the official atomic clock sites like time.nist.gov.

image from book
Plays Well With Others

There is always a small, fanatical group who thinks collaboration means everyone should run the same operating system. Whether this is Linux people criticizing Windows users, BSD users criticizing Linux users, or Windows users trying to convert the world, the fringe groups are always shouting to be heard. In real life, a homogeneous network is neither realistic nor desirable. Although one operating system for everyone will ease collaboration, it can lead to many other issues.

Some of the issues involve security. If everyone runs the same operating system, then everyone is vulnerable to the same weaknesses. Whether the risk comes from viruses, overflows, or unstable software, all computers running the same configuration are vulnerable. (Windows may have more viruses today, but if everyone used Ubuntu then the virus writers would focus on Ubuntu instead. The lack of viruses for Linux is not due to a lack of opportunity, but rather the lack of effort from virus writers.) Darwin called this "survival of the fittest"; there is safety in diversity.

Usability is another issue. Many programs create log files and time-tracked reports. If your clock is off, then these files can be really difficult to map to real time. For example, was that spike in web traffic really at 2:00 A.M.? Or did it happen after 9:00 A.M. when you released a new document on the Web? Clocks usually appear off by a few minutes (or an hour for daylight savings time). Each time you reboot, it may drift a few more minutes. If you don't occasionally reset the system's time, then the drift can become hours or longer.

Other issues concern use models. An operating system is a tool-and nothing more. You should select the right tool for the right job. Windows offers excellent hardware support and many high-quality applications, but lacks collaboration support for non-Windows systems. BSD offers security from the ground up and a proven track record for stability, but has minimal support from the community (compared to Windows and Linux). Linux has a wide variety of software (although quality varies dramatically) and excellent collaboration efforts. If you need an operating system that plays well with an assortment of other systems, then Linux is a terrific option and Ubuntu's long-term support commitments make it an ideal choice.

image from book



Hacking Ubuntu
Hacking Ubuntu: Serious Hacks Mods and Customizations (ExtremeTech)
ISBN: 047010872X
EAN: 2147483647
Year: 2004
Pages: 124
Authors: Neal Krawetz

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net