Google
 

Wednesday, December 10, 2008

Our Store

Photobucket








---still updating...
but there are some products that are already available.

Computer Laptops, Computer Parts, Card Readers, Flash Drives and Memory Cards are now available!

so hurry stocks are limited.. Order now!!!

check it out at:






Saturday, June 7, 2008

Structure of a program


Probably the best way to start learning a programming language is by writing a program. Therefore, here is our first program:



// my first program in C++

#include
using namespace std;

int main ()
{
cout << "Hello World!";
return 0;
}
Hello World!

The first panel shows the source code for our first program. The second one shows the result of the program once compiled and executed. The way to edit and compile a program depends on the compiler you are using. Depending on whether it has a Development Interface or not and on its version. Consult the compilers section and the manual or help included with your compiler if you have doubts on how to compile a C++ console program.

The previous program is the typical program that programmer apprentices write for the first time, and its result is the printing on screen of the "Hello World!" sentence. It is one of the simplest programs that can be written in C++, but it already contains the fundamental components that every C++ program has. We are going to look line by line at the code we have just written:

// my first program in C++

This is a comment line. All lines beginning with two slash signs (//) are considered comments and do not have any effect on the behavior of the program. The programmer can use them to include short explanations or observations within the source code itself. In this case, the line is a brief description of what our program is.

#include

Lines beginning with a hash sign (#) are directives for the preprocessor. They are not regular code lines with expressions but indications for the compiler's preprocessor. In this case the directive #include tells the preprocessor to include the iostream standard file. This specific file (iostream) includes the declarations of the basic standard input-output library in C++, and it is included because its functionality is going to be used later in the program.

using namespace std;
All the elements of the standard C++ library are declared within what is called a namespace, the namespace with the name std. So in order to access its functionality we declare with this expression that we will be using these entities. This line is very frequent in C++ programs that use the standard libary, and in fact it will be included in most of the source codes included in these tutorials.

int main ()

This line corresponds to the beginning of the definition of the main function. The main function is the point by where all C++ programs start their execution, independently of its location within the source code. It does not matter whether there are other functions with other names defined before or after it - the instructions contained within this function's definition will always be the first ones to be executed in any C++ program. For that same reason, it is essential that all C++ programs have a main function.

The word main is followed in the code by a pair of parentheses (()). That is because it is a function declaration: In C++, what differentiates a function declaration from other types of expressions are these parentheses that follow its name. Optionally, these parentheses may enclose a list of parameters within them.

Right after these parentheses we can find the body of the main function enclosed in braces ({}). What is contained within these braces is what the function does when it is executed.

cout << "Hello World";

This line is a C++ statement. A statement is a simple or compound expression that can actually produce some effect. In fact, this statement performs the only action that generates a visible effect in our first program.

cout represents the standard output stream in C++, and the meaning of the entire statement is to insert a sequence of characters (in this case the Hello World sequence of characters) into the standard output stream (which usually is the screen).

cout is declared in the iostream standard file within the std namespace, so that's why we needed to include that specific file and to declare that we were going to use this specific namespace earlier in our code.

Notice that the statement ends with a semicolon character (;). This character is used to mark the end of the statement and in fact it must be included at the end of all expression statements in all C++ programs (one of the most common syntax errors is indeed to forget to include some semicolon after a statement).

return 0;

The return statement causes the main function to finish. return may be followed by a return code (in our example is followed by the return code 0). A return code of 0 for the main function is generally interpreted as the program worked as expected without any errors during its execution. This is the most usual way to end a C++ console program.


You may have noticed that not all the lines of this program perform actions when the code is executed. There were lines containing only comments (those beginning by //). There were lines with directives for the compiler's preprocessor (those beginning by #). Then there were lines that began the declaration of a function (in this case, the main function) and, finally lines with statements (like the insertion into cout), which were all included within the block delimited by the braces ({}) of the main function.


The program has been structured in different lines in order to be more readable, but in C++, we do not have strict rules on how to separate instructions in different lines. For example, instead of

int main ()
{
cout << " Hello World ";
return 0;
}

We could have written:

int main () { cout << "Hello World"; return 0; }

All in just one line and this would have had exactly the same meaning as the previous code.

In C++, the separation between statements is specified with an ending semicolon (;) at the end of each one, so the separation in different code lines does not matter at all for this purpose. We can write many statements per line or write a single statement that takes many code lines. The division of code in different lines serves only to make it more legible and schematic for the humans that may read it.

Let us add an additional instruction to our first program:

Input: Output:

// my second program in C++

#include

using namespace std;

int main ()
{
cout << "Hello World! ";
cout << "I'm a C++ program";
return 0;
}
Hello World! I'm a C++ program

In this case, we performed two insertions into cout in two different statements. Once again, the separation in different lines of code has been done just to give greater readability to the program, since main could have been perfectly valid defined this way:

int main () { cout << " Hello World! "; cout << " I'm a C++ program "; return 0; }

We were also free to divide the code into more lines if we considered it more convenient:

int main ()
{
cout << "Hello World!";
cout
<< "I'm a C++ program";
return 0;
}

And the result would again have been exactly the same as in the previous examples.

Preprocessor directives (those that begin by #) are out of this general rule since they are not statements. They are lines read and processed by the preprocessor and do not produce any code by themselves. Preprocessor directives must be specified in their own line and do not have to end with a semicolon (;).

Comments

Comments are parts of the source code disregarded by the compiler. They simply do nothing. Their purpose is only to allow the programmer to insert notes or descriptions embedded within the source code.

C++ supports two ways to insert comments:

// line comment
/* block comment */

The first of them, known as line comment, discards everything from where the pair of slash signs (//) is found up to the end of that same line. The second one, known as block comment, discards everything between the /* characters and the first appearance of the */ characters, with the possibility of including more than one line.
We are going to add comments to our second program:

Input:

/* my second program in C++
with more comments */


#include
using namespace std;

int main ()
{
cout << "Hello World! "; // prints Hello World!
cout << "I'm a C++ program"; // prints I'm a C++ program
return 0;
}

Output:
Hello World! I'm a C++ program

If you include comments within the source code of your programs without using the comment characters combinations //, /* or */, the compiler will take them as if they were C++ expressions, most likely causing one or several error messages when you compile

Friday, June 6, 2008

Tutorial Introduction

Instructions for use:

To whom is this tutorial directed?

This tutorial is for those people who want to learn programming in C++ and do not necessarily have any previous knowledge of other programming languages. Of course any knowledge of other programming languages or any general computer skill can be useful to better understand this tutorial, although it is not essential.

It is also suitable for those who need a little update on the new features the language has acquired from the latests standards.

If you are familiar with the C language, you can take the first 3 parts of this tutorial as a review of concepts, since they mainly explain the C part of C++. There are slight differences in the C++ syntax for some C features, so I recommend you its reading anyway.

The 4th part describes object-oriented programming.

The 5th part mostly describes the new features introduced by ANSI-C++ standard.

Structure of this tutorial

The tutorial is divided in 6 parts and each part is divided in its turn into different sections covering a topic each one. You can access any section directly from the section index available on the left side bar, or begin the tutorial from any point and follow the links at the bottom of each section.

Many sections include examples that describe the use of the newly acquired knowledge in the chapter. It is recommended to read these examples and to be able to understand each of the code lines that constitute it before passing to the next chapter.

A good way to gain experience with a programming language is by modifying and adding new functionalities on your own to the example programs that you fully understand. Don't be scared to modify the examples provided with this tutorial, that's the way to learn!

Compatibility Notes

The ANSI-C++ standard acceptation as an international standard is relatively recent. It was first published in November 1997, and revised in 2003. Nevertheless, the C++ language exists from a long time before (1980s). Therefore there are many compilers which do not support all the new capabilities included in ANSI-C++, specially those released prior to the publication of the standard.

This tutorial is thought to be followed with modern compilers that support -at least on some degree- ANSI-C++ specifications. I encourage you to get one if yours is not adapted. There are many options, both commercial and free.

Compilers

The examples included in this tutorial are all console programs. That means they use text to communicate with the user and to show their results.All C++ compilers support the compilation of console programs. Check the user's manual of your compiler for more info on how to compile them.

Thursday, June 5, 2008

C++: A brief Description

Programs

Nowadays computers are able to perform many different tasks, from simple mathematical operations to sophisticated animated simulations. But the computer does not create these tasks by itself, these are performed following a series of predefined instructions that conform what we call a program.

A computer does not have enough creativity to make tasks which it has not been programmed for, so it can only follow the instructions of programs which it has been programmed to run. Those in charge of generating programs so that the computers may perform new tasks are known as programmers or coders, who for that purpose use a programming language.

Programming languages

A programming language is a set of instructions and a series of lexical conventions specifically designed to order computers what to do.

When choosing a programming language to make a project, many different considerations can be taken. First, one must decide what is known as the level of the programming language. The level determines how near to the hardware the programming language is. In the lower level languages, instructions are written thinking directly on interfacing with hardware, while in "high level" ones a more abstract or conceptual code is written.

Generally, high level code is more portable, that means it can work in more different machines with a smaller number of modifications, whereas a low level language is limited by the peculiarides of the hardware which it was written for. Nevertheless, the advantage of low level code is that it is usually faster due to the fact that it is indeed written taking advantage of the possibilities of a specific machine.

A higher or lower level of programming is to be chosen for a specific project depending on the type of program that is being developed. For example, when a hardware driver is developed for an operating system obviously a very low level is used for programming. While when big applications are developed usually a higher level is chosen, or a combination of critic parts written in low level languages and others in higher ones.

Although there are languages that are clearly thought to be low level, like Assembly, whose instruction sets are adapted to each machine the code is made for, and other languages are inherently high level, like the Java, that is designed to be totally independent of the platform where is going to run. The C++ language is in a middle position, since it can interact directly with the hardware almost with no limitations, and can as well abstract lower layers and work like one of the most powerful high level languages.

Why C++?

C++ has certain characteristics over other programming languages. The most remarkable ones are:
Object-oriented programming

The possibility to orientate programming to objects allows the programmer to design applications from a point of view more like a communication between objects rather than on a structured sequence of code. In addition it allows a greater reusability of code in a more logical and productive way.

Portability

You can practically compile the same C++ code in almost any type of computer and operating system without making any changes. C++ is the most used and ported programming language in the world.

Brevity

Code written in C++ is very short in comparison with other languages, since the use of special characters is preferred to key words, saving some effort to the programmer (and prolonging the life of our keyboards!).

Modular programming

An application's body in C++ can be made up of several source code files that are compiled separately and then linked together. Saving time since it is not necessary to recompile the complete application when making a single change but only the file that contains it. In addition, this characteristic allows to link C++ code with code produced in other languages, such as Assembler or C.
C Compatibility

C++ is backwards compatible with the C language. Any code written in C can easily be included in a C++ program without making any change.

Speed

The resulting code from a C++ compilation is very efficient, due indeed to its duality as high-level and low-level language and to the reduced size of the language itself.

Wednesday, May 14, 2008

C++ Language FAQ

Frequently Asked Questions

What is C++?

C++ is a programming language. It literally means "increased C", reflecting its nature as an evolution of the C language.


Is it necessary to already know another programming language before learning C++?

Not necessarily. C++ is a simple and clear language in its expressions. It is true that a piece of code written with C++ may be seen by a stranger of programming a bit more cryptic than some other languages due to the intensive use of special characters ({}[]*&!|...), but once one knows the meaning of such characters it can be even more schematic and clear than other languages that rely more on English words.

Also, the simplification of the input/output interface of C++ in comparison to C and the incorporation of the standard template library in the language, makes the communication and manipulation of data in a program written in C++ as simple as in other languages, without losing the power it offers.

How can I learn C++?

There are many ways. Depending on the time you have and your preferences. The language is taught in many types of academic forms throughout the world, and can also be learnt by oneself with the help of tutorials and books. The documentation section of this Website contains an online tutorial to help you achieve the objective of learning this language.

What is OOP: Object-oriented programming?

It is a programming model that treats programming from a perspective where each component is considered an object, with its own properties and methods, replacing or complementing strutured programming paradigm, where the focus was on procedures and parameters.

Is C++ a propietary language?
No. No one owns the C++ language. Anyone can use the language royalty-free.

What is ANSI-C++?

ANSI-C++ is the name by which the international ANSI/ISO standard for the C++ language is known. But before this standard was published, C++ was already widely used and therefore there is a lot of code out there written in pre-standard C++. Referring to ANSI-C++ explicitly differenciates it from pre-standard C++ code, which is incompatible in some ways.

How may I know if my compiler supports ANSI-C++?

The standard was published in 1998, followed by a revision in 2003. Some compilers older than the standard implement already some of its features, and many newer compilers don't implement all ANSI-C++ features. If you have doubts on whether your compiler will be able to compile ANSI-C++ code, you can try to compile a piece of code with some of the new features introduced mainly after the publication of the standard. For example, the following code fragment uses the bool type, and uses namespaces and templates.

#include 
using namespace std;
template <class T>
bool ansisupported (T x) { return true; }

int main() {
if (ansisupported(0)) cout << "ANSI OK";
return 0;
}
ANSI OK

If your compiler is able to compile this program, you will be able to compile most of the existing ANSI-C++ code.

How can I make windowed programs?

You need a C++ compiler that can link code for your windowing environment (Windows, XWindow, MacOS, ...). Windowed programs do not generally use the console to communicate with the user. They use a set of functions or classes to manipulate windows instead, which are specific to each environment. Anyway the same principles apply both for console and windowed programs, except for communicating with the user.

What is Visual C++? And what does "visual programming" mean?
Visual C++ is the name of a C++ compiler with an integrated environment from Microsoft. It includes special tools that simplify the development of large applications as well as specific libraries that improve productivity. The use of these tools is generally known as visual programming. Other manufacturers also develop these types of tools and libraries, like Borland C++, Visual Age, etc...

History of C++



During the 60s, while computers were still in an early stage of development, many new programming languages appeared. Among them, ALGOL 60, was developed as an alternative to FORTRAN but taking from it some concepts of structured programming which would later inspire most procedural languages, such as CPL and its succesors (like C++). ALGOL 68 also directly influenced the development of data types in C. Nevertheless ALGOL was an non-specific language and its abstraction made it impractical to solve most commercial tasks.


In 1963 the CPL (Combined Programming language) appeared with the idea of being more specific for concrete programming tasks of that time than ALGOL or FORTRAN. Nevertheless this same specificity made it a big language and, therefore, difficult to learn and implement.


In 1967, Martin Richards developed the BCPL (Basic Combined Programming Language), that signified a simplification of CPL but kept most important features the language offered. Although it too was an abstract and somewhat large language.



In 1970, Ken Thompson, immersed in the development of UNIX at Bell Labs, created the B language. It was a port of BCPL for a specific machine and system (DEC PDP-7 and UNIX), and was adapted to his particular taste and necessities. The final result was an even greater simplification of CPL, although dependent on the system. It had great limitations, like it did not compile to executable code but threaded-code, which generates slower code in execution, and therefore was inadequate for the development of an operating system. Therefore, from 1971, Denis Ritchie, from the Bell Labs team, began the development of a B compiler which, among other things, was able to generate executable code directly. This "New B", finally called C, introduced in addition, some other new concepts to the language like data types (char).


In 1973, Denis Ritchie, had developed the basis of C. The inclusion of types, its handling, as well as the improvement of arrays and pointers, along with the later demonstrated capacity of portability without becoming a high-level language, contributed to the expansion of the C language. It was established with the book "The C Programming Language" by Brian Kernighan and Denis Ritchie, known as the White Book, and that served as de facto standard until the publication of formal ANSI standard (ANSI X3J11 committee) in 1989.


In 1980, Bjarne Stroustrup, from Bell labs, began the development of the C++ language, that would receive formally this name at the end of 1983, when its first manual was going to be published. In October 1985, the first commercial release of the language appeared as well as the first edition of the book "The C++ Programming Language" by Bjarne Stroustrup.


During the 80s, the C++ language was being refined until it became a language with its own personality. All that with very few losses of compatibility with the code with C, and without resigning to its most important characteristics. In fact, the ANSI standard for the C language published in 1989 took good part of the contributions of C++ to structured programming.


From 1990 on, ANSI committee X3J16 began the development of a specific standard for C++. In the period elapsed until the publication of the standard in 1998, C++ lived a great expansion in its use and today is the preferred language to develop professional applications on all platforms.


C++ has been evolving, and a new version of the standard, c++09, is being developed to be published before the end of 2009, with several new features.

Monday, April 7, 2008

Which is the best browser alternative to Safari?

IBASICS
Which is the best browser alternative to Safari?


Michel Munger
LOW END MAC


The Macintosh platform is blessed with a great selection of browsers. Safari is nice, but it comes with one annoying limitation to many of us. You have to buy a US$129 system upgrade when you want to make the jump to a new version.


There are many other free or inexpensive products that do a great job and could be used on a regular basis, but which is right for whom? Let’s find out. Internet Explorer has been left out of this article because Microsoft is not involved in the Mac browser business anymore. Netscape and the full Mozilla suite have also been left out because all their releases are now based on Firefox.


FREE BROWSERS

Firefox

Mozilla Firefox


If you liked Netscape a few years ago, Mozilla Firefox could be your favorite today. It now is the flagship browser of the Mozilla Foundation and successor to the venerable Netscape Navigator. Its menu structure and preferences boxes are based on Netscape’s, but the browser itself has evolved a lot.


Firefox is mostly a simple well-thought-of browser. It offers tabbed browsing, password management, a highly customizable interface, strong security, and a great implementation of Web standards. When other browsers are not allowed to access a site that requires forms or secure connections, Firefox usually does the job.


It comes short if you compare its feature set the competition, and it launches slowly because it loads its Mac interface independently from the system’s resources. However, its robustness, its compatibility, its RSS support and its clean looks with Tiger’s unified bars make it a breeze to use.


A major advantage: its swift open source development make it a mainstream browser that evolves very quickly… for free. The developers update it quickly to patch security holes, most of the time before they are even exploited.


What makes Firefox attractive is that every feature seems to be implemented the right way by a bunch of perfectionists. In example: the Find function is nicely located at the bottom of the browser window, making it subtler than a window that pops in your face. You can keep it permanently if you wish, and it won’t get in the way.


As far as the interface is concerned, what I appreciate is the extra space between buttons and other elements to make everything easier to the eye. A minor complaint, however: it does not use Mac OS X’s widgets for submit buttons and checkboxes in Web forms.


What separates Firefox from the pack in terms of customization is the Extensions feature. It allows anybody to create and use other people’s custom features.


Firefox is also available on more platforms (Mac, Windows, Linux and many others) making it a good choice for those of us who want the same setup in different environments. Not only is it cross-platform, but it also is available in more languages than any other. This is great for those who want to use it in languages that are not widely supported.

Camino

Mozilla Camino


You can consider Camino to be Firefox’s little cousin on the Mac side. Developed by the Mozilla Foundation, it is free Mac-only product coded in Cocoa, the best programming environment to use in order to fully take advantage of Mac OS X’s features.


For the most part, Camino works like Firefox, but it has a better Mac-like look and feel, and it is a bit lighter and faster.


The big drawback is that Camino’s development pace can be fast at times and sluggish later. You can wait several months for an update while competitors will at least release security updates every few weeks.


COMMERCIAL BROWSERS

Opera

Opera


The next option is Opera, and it is a monster. Every browser has strengths but this one gathers them all. Among the browsers I tested, Opera packs more features than any other, and it seems to be the fastest.


I would even label it a heavy-duty, professional browser. It allows users to tweak and personalize it through an extensive set of preferences, and it is robust enough to sustain long browsing sessions without slowing down.


Advanced features include saving sessions. Opera saves all open pages to resume the session later. This acts as a nice complement to the browser history, especially to shorten browsing time.


By pulling down the Quick Preferences menu, you can identify Opera as itself, Mozilla or Internet Explorer. You can also tailor your controls for pop-up windows, Javascript and cookies, among other things.


As for other browser developers, the folks at Opera offer now-standard features such as tabbed browsing, menu bar elements to differentiate secure from non-secure pages, password management, forms autofill, RSS feeds support, etc.


My favorite feature would probably be the full screen mode. When you turn this on, the browser takes the whole screen, which is handy when you want to focus on reading an article or view a movie site, or simply give the browser more screen space to view a large page. I never understood why most Mac browsers overlooked this functionality.

Opera

Click on the image for full size


None of the features mentioned above is necessarily groundbreaking or spectacular. What makes Opera special is that it gathers them all in one package.


My only gripes are about site compatibility. Opera was the only browser that was unable to log in at my banking site or my job’s Microsoft Outlook Web access, and it was the only one to display a few pages incorrectly. The folks at Opera said, in example, that the Outlook server software required an upgrade in order to work with Opera, but I can imagine the laughs from the guys at the office’s IT department if I told them to upgrade their server for one user who wants to check his e-mail when he’s out of the office. They’ll tell me to use another browser, simply. Such are the realities of the real world, and this is a weakness for Opera. When you have to pay for it, it makes you think twice before buying it.


Such complaints aside, Opera is a complete package for professional browsing needs. You can download it for free, and if it works well enough for you, it costs US$39 to get rid of the advertising and access premium support.

OmniWeb

OmniWeb


How to describe OmniWeb? It probably is the most Mac-like browser on the market. The feature set is pretty complete, and its interface really feels like it was designed for Mac OS X.


One of OmniWeb’s top features is called Workspaces. It saves sessions – Opera also does this – but its session management interface is more detailed. This kind of feature is great for those who need to access a certain set of Web sites at the same time, as I often do at work. It also makes it easier to resume a session if the browser crashes.


My favorite feature in OmniWeb is the ability to customize the site preferences. OmniWeb keeps prefs for just every Web site, so you can change settings for appearance, security and ad blocking. Every site will behave the way you want it to, and that is very neat. No other browser gives you that much control over each site.


I do have a big complaint, however: OmniWeb’s performance in terms of page rendering seems sluggish. In fact, it was the slowest among all my browsers with my favorite sites, and the application itself could be more responsive. The Workspaces feature can save you time, but the page rendering can make you waste time. Given the fact that OmniWeb costs US$29.95, I find this unacceptable.


Conclusion


My recommendation? Mozilla Firefox is the best all-around browser. It always free while new Safari versions come with expensive system upgrades. Unlike Camino, Safari and OmniWeb, it is also available on other platforms. Although it lacks some of Opera’s features, it provides better compatibility with Web sites. It is a photo-finish, and in my opinion, Firefox wins by a nose.



Links:

Camino
Firefox
OmniWeb
Opera

Maintenance, Part 3: Test Your Hardware

Maintenance, Part 3: Test Your Hardware


Michel Munger
LOW END MAC


After reading my two previous columns about Macintosh maintenance, you became a knowledgeable expert. You know how to maintain a hard drive and optimize your system software. You just need one more thing: knowing your hardware well enough to detect any “physical” problems with your Mac.


If, in the first two parts of the tutorial, third-party software was useful but optional, hardware tests will require one mandatory product: TechTool Pro 4 (TTP4). This piece of software, which Micromat sells for US$97.97, is simply brilliant. I would not recommend it over DiskWarrior for disk directory work, but it is a gem for various hardware tests and verifications.


What you gain from using it is the ability to find out if your hardware deserves a clean bill of health or if it needs repairs and replacement. You should run the tests whenever you want to, or whenever you feel that some of your hardware, even a simple port, may be failing.


There are two categories of tests. To use the first one, launch TTP4, click on the Tests pane and select the Hardware tab.

TechTool Pro 4

Cache: The L1, L2 (and sometimes L3) caches are types of memory that react much faster than your computer’s RAM. The caches are central to computer performance because your processor stores frequently-used instructions in them, to the point where any dysfunction would cause serious problems. This test verifies that the caches are present and makes sure that the memory is working well.


Clock: The clock speed of the processor (and bus) is a well-known bit of information. It is one of the keys to processing and its improvement makes computers faster as long as the processor architecture keeps evolving. This test verifies that the circuits are working well.


FireWire: You probably are very familiar with this interface that allows you to plug in external devices such as hard drives and CD/DVD drives. This test verifies that the internal FireWire circuits are working well, but it does not verify the ports themselves.


Main memory: Of course, your RAM is another central part of your computer. The faster the RAM, the more system performance you can enjoy, and the more you have, the better it is. If it gets corrupt, however, your computer may behave as if a nuclear bomb had been dropped in your backyard. This test verifies every RAM chip from top to bottom. Any damaged RAM chip has to be thrown out as soon as it is detected.


Mathematics: This test verifies your Mac’s ability to make calculations correctly. This is another thing that makes your Mac behave badly when damaged.


Network: This test makes sure that your Ethernet interface is available and gives you its status.


Processor: The processor is on top of the list in terms of hardware importance because it is like the brain in the human body. The tests make sure that your processor is handling all instructions the right way.


USB: This is the same thing than the FireWire test, but it applies to the USB circuits.


Video memory: Video memory is necessary for your monitor to display everything correctly. If it is damaged, there will be dead pixels, noise, freezes, or even crashes.


The second category of tests is related to hard drives. To access it, just click on the Drives tab.


Disk Controller: This is a key hard disk drive test. It verifies the mechanism of internal and external drives, and some of its verifications will even work on CD and DVD drives. If this test fails, you may be dealing with a dead disk.


Read Write: You guessed it, this test performs some reading and writing tasks to make sure that your disk can read and write data reliably at all times.


Surface Scan: This can be a long and annoying operation, but it is absolutely necessary for the safety of your data. When bad blocks are detected on a disk, your Mac will avoid using them - this is called “mapping out” - to prevent data loss. Good blocks can go bad without a warning sign. Run this every three months.

ColorSync


There are also other things you can do to make sure that your hardware is working properly.


Did you just print a color document, only to see that the colors on the screen do not match the print itself? If you did everything you could to set the software preferences, you may need to calibrate your monitor and make sure that it has the right ColorSync profile. Read the display manufacturer’s instructions and try the following trick:


Go to the Applications folder and open the Utilities subfolder. Launch the ColorSync Utility and click on the Profile First Aid. Click on the Verify button. After the verification process, any damage will be reported in red and you should click on the Repair button. These steps are necessary when you have a damaged color profile, and it can mess up the colors when you print documents.

Profiler


You installed an additional disk on your Mac or plugged in a new device and your Mac cannot “see” it in any way? Open the Utilities folder mentioned above, and launch the System Profiler. Alright, this is not a thing of beauty, but it will list all the hardware inside and connected to your Mac. If anything is suspiciously missing, you have diagnosed a hardware problems. Great, isn’t it?


That’s it for maintenance, folks. You know quite a few things to maintain your Mac without the help of a technician. Nurture your Mac and it will reward you with extra years of use. Enjoy.


Link

TechTool Pro 4, US$97.97

Maintenance, Part 2: Optimize Mac OS X

Maintenance, Part 2: Optimize Mac OS X


Michel Munger

LOW END MAC


Now that we know how to protect a hard drive and its data, it is time to find ways to maximize the performance of Mac OS X itself. The following maintenance tips should allow you to keep your system software lean and mean, making your Mac faster, more reliable and keeping more disk space available.


My first tip is a hardware tip, even a UNIX tip. As most of you probably know, Mac OS X is a UNIX-based system. UNIX is known for its robustness, security and stability, but it is a resource-hungry system. It particularly requires large amounts of RAM to deliver the best possible performance. As they say, size does matter… for these things anyway. Therefore, I recommend that you install as much RAM as you can afford on your Mac. You will thank yourself for it because it makes a genuine difference.


Classic


The way you allocate your RAM also has an incidence on your system’s performance. When your launch applications, they use the memory and divide it between themselves. Memory hogs such as Photoshop generally need to eat up solid chunks of RAM to offer their best performance, so keeping a minimum of applications open is always a good thing. If you have to work with several open applications, you should really install all the memory that your Mac can handle. RAM is cheap nowadays anyway.


Among applications, Classic can slow Mac OS X down when it is open. Keep it closed when you are not using your legacy software. If Classic slows your Mac down to the point where your productivity level suffers, it may be time to shop around for a replacement for your favorite Mac OS 9 applications. For years, I thought I would never find a simple and suitable replacement for GoLive 4, and yet, I found a magnificent open-source solution recently. (We will expand on open-source software in a later column.)


No matter how much RAM you have installed and how you use your applications, there are further ways to keep Mac OS X zippy.


Cocktail


Save disk space


The first one is to have the smallest possible number of files on the startup disk. Why? As we explained in the first part of this tutorial, your disk keeps track of your files in a directory. When your directory is too large, it does the same thing than when it gets messy: your disk has to work unreasonably hard and it slows down the overall performance. Just imagine that you have to search for a book in different libraries. It will take you less time to find your book in a small and organized library than in a large and disorganized library. Another important motive to keep in mind is that Mac OS X uses virtual memory, and having plenty of free space on the startup disk is a great bonus for your system.


Therefore, the leaner your startup disk is, the faster your Mac will be. You have learned, in Part I, how to organize the directory. Now, you may want to consider how to shrink the amount of used space. Do not hesitate to use my previous tip to divide your drive into a “system” and a “data” partition to achieve this goal. Separating the files from the system is great for speed as well as security.


Another burden your Mac shouldn’t have to carry around: logs, caches and histories. Don’t get me wrong. Those files are useful, but if you never clean them up, they will become cumbersome and they may even corrupt.


Mac OS X behaves as a server because UNIX is server system software. If you leave it on from 3:15AM to 5:30AM, it will perform background daily, weekly and monthly maintenance routines. If you do not like leaving your computer on during the night, there are two ways to trigger the routines manually.


The simple way: download and purchase the Cocktail utility. Launch it and click on the Files icon. Then, select the Caches tab, make sure that User, System and Internet are checked, and click on Clean. Once this is done, click on the Logs tab and click on the Delete button. Do this every other week or monthly.


The geeky way: when logged in with an administrator account, go to your startup disk, open the Applications folder, and then the Utilities subfolder. Launch the Terminal. Without quotes, type “sudo sh /etc/daily” and enter your password. Let your Mac run the routine and wait until you see your username again. Repeat the drill with “sudo sh /etc/weekly” and “sudo sh /etc/monthly”.


Terminal

Safari

If you have been running your Mac for months or years without doing any of this, you should save plenty of disk space and you may notice a difference in terms of performance.


By the way, don’t forget to clean up and reduce the size of your Web browser’s cache. Erasing the browsing history, reducing the number days kept in the history and minimizing the number of stored cookies will also help. Those can really slow you down when browsing.


Another way to save disk space: if you reinstall Mac OS X, make sure to select only the frequently-used languages and printer drivers before installing. This will prevent the installation of a very important number of files on your system disk. If you haven’t used Simplified Chinese in the last few years and that none of your friends or relatives are familiar with it, keep it off your hard drive. You can always add it later on.


You want to save even more space? Whenever you install software, always keep the original installer around, even when it is shareware. Most products will offer you an Uninstall option right in the installer, or a separate Uninstaller application. When you stop using software, get rid of it. It will save disk space, and a proper uninstall process will also remove all the now-useless related files.


Permissions


Fix your files


Among Mac OS X’s UNIX characteristics, there is the use of file permissions. When these get messed up, you may be unable to use all the functions of your favorite software or you may have problems handling some files. To keep such annoyances out of the way, repair your permissions every month with the Disk Utility.


Lastly, corrupt files, depending on which they are, can cause their share of problems. It is always good to find out if you have any, in order to toss them out. TechTool Pro 4 does a fantastic job testing files and reporting issues. While using TechTool, why don’t you also run the File Info test to see if your file icons and other information need to be fixed? Both tests can easily be found in the Tests category, under the Files tab.


Among corrupt files, look out for corrupt fonts. They can make your applications unstable. And when you have too many of them loaded, your Mac’s performance will decline. I suggest looking at this list of basic system fonts (for Tiger) and disabling all other fonts until you need them. The Font Book (introduced with Panther) is located in the Applications folder. Launch it, select the fonts you want to disable, and click on the checkmark button in the middle of the window. You can always turn a font on later.


Job done!



Links

Cocktail, US$14.95
TechTool Pro 4, US$97.97

Maintenance Part 1: Protect your hard drive

IBASICS
Maintenance Part 1: Protect your hard drive


Michel Munger
LOW END MAC


In order to squeeze as many years of use as possible out of a Mac and to keep it zippy, you need to do some basic maintenance. In this three-part tutorial, we will cover some hardware and software maintenance, and this first piece is about the hard disk drive.


Your drive is the most important to maintain because your data resides on it, and is the one where potential human intervention is the most extensive.


Here is a brutal reality: your hard drive has mechanical parts that will fail one day. You should not ask yourself if it will fail, but when. There are two cases of data loss that you can prevent. Number one: your disk gets confused by damaged directory structures. Number two: your disk’s life has been shortened by abusive wear and tear, and it crashes.


Protecting your directory


The first step is maintaining the directory structures, and it is the easiest one because unlike a crash, directory damage can be fixed. Basically, your directory keeps track of all your files, from the system to your tiniest JPEG or Word document. If the directory is “broken”, your hard disk doesn’t know where the files are, and can overwrite or damage them.


Directory damage is sly. It comes in without knocking and it doesn’t let you know about its presence. In fact, data loss can happen several weeks or several months after directory damage, which makes directory protection a mandatory preventive maintenance task.


To avoid data loss, you first have to start with the right formatting and journaling. This feature, available under Panther and Tiger, monitors your disk’s activity and keeps it in a log. Should your Mac shut down unexpectedly or should you go through disk problems, recovery will be faster and repairs will be easier.


If your disk is already formatted, start up your Mac from the Mac OS X Installation CD – hold down the C key at startup - and use the Disk Utility to turn journaling on. TechTool Pro 4 and Cocktail, in example, can also handle it. If you are reformatting your disk, choose “Mac OS X Extended (Journaled)” before going ahead.


Journaling Journaling

On top of journaling, I add another recommendation when formatting: splitting your drive in system and data partitions. Partition 1 should be used for nothing but the Mac OS X system and applications, and Partition 2 for your documents. Why? With that kind of setup, should the system partition run into serious trouble, you can still access your documents partition to salvage data in case you didn’t have a full backup.


Ideally, this kind of split should be done with two hard drives – a “system” drive and a “file deposit” drive - but I recommend partitions if you are on a budget.


DFA

Disk utilities


Journaling isn’t everything. You still have to do preventive maintenance to detect potential directory damage before it is too late. Firstly, you should know that Apple’s basic Disk Utility can do a fine job unless it runs into severe damage. To use it, start up your Mac with your Mac OS X Installation CD and launch the Disk Utility. Then, choose a disk, click on First Aid and click on Repair Disk. Running this test every two weeks or once a month is a smart idea.


If Disk Utility reports damage that it cannot repair, you have to decide whether you want to back everything up and reformat your drive, or if you prefer using a utility to fix it. Most people like to use a utility. Several of them are available, but which one should you adopt between DiskWarrior, Techtool Pro and Norton SystemWorks?


The answer is tricky because each of them has strengths and weaknesses.


Alsoft DiskWarrior is the pound-for-pound champion. It draws a graph of your disk directory to let you know if it needs to be rebuilt. If you rebuild the directory, a task that takes a bit of time on a system disk, all potential damage disappears because DiskWarrior discards the old directory and replaces it with a new one.


If you have DiskWarrior handy, just start up your Mac from the DiskWarrior CD. Click on the Directory button, then click on Graph to see the graphic and click on Rebuild to go ahead with directory rebuilding. Doing this once a month or every other month should be enough.


DiskWarrior


TechTool Pro 4 works differently because it separates the job into parts. Under its Tests panel, TechTool can scan and rebuild volumes structures (this takes a long time to do). It can optimize the directory separately, with the feature called Maintenance, found under the Performance panel. TechTool Pro 4 does some nice work, but personally, I have had some trouble with its slow execution, and it sometimes damaged my directories. On the other hand, it comes with an amazing set of hardware tests, which we will talk about in a future column.


TTP 4Where does Norton SystemWorks stand? I know, it has a bad reputation, in part because Symantec is not a good Mac developer, but there are reasons to like it.


Norton, with its Disk Doctor component, tries to “patch” your disk directory instead of rebuilding it from A to Z. Therefore, Norton is the fastest utility for preventive maintenance. The big drawback is that patching is not easy, it is not always a permanent solution and it even exposes your directory to additional errors. This is why, in part, Norton caused trouble when “fixing” some people’s disks.


Don’t demonize it, however, because apart from speed, it has another major strength. Do you remember the old days, when you used Mac OS 9, and saw a flashing question mark at startup? Your Mac was unable to mount your disk, even if any utility was able to “see” it.


This can also happen under Mac OS X, with the difference that when starting up, you get a “Please restart your computer” screen, a UNIX crash known as a kernel panic. Believe it or not, Norton Disk Doctor is the best tool when this happens. It fixes a series of major errors and mounts your drive. Just when things looked hopeless, Norton saved your butt…


The final verdict on utilities? If money is not a concern, buy all three because each of them has different strengths. If you have to stick with just one, DiskWarrior is my recommendation. And if you cannot mount your disks correctly, Norton is probably less expensive than bringing your Mac to a technician…


Minimize the workload


As I stated above, a hard disk drive can crash because of wear and tear. To prevent this, you have to minimize your disk’s workload. The first way to achieve that? Know when to put your Mac to sleep and when to shut it down. The jury is still out on this one, mostly because there are many credible theories about the amount of wear and tear caused by different user habits.


Here are the main points:


  • Every time you start up your Mac, the cold hard disk receives an electrical charge and works very hard to get your Mac ready for use. This puts a lot of stress on a drive.
  • If you leave your Mac on at all times, your disk remains hot and it keeps spinning, wearing it out slowly.
  • If you put the computer to sleep or put the disk to sleep, every wake-up process will put some stress on the drive.


Therefore, there is no perfect solution. Apple recommends to shut a computer down it you do plan to use it for 8 hours or more. Otherwise, you may put it to sleep or leave it on. Personally, I have been observing this advice and it always served me well.


Optimize your files


Another method to reduce your disk’s amount of work is to defragment your files and optimize your data. When your files are fragmented and in a mess, your hard drive has to work harder to read and write them. Imagine that all your tools are scattered in your house. Putting them all together in a basement room, for example, will spare you a lot of time and efforts when picking many of them up at the same time. The difference, with a hard drive, is that the additional wear and tear actually makes it crash earlier than it should.


What can you do about it? Optimize your data’s location on the disk. I know two tools that do this well: Norton Speed Disk (part of Norton SystemWorks) and TechTool Pro 4’s Optimization feature. Both will analyze your files and rewrite them to make file access a lesser pain. Your system will also run faster as a result.


There is no consensus about file optimization because the operation is demanding for a hard drive. Therefore, it is crucial to take a good look at the graphics produced by the optimization tool before going ahead with the whole process. Defragment and optimize your disk only when fragmentation is severe. For most users, this will be necessary two or three times a year.


Verify your S.M.A.R.T. status


Are you smart? Actually, what I mean to ask is whether your disk passes the S.M.A.R.T. test. The Self-Monitoring Analysis and Reporting Technology can allow the smallest piece of software to take a quick look at your drive and let you know when it is about to fail. When you get a warning, it means that your drive may soon crash. It is nice to know it beforehand.

SMART


My product recommendation is free and it is called SMARTReporter. Once installed, it checks your disk at startup and displays a small icon in the Finder’s menu bar. The green disk means that everything is OK, and the red disk means… well, I’ll let you guess.



Related links

Computer Equipment: Turning It Off Versus Leaving It On
Alsoft DiskWarrior
TechTool Pro 4
Norton SystemWorks
SMARTReporter (free)

Once a leader, Apple now follows the pack

MACINTHOUGHTS
Once a leader, Apple now follows the pack


Michel Munger
LOW END MAC


When you take a phenomenon and look back to put the whole picture in perspective, the landscape can reveal some fascinating shapes and colors.


More or less a decade ago, the Macintosh was a closed, tightly integrated platform. Today, it increasingly looks like a PC - minus hardware clones and the Windows operating system.

For almost a decade, the Macintosh was in a world of its own. With its object-oriented operating system; Motorola processors; NuBus slots; Apple Desktop Bus; nonstandard serial, network, and video connectors; and SCSI hard drives, the Macintosh was a bit of an oddball in a computer industry that revolved increasingly around the Windows/Intel standard.


Conformity


Apple’s focus was on ease of use and performance, even if it meant selling machines at higher prices. Its competitors cared more about price and didn’t catch up with Apple’s user-friendliness obsession until much later.

In the mid-90s, Apple started building the Mac around a more open architecture by adopting some standard PC components - and by licensing some vendors to build and sell Macintosh clones. The clone licenses were terminated when Steve Jobs came back to Apple a few years later, but the movement toward industry standard components hasn’t stopped.

If you look at today’s Mac, you can see how the platform has changed. Apple gradually adopted IDE/ATA drives, PCI slots, standard video and network connectors, and USB, among other things. Some “Windowsish” features have become part of the Mac OS. For example, when Mac OS 8 came out, contextual menus and “sticky” menus became part of the Mac OS.

The biggest change ever looked scary at first: Apple announced that it will dump the PowerPC processor in favor of Intel’s chips.

Even one-button mouse couldn’t resist the revolution when Apple realized that it needed to offer its own programmable multibutton mouse (the Mighty Mouse) to the general public.

In two years, Macintosh hardware will almost be the same as a Windows PC - except that it will run Mac OS X. Apple’s philosophy shows itself more in its system software, software-hardware integration, and general innovation than in building the best possible machine.


Mistakes?


Was Apple wrong with its initial choices?

That’s a tough call to make, especially since every step toward industry standards has been followed by loud boos from some of the Mac’s most loyal fans.

If Apple sacrifices overall hardware quality for better prices and slowly realizes that it sometimes has to follow the PC herd, it also means that the company is eliminating barriers to the Mac’s adoption. Fundamentally, it means that standardization can be a key to survival, especially when Apple’s market share stands at 2.5%.

Many questions remain: Why choose more expensive components when, in the end, Apple’s philosophy shows through its system software? Why ignore the multibutton mouse for so long when there was demand for it? Why choose the PowerPC architecture, only to dump it after hitting a development ceiling?

The answers may not be obvious.

More importantly, how much further can Apple take the Mac towards standardization without hurting its credibility? The switch to Intel chips leaves many of us scratching our heads, especially when we remember Apple’s claims that the PowerPC was technologically superior to anything x86.


Identity


Are we just running PCs with a Unix-based operating system? Are we realizing that as the years go by, our platform is taking the road to conformity?

Do we still “Think Different”? How different are we thinking nowadays?

One of the elements that makes the Mac attractive is the impression that Mac users are different from the masses, the black sheep who escape the conformity of Microsoft’s powerful software monopoly.

In a way, it’s hard to admit that the dissimilarity dwindles with time. It makes some Mac users feel like rebels without a cause, and a few even think that if Apple keeps adopting PC standards, getting a PC may be the right thing to do in the future. I find this argument ridiculous, but I have heard it often enough to know that there are Mac users who are serious about it.

In my opinion, Mac OS X that stands out as the main reason to stick with Apple. The security offered by the current Mac OS, its ease of use, its larger commercial software selection than most Unix systems, and Apple’s swift development give the Mac a unique mix.

Apple’s innovations have to be kept in mind, too. It’s always great to be among the first to benefit from the neatest products to hit the market, such as the iPod.


I do have the impression that Apple could make a little effort to strengthen the Mac identity again. A new campaign designed to be the successor to Think Different would certainly be appreciated, so that when we acquire our next Macs some of us “forget” that they have “Intel inside”.

Saturday, April 5, 2008

How to Troubleshoot Your Home Network



Wi-Fi that crawls, connections that come unconnected, and printers that stop sharing — our expert provides remedies for these common network woes.



Having a hard time with your home wireless network? In this installment of "Answer Line," Lincoln Spector tackles some of our readers' most pressing networking questions. Got your own tech puzzler for Lincoln? Send it to answer@pcworld.com.


Why can't my PCs see each other on the network? They can all see the Internet.
-- Chris Kwon, Dumont, New Jersey


Since all of your PCs can see the Internet, we can safely assume that you don't have a network hardware problem.


Let's start our sleuthing with Windows' network troubleshooting wizard — not because it's likely to help, but because it's quick and easy. In XP, select Start, Help and Support. Click Fixing a problem and then Networking Problems. In Vista, select Start, Help and Support. In either version of Windows, click Troubleshooting, followed by Troubleshoot problems finding computers on a home network.


ZoneAlarm Firewall Settings--click for enlarged image. If you can't see one of your PCs across your network, add it to a trusted zone in the firewall's settings.


If that operation doesn't help (and it probably won't), check your firewall. Third-party PC firewalls like ZoneAlarm and Norton Internet Security often block local networks. As a safety precaution, begin by disconnecting your Internet connection, either by turning off your DSL or cable modem or by unplugging the cable that connects the modem to your router. Then turn off each PC's firewall.


If the computers still can't see each other, the culprit isn't a firewall.


If possible, turn on just one PC's firewall. Does the problem return? If so, check that PC's firewall settings and documentation to see how to make it local-network-friendly. You may have to add your other PCs to a "Trusted Zone" or some such group.


Repeat this process with each computer. Don't reconnect to the Internet until all of your firewalls are back up and working.


Here are some more steps to take to troubleshoot other potential trouble spots.


Click to see full image. Make sure the entry for 'Workgroup' is the same on all of your PCs, or the machines won't see each other on the network.



Make sure that all of your PCs are in the same workgroup: Press Windows-R, type sysdm.cpl, and press Enter. Click the Computer Name tab. If the workgroup name there doesn't match the workgroup name listed on your other computers, click Change.


Make sure sharing is on. Press Windows-R, type ncpa.cpl, and press Enter. Right-click the appropriate network connection, and select Properties. If File and Printer Sharing for Microsoft Networks isn't checked, check it.



If you're using Vista, you should also select Start, Network, and click Network and Sharing Center. There, you can fine-tune your sharing settings.


Click to see full image. Right-click the folder you'd like to share and click 'Share' in the pop-up menu to set its sharing properties.Justify Full

Make sure that you're sharing a folder:
In XP's Windows Explorer, go to the folder you want to share. If the folder's icon doesn't have a little hand under it, right-click it and select Sharing and Security. In the resulting dialog box's Sharing tab, check Share this folder on the network, and complete the other options as you see fit.


If your operating system is Vista, the folder's icon should have a tiny picture of two people in the lower-left corner. If it doesn't, right-click it and select Share. In the resulting dialog box, type everyone into the text field, click Add, adjust the permission level (if you wish), and click Share.
If the computers still don't see each other, try a last-ditch stupid trick that shouldn't work but sometimes does: Press Windows-R, type the other PC's network path, and press Enter. The network path is probably two backslashes and the computer's name on the network, such as \\chris.


If this gambit succeeds, you can map the computer as a network drive or create a shortcut to it.


How do I share a printer over a network?
-- Irving Waldorf, San Francisco


I know of three ways to do this. Let's start with the free one:
You can easily attach the printer to one PC and share it with others at no extra cost. But there's a flaw: You can't print from any of the more distant computers unless the directly attached PC is left on.


Control Panel's 'Printers and Faxes' sharing--click for enlarged image. To set your printer's sharing preferences, right-click its icon and choose 'Sharing' from the pop-up menu.


If you're OK with that, follow the printer's documentation to install it on your chosen PC. Then, in Control Panel's Printers and Faxes applet, right-click the printer, select Sharing, confirm that Share this printer is checked and click OK to accept the default sharing settings for your printer.


The 'Add a printer' option--click for enlarged image. On the remote computer, choose 'Add a network, wireless or Bluetooth printer' to browse for a shared printer on another PC.


On each of the other PCs, open Control Panel's "Printers and Faxes" applet and click Add a printer. In the resulting wizard, select the network option. It should find the printer and walk you through the rest of the setup.


If leaving the connected PC on all the time is a problem for you, consider buying a mini print server. Priced at $50 or less, a mini print server is a little box (often smaller than its own AC adapter) with a parallel or USB port at one end and Wi-Fi or Ethernet at the other. You plug it into the printer and the network, install a driver on all of your PCs, and everyone can print.


That's the theory, at least, and with a mini (or full-size) parallel print server, it's pretty much the reality. Any parallel print server should work with any parallel printer. For more about these handy devices, see Robert Strohmeyer's blog entry "Ease Small Office Growing Pains with a Mini Print Server."


Things aren't so simple with USB. If your printer lacks a parallel interface, you'll have to find a USB print server that supports your specific printer. You may have some luck searching on your favorite search engine for your printer model and the text string print server. Alternatively, you might check with the printer vendor and see which server it recommends.
Using a print server creates two other problems: It introduces yet another juice-wasting, always-on electronic device; and it leaves you with one more wall wart taking up surge-protector space.


If those problems turn you off, or if your printer lacks a parallel port and you can't find a compatible USB server, you can either accept the necessity of leaving the connected PC on at all times or turn to the most expensive option: buying a network-capable printer.


A printer that comes equipped with Ethernet or Wi-Fi is the simplest and most versatile solution, but the only way it makes sense economically is if you need a new printer, anyway. Just keep networking capabilities in mind the next time you go shopping for a new printer. Network-capable printers are available in all price ranges.


Why does my wireless speed vary so much, and why doesn't this variation seem to affect Internet performance?
-- Fritz Clayton, Las Vegas


If you've ever tried listening to the radio while your car was going through a long tunnel, you know that environmental variables affect wireless signal transmission. A family member turning on the microwave oven or a neighbor booting a Wi-Fi-equipped PC next door can degrade the Wi-Fi signal in your home.


And that interference -- if it doesn't kill the signal outright -- results in a slower connection. So it's not surprising that your Wi-Fi signal may be slower one day than another.


Why doesn't this reduction in data transfer speed appear to slow your Internet connection? The 802.11g Wi-Fi standard tops out at a transfer rate of 54 mbps. Even if interference cut the actual rate to a fifth of that speed, it would still be faster than almost all American household broadband connections. If you lived in Japan, where speeds of 60 mbps and higher are common, you probably would notice the difference -- and the lower transfer rate will certainly hamper the performance of such non-Internet network chores as transferring files from one PC to another. Hope for a strong Wi-Fi connection on the day when you want to transfer several gigabytes from one PC to another.


Or if hope isn't enough, see "25 Questions, 25 Answers" for tips on how to improve your Wi-Fi signal.

Content by:

Technology advice you can trust (Content by:)




6 Steps to a Faster Broadband Connection


Even if you're paying top dollar for high-speed Internet service, you may not be getting the performance you expect. Follow our guide to boost your broadband speed.


If you're serious about the Internet, chances are you spend anywhere from $30 to $99 per month for a broadband Internet connection. But regardless of how much you pay, are you getting all the speed that your Internet service provider promised you? And does your connection persist reliably without dropping out frequently or requiring modem reboots? With our quick guide, you can squeeze every last kilobit-per-second (kbps) of throughput out of your broadband modem and keep your connection running smoothly.


Six Steps to a Faster Broadband Connection // Speedtest.net (© PC World)


1. Test Your Connection Speed
Before you start tweaking, get a baseline reading of your downstream and upstream connection speeds at Speedtest.net. If possible, measure the speeds at different times of day, especially during the hours when you use the connection most frequently and at least once after midnight or 1:00 a.m. (when competition for bandwith is likely to be at its lowest level).


2. Update Your Firmware or Get a New Modem
If your cable or DSL modem is more than a couple of years old, ask your ISP for a new one. The exchange will probably be free; if there is a fee, you can usually waive it by agreeing to a new one-year contract. The latest cable modems meet the DOCSIS 2.0 (Data Over Cable Service Interface Specification) standard. If you have a 1.1 modem and a high-throughput plan, you'll likely experience a large speed increase just by swapping modems.


Even with a brand-new modem, make sure that you have the latest firmware installed. I upgraded my two-year-old Efficient Networks 5100b DSL modem from firmware version 1.0.0.39 to 1.0.0.53 and immediately saw my Speedtest throughput increase from 5.3 mbps to 5.9 mbps, just a hair below the 6 mbps that I'm paying for. Cable providers such as Comcast usually push new firmware to modems, so there's no need for most cable modem users to perform upgrades themselves.


To update your DSL modem, you'll have to connect to its Web interface, which means that you'll need to know the IP address of the modem on your local network. This information should be in your user manual; alternatively, you can find default settings for most modems on the Internet. The address will probably look something like 192.168.100.1 or 192.168.0.1. Enter this character string into your browser and the Web interface should come up. You'll likely have to sign in, using either a security code printed on the bottom of the modem or a default username and password (unless you previously changed it). Write down the login information for future reference.

Six Steps to a Faster Broadband Connection // Modem Firmware (© PC World)


Once you've logged in, check the firmware number on the status page and see whether a newer version of the firmware is available on the manufacturer's site. If it is, download this more recent firmware to your PC and then find and run the firmware update procedure from the modem's browser utility. Reboot, rerun Speedtest and see whether your data is traveling faster. Besides boosting transfer speeds, using a new modem or updated firmware can solve a host of nagging connection issues, such as intermittent dropouts.


Six Steps to a Faster Broadband Connection // Modem status screen (© PC World)


3. Check Your Modem Parameters
While you're updating the firmware, check some key parameters. First, the maximum allowed speeds (both downstream and up) should match your service plan. If they don't, your ISP didn't set your service up properly. Give your ISP a call and ask it to fix the setup remotely.


Second, look for signal-to-noise ratio (or SN margin) and line attenuation, both measured in decibels (dB). The lower the signal-to-noise ratio, the more interference you have and the greater the number of packets that will need to be re-sent because they didn't come through the first time. For this reason, a noisy line can dramatically cut throughput. Line attenuation measures the drop in voltage that comes with splitting the signal (especially for cable modems) and with long runs of cable or older wiring. Excessive signal loss will cause a drop in throughput.


For DSL modems, anything above about 50 dB for line attenuation is poor and 20 to 30 dB is excellent. For signal-to-noise ratio, 7 to 10 dB is marginal and 20 to 28 dB is excellent. My modem's SN margin registered at 12.5 dB, barely reaching the good range, and its line attenuation reading was 30.5 dB, which rates as very good. Note that acceptable ranges may vary depending on your service level and modem type (faster connections need to be cleaner), so check with your cable or DSL provider to see what numbers you should look for.


4. Troubleshooting Line Quality
If your off-peak Speedtest numbers didn't measure up to your plan's specifications and if you found poor signal-to-noise or line attenuation numbers, it's time to troubleshoot your wiring. Excessive noise may cause intermittent dropouts, too.


Your first task is to determine whether the signal is already degraded when it reaches your house or whether your own wiring is at fault. To test this, move your cable modem as close as you can to where the wire first splits. If possible, take a laptop and power cord for your modem outside to the junction where it connects to the house. Retest and see if things improve. If they don't, call your cable company. If your own wiring looks to be at fault, reduce the number of splits that occur before the wiring reaches your modem and/or replace the wire itself, which may be faulty. The ultimate solution for cable modems is to create a split directly after the junction box and then run a clean new cable directly to your modem, using the other split for all of your TVs (which are less affected by noise).


For DSL modems, noisy inside wiring tends to be due to the other phone equipment on your line. This interference is supposed to be controlled by the filters placed between the wall jack and each device. Make sure that they are all in place. If you still have too much noise, the best solution is to install a "DSL/POTS splitter" immediately after the phone box, where the wiring comes into the house, and then run a dedicated "homerun" wire straight to the modem. This arrangement will completely isolate your modem from the regular phone wiring -- and the new wire should help, too.


If you don't want to do this job yourself, you can ask your cable or phone company to perform both tasks for a fee.


Finally, improper grounding can be a source of noise, especially on cable. Make sure that all of your TV equipment is plugged into properly grounded outlets, with polarized plugs oriented in the right direction and without any three-prong-to-two-prong adapters. If you have an electric outlet tester, use it to check for excess voltage on your cable wiring. An electrician can find and fix any grounding problems, which are safety concerns as well.


5. Optimize Software Settings
Now that your cable or DSL line is as clean as you can make it, you're ready to tweak your system and applications for maximum performance, too.


For optimizing network performance parameters in Windows XP or Vista, we like TotalIdea Software's Tweak-XP Pro Premium and TweakVI Premium. Both programs simplify optimization without requiring you to understand Registry editing or hidden Windows settings. Both packages include dozens of tweaks in addition to network and browser adjustments. The Pro version of Network Magic, an excellent network monitoring utility, includes optimization capabilities as well.


Six Steps to a Faster Broadband Connection // Firetune (© PC World)


System-level optimization is less important in Vista than in XP, since Vista tunes your TCP stack dynamically. In fact, Vista users can probably get away with just optimizing specific applications, especially their browsers. To speed up Firefox page displays, try Firetune or Fasterfox. Both are free and one-click easy. Fasterfox adds a few more customization options for expert users. Both tweak low-level Firefox settings such as cache memory capacity, maximum simultaneous connections and "pipelining" (performing multiple data requests simultaneously).


6. Accelerate Your Downloads
Frequent downloaders can save huge amounts of time by using a download manager like our favorite, FlashGet. FlashGet creates multiple simultaneous download links and then puts the file together afterward. All you do is click or drag download links to the FlashGet window; the program does the rest. It integrates with Internet Explorer and works with Firefox using a companion utility called FlashGot.


Content by:

Technology advice you can trust (Content by:)