Skip site navigation (1)Skip section navigation (2)
Date:      11 Feb 2004 20:02:59 PST
From:      "Lockergnome" <list_admin@lockergnome.com>
To:        questions@freebsd.org
Subject:   Web Developers - Happy Hearts And HDTV! - Lockergnome
Message-ID:  <20040212041518.1968D43D1D@mx1.FreeBSD.org>

next in thread | raw e-mail | index | archive | help

            [1]Lockergnome Web Developers [2]Go to Lockergnome 

   February 11, 2004 - Happy Hearts And HDTV! 

                  INSIDE THIS ISSUE 
                                                  CLICKS 
   - [3]GnomeREPORT: Happy Hearts And HDTV!
   - [4]PROJECT: Data Dumping
   - [5]FEATURE: Develop Rock-Solid Code In PHP: Part One
   - [6]WARE: Shopping Squirrels
   - [7]FAVORITE: GuruNet
   - [8]TALK: More MYSQL Managers
   - [9]Read this issue online
   - [10]Get the RSS feed for this channel [11]Syndicate this Channel 

                       [12]FeedDemon [13]PentaSuite 
                                [14]GuruNet 

     [15][thawte_small.gif] 

   Get Thawte's New Step-by-Step SSL Guide for MSIIS - In this guide, you
   will find out how to test, purchase, install and use a Thawte Digital
   Certificate on your MSIIS Web server. Throughout, best practices for
   set-up are highlighted to help you ensure efficient ongoing management
   of your encryption keys and digital certificates. [16]Get your copy of
   this new guide now.

                    GnomeREPORT: Happy Hearts And HDTV!

    Hey, all! Don't forget this Saturday is Valentine's Day. Be sure to
    grab your sweetie something nice and, if you can, stay away from the
   computer! If you're like me, that is probably one of the best presents
                               you can give!

   My grandmother is coming to visit the family for these two weeks. Her
   birthday is on Valentine's Day, and with mine the following week, I'm
     sure we'll be busy little bees. So if you have content you've been
   holding back now would be a supreme time to [17]send them to me or the
                                 LG staff.

   In preparation for my birthday, my wife was kind enough to take me to
    Best Buy and let me run wild through the aisle and make purchases we
     could probably live without. So we ended up with a new desk (much
   smaller one than my previous one), a new TV (I LOVE HDTV!), a new VCR
      to go with the new TV, and a nice small 15" LCD Monitor for her
     computer (ViewSonic VA520-2). So needless to say I'm in electronic
     heaven. It's amazing what a new TV will do for your perspective on
    things! I find myself watching shows I'd never watch but the colors
         are so intense and amazing I just get lost in the signal.

     I haven't hooked up my PS2 to it yet but I'm sure I'll be just as
       blown away as I was with my DVDs. I heard somewhere I can get
    component video cables for my PS2 - I'll have to look into that one.

                                                         Digitally Yours,
                                                               Eric Jones

                                                        [18][Back to Top]

                           PROJECT: Data Dumping

   Okay, [19]last week we talked about functions that would pull our data
   out of our database and display it for everyone to gawk at. As we all
   know, getting data from a database is only half the problem. The other
     part comes from putting data into the database, thereby creating a
                  circular effect of data in and data out.

   First let us create our functions. To keep things short I'm only going
    to highlight a function for adding an article and let you figure out
            how to create one for adding authors to our system.

   First, the complete code without any comments. Then I'll break it down
                                   below.

                                     <?
      function insert_article( $author_id, $title, $synopsis, $body){
        $sql = "insert into articles (author_id, title, synopsis, body)
          VALUES ('$author_id', '$title', '$synopsis', '$body')" ;
                            $result = dbQuery( $sql);
                                 if( $result){
                                    return "OK";
                                     }else{
                                   return "FAIL";
                                       }
                                     }
                                     ?>

                Now for a little talking from yours, truly.

   This first line should look familiar by now, with the only difference
    being the number of variables which this function takes. As you can
      see from below, we take in 4 variables so we must remember that
        whenever we invoke this function that it takes 4 variables.

       function insert_article($author_id, $title, $synopsis, $body){

    This is our SQL query. Here we use an insert statement to tell MySQL
   we want to insert the following values into their respective columns.
        The format here is pretty simple to understand. In the first
   parentheses we have the column names which are exactly like the column
   names in our articles table. Next you see the word VALUES in all caps
   and a bunch of PHP variables in another set of parentheses. These are
      the values which are going to be passed from our page (which is
       created yet) to the function to the SQL and into the database.

   $sql = "insert into articles (author_id, title, synopsis, body) VALUES
              ('$author_id', '$title', '$synopsis', '$body')";

   Here is a trusty result variable which is passing the $sql data to the
   dbQuery function for execution. If all goes okay, then we should get a
                               true returned.

                          $result = dbQuery($sql);

    Here we check to ensure that $result is true. If it is, then we tell
   our function to return the text okay, if it's false then the function
   will return FAIL. I prefer to use OK and FAIL versus TRUE / FALSE or 1
   / 0 because it shows I'm passing a string, and not a Boolean. Now you
   could just do a return $result and then check the true / false on your
               calling page. It's all a matter of preference.

                                if($result){
                                  return "OK";
                                   }else{
                                 return "FAIL";
                                     }

    So there you have it. We've got a function which will take data and
   put it into a database. Now let's work on the form. Since we all know
    HTML here I'm just going to show you my form and put comments in for
                               my logic, etc.

            Grab the HTML file here and the functions file here.

   Well that's it for this week. Go forth and expand on it. Next week we
    will play more with outputting the data into HTML for viewing, etc.
                   [20]Let me know if you have questions.

                                                        [21][Back to Top]

             FEATURE: Develop Rock-Solid Code In PHP: Part One

   Zend recently started a series about building rock solid code in PHP.
   Below is the first part. I recommend you read it all, but if you want
     to jump to my favorite part, then [22]go here and read about rock
                              solid functions.

                             Intended audience
   This is the first in a series of articles intended for developers who
   are interested in building medium-to-large PHP based Web applications.
   The Develop Rock-Solid Code In PHP series is about solving practical,
     real-life problems. In this series you'll learn how to rise above
     making quick-and-messy solutions, and to develop code that you can
                     reuse later in other applications.

      This first article will give you a higher level perspective - a
        bird's-eye view on what factors make good a Web application.

                                Introduction
   If you are developing Web Applications and need speed, functionality,
     and platform-independence, PHP is a natural choice. Moreover it's
   free, and easy to learn and deploy. These are the strengths that make
    PHP so popular. But these same strengths can turn into weaknesses if
                            you're not careful.

    Because of PHP's ease-of-use, developers often get tempted to hammer
    code straight into their editors when they should really begin with
      planning and design. Also, there is always more than one way of
     solving problems in PHP. Having more than one way to do things is
      good, but it increases the risk of making mistakes that will be
                          difficult to fix later.

    In this series of articles you'll learn how to avoid these mistakes.
   If you follow through religiously, don't be surprised to find yourself
    writing bug-free code at the first or the second go. I'll also point
   out new features available in PHP 4 that make life easier. Most of the
      examples that we will cover as we move along deal with practical
   real-life problems like script configuration and setup, file-handling,
                   using databases and caching elegantly.

   Even if you are new to all this, you should get along well. For now, I
               will assume only that you know elementary PHP.

                       Build a rock-solid foundation
     Coding in PHP is very much like coding in a language like C; their
     syntax is similar. This means that it's easy to get yourself into
         maintaining your own mess just like in C. When large scale
    applications have to be coded, you have huge amounts of code to pay
   attention to. Needless to say, this makes code hard to manage and bugs
   tend to creep in. Well actually this is part of the truth, the bigger
       truth is that if you are maintaining your code too often, your
      application was probably not designed right in the first place.

     The choices that you make initially affect your degrees of freedom
         when you code later. This makes proper design an important
    prerequisite. Design is sometimes seen as an unwanted extra ceremony
   when you are solving a trivial problem, you must at least acknowledge
     that this is the case. Many people think of design and planning as
   extra overhead. But starting with a bad design - or no design at all -
                     always results in slip-shod code.

   No amount of clever coding can compensate for bad design. Although how
   to design is very application specific and is beyond the scope of this
   series of articles. However I will suggest some pointers that you can
                    use when designing Web applications.

                             Divide and conquer
      How do you eat an elephant? The thought sounds gruesome, but the
      answer pertains to almost all programming problems. It is always
    preferable to design and code a big application in smaller, loosely
   coupled parts. That way, each part stays maintainable. For example, a
    Content Management System (CMS) may be distributed over many smaller
    modules like user authentication, presentation, content parsing, and
    viewing statistics. You should aim for making these modules generic
     enough that you can reuse your code in other applications that you
                                  develop.

     Well, programmers often do this and still complain. Let's go along
   with the elephant analogy. If the elephant's mouth sends bananas down
   the windpipe into the lungs instead of the stomach via the food-pipe,
              the animal will obviously get sick and throw-up.

    The trick is to let each module have the functionality it absolutely
       needs and stop there. Do nothing more and nothing less. Adding
     functionality that's not needed results in data traveling in pipes
                     that run awry. You know the rest.

                            Never think in pages
   If you took interest in PHP just to make your HTML pages more dynamic,
     this bit is for you. This habit generally starts when you want the
     date and time displayed on every page to make it look fresh. Every
    HTML page turns into a small PHP script with a skimpy line with the
    date function tucked-in somewhere. If this is what you want, I must
   agree that this is the simplest way of getting the job done. But just
   imagine what you will have to do to change the format of the date that
    appears on the page. You will have to change the code in every page!

    There are obviously better ways to do this. My favorite is to use a
    configuration file and define a constant in it that holds the format
    string for the date() function. You can then use the date() function
    wherever you need it. Every page will still end in a script, but you
   will have drastically minimized places where you must make a change to
     a single line of code. I agree that this example sounds a bit too
     trivial, but remember the saying "Take care of the pennies and the
                   pounds will take care of themselves."

                      Reduce client-side requirements
   The types of Web pages and applications have grown in many directions.
    First it was image and image-maps, then Java applets and client-side
     scripts that did cool animations. Today it is Flash. It is good to
   have impact, but one must remember the whole idea behind the Web is to
     make information accessible to anyone who wants it at any time. By
   employing technology that not all browsers and platforms support, you
    deny information to people. Remember that the primary purpose of any
   Web application is to deliver information and remain available at all
   times. You never know; the person who couldn't access your application
                     may have been your next customer!

     Your application design should minimize network traffic as much as
     possible. It is common to see sites that go over-the-top and give
     browsers an assortment of cookies just to work. Juggling a lot of
    cookies not only consumes bandwidth, but also makes things difficult
   to manage. As a rule of thumb, if your application sends more than 40
   KB of data or if your page requires more than 5 seconds to load, it is
    time to take the application back to the drawing board. Small tweaks
     here and there do not last for long. If you look around, the most
            popular and the most visited sites are very simple.

   You should also take into account the next wave of mobile devices and
     the connection they will use to access your application. As a best
    practice, your application should tailor content to the client that
                                requests it.

                  Separate code, content and presentation
   HTML is a markup language to present content; PHP is an HTML-embedded
   scripting language. This does make simple tasks easy, as demonstrated
   in the date example above. However, when you have complex requirements
     to implement, embedding PHP in HTML takes away simplicity from the
    code. Simplicity should be the first flag you'll need to capture if
     you are making a large application. Separating code, content, and
    presentation may sound laborious, but it brings simplicity back into
                                 the code.

   Just as encapsulating core functionality in modules and avoiding code
      duplication is important, using a single source for content and
       presenting the content the way it is wanted on demand is also
    important. Your flexibility to tailor pages according to the client
        and connection speeds is increased. Another spin-off is that
   programmers, designers, and writers work independently of each other,
         which is a good thing if you are handling a large project.

                      Don't be afraid to scrap designs
   No matter what anyone tells you, application design is best learned by
   practice. If you are just getting started, you may make many mistakes
    - that's how you learn. Bad designs deserve to be scrapped. That is
     why you must keep code, content, and presentation loosely coupled:
      scrapping bad application architectures and designs becomes less
    painful. You can keep the content and the presentation while losing
                    your older code to something better.

                   [23]See the rest of the articles here.

                                                        [24][Back to Top]

                          WARE: Shopping Squirrels

        As I mentioned in the past, I'm working on a Web site for my
   [25]mother-in-law. She wants to sell her Peanut Patties, Pecan Praline
     Patties, and BBQ Walnuts online. Having sampled the candies, I of
          course jumped at the request to build the site for her.

   Well while planning the site I knew we need to get real-time shipping
   quotes so she would know how much to charge for shipping to various US
   locations. So I fiddled around with creating my own scripts to do this
    and just found it to be too much on my limited time budget. So I set
     out to find a nice shopping cart program which would do it for me,
                            among other things.

   Well while surfing one of those Web sites with all the scripts on them
   I came across [26]Squirrelcart. Upon first look I was super impressed
   because it did both UPS and US Postal rates! This is perfect for her,
     since she lives in a small town with limited options for shipping.

       Besides being well equipped in the shipping category, it has a
       multitude of support for various merchant accounts, including
   [27]PayPal and [28]2Checkout. Both of these systems are very low cost
   to get into and help you to establish a merchant type account quickly
   and easily. Of course if you are doing a steady volume of sales you'll
     need to get a real account to get the best savings, but I digress.

   The cart itself was very easy to install and even easier to get things
   set up. The administrator interface is awesome and very clean, kind of
     a Windows XP / Mac feel to it. Also the documentation and support
   systems they have in place are stellar as well. I had a few questions
      about the Paypal IPN service (which isn't in place 100% yet) and
     posted my support ticket with their system. 18 hours later I had a
     response and suggestion for following the issue! They also have a
   great community forum for those who require a wider range of replies.

       So if you have a PHP / MySQL server and are in need of a great
   shopping cart, I have to recommend [29]Squirrelcart. With a price tag
     of only $109, it's an easy pick for most budgets. If you need more
    data before you make the purchase plunge, then [30]jump over here to
                       see the current feature list.

                                                        [31][Back to Top]

                             FAVORITE: GuruNet

                            By [32]Matt Hartley

                        [33]http://www.gurunet.com/

    I find that within any given day I do a great deal of my work on the
    Web. Tracking down the latest technology related events, seeing what
   is happening in the news and even scouring around on Google trying to
             locate the latest hardware drivers for my clients.

     Using Google for these tasks has been the "standard" for some time
   now. The only problem is that it can be a real pain to scour through a
    ton of "stuff" when you already know what it is you are looking for.
   The folks at GuruNet have a very useful and viable solution for those
   of us that need to "get a question answered" or do some research on a
     specific subject. Actually it is a lot like having your own little
           expert on everything right there in your system tray.

                  So what the GuruNet software do for you?
     * Alt-Click on any word/phrase - GuruNet provides "instant answers"
       to just about anything you ask it. In an e-mail, Web page, or a
       document you might find a word that is completely foreign to you.
       So you do an Alt-Click with your mouse and BAM you have the
       definition of that word right at your fingertips.
     * Contextual recognition - GuruNet uses surrounding words to help it
       find the information that you need when making a query. Spell
       checking is handled automatically while quickly offering you
       alternatives in the "did you mean?" tab provided in the program.
     * Authoritative data sources - GuruNet provides all content "garbage
       free" so that you can get your work done without the distractions
       of irrelevant sites that might draw attention elsewhere.

    This is all great and everything, but is this software right for me?
             Fair enough. This software is perfect if you are:
     * A Teacher
     * A Student
     * A Professional
     * A Newspaper reporter
     * Doing research for a law firm
     * Anyone needing the ability to find information that they can offer
       to clients/readers/co-workers as FACT

                  Searches that GuruNet excels in include:
     * Nutritional values
     * History
     * Important events
     * Laws (Specific court cases, specific laws, etc.)
     * Sports history/trivia (settle bets without starting a bar brawl,
       prove that you are the master of sports trivia)
     * Medical reference (Diseases, medications, treatments, etc.)

      GuruNet is not by any means here to replace your favorite search
    engine. Rather, it is designed to help focus your search to only the
    most relevant information that has been PROVEN to meet the needs of
    your query. Google is an awesome search engine, but when you need to
   scour encyclopedias, dictionaries, and other content providers proven
   to be accurate with no "maybe it's correct" information... GuruNet is
                            the logical choice.

    So whether you have kids in school or you simply want to have access
     to accurate, up-to-date information that you can offer as concrete
     FACT without those "I hope this Web site's information is correct"
    jitters, GuruNet is truly a must have product. I am quite impressed
      and look forward to seeing what advancements they offer as this
                   software continues to mature and grow.

                                                        [34][Back to Top]

                         TALK: More MYSQL Managers

       Gnomie Kevin had this to say about a great free MySQL Manager:

     I'm really enjoying the project - keep up the great work!

     I just read the latest issue and your feature about MySQL Manager.
     The company I work for recently started using MySQL for our
     clients' databases and I was put in charge of finding a good, low
     cost (read "free") management tool. I, of course, turned to
     WebAttack and found MySQL-Front listed, but they said that the
     developer had stopped updating. Undaunted, I checked out the Web
     site of the developer ([35]http://www.mysqlfront.de) and found that
     the project is very much alive. I downloaded version 2.5 for work
     as it is the latest "stable" version and I love it. I have since
     downloaded version 3 for personal use and I have to say that I
     can't recommend it highly enough.

     The interface is intuitive -- especially if you're used to using
     MS-SQL Enterprise Manager - and full-featured. Being used to
     Enterprise Manager, the one thing that I have had the most trouble
     getting used to is the fact that data imports are accomplished via
     SQL statements, although I must say that now that I have gotten
     used to this I do like it and find myself having trouble going back
     to Enterprise Manager at times.

     Just thought I'd let you know about this great cheap tool (It's
     only $25 in case you didn't know about it already).

     Again, keep up the great work on the newsletter, and thank you.

   And those of you who are working on projects which are paid or billed
   by the hour, Gnomie Rick suggests you check out [36]The Project Timer.

    From their Web site: Project Timer Pro has been designed especially
    for time tracking, so you simply start a 'Timer' when you start work
   and stop the 'Timer' when you finish. If you need to take a break and
     leave the computer, Project Timer Pro automatically knows and can
     pause the 'Timer' with a variety of options. On the Mac OS Project
   Timer Pro can even tell if your computer has been asleep, for example
    if you are working on a train and reach your stop, you just send the
   computer to sleep and, when it awakes, Project Timer Pro allows you to
             enter the time the computer was asleep as a Pause.

    And finally Gnomie Pat (aka Vinyl-junkie) had these recommendations
                       for database conversion tools.

     Vinyl-junkie here from the Lockergnome forums. If you'll recall, in
     a recent newsletter you mentioned a post of mine to the Webmasters
     forum, where I was looking for some pointers on converting an MS
     Access database to MySQL and converting the accompanying code to
     PHP. I thought you might be interested to know that I'm well on my
     way to doing just that. (You were right about recommending Kevin
     Yank's book, too; it's been a great resource in that effort). I
     also wanted to share with you a couple of terrific database
     conversion tools I found. Perhaps you'd like to include this in a
     future newsletter:

     Access-to-MySQL, by Intelligent Converters - 2000/XP/NT4 $39.85
     [37]http://www.convert-in.com/acc2sql.htm

     [Convert MS Access databases to MySQL] Access-to-MySQL is one of
     the easiest tools you'll find for converting your Microsoft Access
     databases to MySQL. It comes in several packages, like the Standard
     Edition, which converts a single database and the Professional
     Edition, which provides bulk database conversion. There is also a
     choice of bundles that provide, for example, conversion between
     Access and MySQL and back, plus similar tools for conversion
     between Excel and MySQL. Check their Web site for more details.

     The user interface is simple and straightforward, providing
     capability of logging onto the MySQL server remotely to upload your
     converted database directly to the server. If your Web host doesn't
     allow remote server logon, or you'd just like more control over the
     conversion process, select the option which creates a dump file.
     That file contains all the SQL insert statements necessary to
     populate your MySQL database. Then you simply logon to the MySQL
     server and, using a tool like PHPMyAdmin, select your dump file for
     processing. In a matter of minutes, you will have created your
     MySQL database.

     The only limitation I've found - and this is not directly related
     to the use of Access-to-MySQL - is that if your MS Access tables
     contain more than about 6,000 records, you'll have to split your
     dump file into smaller chunks for processing. Otherwise, the MySQL
     server will choke. That's a limitation I can live with though,
     considering how easy this software is to use.

     CSV-Importer - Free
     [38]http://codewalkers.com/seecode/175.html

     [Convert a CSV (comma separated values) file to MySQL] The other
     conversion tool that I found which seems to work pretty well is CSV
     Importer. As you know, MS Access has a built-in tool that will
     export all your tables to CSV files. Beyond that, all you need to
     do is unzip this file, upload the appropriate files to the Web
     server and follow the on-screen instructions. Note that your
     database and required tables must already exist on the server in
     order for this software to work.

     This software is just as easy to use as Access-to-MySQL, but
     suffers the same limitation - that of restricting the conversion to
     no more than about 6,000 records at a time. It also has a small bug
     whereby timestamp fields are not properly converted. You can easily
     get around this problem though by executing a SQL command on the
     server with the following format:

     ALTER TABLE 'table-name' CHANGE 'field-name' 'field-name' DATETIME;

     For example, I have a timestamp field called LastUpdateByUser in a
     table called tblTracks, so my command would look like:

     ALTER TABLE `tblTracks` CHANGE `LastUpdateByUser`
     `LastUpdateByUser` DATETIME;

     No matter which database conversion tool you use though, you'll
     find that it's not as difficult to do as you might think.

                               Thanks, Guys!

                                                        [39][Back to Top]

     [40]http://channels.lockergnome.com/web/backissues/20040211.phtml

        Your subscribed e-mail address is questions@freebsd.org - To
       unsubscribe or change your delivery address, please visit the
                     [41]subscription management page.

    © 1996-2004, Lockergnome LLC. ISSN: 1095-3965. All Rights Reserved.
   Please read our [42]Privacy Policy and [43]Terms of Service. Web site
     hosted by [44]Webair. Email newsletters powered by [45]WhatCounts.
   Domain registered at [46]GnomeDOMAINS. The more we disagree, the more
            chance there is that at least one of us is correct.

                               OUR CHANNELS:
                            [47]Windows Fanatics
                            [48]IT Professionals
                             [49]Web Developers
                            [50]Tech News Watch
     See our [51]Channels Overview for more information and RSS feeds.
                              [sidebar-hr.gif]

                                OUR NETWORK:
                              [52]Lockergnome
                              [53]RSS Resource
                              [54]GnomeDomains
                             [55]GnomePortable
                              [56]GnomeSavings
                             [57]GnomePersonals
                               [58]GnomeJobs
                            [59]File of the Day
                                [60]Gnomedex

                               OUR COMMUNITY:
                            [61]Join the Forums
                           [62]Chat with Gnomies
                           [63]Watch the Webcams
                              [64]Recommend Us

                                OUR FORUMS:
                              [65]Digicam Help
                               [66]Apple Help
                              [67]Gaming Help
                            [68]Networking Help
                              [69]Mobile Help
                            [70]Programming Help
                                [71]RSS Help
                              [72]Windows Help
                               [73]Linux Help
                             [74]Internet Help
                             [75]Hardware Help

                                CONTACT US:
                            [76]General Feedback
                             [77]Contact Staff
                            [78]Submit Your Link
                              [79]Sponsorships
                             [80]Ask a Question
                           [81]The Editor's Blog
                              [sidebar-hr.gif]

                             LATEST TECH NEWS:
                  [82]Unreal Tournament 2004 demo released
                  [83]Microsoft Adds Juice to Removal Tool
                         [84]Palm Powered PDA a Day
                            [85]Video Game Mamas
                     [86]Spike Lee's "Secret Agent Man"
   [87]Angry with RIAA tactics, programmer creates mask for file-sharers
      [88]What world-famous command did the first IBM PC manual omit?
   [89]Windows XP may take upward of three minutes to complete a wireless
                             network connection
    [90]Stop error message on a blue screen when you transfer data to a
                          USB device in Windows XP
                             [91]Surfin' Safari
                              [sidebar-hr.gif]

                              LATEST RSS NEWS:
                                [92]RSSgenr8
                                 [93]Pluck
                [94]Windows XP Expert Zone Community Website
                              [95]CompleteRSS
                               [96]PV Comics
                      [97]RSS = Rudely Syndicated Spam
                                [98]RSSTop55
                              [99]What is RSS?
                           [100]How to Create RSS
                            [101]Barenaked Feeds
                              [sidebar-hr.gif]

                            FEATURED DOWNLOADS:
                         [102]Image Converter Plus
                        [103]Aaron's WebVacuum v2.3
                           [104]Auto FTP Manager
                [105]Transparent Screen Lock for Win2K/NT/XP
                       [106]Library of the Ages v1.0
                 [107]Belltech Greeting Cards Designer v1.1
                          [108]AbroSoft FantaMorph
                          [109]Winter Wonderlands
                               [110]DownShift
                              [111]FolderMatch
                              [sidebar-hr.gif]

   [t?c=65641&r=16&l=4828&t=10&s=35342912]

References

   1. http://channels.lockergnome.com/web/
   2. http://www.lockergnome.com/
   3. file://localhost/tmp/tmppFSX-6.html#1
   4. file://localhost/tmp/tmppFSX-6.html#2
   5. file://localhost/tmp/tmppFSX-6.html#3
   6. file://localhost/tmp/tmppFSX-6.html#4
   7. file://localhost/tmp/tmppFSX-6.html#5
   8. file://localhost/tmp/tmppFSX-6.html#6
   9. http://channels.lockergnome.com/web/backissues/20040211.phtml
  10. http://lockergnome.com/rss/web.php
  11. http://lockergnome.com/rss/web.php
  12. http://go.lockergnome.com/220
  13. http://www.pentazip.com/
  14. http://www.gurunet.com/?afid=6206
  15. http://go.lockergnome.com/257
  16. http://go.lockergnome.com/257
  17. http://lockergnome.com/contact/staff.phtml?r=8&s=[WDV]
  18. file://localhost/tmp/tmppFSX-6.html#top
  19. http://channels.lockergnome.com/web/backissues/20040204.phtml
  20. http://lockergnome.com/contact/staff.phtml?r=8&s=[WDV]
  21. file://localhost/tmp/tmppFSX-6.html#top
  22. http://www.zend.com/zend/tut/tut-hatwar3.php
  23. http://www.zend.com/zend/tut/tut-hatwar.php
  24. file://localhost/tmp/tmppFSX-6.html#top
  25. http://www.sweetsfromthesouth.com/
  26. http://www.squirrelcart.com/
  27. http://www.paypal.com/
  28. http://www.2checkout.com/
  29. http://www.squirrelcart.com/
  30. http://www.squirrelcart.com/features.php
  31. file://localhost/tmp/tmppFSX-6.html#top
  32. http://ctsdownloads.com/
  33. http://www.gurunet.com/?afid=6205
  34. file://localhost/tmp/tmppFSX-6.html#top
  35. http://www.mysqlfront.de/
  36. http://www.scriptsoftware.com/projecttimer/
  37. http://www.convert-in.com/acc2sql.htm
  38. http://codewalkers.com/seecode/175.html
  39. file://localhost/tmp/tmppFSX-6.html#top
  40. http://channels.lockergnome.com/web/backissues/20040211.phtml
  41. http://sub.lockergnome.com/
  42. http://lockergnome.com/about/privacy-policy.phtml
  43. http://lockergnome.com/about/terms-of-service.phtml
  44. http://www.webair.com/cgi-bin/in?51
  45. http://www.whatcounts.com/
  46. https://www.gnomedomains.com/
  47. http://channels.lockergnome.com/windows/
  48. http://channels.lockergnome.com/it/
  49. http://channels.lockergnome.com/web/
  50. http://channels.lockergnome.com/news/
  51. http://lockergnome.com/channels/
  52. http://lockergnome.com/
  53. http://rss.lockergnome.com/
  54. https://gnomedomains.securenow.com/
  55. http://www.handango.com/brainstore/home.jsp?siteId=813
  56. http://lockergnome.pricegrabber.com/
  57. http://personals.lockergnome.com/
  58. http://seeker.dice.com/seeker.epl?rel_code=14
  59. http://windows.fileoftheday.com/
  60. http://www.gnomedex.com/
  61. http://help.lockergnome.com/
  62. http://lockergnome.com/community/chat.phtml
  63. http://www.lockergnome.com/community/cams.phtml
  64. http://lockergnome.com/contact/recommend.phtml
  65. http://help.lockergnome.com/index.php?s=&act=SF&f=16
  66. http://help.lockergnome.com/index.php?s=&act=SF&f=12
  67. http://help.lockergnome.com/index.php?s=&act=SF&f=19
  68. http://help.lockergnome.com/index.php?s=&act=SF&f=9
  69. http://help.lockergnome.com/index.php?s=&act=SF&f=14
  70. http://help.lockergnome.com/index.php?s=&act=SF&f=31
  71. http://help.lockergnome.com/index.php?s=&act=SF&f=33
  72. http://help.lockergnome.com/index.php?s=&act=SF&f=4
  73. http://help.lockergnome.com/index.php?s=&act=SF&f=8
  74. http://help.lockergnome.com/index.php?s=&act=SF&f=6
  75. http://help.lockergnome.com/index.php?s=&act=SF&f=5
  76. http://lockergnome.com/contact/
  77. http://lockergnome.com/contact/staff.phtml
  78. http://lockergnome.com/contact/submissions.phtml
  79. http://lockergnome.com/advertise/
  80. http://ask.pirillo.com/
  81. http://chris.pirillo.com/
  82. http://channels.lockergnome.com/news/archives/008931.phtml
  83. http://channels.lockergnome.com/news/archives/008929.phtml
  84. http://channels.lockergnome.com/news/archives/008927.phtml
  85. http://channels.lockergnome.com/news/archives/008925.phtml
  86. http://channels.lockergnome.com/news/archives/008924.phtml
  87. http://channels.lockergnome.com/news/archives/008921.phtml
  88. http://channels.lockergnome.com/news/archives/008920.phtml
  89. http://channels.lockergnome.com/news/archives/008919.phtml
  90. http://channels.lockergnome.com/news/archives/008918.phtml
  91. http://channels.lockergnome.com/news/archives/008912.phtml
  92. http://rss.lockergnome.com/archives/software/008932.phtml
  93. http://rss.lockergnome.com/archives/software/008930.phtml
  94. http://rss.lockergnome.com/archives/feeds/008928.phtml
  95. http://rss.lockergnome.com/archives/services/008926.phtml
  96. http://rss.lockergnome.com/archives/feeds/008923.phtml
  97. http://rss.lockergnome.com/archives/news/008916.phtml
  98. http://rss.lockergnome.com/archives/help/008915.phtml
  99. http://rss.lockergnome.com/archives/help/008913.phtml
 100. http://rss.lockergnome.com/archives/software/008903.phtml
 101. http://rss.lockergnome.com/archives/feeds/008902.phtml
 102. http://windows.fileoftheday.com/archives/008914.html
 103. http://windows.fileoftheday.com/archives/008896.html
 104. http://windows.fileoftheday.com/archives/008875.html
 105. http://windows.fileoftheday.com/archives/008852.html
 106. http://windows.fileoftheday.com/archives/008830.html
 107. http://windows.fileoftheday.com/archives/008819.html
 108. http://windows.fileoftheday.com/archives/008779.html
 109. http://windows.fileoftheday.com/archives/008766.html
 110. http://windows.fileoftheday.com/archives/008759.html
 111. http://windows.fileoftheday.com/archives/008688.html



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040212041518.1968D43D1D>