Volume 9 Number 5 Issue 98 | May 2004
 

MAY 2004 TABLE OF CONTENTS

Double Prepayment Discounts for New Accounts
Free Setup on All New Accounts for Refugees
Add Multiple Virtual Domains and Save
Free Book Offer (while supplies last)
QS-X Spring Special
The Pine E-Mail Reader -- Part 2
FreeBSD Developer Poul-Henning Kamp
See System Notices on Your Site
SPF Records, Domain Parking, & IPv6 Custom DNS
pairNIC Referral Program -- Earn $1 per Domain Year
Remember to Renew Your Domain Name
ShopSite 7 Released
Remember to Renew Your pairSSL Secure Certificate
Web Hosting Referral Program
Now Hosting 150,000+ Web Sites
Postal Address - Fax Number - Contact Info
 
Reseller Information and Discount Rates


During the month of May 2004 only, all NEW accounts will receive double prepayment discounts, as shown:

     3 months prepaid -  4% discount (normally 2%)
     6 months prepaid -  8% discount (normally 4%)
    12 months prepaid - 16% discount (normally 8%)

This special pricing is available to new accounts only, and applies only to hosting services purchased while signing up for a new account. It does not apply to upgrades of existing accounts. It does not apply to over-usage fees or domain name registration fees. Services added or changed after an account is created are eligible only for normal discounts.

Special Offers Web Page -- http://www.pair.com/services/specials.html
pair Networks Sign-Up System -- http://signup.pair.com/

Tired of bad service or dishonesty from your current Web host?

Looking for a better deal or superior uptime?

Switch to pair Networks now and get FREE SETUP on any of our Web hosting plans -- just put the word REFUGEE, as in `Web hosting refugee,' in the Coupon Code field when signing up. Setup fees are waived for the account and the first domain name (only).

Feel free to tell anyone about our Refugee Special. With our 30 day money back guarantee, there's nothing to lose.

Special Offers Web Page -- http://www.pair.com/services/specials.html
pair Networks Sign-Up System -- http://signup.pair.com/

We are offering discounts off of Virtual and Vanity domain name setup fees, when certain quantities are added through the Account Control Center during a calendar month.

  Add   5 or more during the same month -- get 50% off Setup Fees
  Add 10 or more during the same month -- get 75% off Setup Fees
  Add 20 or more during the same month -- get 100% off Setup Fees

Discounts are tabulated during the subsequent month's billing cycle. Monthly fees remain the same. Contact info@pair.com for more information.



During the month of May 2004 only, and while limited supplies last, current pair Networks customers will receive a free copy of SitePoint's book "HTML Utopia: Designing Without Tables Using CSS," delivered to their billing address free of charge.

In this book, you'll learn all about Cascading Style Sheets (CSS) and how you can use CSS to replace the tables in any Web site you build -- just like many modern sites have done. The result?

  • Dramatically smaller page sizes with faster loading times
  • Significantly easier site updates and redesigns because content and layout are separated
  • Clutter-free code which can potentially mean higher search engine rankings
  • Device-independent code, which means your site will be readable on PocketPC's, PDA's, etc. without modification

Contact info@pair.com and provide your pair Networks billing ID, or your pairNIC domain name, and verify your shipping address. Hurry, there are only a limited number of books available.



We affectionately refer to servers with configurations that don't match the ones listed on our QuickServe Web pages as "QS-X's." If you are interested in a QuickServe dedicated server, now's the time to sign-up. We have a little over 30 QS-X's that we will be offering at prices as low as $149/month. Please contact qs@pair.com for a list of our available configurations, prices, or more information.


Last month's Insider Newsletter introduced you to the basics of the Pine mail reader. This month, we go over how to use Pine at pair Networks. In all examples below, Pine command keys are shown in parentheses.

The easiest way to familiarize yourself with Pine is to use it. This article emphasizes issues concerned with the use of Pine at pair Networks, and doesn't cover basic navigation within Pine. If Pine's on-screen help isn't enough to get you started, read this tutorial:

http://www.washington.edu/pine/tutorial.4/index.html

To run Pine, first connect to your pair Networks web hosting server using a telnet or SSH client. Once you've logged in, type "pine" at the FreeBSD command prompt. Here's an article with more information on how to use telnet or SSH at pair:

http://kb.pair.com/a9

The default Pine settings are adequate for most uses of Pine. However, if you use pair Networks Web Mail or another IMAP client, and want to use your IMAP mail folders from within Pine, you'll need to tell Pine where to find them. To do this, go to the Main Menu (M), choose Setup (S), and then collectionLists (L). Tell Pine to Add a new collection (A) and then fill in the requested fields:

  • Nickname can be whatever you want to call the folder collection
  • Server should be your hosting server; for example: www226.pair.com
  • Path can be left blank
  • In the View field, specify " * " to add all of your IMAP folders

    Once you have filled out these fields, use (^X) to save your changes.

    Pine will ask for your IMAP username and password, which is the same information you use to log into your hosting server. To view your IMAP folders, Exit to the Main Menu (E) and view your Folder List (L). Your new collection's nickname will be shown along with your Mail collection. Scroll down to the collection and press () to view your IMAP mail folders. If you add or delete folders in this collection, or change the contents of the folders, your changes will take effect in Web Mail as well.

    If you try to use Pine at the same time that you're using Web Mail or another IMAP client, you may get an "ACCESS ERROR" or a warning that another email program is using your inbox. This is normal, and can be fixed by quitting the mail program you aren't using.

    Next month's article in this continuing series will introduce a very useful advanced Pine feature: Aggregate Commands. Stay tuned!



  • Poul-Henning Kamp, known to the FreeBSD development community simply as phk@FreeBSD.org, lives in Slagelse, Denmark with his wife Hanne, son Tristan, and daughter Dana. Living and working most of his life in Denmark, he spent about a year in Luxembourg installing TCP/IP for the European Parliament, a year in northern Italy porting software for Olivetti, and almost two years in San Francisco working for TRW Financial systems. He is planning to spend the second half of 2004 working solely on improvements in FreeBSD -CURRENT, funded by the FreeBSD user community.

    pN: Tell us about your background and programming/OS history.

    phk: Many years ago a friend gave me an introduction on a computer with 2000 words of 20 bits. It was built with germanium transistors and coded in assembler on telex terminals with Baudot character set. That got me hooked. Since then I have programmed everything I got my hands on: from Clive Sinclairs "Mk 14" to Convex GaAs supercomputers.

    I have been making my living doing things with computers for 21 years now. More often than not involving networking and UNIX, but I have written a disassembler for IBM S/34 in RPG-II, process control in assembler, SNMP in Tcl and many other odd things.

    pN: What first brought you to BSD development, and specifically to FreeBSD?

    phk: I had been playing with Minix while I was in Luxembourg and Italy, then when I got back to Denmark, 386BSD suddenly became available. I got a couple of patches into the "patchkit" and when that effort split into NetBSD and FreeBSD I looked at the two groups of people and asked myself which one had my sort of people in it. NetBSD looked like a more academic slant, FreeBSD looked like people like me, people with real jobs and real problems a free UNIX could solve for them, so I went with FreeBSD and have never regretted it.

    pN: You were a core FreeBSD team member from the early days until 2000. How was that experience and why did you leave the core team?

    phk: It was a great experience, we had some great moments and got the project through some wild things and scary years. What we didn't manage to do was to get an organization built into the project and as a consequence we gradually lost momentum to internal friction and confusion.

    Near the end the core team was a little group of five people who did things and 12-13 people who didn't and who did not want to resign from core@ either. The beginning of the end was a very ugly person-related issue which really tore into some of the friendships on the core team and things degenerated so much that I put all my energy into "core-renovation" and that resulted in the core team now being an elected from and by the committers.

    One of the hardest things in life is to know when to quit, but I think I got it right in this case. If I had quit core earlier, we would not have gotten the elected core, if I had run for a seat in the elections I would probably have dragged a lot of old baggage into the new core team.

    pN: Do you feel good about the future direction of FreeBSD 5 and beyond? Where would you like to see FreeBSD go (that you feel isn't currently being given sufficient consideration)?

    phk: I think FreeBSD 5 is headed in mostly the right direction, and with time we will get that "mostly" eliminated. It is not easy to do things right first time when you enter poorly charted waters, and sometimes it takes a prototype to get things right subsequently.

    I don't really have any grand ambitions for FreeBSD. To me FreeBSD is the tool of choice for professionals and I do not see how or even why we should change that position.

    Let me explain that another way: When you buy a saw at Home Depot, a lot of thought has gone into how to make you notice it amongst all the other saws they offer, how to convince you to buy just that saw, including printing advice and helpful tips on how to best use it, etc. When you buy a saw from a professional handtool supplier, the effort went into tempering the steel and putting a good handle on it, because professionals know how to use a saw. The one from Home Depot would not last them a week.

    My biggest worry is our infrastructure on which we hang all the peripheral features, that inner core which handles processes, files, memory. We need to make sure that has the strength and structure to carry the weight of all the features we add.

    pN: What are the strongest features and/or improvements for FreeBSD in upcoming releases?

    phk: There are so many features that I wouldn't know where to start, and what matters more to me is the changes to and in some cases replacements of our infrastructure. Those are the changes that make it possible for FreeBSD to continue for another decade.

    Much of our infrastructure dates back from the VAX-age twenty years ago, and there are some assumptions and choices made back then which are no longer valid. We have gotten threading and process scheduling restructured so that we can now support 1:N N:1 and N:M threading, we have gotten some significant work in the network stack, a lot of work in the disk-I/O area, ACPI and interrupt routing mostly works and so on.

    I realize that I sound as boring as a nerdy engineering type from the city council who praises the newly completed renovation of the sewers, but trust me on this one: the man has a point. No gadget or feature you can add to your bathroom can compensate for underperforming sewers.

    pN: What gave you the idea to turn to the community for full-time financial support in 2004?

    phk: I suck at career planning, or rather, I am actually pretty good at it, but my plans seldom bear any semblance to subsequent events. What happened here was that I lost a major customer and had half a year to fill in my calendar. So I start thinking of leads and contacts, with a keen eye on their FreeBSD potential. Denmark is not a big place, and while I do not claim that I know everybody who runs a FreeBSD machine here, I probably know everybody who has more than 20. My home-market is not that big.

    At the same time I have this huge "TODO" list with all the things that needs to be done in FreeBSD, so I naturally thought about finding somebody who had a stake in FreeBSD's future. And who could possibly have more at stake than the FreeBSD user community at large?

    It was a pretty humbling experience to see how fast people poured money in, and I owe them all, and in particular pair.com a big thank you! for the trust they have in me. I'll do everything I can to live up to that goodwill.

    pN: What does the future hold for you? Will you continue to work on publicly supported software projects or will you pursue other interests?

    phk: Being funded for doing FreeBSD development is a novel proposition for both the FreeBSD Project and me. I have decided to take a hard look at it halfway through, around September, and try to find out if it works out to everybody's satisfaction: sponsors, project, my family and me. If it works out, I think I will be willing to continue, if it does not I find something else to do afterwards.

    Apart from that I will defer to the Danish comedian and writer Robert Storm Petersen: "It is hard to predict, especially the future." :-)

    Learn more about Poul-Henning Kamp on his Web site:

    http://people.freebsd.org/~phk/



    pair Networks has created an RSS feed for System Notices. In this article I'll show you how to add our notices to your website. This CGI program requires a lot of modules that will do a lot of work for us. Lets dive in and get going.

      #!/usr/local/bin/perl
      use strict;
      use warnings;
      use CGI::Carp;
      use CGI qw[:standard];
      use XML::RSS;
      use Cache::FileCache;
      use LWP::Simple qw[get];

    The first three lines are standard: calling the Perl interpreter, requiring strict programming, and enabling warnings. We're using the CGI::Carp module, which will aid us if a fatal error occurs. Next we compile the :standard functions of CGI, load XML::RSS, and Cache::FileCache. Finally the get function is imported from LWP::Simple.

      my $feed  = q[http://pair.com/support/feed.rss];
    Now we declare where the RSS feed is located on the pair Networks website.

      my $cache = Cache::FileCache->new( {
        default_expires_in => 3600,
        namespace          => $0,
      } );

    One of the problems often encountered when sucking down RSS feeds that it's a slow operation. Each time the page is loaded, the CGI fetches the RSS from another website. This line of code makes the process faster. We're adding a file based cache that expires every hour (3600 seconds). The cache can store keyed data of almost any type.

      my $xml = $cache->get('feed');

    Now we're looking for the RSS's XML in the cache, it's stored under the key feed.

      unless ( $xml ) {
        $xml = get($feed);
        croak "$feed unavailable!" unless $xml;
        $cache->set(feed => $xml);
      }

    If the RSS feed isn't stored in the cache then we'll fetch it. Fetching is done by calling the get() function from LWP::Simple. It returns the contents of the URL requested. If the URL is unavailable for some reason, that is a fatal error. We'll croak(), which will display a nice error message to the user, instead of the standard 500 error message.

    After the feed is successfully fetched it is stored in the cache under the feed key.

      my $rss = XML::RSS->new;
      $rss->parse($xml);

    Next we create a new XML::RSS object and parse the $xml. That was simple. Now it's time to start printing the page.

      print header,
            start_html($rss->{channel}->{title}),
            h2($rss->{channel}->{title}),
            small($rss->{channel}->{description}),
            hr;

    First the Content-Type header is printed, then the HTML preamble with the RSS title as the page title. The RSS title is printed again as the page header, with the RSS description following.

      list_news($rss->{items});

    Now the list_news() function is called, which is discussed below.

      print p(
              "Syndicated from pair Networks.",
              a( {-href => $feed}, "XML" ),
            ),
            end_html;

    Finally, the footer of the page is printed. A simple paragraph explaining where the content came from, followed by the HTML postamble.

      sub list_news {
        my $items = shift;
        foreach my $item (@{$items}) {
          print h3(
                   a( {-href => $item->{link}}, $item->{title} ),
                   small( $item->{dc}->{date} ),
                ),
                p( $item->{description} ),
                hr;
        }
      }

    This subroutine accepts a list reference of RSS feed items. For each item the title and description is printed. The header contains the item title which is linked to the system notice on the pair Networks website, as well as the date of the notice.

    This quick program provides you a simple way to keep track of our system notices on your own terms. But more than that, we've demonstrated the way most RSS feeds can be pulled and displayed on your own website. In the next article we'll take this concept a bit further and create series of RSS quicklinks by aggregating feeds.

    Figure 1

      #!/usr/local/bin/perl
      use strict;
      use warnings;
      use CGI::Carp;
      use CGI qw[:standard];
      use XML::RSS;
      use Cache::FileCache;
      use LWP::Simple qw[get];
      my $feed  = q[http://pair.com/support/feed.rss];
      my $cache = Cache::FileCache->new( {
        default_expires_in => 3600,
        namespace          => $0,
      } );
      my $xml = $cache->get('feed');
      unless ( $xml ) {
        $xml = get($feed);
        croak "$feed unavailable!" unless $xml;
        $cache->set(feed => $xml);
      }
      my $rss = XML::RSS->new;
      $rss->parse($xml);
      print header,
            start_html($rss->{channel}->{title}),
            h2($rss->{channel}->{title}),
            small($rss->{channel}->{description}),
            hr;
      list_news($rss->{items});
      print p(
              "Syndicated from pair Networks.",
              a( {-href => $feed}, "XML" ),
            ),
            end_html;
      sub list_news {
        my $items = shift;
        foreach my $item (@{$items}) {
          print h3(
                   a( {-href => $item->{link}}, $item->{title} ),
                   small( $item->{dc}->{date} ),
                ),
                p( $item->{description} ),
                hr;
        }
      }


    Sender Policy Framework, or SPF, Records could help fight e-mail address forgery and further reduce the proliferation of junk e-mail and computer viruses. SPF Records are added to the TXT section under Custom DNS in the pairNIC domain name management system.

    To learn more about SPF Records, please read the information on the Web site listed below. Contact support@pairnic.com if you have additional questions.

    Domain Parking allows you to point your pairNIC domain name to another domain name while receiving all of the e-mail that is sent to your domain name. To enable Domain Parking, log in to your pairNIC account from the pairNIC.com home page, click on Manage Domain Names, click on your domain name, click on Domain Parking, and then enter the domain name you would like to park-on and your current e-mail address. Within about 48 hours, your domain name will be parked on the domain name that you had specified and you'll start receiving e-mail.

    Our Custom DNS feature has been further enhanced with the addition of IPv6 records. A6, AAAA, and DNAME records can be added to any domain using pairNIC Custom DNS. Both IPv4 and IPv6 records can be easily managed through the Custom DNS section within our domain name management system. For additional information about SPF Records, Domain Parking, or IPv6 Custom DNS, please contact support@pairnic.com.

    It's easy to participate in the pairNIC referral program -- just follow these steps:

    - Login to your pairNIC account -- https://www.pairnic.com/
    - Click on Account Preferences
    - Click on pairNIC Referral System

    You can earn $1 per domain year on transfers and registrations that you refer to pairNIC. Example: If someone clicks on your banner or link and registers a domain name for three (3) years, you'll earn $3 towards a referral pay-out. Once you've earned $15, we'll mail you a check.

    You don't even have to put the banners on your Web site. You can simply give the click-through code to your friends (using the Text Link Code) and ask them to use it for their registrations and transfers. Contact support@pairnic.com from more information.

    Is your pairNIC domain name coming up for renewal?

    If it is, just enter this secure Web address into your Web browser:

    https://renew.pairnic.com/

    If you can't remember your pairNIC Account Name or password, please contact support@pairnic.com -- the pairNIC support team will be more than happy to help you.



    Customer Registration leads the list of powerful new features in ShopSite 7, with merchant-defined groups and discounts. The new version also includes enhanced QuickBooks integration, customizable shopping cart templates, advanced image handling, new page layout themes, and many other enhancements. Contact support@pair.com to upgrade to ShopSite 7 (free of charge for customers with Commerce Hosting Plans or a monthly subscription) or for more information.

    pair Networks offers two Commerce Hosting Plans which include the ShopSite shopping cart system. The Commerce plan is offered at $49.95 per month, with a $60 setup fee, and the Commerce Pro plan is offered at $89.95 per month, with a $75 setup fee.

    The Commerce and Commerce Pro hosting plans both include the professional features required to operate a high-quality online store. For more information about our new ShopSite enabled hosting plans, please visit the E-Commerce section of our Web site or contact info@pair.com.

    For a free trial of ShopSite, click on the "Take a FREE test-drive of ShopSite" link on this page:

    Is your pairSSL Secure Certificate coming up for renewal?

    If it is, please contact pairssl@pair.com to renew your secure certificate. As long as your secure certificate is renewed before its expiration date, your customers will not receive security errors when browsing your secure site.



    Current customers can join our Web Hosting Referral Program and earn up to $80 per referral. For more information, fill out the form on this Web page:

    http://promote.pair.com/ref_prog/

    Customers that are already participating can find helpful tips for improving their results on this Web page:

    http://kb.pair.com/e1 or contact info@pair.com



    • We host over 150,000 unique Web sites.
    • We have over 14,000 Value-Added and Authorized Resellers.
    • We have over 1000 Web servers in our custom-built datacenter.
    • We have customers from over 150 countries.
    • promote.pair.com has served over 1,000,000,000 banners since February 2002.
    • We host over 20,000 electronic mailing lists.
    • Our servers deliver over 400,000,000 hits per day.
    • We have over 63 Terabytes of storage on our servers.
    • On a typical day, we deliver over 3 Terabytes of data to our visitors.
    • We are deploying Intel and AMD servers at 2500 MHz and above.
    • All shared Web servers feature our Shadow Drive Technology.
    • We have been online for more than 100 months continuously.
    • Our customer base includes a remarkable number of high-profile, high-volume sites, some of whom have been featured as our Site of the Week -- http://www.pair.com/csotw/

    The 'long list' of advantages is available here:



    pair Networks, Inc.
    2403 Sidney St, Suite 510
    Pittsburgh, PA 15203

    Fax +1 412 381-9997

    Pre-Sales Information and New Service Inquiries -- info@pair.com
    Questions About Pending Sign-Ups and Services -- sales@pair.com
    QuickServe Dedicated Hosting Inquiries -- qs@pair.com
    Technical Support and Configuration Information -- support@pair.com
    Billing Inquiries and Statement Requests -- billing@pair.com
    Report Network Abuse or Unsolicited E-Mail -- abuse@pair.com
    Insider Newsletter Suggestions or Comments -- insider@pair.com
    Business Development -- busdev@pair.com
    pairSSL Secure Certificate Sales and Support -- pairssl@pair.com

    Our Web Sites & Resources

    pair Networks, Inc. Home Page -- http://www.pair.com/
    pair Networks Sign-Up system -- http://signup.pair.com/
    My pair Account Control Center -- https://my.pair.com/
    Secure WebMail Interface -- http://webmail.pair.com/
    QuickServe Dedicated Hosting -- http://www.quickserve.com/
    pairNIC Domain Name Registration -- https://www.pairnic.com/
    The Pittsburgh Internet Exchange -- http://www.pitx.net/
    The Insider Newsletter Web Site -- http://insider.pair.com/
    Promote pair Networks -- http://promote.pair.com/
    Promote pairNIC -- http://promote.pairnic.com/
    Authorized Reseller Catalog -- http://arc.pair.com/
    Media Web Site -- http://media.pair.com/
    Mirrors Web Site -- http://mirrors.pair.com/



    If you would like to redistribute, reprint, or quote all or part of any pair Networks Insider Newsletter, please contact insider@pair.com. Redistribution without prior permission is prohibited.

    If you have any questions about reprinting the Insider Newsletter, please contact us.



    Complete details about our Value Added Reseller and Authorized Reseller Programs can be found in the Reseller Resource Center at: For any VAR with three or more active Web hosting accounts or QuickServe dedicated servers, the following discounts are applied to the monthly fees of all current and new accounts. The discount is available only at the time of payment, and only in accordance with the number of current accounts. Prepaid time is not eligible for retroactive discounts.

    Number of Accounts
    Monthly Discount
    3-5
    5%
    6-8
    8%
    9-19
    10%
    20-39
    12%
    40 or more
    15%

    The number of accounts includes only accounts that are part of the merged billing for the VAR (All accounts and services must be listed under one billing ID).

    Contact info@pair.com for more information.