Engineering Trivia

Gary Schafer, 22 September 2010

Ever wanted to one-up an engineer? Here's your chance. Consider these two "little known facts of RF".

1) Why is it called CW? Yeah, CW stands for "continuous wave". But continuous with respect to what? Back at the beginning of the 20th century, scientists and engineers, such as the famous Marconi, transmitted wireless signals using a device called a spark gap generator. The device literally created a spark, a short, intense burst of energy. It was this spark that created the wireless signals. A Canadian, Reginald Fessenden, was convinced that a continually-generated sine wave would prove much better for long distance transmission. And he was someone who could back up his claims. On December 23rd 1900, Fessenden created the very first audio transmission. It was between two wireless devices using spark gap generators (sparking 10,000 times each second) placed 1,600 meters apart on Cobb Island, Maryland. Marconi and those around him did not agree. Besides, Marconi was in it for the money. Fessenden was actually in it to improve the art. (Sound familiar?) Fessenden was able to actually make a continually-generated sine wave in the early 1900s. On 24 December 1906, Fessenden made the very first audio broadcast from his facility in Brant Rock, Massachussetts. The transmission, continuous waves (CW) using his new heterodyning technique, reached out to many ships at sea, including all the way to the West Indies. In short order, his new method became the accepted method for creating transmissions. AM stations began being set up all over the country. The rest is history.

2) System thermal noise is calculated using the equation Noise Power = kTB. But where did kTB come from? It's a straightforward (perhaps even simple) calculation. Boltzmann's constant (k) times the noise temperature of the system (T) times the bandwidth (B) of the system. But these three letters were derived from two, separate sources. In 1927, JB Johnson, a Swedish-born American engineer, conducted experiments using several high-quality vacuum tubes. The vacuum tube was just starting to mature and designers were finding that, no matter how well they made their tubes, they still produced a noticeable hiss even when nothing was connected to them. But why? Johnson was able to figure out that what mattered was the temperature that the tube was at. The higher the temperature, the more noise came out. He then determined that the mean-square voltage coming out of the tube was based on several factors, including k, T, B, R (the resistance of the circuit), and frequency. Based on his calculations, he realized that the frequency factor was essentially one through all frequencies of interest. (As a matter of fact, the frequency factor is 1 until you hit 100 GHz or so.) When you calculate the actual power, which is voltage-squared over R, the R part cancels and you're left with... kTB. Another engineer, one Harold Nyquist (Yes, that Nyquist.) proved mathematically in 1928 the exact, same thing. Nyquist made use of quantum physics and the work of a patent-clerk-turned-physicist named Albert Einstein. Einstein had published a small, obscure article (hope you caught my sarcasm there) in 1905 called "The Theory of Relativity", which Nyquist used to provide several of the key arguments for his proof. It was at that time that, with both empirical and mathematical proof, kTB was accepted as a basic limit for any and all receivers.

Finishing Up Looking at our Hardware in Linux

Gary Schafer, 19 September 2010

In my last article on looking at Linux hardware, I looked at the lshw (or list hardware) command. I also noted that there were certain pieces of information that it would not provide. Specifically, it did not provide:

  • the number of cores on the motherboard
  • the maximum memory capacity of the motherboard
  • the speed of the PCI slots on the motherboard

We'll look at using the dmidecode to glean this information from our system. First, we'll look at finding the number of cores on your motherboard. For this, we'll use the command sudo dmidecode -t processor. This is shown below.

gary@brain:~$ sudo dmidecode -t processor
# dmidecode 2.9
SMBIOS 2.6 present.

Handle 0x0004, DMI type 4, 42 bytes
Processor Information
	Socket Designation: CPU 1
	Type: Central Processor
	Family: Other
	Manufacturer: Intel            
	ID: E5 06 01 00 FF FB EB BF
	Version: Intel(R) Core(TM) i7 CPU         860  @ 2.80GHz     
	Voltage: Unknown
	External Clock: 133 MHz
	Max Speed: 2800 MHz
	Current Speed: 2800 MHz
	Status: Populated, Enabled
	Upgrade: Other
	L1 Cache Handle: 0x0005
	L2 Cache Handle: 0x0006
	L3 Cache Handle: 0x0007
	Serial Number: To Be Filled By O.E.M.
	Asset Tag: To Be Filled By O.E.M.
	Part Number: To Be Filled By O.E.M.
	Core Count: 4
	Core Enabled: 4
	Thread Count: 8
	Characteristics:
		64-bit capable

Look at the line labelled core count: 4. This tells me that I have a system with 4 cores, or a quad core machine. Next, we'll answer the question of "What is the maximum memory capacity of the system?" For that, we'll use the command sudo dmidecode -t memory.

gary@brain:~$ sudo dmidecode -t memory
# dmidecode 2.9
SMBIOS 2.6 present.

Handle 0x0024, DMI type 16, 15 bytes
Physical Memory Array
	Location: System Board Or Motherboard
	Use: System Memory
	Error Correction Type: None
	Maximum Capacity: 16 GB
	Error Information Handle: Not Provided
	Number Of Devices: 4

Handle 0x0026, DMI type 17, 28 bytes
Memory Device
	Array Handle: 0x0024
	Error Information Handle: Not Provided
	Total Width: Unknown
	Data Width: 64 bits
	Size: 2048 MB
	Form Factor: DIMM
	Set: None
	Locator: DIMM1
	Bank Locator: Not Specified
	Type: Other
	Type Detail: Synchronous
	Speed: 1066 MHz (0.9 ns)
	Manufacturer: Samsung         
	Serial Number: 40CA9F87
	Asset Tag: 000209
	Part Number: M378B5673EH1-CF8  

Handle 0x0028, DMI type 17, 28 bytes
Memory Device
	Array Handle: 0x0024
	Error Information Handle: Not Provided
	Total Width: Unknown
	Data Width: 64 bits
	Size: 2048 MB
	Form Factor: DIMM
	Set: None
	Locator: DIMM2
	Bank Locator: Not Specified
	Type: Other
	Type Detail: Synchronous
	Speed: 1066 MHz (0.9 ns)
	Manufacturer: Samsung         
	Serial Number: F6C89F87
	Asset Tag: 000209
	Part Number: M378B5673EH1-CF8  

Handle 0x002A, DMI type 17, 28 bytes
Memory Device
	Array Handle: 0x0024
	Error Information Handle: Not Provided
	Total Width: Unknown
	Data Width: 64 bits
	Size: 2048 MB
	Form Factor: DIMM
	Set: None
	Locator: DIMM3
	Bank Locator: Not Specified
	Type: Other
	Type Detail: Synchronous
	Speed: 1066 MHz (0.9 ns)
	Manufacturer: Samsung         
	Serial Number: 38C99F87
	Asset Tag: 000209
	Part Number: M378B5673EH1-CF8  

Handle 0x002C, DMI type 17, 28 bytes
Memory Device
	Array Handle: 0x0024
	Error Information Handle: Not Provided
	Total Width: Unknown
	Data Width: 64 bits
	Size: 2048 MB
	Form Factor: DIMM
	Set: None
	Locator: DIMM4
	Bank Locator: Not Specified
	Type: Other
	Type Detail: Synchronous
	Speed: 1066 MHz (0.9 ns)
	Manufacturer: Samsung         
	Serial Number: 35C99F87
	Asset Tag: 000209
	Part Number: M378B5673EH1-CF8 

Look in the section at the very top of the read-out. This is the section entitled, Physical Memory Array. If we look in that section, we see a line that reads Maximum Capacity: 16 GB. This tells me that my system can handle a maximum of 16 GB of RAM. Finally, we'll look at the speed of the PCI slots on the motherboard. For this, we use the command sudo dmidecode -t slot.

gary@brain:~$ sudo dmidecode -t slot
# dmidecode 2.9
SMBIOS 2.6 present.

Handle 0x001E, DMI type 9, 17 bytes
System Slot Information
	Designation: PCI1
	Type: 32-bit PCI
	Current Usage: Available
	Length: Short
	ID: 1
	Characteristics:
		3.3 V is provided
		Opening is shared
		PME signal is supported

Handle 0x001F, DMI type 9, 17 bytes
System Slot Information
	Designation: PCIE1
	Type: x1 PCI Express
	Current Usage: Available
	Length: Short
	ID: 2
	Characteristics:
		3.3 V is provided
		Opening is shared
		PME signal is supported

Handle 0x0020, DMI type 9, 17 bytes
System Slot Information
	Designation: PCIE2
	Type: x1 PCI Express
	Current Usage: Available
	Length: Short
	ID: 3
	Characteristics:
		3.3 V is provided
		Opening is shared
		PME signal is supported

Handle 0x0021, DMI type 9, 17 bytes
System Slot Information
	Designation: PCIE3
	Type: x16 PCI Express
	Current Usage: In Use
	Length: Long
	ID: 4
	Characteristics:
		3.3 V is provided
		Opening is shared
		PME signal is supported

This tells me that I have four PCI slots. The first (PCI1) is a standard, 32-bit PCI slot. The next two (PCIE1 and PCIE2) are PCI Express x1 slots. The last one (PCIE3) is a PCI Express x16 slot. This is the slot that is used for the nVidia video card (which dmidecode will not show). Note that these also show whether they are in use (Current Usage: In Use) or available (Current Usage: Available). These come in handy if you want to add another device, but you can't remember what is already installed and finding out by visually looking would be difficult. For example, my desktop is sitting in a slot next to my desk. Looking in the back is a pain. Hence, this command will come in handy if I decide to add a PCI card of some kind.

So, there you are. I hope you've found this useful!

Calculating the Surface Temperature of the Sun... Without Leaving the (Orbit of) Earth

Gary Schafer, 19 September 2010

This post will be about how I overachieve. It occurred after I finished my homework for one of my masters classes. In this case, the class is 525.440 (Satellite Communications) at Johns Hopkins. One of the problems was this:

Above the earth's atmosphere, the average power density from the sun is 1.39 kW/m2. What is the total amount of power being radiated from the sun?

Now, for you non-technical types out there, don't freak. I'll walk you through the answer. To start, we have a power density (1.39 kW/m2) and we have a distance (between the earth and sun, which is ~93 million miles). Being the geek that I am, I looked up on the NASA site the mean distance between the earth and sun, which was listed as 149.6 million kilometers, or 149.6 billion meters. Power density from a transmitter is Pdensity = Pradiated / (4 π R2). Rearranging this equation so that we're solving for Pradiated, we get Pradiated = Pdensity(4 π R2). Plugging in our numbers, this gives us Pradiated = (1390 W)(4 π 149.6E92) = 3.909 x 1026 watts. That's the number 3.9 followed by 25 zeros. Yes, that's a fair amount of power.

That solved my homework problem. But, in my desire to overachieve, I began to wonder about thermography and whether this would provide a hint as to the surface temperature of the sun. Anyway, if we know how much power a surface is radiating and we know the surface area, we can calculate the effective temperature of that surface. That's based on the Stefan-Boltzmann equation of M = σ T4. M is equal to the power density radiating from a surface, σ is the Stefan-Boltzmann constant (5.67 x 10-8 W/m2K4) and T is the absolute temperature in Kelvin. For our problem, we know that the Sun is radiating a total of 3.9 x 1026 watts. And looking back at the NASA site, the mean radius of the sun is 696,000 km, or 696,000,000 meters. The total surface area of a sphere is 4 π R2 = 4 π (6.96 x 108) = 6.087 x 1018 m2. This gives us a value for M = (3.9 x 1026)/(6.087 x 1018) = 6.422 x 107 W/m2. Looking back at the original Stefan-Boltzmann equation and solving for T = (M / σ)1/4 = ((6.422 x 107) / (5.67 x 10-8)1/4 = 5801 K. According to the NASA Sun Fact Sheet, the effective surface temperature of the sun is 5778 K. Not too shabby. Kinda cool, too.

At least, that's how I see it.

Looking At Your Hardware in Linux

Gary Schafer, 12 September 2010

I've stated it before. One of the things I love about Linux is the ability to look at your hardware. Even better, it's using tools that are a basic part of any Linux package. I'm going to offer an overview of different ways to look at your hardware.

These are all command-line commands, so open a terminal (in Ubuntu, this would be Applications -> Accessories -> Terminal). There are two commands that I'll look at. These are sudo lshw and sudo dmidecode. We'll start with the first one. Note that I'm going to snip out a lot of the returned information because it would just cause you to have to scroll forever. I'll also add in some commentary along the way.

gary@brain:~$ sudo lshw
[sudo] password for gary: 
brain                     
    description: Desktop Computer
    product: Studio XPS 8100
    vendor: Dell Inc.
    serial: (removed)
    width: 64 bits

This tells me that I have a Dell computer (big surprise! Not.) It's printed right on the front of the computer, but its nice to have some corroborating information.

    
{snip}

  *-core
       description: Motherboard
       product: 0T568R
       vendor: Dell Inc.

Once again, this tells me I have a Dell computer, but it also tells me that the motherboard is Dell, also. That's interesting. I thought Dell only put the pieces together. Didn't know they actually made the piece parts.

{snip}

     *-cpu
          description: CPU
          product: Intel(R) Core(TM) i7 CPU         860  @ 2.80GHz
          vendor: Intel Corp.
          physical id: 4
          bus info: cpu@0
          version: Intel(R) Core(TM) i7 CPU         860  @ 2.80GHz
          serial: To Be Filled By O.E.M.
          slot: CPU 1
          size: 1200MHz
          capacity: 1200MHz
          width: 64 bits
          clock: 133MHz

This tells me that I'm running an Intel i7 CPU running at 2.8 GHz. What it doesn't tell me is how many cores I have running. When I bought the computer, one of the selling points was that it was a quad (4) core machine. However, we'll see that we can get this information from the other command (sudo dmidecode).

{snip}
        *-cache:0
             description: L1 cache
             physical id: 5
             slot: L1-Cache
             size: 256KiB
             capacity: 256KiB
             capabilities: internal write-through instruction
        *-cache:1
             description: L2 cache
             physical id: 6
             slot: L2-Cache
             size: 1MiB
             capacity: 1MiB
             capabilities: internal write-through unified
        *-cache:2
             description: L3 cache
             physical id: 7
             slot: L3-Cache
             size: 8MiB
             capacity: 8MiB
             capabilities: internal write-back unified

This tells me that I have three levels of cache memory (L1, L2 & L3). It also tells me that these levels are 256 kB, 1 MB, and 8 MB, respectively

     *-memory
          description: System Memory
          physical id: 24
          slot: System board or motherboard
          size: 8GiB
        *-bank:0
             description: DIMM Synchronous 1066 MHz (0.9 ns)
             product: M378B5673EH1-CF8
             vendor: Samsung
             physical id: 0
             serial: 40CA9F87
             slot: DIMM1
             size: 2GiB
             clock: 1066MHz (0.9ns)
        *-bank:1
             description: DIMM Synchronous 1066 MHz (0.9 ns)
             product: M378B5673EH1-CF8
             vendor: Samsung
             physical id: 1
             serial: F6C89F87
             slot: DIMM2
             size: 2GiB
             clock: 1066MHz (0.9ns)
        *-bank:2
             description: DIMM Synchronous 1066 MHz (0.9 ns)
             product: M378B5673EH1-CF8
             vendor: Samsung
             physical id: 2
             serial: 38C99F87
             slot: DIMM3
             size: 2GiB
             clock: 1066MHz (0.9ns)
        *-bank:3
             description: DIMM Synchronous 1066 MHz (0.9 ns)
             product: M378B5673EH1-CF8
             vendor: Samsung
             physical id: 3
             serial: 35C99F87
             slot: DIMM4
             size: 2GiB
             clock: 1066MHz (0.9ns)

This tells me that I have four memory slots on the main board, and that each slot has a 2 GB memory card. It also tells me that the clock speed is 1066 MHz. The inverse of 1066 MHz is 1/1066e6 = 0.9 nsec. It also tells me that the memory cards are made by Samsung. One thing that this doesn't tell me is how much memory I can have if I wanted to increase it. We'll see how to get that information from the dmidecode command.

     *-pci
          description: Host bridge
          product: Core Processor DMI
          vendor: Intel Corporation
          physical id: 100
          bus info: pci@0000:00:00.0
          version: 11
          width: 32 bits
          clock: 33MHz
        *-pci:0
             description: PCI bridge
             product: Core Processor PCI Express Root Port 1
             vendor: Intel Corporation
             physical id: 3
             bus info: pci@0000:00:03.0
             version: 11
             width: 32 bits
             clock: 33MHz
{snip}
           *-display
                description: VGA compatible controller
                product: GT200 [GeForce GT 220]
                vendor: nVidia Corporation
                physical id: 0
                bus info: pci@0000:01:00.0
                version: a2
                width: 64 bits
                clock: 33MHz
{snip}

In reverse order, this tells me that I have an nVidia GEForce GT 220 video card, and that the card is using a PCI Express slot. One bit of information that it doesn't tell me is the type of PCI Express slot it is. Again, we'll cull that bit of information from the dmidecode command.

Okay, we're going to skip a lot of information on the various PCI, ISA, and USB connections and go directly to the *-storage section. This will tell us about the hard drives on the system.

{snip}
        *-storage
             description: RAID bus controller
             product: 82801 SATA RAID Controller
             vendor: Intel Corporation
             physical id: 1f.2
             bus info: pci@0000:00:1f.2
             logical name: scsi0
             logical name: scsi1
             logical name: scsi2
             logical name: scsi3
             version: 06
             width: 32 bits
             clock: 66MHz
{snip}
           *-disk:0
                description: ATA Disk
                product: WDC WD1001FALS-0
                vendor: Western Digital
                physical id: 0
                bus info: scsi@0:0.0.0
                logical name: /dev/sda
                version: 05.0
                serial: WD-WMATV4757094
                size: 931GiB (1TB)
                capabilities: partitioned partitioned:dos
                configuration: ansiversion=5 signature=4c90d62d
              *-volume:0
                   description: Windows FAT volume
                   vendor: Dell 8.0
                   physical id: 1
                   bus info: scsi@0:0.0.0,1
                   logical name: /dev/sda1
                   version: FAT16
                   serial: 3030-3030
                   size: 39MiB
                   capacity: 39MiB
                   capabilities: primary fat initialized
                   configuration: FATs=2 filesystem=fat label=DellUtility
              *-volume:1
                   description: Windows NTFS volume
                   physical id: 2
                   bus info: scsi@0:0.0.0,2
                   logical name: /dev/sda2
                   version: 3.1
                   serial: 7add-9164
                   size: 14GiB
                   capacity: 14GiB
{snip}
              *-volume:2
                   description: Windows NTFS volume
                   physical id: 3
                   bus info: scsi@0:0.0.0,3
                   logical name: /dev/sda3
                   logical name: /media/win7
                   version: 3.1
                   serial: 3ae7ba2a-9dae-b24f-9543-2990160c5398
                   size: 102GiB
                   capacity: 102GiB
{snip}
              *-volume:3
                   description: Extended partition
                   physical id: 4
                   bus info: scsi@0:0.0.0,4
                   logical name: /dev/sda4
                   size: 814GiB
                   capacity: 814GiB
                   capabilities: primary extended partitioned partitioned:extended
                 *-logicalvolume:0
                      description: Linux filesystem partition
                      physical id: 5
                      logical name: /dev/sda5
                      logical name: /
                      capacity: 791GiB
{snip}
                 *-logicalvolume:1
                      description: Linux swap / Solaris partition
                      physical id: 6
                      logical name: /dev/sda6
                      capacity: 22GiB
                      capabilities: nofs
           *-cdrom
                description: DVD-RAM writer
                product: DVD+-RW GH50N
                vendor: HL-DT-ST
                physical id: 1
                bus info: scsi@1:0.0.0
                logical name: /dev/cdrom
                logical name: /dev/cdrw
                logical name: /dev/dvd
                logical name: /dev/dvdrw
                logical name: /dev/scd0
                logical name: /dev/sr0
                version: B103
                capabilities: removable audio cd-r cd-rw dvd dvd-r dvd-ram
                configuration: ansiversion=5 status=nodisc
           *-disk:1
                description: ATA Disk
                product: SAMSUNG HD103SJ
                physical id: 2
                bus info: scsi@2:0.0.0
                logical name: /dev/sdb
                version: 1AJ1
                serial: S246JDWZ407260
                size: 931GiB (1TB)
                capabilities: partitioned partitioned:dos
                configuration: ansiversion=5 signature=0000da3e
              *-volume
                   description: Extended partition
                   physical id: 1
                   bus info: scsi@2:0.0.0,1
                   logical name: /dev/sdb1
                   size: 931GiB
                   capacity: 931GiB
                   capabilities: primary extended partitioned partitioned:extended
                 *-logicalvolume
                      description: HPFS/NTFS partition
                      physical id: 5
                      logical name: /dev/sdb5
                      logical name: /media/BackupSDB1
                      capacity: 931GiB
{snip}
           *-disk:2
                description: ATA Disk
                product: ST3750640AS
                vendor: Seagate
                physical id: 3
                bus info: scsi@3:0.0.0
                logical name: /dev/sdc
                version: 3.AA
                serial: 5QD2W6TB
                size: 698GiB (750GB)
                capabilities: partitioned partitioned:dos
                configuration: ansiversion=5 signature=f2239b7e
              *-volume
                   description: Extended partition
                   physical id: 1
                   bus info: scsi@3:0.0.0,1
                   logical name: /dev/sdc1
                   size: 698GiB
                   capacity: 698GiB
                   capabilities: primary extended partitioned partitioned:extended
                 *-logicalvolume
                      description: HPFS/NTFS partition
                      physical id: 5
                      logical name: /dev/sdc5
                      logical name: /media/F_drive
                      capacity: 698GiB
{snip}

This tells me that I have three hard drives (disk 0, disk 1 , disk 2). Further, if you look under the sections marked *-disk:, you'll see the total size of each drive. Disk 0 is listed as a 1 TB drive, disk 1 is listed as a 1 TB drive, and the third disk is listed as a 750 GB drive. It also lists the manufacturer of each disk, which is Western Digital, Samsung and Seagate, respectively. Further, it lists the partitions for each drive, some handy information if you need to repartition your drives at any time.

     *-scsi
          physical id: 1
          bus info: usb@2:1.2
          logical name: scsi6
          capabilities: emulated scsi-host
          configuration: driver=usb-storage
        *-disk:0
             description: SCSI Disk
             physical id: 0.0.0
             bus info: scsi@6:0.0.0
             logical name: /dev/sdd
        *-disk:1
             description: SCSI Disk
             physical id: 0.0.1
             bus info: scsi@6:0.0.1
             logical name: /dev/sde
        *-disk:2
             description: SCSI Disk
             physical id: 0.0.2
             bus info: scsi@6:0.0.2
             logical name: /dev/sdf
        *-disk:3
             description: SCSI Disk
             physical id: 0.0.3
             bus info: scsi@6:0.0.3
             logical name: /dev/sdg

This last part tells me that I have a card reader. As a matter of fact, this system came with a 12-in-1 card reader built in.

Why, yes, that is a lot of information. But handy if you are working on an unknown system. I used this and the dmidecode command when I was asked to work on a computer for the wife. She didn't know what all was installed in her system. By booting the system from an Ubuntu CD, I was able to run the two commands and learn everything I needed to know.

That's enough for now. I'll cover the dmidecode command in a later post..

Where is the Site Now?

Gary Schafer, 11 September 2010

I had it in my head that making my own web server, then getting it up and running, then loading all of these web pages, then making it accessible to the interwebz, well, would have taken a long time. I was giving myself a week to finish the task.

I had no idea that it would only take an evening.

The short answer to the question posed by the title of this article is this, "It's sitting in my office." The web site is now being served from an old computer I had sitting in my office. Here's the short list of the steps I took to get here:

  • I used a circa 2003, Pentium 4 computer running with 2 GB of RAM and a 250 GB hard drive. I loaded Ubuntu's 32-bit server operating system onto it, then followed these instructions to get it set up properly (Major h/t to Alex Villmann for making the setup just... too... easy!). This included setting up the Apache server, MySQL database, and the PHP processing software.
  • I created an account at dyndns.com. After that, I made my own URL, which is http://site2241.dyndns-home.com.
  • Finally, I set my router, which is a Linksys BEFSX41 router, to automatically log in periodically to dyndns.com and give it my current, outside IP address. I don't know if all routers have that capability. If not, then I'd need to either set up some other way to do the updating (if needed) or I would need to check it manually every so often.

What that means is this. Whenever you enter the URL (uniform resource locator, otherwise known as a "web address") for this site in your browser, the first thing that happens is that your browser sends out a message to a DNS, or domain name system, server asking for the IP (internet protocol) address that is tied to that URL. That's because, while you think in terms of names, all of the computers on the Internet think in terms of numbers. So, when you type http://site2241.dyndns-home.com into the address bar of your browser then hit Enter, your computer takes that name, sends it to a DNS server and says, "What's the IP address for this web address?" The DNS server looks it up, and passes back the actual IP address associated with that web address. Now that your browser knows the IP address, it sends a message to that IP address saying, "Hello! I'd like to open a connection to your IP address using port 80." Port 80 is a standard port connection that essentially tells the web server that you want a web page.

Which brings us to the point of this story. The web address http://site2241.dyndns-home.com now points to my home IP address. When an outside request for a connection comes in, it hits my router. The router has now been set up to forward any requests for port 80 (the standard port for a web page request) to my (old but new) web server. My web server then responds to the request just like any other web server would.

So, we have either Verizon and its whopping 10 MB of online space OR my own web server and hundreds of gigabytes. The choice, my friends, is easy.

Where's This Site Going?

Gary Schafer, 8 September 2010

I've had enough. Over the past 5 weeks, the wife and I have had as many outages of our Internet. Our (current, and soon-to-be former) ISP, Comcast, only extended apologies. Considering that only 1 of those 5 could be blamed on weather, that's a bit weak. Further, for what we're paying them for both Internet and TV (we get our phone through Verizon), the overall payments were a bit much. Starting next week, that will change. Tentatively, on 15 September, we'll be switching to FiOS and Verizon. Now, those friends I've talked to who have Verizon love it. However, I've already noticed one drawback. That's online storage. Right now, Comcast offers multiple GB of online storage, standard. Verizon? How about a whopping 10 MB!

What?!?! Are ya kiddin?!?! 10 megabytes?!?! As in, "Here's enough space to store, maybe, two hi-resolution pictures?!?!

Well, yes, that's what we're doing. I've looked at various alternatives for maintaining this web page's presence on the Internet. And I really didn't like any of them. So, here's what's going to happen. I'm setting up my own web server. Will it work? No idea. But it will be an Ubuntu server running 10.04, with a LAMP (Linux / Apache / MySQL / PHP) backbone. Considering that the hard drive is a standard, built-for-the-home hard drive, we'll see if it can handle the load. Especially if I advertise. Right now, I only maintain this page so that I can get occasional practice with HTML and CSS. Really hadn't planned on much more than that. But, since I started, might as well go the next step.

I'm going to use this page as a step-by-step of how I did it. Thus far, I've only downloaded the Ubuntu server ISO image and burned it to a CD. Next, I'll need to load it to a computer. I have a couple, old desktops sitting around gathering dust. I'm going to use one of those.

Stay tuned.

Here's a Random Fact...

The 9/11 Count: