Wednesday, April 24, 2013

Rikcom School (Virtual Computer School)


Professional IT courses:

Practical Computer training:                                           Fees $USD
1. Certified Systems Administrator                                       150.00
2. Certified Network Administrator                                       150.00
3. Hardware Engineering                                                      100.00
4. Networking Engineering                                                    100.00
5. Computer Programming                                                   150.00
6. Advance Web Technologies                                             100.00
7. Ethical Certified Hacking                                                   300.00
8. Graphics                                                                            100.00
9. Online Marketing and Advertisement                               100.00
10. Microsoft office Software Packages                              50.00
11. V Satellite Technologies                                                 150.00

Free Computer Training Courses:

1. Basic Introduction to computing including typing
2. Kids Computing
3. Basic Microsoft Office (word, PowerPoint and Publisher)
4. Basic Introduction to the Internet
5. Basic Website designing
6. Basic Computer Hardware and Software
7. Basic Networking
8. Social Media
9. Working Online and making money online
10. Entrepreneurship

Course Description:

With the unstoppable and ever-increasing prevalence of ICT-technology and ICT-devices in every aspect of our lives, ICT has become one of the most rapidly evolving fields in this modern world, becoming vast and even more complex for users and experts alike. In this high level course participants will be made familiar with the concepts of ICT-Training.  Importantly, this course does not require technical IT-expertise.



Learning Objective: Upon completion of this course the participants will have the tools necessary to understand ICT-Infrastructure, Setup Computer Networks, Troubleshoot IT Problems, Develop Website, Develop Applications, Work from Home and Online, Setup your own IT Company, ETC
Target Audience:
This high level course is aimed mainly at Individuals, Students and Companies. Accordingly this course does not require IT-expertise.


Methodology:

The content of this course will be presented in a practical way, and will only include technical concepts to the extent where absolutely necessary. Practical examples and case studies will mainly be used in order to familiarize participants with the content of this course.

Enrolment Requirements:
The course has an open enrolment policy, thus no academic qualifications are needed. Since the language of delivery is English, appropriate English proficiency is recommended.

Certificate:
Upon successful completion of all courses (including the multiple choice tests), the student will be granted a certificate issued by RIKCOM SYSTEMS confirming the student successful completion of this course.


P.S ALL Courses are self- Parse
Enroll now and have access to all our free programs.


Scholarship and Special packages available for interested individuals

Call Us: 233208202908,233249356208,233232568899


Follow us on twitter: @rikcom_systems

Like us on Facebook: http://facebook.com/rikcomsystems
Website:  www.rikcomschool.edu20.0rg
                                                                                   


Tuesday, April 16, 2013

Graphics Programming in Linux


This article covers some basics of graphics programming in C.
I was a very avid graphics programmer, using Turbo C (actually, using graphics.c, a library usually taught to engineering students during labs). Trying to push graphics.c to its limits, I got stuck with its very limited graphics functionality and maximum resolution. When I discussed this with a teacher, he introduced me to OpenGL. I tried a few programs, and got fascinated with the rich graphics experience and platform independence. I thought of sharing my experiences with graphics programming using OpenGL, and contacted the LFY editorial team members, who were ready to provide me a platform.
OpenGL basics
OpenGL (Open-source Graphics Library) has three major library header files: gl.h, glu.h and glut.h. The gl.h (graphics library) is a low-level header file, with which you can draw lines, polygons, colour the background or the line, etc. The glu.h (graphics library utility) is a medium-level header. It uses the lower-level OpenGL functions, such as matrices for specific viewing orientation, rendering surfaces, etc. The glut.h (graphics library utility tool-kit) is a high-level library file and a window system-independent tool-kit to hide the complexity of different window system APIs.
Installation
Now, we need a Linux-based OS (I use Kubuntu 11.10); a compiler (GCC); an editor (Kate, Gedit, Kwrite, etc); the OpenGL header files… and some basic knowledge of C programming.
Make sure your PC has an Internet connection. Open a terminal and run sudo apt-get install gcc, entering the password when prompted, to install GCC. Next, for the editor, run sudo apt-get install kate (or gedit, kwrite or whatever you prefer, instead of kate). For the OpenGL headers, run ‘sudo apt-get install freeglut3-dev.
The Hello World  first step
Now for the classic first-time program. Open the editor, and enter the following code:
#include<GL/glut.h> 

void main(int argc, char**argv) { 
    glutInit(&argc, argv); 
    glutInitWindowPosition(100,100); 
    glutInitWindowSize(500,500); 
    glutCreateWindow(“Hello World”); 
    glutMainLoop(); 
}
Save the file as basic.c, and to compile it, run gcc basic.c -l glut at the terminal. Run the compiled binary with ./a.out. Here, we have imported glut.h (in the GL folder). To locate it, run whereis GL and it will give you the installed location, like GL: /usr/include/GL. There are just five basic functions used to create a window for drawing. The first, glutInit(), initialises the display. Then glutInitWindowPosition (int x, int y) specifies the screen location (upper-left corner) of the window. Next, glutInitWindowSize(int x, int y) specifies the size of the window; glutCreateWindow(char *string) names the window for identification, and creates it; andGlutMainLoop() is used to display the window and begin event processing.
The compilation command specified -l glut, which means, a link with the glut library file. By default, GCC names the output compiled binary a.out; to change it, specify the -o (output file name) switch for example, gcc begin.c -l glut -o hello.
Change the background colour of a window
The OpenGL function glutDisplayFunc (void function_name) is used to specify a user function that will handle the display of a window. Let’s use this to change the colour of a window:
#include<GL/glut.h> 
#include<GL/gl.h> 
void display() { 
    glClearColor(1,0,0,0); 
    glClear(GL_COLOR_BUFFER_BIT); 
    glFlush(); 
} 
void main(int argc, char**argv) { 
    glutInit(&argc, argv); 
    glutInitWindowPosition(100,100); 
    glutInitWindowSize(500,500); 
    glutCreateWindow(“Hello World”); 
    glutDisplayFunc(display); 
    glutMainLoop(); 
}
Save it as basic2.c, compile and run it as in the earlier example.
The three GL functions we used to colour the window background are:
glClearColor(R, G, B, alpha): This is used to set the colour for a window. The numbers you can use for each colour are between 0 and 1; you can use float numbers like 0.1, 0.11, etc.
glClear(GL_COLOR_BUFFER_BIT): This clears the screen to the desired colour set by glClearColor.
glFlush() executes the commands to the screen rather than storing it in a buffer.
In the next part of the series, I plan to explore how to draw lines and triangles, and use keyboard inputs.
Acknowledgement 
I would like to thank Dr Brijesh Kumar for his help and guidance.

Thursday, March 28, 2013

Configuring Windows Server 2008 Server Core Basic Networking Settings


Like any other server, Server Core machines must be properly configured to be able to communicate on your network. Some of these settings include:
  • Configuring an IP address
  • Configuring an administrator's password
  • Configuring a server name
  • Enabling remote MMC snap-in management
  • Enabling remote RDP connections
  • Enabling remote Windows Firewall management
  • Enabling remote shell management
  • Activating the server
  • Joining a domain
  • Configuring Windows Updates
  • Configuring error reporting
  • Adding server roles and features
And other tasks.
Before you start, you need to configure the server's IP address.

To set the server with a static IP address

  1. At a command prompt, type the following:
    netsh interface ipv4 show interfaces
  2. Look at the number shown in the Idx column of the output for your network adapter. If your computer has more than one network adapter, make a note of the number corresponding to the network adapter for which you wish to set a static IP address.
  3. At the command prompt, type:
    netsh interface ipv4 set address name="" source=static address= mask= gateway=
    Where:
    • ID is the number from step 2 above
    • StaticIP is the static IP address that you are setting
    • SubnetMask is the subnet mask for the IP address
    • DefaultGateway is the default gateway
  4. At the command prompt, type:
    netsh interface ipv4 add dnsserver name="" address= index=1
    Where:
    • ID is the number from step 2 above
    • DNSIP is the IP address of your DNS server
  5. Repeat step 4 for each DNS server that you want to set, incrementing the index= number each time.
  6. Verify by typing ipconfig /all and checking that all the addresses are correct.

To set the administrative password in Windows Server 2008

  1. At a command prompt, type the following:
    net user administrator *
  2. When prompted to enter the password, type the new password for the administrator user account and press ENTER.
  3. When prompted, retype the password and press ENTER.
Next, you might want to change the computer's name, as the default name is a random-generated name (unless configured through an answer file)

To change the name of the server

  1. Determine the current name of the server with the hostname or ipconfig /all commands.
  2. At a command prompt, type:
    netdom renamecomputer  /NewName:
  3. Restart the computer by typing the following at a command prompt:
    shutdown /r /t 0

To manage a server running a Server Core installation by using the Windows Remote Shell

  1. To enable Windows Remote Shell on a server running a Server Core installation, type the following command at a command prompt:
    WinRM quickconfig
  2. Click Y to accept the default settings. Note: The WinRM quickconfig setting enables a server running a Server Core installation to accept Windows Remote Shell connections.
  3. 3. On the remote computer, at a command prompt, use WinRS.exe to run commands on a server running a Server Core installation. For example, to perform a directory listing of the Windows folder, type:
    winrs -r: cmd
    Where ServerName is the name of the server running a Server Core installation.
  4. You can now type any command that you require, it will be executed on the remote computer.

To activate the server

  1. At a command prompt, type:
    slmgr.vbs –ato
    If activation is successful, no message will return in the command prompt.

To activate the server remotely

  1. At a command prompt, type:
    cscript slmgr.vbs -ato
  2. Retrieve the GUID of the computer by typing:
    cscript slmgr.vbs -did
  3. Type
    cscript slmgr.vbs -dli
  4. Verify that License status is set to Licensed (activated).

To join a Windows 2008 server to a domain

  1. At a command prompt, type:
    netdom join  /domain: /userd: /passwordd:*
    Where:
    • ComputerName is the name of the server that is running the Server Core installation.
    • DomainName is the name of the domain to join.
    • UserName is a domain user account with permission to join the domain.
    Note: Entering * as the password means you will be prompted to enter it on the command prompt window in the next step. You can enter it in the initial command, if you wish to. Note: Note that the word "passwordd" has 2 d's in it…
  2. When prompted to enter the password, type the password for the domain user account specified by UserName.
  3. Restart the computer by typing the following at a command prompt:
    shutdown /r /t 0

To remove the Windows 2008 server from a domain

  1. At a command prompt, type:
    netdom remove
  2. Reboot the computer.

To configure automatic updates

  1. To enable automatic updates, type:
    cscript C:'Windows'System32'Scregedit.wsf /au 4
  2. To disable automatic updates, type:
    cscript C:'Windows'System32'Scregedit.wsf /au 1
    BTW, in order to view your current settings you can type:
    cscript C:'Windows'System32'Scregedit.wsf /au /v

To configure error reporting

  1. To verify the current setting, type:
    serverWerOptin /query
  2. To automatically send detailed reports, type:
    serverWerOptin /detailed
  3. To automatically send summary reports, type:
    serverWerOptin /summary
  4. To disable error reporting, type:
    serverWerOptin /disable

Summary

Windows Server 2008 Core machines need to be properly configured for communication across your network. While most of the Server Core settings need to be configured via the local Command Prompt, some settings can also be configured remotely. This article, a part of a complete Server Core article series, will show you how to do that.

Recent Windows Server 2008 Forum threads

Got a question? Post it on our Windows Server 2008 forums!

How to Configure Windows Server 2008 for Configuration Manager 2007 Site Systems



Applies To: System Center Configuration Manager 2007 R2, System Center Configuration Manager 2007 R3, System Center Configuration Manager 2007 SP1, System Center Configuration Manager 2007 SP2
Use the procedures in this topic to help you configure Windows Server 2008 and Windows Server 2008 R2 to support Configuration Manager 2007 SP1 or later site systems.
noteNote
Configuration Manager 2007 SP1 or later supports installing primary and secondary site systems on Windows Server 2008 and Windows Server 2008 R2 read-only domain controller (RODC) computers. During a site installation, the Configuration Manager 2007 Setup Wizard identifies that the site is being installed on an RODC and searches for a writable domain controller to create the necessary groups required by the type of site installation. However, when installing secondary sites by using the Install Secondary Site Installation Wizard from a Configuration Manager console, you must create the required groups in Active Directory Domain Services before you run the secondary site installation.
Use the following information in this topic to configure Windows Server 2008 and Windows Server 2008 R2 site systems for Configuration Manager:

Remote Differential Compression for site server and branch distribution point computers

Site servers and branch distribution points require Remote Differential Compression (RDC) to generate package signatures and perform signature comparison. By default, RDC is not installed on Windows Server 2008 or Windows Server 2008 R2 and must be enabled manually.
Use the following procedure to enable Remote Differential Compression for Windows Server 2008 and Windows Server 2008 R2.
  1. On the Windows Server 2008 or Windows Server 2008 R2 computer, navigate to Start / All Programs / Administrative Tools / Server Manager to start Server Manager. In Server Manager, select the Features node and click Add Features to start the Add Features Wizard.
  2. On the Select Features page, select Remote Differential Compression, and then click Next.
  3. Complete the rest of the wizard.
  4. Close Server Manager.

Internet Information Services (IIS)

You must install Internet Information Services (IIS) for Windows Server 2008 and Windows Server 2008 R2 computers when they will be used to hold any of the following site system roles:
  • Management point
  • Distribution points that are enabled for Allow clients to transfer content from this distribution point using BITS, HTTP, and HTTPS
  • Reporting point
  • Software update point
  • Server locator point
  • Fallback status point

Configure WebDAV to support management points and distribution points that are enabled for "Allow clients to transfer content from this distribution point using BITS, HTTP, and HTTPS"

In addition to IIS, you must configure WebDAV extensions for management points and distribution points that are enabled for Allow clients to transfer content from this distribution point using BITS, HTTP, and HTTPS.
  • Windows Server 2008 with IIS 7.0: Manually install and configure WebDAV extensions after installing IIS 7.0.
  • Windows Server 2008 R2 with IIS 7.5: WebDAV extensions are included with IIS, and you do not have to download them manually, but you must enable WebDAV extensions during IIS installation.

Install Internet Information Services (IIS) on Windows Server 2008 and Windows Server 2008 R2 Computers

Use the following procedure that applies to Windows Server 2008 and Windows Server 2008 R2:
  1. On the Windows Server computer, navigate to Start / All Programs / Administrative Tools / Server Manager to start Server Manager. In Server Manager, select theFeatures node, and then click Add Features to start the Add Features Wizard.
  2. On the Select Features page of the Add Features Wizard:

    • For Windows Server 2008, select the BITS Server Extensions check box. For Windows Server 2008 R2, select the Background Intelligent Transfer Services (BITS) check box. When prompted, click Add Required Role Services to add the dependent components, including the Web Server (IIS) role.
    • Select the Remote Differential Compression check box, and then click Next.
  3. On the Web Server (IIS) page of the Add Features Wizard, click Next.
  4. On the Select Role Services page of the Add Features Wizard:

    • Windows Server 2008 R2 only: For Common HTTP Features, select the WebDAV Publishing check box.
    • For Application Development, select the ASP.NET check box and, when prompted, click Add Required Role Services to add the dependent components.

      noteNote
      The ASP check box must also be selected if the site system will be configured as a reporting point.
    • For Security, select the Windows Authentication check box.
    • In the Management Tools node, for IIS 6 Management Compatibility, ensure that both the IIS 6 Metabase Compatibility and IIS 6 WMI Compatibility check boxes are selected, and then click Next.
  5. On the Confirmation page, click Install, and then complete the rest of the wizard.
  6. Click Close to exit the Add Features Wizard, and then close Server Manager.

Install WebDAV for IIS 7.0

You must install WebDAV manually on Windows Server 2008 computers with IIS 7.0. The following procedure applies to Windows Server 2008 with IIS 7.0 installed:
  1. Depending on your server operating system architecture, download either the x86 or x64 version of WebDAV from: http://go.microsoft.com/fwlink/?LinkId=108052.
  2. Depending on the version you downloaded, run either the webdav_x86_rtw.msi or the webdav_x64_rtw.msi file to install WebDAV IIS 7.0 extensions.

Enable WebDAV and create an Authoring Rule

Use the following procedure to enable WebDAV and create an Authoring Rule for Windows Server 2008 and Windows Server 2008 R2:
  1. Navigate to Start / All Programs / Administrative Tools / Internet Information Services (IIS) Manager to start Internet Information Services 7 Application Server Manager.
  2. In the Connections pane, expand the Sites node, and then click Default Web Site if you are using the default Web site for the site system or SMSWEB if you are using a custom Web site for the site system.
  3. In the Features View, double-click WebDAV Authoring Rules.
  4. With the WebDAV Authoring Rules page displayed, in the Actions pane, click Enable WebDAV.
  5. In the Actions pane, click Add Authoring Rule.
  6. In the Add Authoring Rule dialog box, for Allow access to, select All content.
  7. For Allow access to this content to, select All users.
  8. For Permissions, select Read, and then click OK.
Use the following procedure to change the property behavior of WebDAV on Windows Server 2008 and Windows Server 2008 R2:
  1. In the WebDAV Authoring Rules page, in the Actions pane, click WebDAV Settings.
  2. In the WebDAV Settings page, for Property Behavior, set Allow anonymous property queries to True.
  3. Set Allow Custom Properties to False.
  4. Set Allow property queries with infinite depth to True.
  5. For a distribution point that is enabled for Allow clients to transfer content from this distribution point using BITS, HTTP, and HTTPS, for WebDAV Behavior, setAllow hidden files to be listed to True.
  6. In the Action pane, click Apply.
  7. Close Internet Information Services (IIS) Manager.

Configure requestFiltering for IIS on distribution points

The following information applies when you use distribution points that are enabled for Allow clients to transfer content from this distribution point using BITS, HTTP, and HTTPS.
By default, IIS blocks several file extensions and folder locations. If package source files contain extensions that are blocked in IIS, you must configure the requestFiltering section in the applicationHost.config file on a distribution points that is enabled for Allow clients to transfer content from this distribution point using BITS, HTTP, and HTTPS.
For example, you might have source files for a software deployment that include a folder named bin, or that contain a file with the .mdb file extension. By default, IIS request filtering blocks access to these elements. When you use the default IIS configuration on a distribution point, clients that use BITS fail to download this software deployment from the distribution point. In this scenario, the clients indicate that they are waiting for content. To enable the clients to download this content by using BITS, on each applicable distribution point, edit the requestFiltering section of the applicationHost.config file to allow access to the files and folders in the software deployment.
ImportantImportant
When you enable WebDAV and modify the requestFiltering section of the applicationHost.config file for the Web site, this increases the attack surface of the computer. Enable WebDAV only when required for management points and distribution points that are enabled for Allow clients to transfer content from this distribution point using BITS, HTTP, and HTTPS. If you enable WebDAV on the default Web site, it is enabled for all applications that use the default Web site. If you modify the requestFiltering section, it is modified for all Web sites on that server. The security best practice is to run Configuration Manager 2007 on a dedicated Web server. If you must run other applications on the Web server, use a custom Web site for Configuration Manager 2007. For more information, see Best Practices for Securing Site Systems.
Use the following procedure to modify requestFiltering for Windows Server 2008 and Windows Server 2008 R2.
  1. Open the applicationHost.config file located in the %Windir%\System32\Inetsrv\Config\ directory on distribution points that are enabled for Allow clients to transfer content from this distribution point using BITS, HTTP, and HTTPS.
  2. Search for the <requestFiltering> section.
  3. Determine the file name extensions and folder names that you will have in the packages on that distribution point. For each extension and folder name that you require, perform the following steps:

    • If it is listed as a fileExtension element, set the value for allowed to true.

      For example, if your package contains a file with an .mdb extension, change the line true to allowed<add fileExtension=".mdb" allowed="false" /> to <add fileExtension=".mdb" allowed="true" />.

      Allow only the file name extensions required for your packages.
    • If it is listed as a <hiddenSegments> element, delete the entry that matches the file name extension or folder name from the file.

      For example, if your package contains a folder with the label of bin, remove the line <add segment=”bin” /> from the file.
  4. Save and close the applicationHost.config file.

See Also


http://technet.microsoft.com

Wednesday, March 27, 2013

Set Up a Home Server


Introduction

Before You Start – Alternatives

Setting up a home server can be a lot of fun and a great learning experience. But, depending on what you want to use it for and how good your connection to the Internet is, a home server may not be the best alternative. If your aim is serving web pages reliably or otherwise delivering information outside your home to friends or customers, it makes more sense to put the server into “The Cloud” – in other words, in a commercial data center. This saves nyou the worry and hassle of keeping it running or dealing with interruptions to your home’s power, cable or DSL service. “Cloud Computing,” or renting just as much of a server as you need on an hourly or monthly basis, is becoming quite popular for web companies or growing businesses, but the rates are inexpensive enough that you should consider it as an alternative to a home server. There are many cloud computing companies, ranging from Amazon Web Services which requires that you learn their command line interface to initiate a new server, to ENKI which offers personal support for getting you up and running. This isn’t the place to go into detail, but you can learn more by Googling “Cloud Computing.”

What you’ll need

To build your own server, you need just a few components, some or all of which you may well have already:
  • A computer
  • A broadband network connection
  • A network router, with Ethernet (CAT5) cable
  • A monitor and keyboard (just for the first few steps)
  • A CD/DVD drive/burner will be handy if you plan to use the server for media.

The computer

A server doesn’t have to be particularly powerful. eBay runs on mega-thousand-dollar Sun computers, and Google uses thousands of machines to power its search. But for personal use, a server needs considerably less horsepower than your average desktop computer. While other computers busy themselves with complex tasks like despeckling photographs and calculating missile trajectories, your home server has a much simpler task: receiving requests for data and then sending that data as requested. Your server won’t use much processing power, especially without a graphical interface to worry about. A machine with 64MB of RAM and a 300MHz processor can make a perfectly good server; with slightly more robust specs, it can handle almost anything you’ll throw at it.
An old machine can be turned into a server with minimal effort. You may already have a perfect machine for the job sitting in your attic. Or a relative or a friend might want to get rid of her older desktop; or you may well be able to pick up a suitable model cheap or free from a swap meet, a classified ad, or online equivalents like freecycle.org and craigslist.org. Alternately, you can buy a new machine to use as your server. Each approach has its advantages.
The reasons you might not want to use an old machine include:
Old hardware can be unreliable. Sometimes replacing bad RAM or putting in a new heatsink will fix the problem, but sometimes a computer just crashes every few hours, regardless of what operating system is installed. Time to donate or recycle it.
Space is an issue. If the old machine is in a big tower case and you are in a small apartment, you might want to get it a new case — or you might want to buy a new server that’s one tenth the size.
You want it quiet. Computers get hot, so fans are installed to keep them cool. Fans are loud, even the ones marketed as “whisper-quiet.” You might not notice that so much in an office setting, but when a server is left running 24 hours a day (as they should be), it becomes rather irritating to live with in close quarters. If you’re going to be sharing a living space with your server, you may want to invest in a fanless machine.
You don’t have an old computer on hand, and you live in a place where finding cheap, used hardware is difficult or expensive.
If any of the above apply, you can skip to the section titled Buying a server.

Repurposing a used computer

If you go the way of turning an older machine into a server, congratulations. If it’s a particularly geriatric model, you might have a little work ahead of you to get it ready for its new assignment. Upgrading a couple of its parts will make it a powerhouse for years to come. You can find plenty of support, if you have questions about what connector goes where, on hardware-nerd sites like tomshardware.com andarstechnica.com. Or, if messing with wires and chips is too daunting, your local computer shop should do it for a minimal fee.

Architecture

What sort of computer you use — i386, PowerPC, Gameboy — matters surprisingly little. Linux and BSD, the preferable server operating systems, run on just about any architecture you care to install them on. The official list of chips on which Debian can run includes Intel x86, Motorola 680xx, Sun Sparc, Alpha, PowerPC, ARM, MIPS, HP PA, Intel 64-bit, and S/390 processors, with more in the testing phase. That covers the vast majority of consumer computers ever made. Buy a notebook (the paper kind) and label it My Server. Write down all the model numbers and details of the hardware you set up.

Memory

RAM is cheap these days, and more is generally better.

Storage

The hard drive is the heart of the server. If everything else dies, you can pull out the hard drive and put it in another (comparable) machine, and pick up right where you left off. Depending on how many slots your computer is built with, you might want to have one hard drive or a few. Bigger is better.
Hard drives continuously drop in price. Start fresh with a new one. If you’re disposing of an old drive and replacing it with a new one, don’t forget to securely delete any private information before you put it in the trash.
The innards of a hard drive spin around thousands of times per second, so it’s very likely that the hard drive will be the first component of your server to fail, though you can generally count on a new drive for a few good years at least. Proper backup procedures are crucial; for now, if you have room in your server and in your budget, you may want to slot in a second or even third hard drive. Keeping secondary copies of data in another place — even if that’s just a second drive right next to the first one — is the way to safeguard your data against hard drive failure.

Cooling

Since the server’s going to be running all the time, you need to make sure it doesn’t overheat. The machine you have might already be fine in that department, or it might not. If it crashes unexpectedly, or exhibits weird, unpredictable behavior, it may be getting too hot. There’s software you can install to monitor the machine’s temperature as it runs, and even set it up to e-mail you automatically if it’s creeping into the danger zone on a hot day.
You can splurge on a wide variety of methods to keep the CPU and power supply cool, involving air, water, liquid nitrogen, and so on. You also may want to look into underclocking your processor. That makes it run slower (which is fine for a server, remember) but also cooler. If you’re handy with solder, there are dozens of underclocking tutorials online for your particular chip type. Generally, though, setting up good airflow through the box is sufficient for most home servers, with some quality fans sensibly arranged to pull air in at one end of the case, direct it over the hot components, and push it out the other. Larger fans tend to be quieter than smaller models, all else being equal. If you’re living with the server, you will want quiet fans, the quietest you can get.

Network

The server’s also going to need an Ethernet card (also known as a network interface card, or NIC), and one that works with your chosen operating system. You can’t go wrong with most cards (especially older models), but you’ll definitely want to check the model number on linux-drivers.org or elsewhere on the web before buying a new one. Big brands like 3Com and D-Link are generally a good, reliable bet.

Buying a server

Alternately, you could buy a server. There are plenty of up-to-date guides on the web. You can use a standard desktop computers, which contain powerful, expensive, and hot Intel and AMD-brand chips. That’s fine, but brands like Shuttle or Biostar, built on the mini-ITX or nano-ITX specification are smaller, cheaper, and cooler. These can fit in cigar boxes and run silently without fans, on low power. Complete systems using these chipsets can be bought from a variety of specialty retailers, including idotpc.com and mini-itx.com. You shouldn’t have to spend more than a couple of hundred dollars for a serviceable system.

The Connection

Apart from that, any sort of connection will do. Super speed is not important (unless you’re planning to stream videos to dozens of users). If you have a connection already (probably you do) you can continue to use it as normal. Just keep your server connected to the router. A static IP is not necessary, nor is a business-class connection.
Your choice of providers will vary depending on your area. If you have a choice, pick a provider that offers good, reliable speeds and makes its customers happy. Ask around, or search the web for the phrase “[provider] sucks” if you want to hear the worst. Some providers have very restrictive policies and prefer their users not to do things like build servers; others, like the excellent sonic.net, are thrilled to have adventurous users. The choice between cable, DSL, fiber, satellite, and so on is less important; after trying an assortment, you won’t notice a significant difference unless you’re streaming video or high-quality audio.

The Router

Get a reliable router. It can be wireless, if you want to connect other computers to it wirelessly, but plan on using a real old-fashioned cable between it and the server. A router is a pretty standard commodity these days; some may have extra features, but it’s the basics, not the extras, that count. Again, looking at what other shoppers have liked, on a site like newegg.com, can be an excellent guideline.

The Monitor and Keyboard

If you have an old spare desktop, you may have a spare monitor and keyboard to go with it. Or you can use your current computer, if you’re not using a laptop, and willing to switch back and forth while you get things set up. You’ll only need these until you get your server up and running. A monitor and keyboard are very handy to have tucked away somewhere for future debugging and upgrading of the server, though.

Power

If you live in an area prone to power surges, rolling brownouts, or the like, or even if you don’t, some sort of intermediary between your machine and the AC socket is a good idea. This can be as simple as a $10 surge suppressor (not just an extension cord) or an elaborate power conditioner with hours of battery backup.

Everything in Its Place

After your box is upgraded, you’ll need to find a home for it. You’ll want to keep a few practical considerations in mind.
  • Don’t place it next to a heater, or in a sunbeam. Don’t place it by an open window. Dust is a server’s enemy too, so don’t keep it under the bed.
  • Don’t let people trip over the cords, or let pets chew on them.
  • With proper attention to cooling, your server should be quite quiet, but some people are sensitive to even the faintest hum. Especially if your server is not the noiseless variety, you might want it in a less-trafficked area. The website Silent PC Review has advice and hardware recommendations for avoiding the noise.
  • Putting it in a little closet is good, as long as there’s enough airflow that the thing won’t overheat. Make sure to place it on a hard surface so as not to block the air intakes, leave a few inches of space around it on all sides, and don’t pile stuff on top of it.
  • Theft is another concern: keeping a shiny server right by the front door might not be the best idea.
  • A lot of your placement concerns may be dictated by your internet connection, since the server needs to be within a cord’s reach of that. If you use a wireless router to share the connection with the rest of the house, that ought to be centrally located, and the server plugged directly into it, wherever it is.
  • It’ll also need to be plugged into an electric outlet.
  • If you’re going to be doing stuff like ripping CDs with the server, you’ll want it conveniently placed for feeding discs in.

The Operating System

There are many, many options for an open source operating system. You can install Fedora, Ubuntu, FreeBSD, Gentoo, and the list goes on and on.
Another option is to install the open source home server from Amahi. This will do alot of the ‘heavy lifting’ to get you up and running, including installing and configuring apache, MySQL, a Ruby on Rails deployment environment, file sharing, a VPN and a range of share web applications. You’ll find alot of useful information on this topic at the Amahi website.

Suggested reading

What can you do with that server? Here are some projects: