Recently in Information Technology Category

PHP, Nagios and MySQL Replication

| 0 Comments | 0 TrackBacks
| | | |

Overview

MySQL replication is a handy way to distribue database processes across several servers. For example, a simple "master-slave" step up allows for a continuous backup of data from a primary database server, the master to a secondary backup server, the slave. But what if the slave server stops replicating for some reason? Not much of a good backup, if it fails to copy data for some undermined length of time.

The good news is that MySQL provides a simple, detailed query for checking if replication is taking place and will report errors, should they occur. The trick of course is getting notified when an issue does occur quickly. Given an existing Nagios setup for service monitoring at a PHP shop the only missing piece is some code.

The Details
First off, Nagios has the ability to supply arguments to a script as a script being invoked at the command-line. One common set of arguments for Nagios scripts are warning and critical thresholds. For example, a disk allocation script might take arguments to send a warning notification if the amount of free disk space reaches 20% and a critical notification if free space is 10% or less.

With MySQL replication one area of concern is the network. Any latency between the two servers can induce lag in synchronizing the slave server with the master server. Given this, why not pass along a threshold to our script setting checking how many seconds the secondary server is behind the primary.

For processing command line short form and long form options in PHP there is the getopt function:

        $shortopts  = "";
        $shortopts .= "w:"; // Required value for warning
        $shortopts .= "c:"; // Required value for critical

        $longopts  = array(
                // No long form options
        );

	// Parse our options with getopt
        $options = getopt( $shortopts, $longopts );

        // If slave is x second behind for warning state
        $delayWarn = $options['w'];

        // If slave is x second behind for a critical state
        $delayCritical = $options['c'];

Besides being in a critical or warning state, Nagios also has conditions for normal and unknown. Each state is associated with a status code that will be set upon completion of the script, hence the following associative array:

        // Nagios conditions we can be in
        $statuses = array( 'UNKNOWN' => '-1', 'OK' => '0', 'WARNING' => '1', 'CRITICAL' => '2' );

For the moment, we don't know what condition our replication setup is in. Nor do we have any additional information about the current state, so let's go ahead and define that as such:

        $state = 'UNKNOWN';
        $info = '';

The next step is to go ahead and connect to our slave MySQL instance and query its status using "SHOW SLAVE STATUS;"

		$db = new mysqli( $dbHost, $dbUser, $dbPasswd );

		// Prepare query statement & execute
		$query = $db->prepare( "SHOW SLAVE STATUS" )) {
		$query->execute();

The MySQL query is going to return a number of columns in a single result row. Of immediate concern is if the slave is in error state or not. For that we take a look at the columns labeled Slave_IO_Running, Slave_SQL_Running and Last_Errno.

        // If Slave_IO_Running OR Slave_SQL_Running are not Yes 
        // OR Last_Errno is not 0 we have a problem
        if (( $SlaveIORunning != 'Yes' ) OR ( $SlaveSQLRunning != 'Yes' ) 
        	OR ( $Last_Errno != '0' )) {

            	$state = 'CRITICAL';

If the slave server is not in error, then we'll go ahead and check how far behind it is, and set a warning or critical state given the earlier parameters from the beginning of the script:

        } else if (( $row['Slave_IO_Running'] == 'Yes' ) OR ( $row['Slave_SQL_Running'] == 'Yes' ) OR ( $row['Last_Errno'] == '0' )) {

        	// So far so, good, what about time delay, how behind is the slave database?
			if ( $row['Seconds_Behind_Master'] >= $delayCritical ) {

            	$state = 'CRITICAL';

            } else if ( $row['Seconds_Behind_Master'] >= $delayWarn ) {

            	$state = 'WARN';

            } else {

            	$state = 'OK';

            }

		}

Now that we have determined the state of the secondary database server, we can pass along some information for Nagios to process.

        // What to output?
        switch ( $state ) {

                case "UNKNOWN":
                        $info = 'Replication State: UNKNOWN';
                        break;

                case "OK":
                        $info = 'Replication State: OK Master Log File: ' .$MasterLogFile. ' Read Master Log Position: ' .$ReadMasterLogPos. ' Replication Delay (Seconds Behind Master): ' .$SecondsBehindMaster;
                        break;

                case "WARNING":
                        $info = 'Replication State: WARNING Master Log File: ' .$MasterLogFile. ' Read Master Log Position: ' .$ReadMasterLogPos. ' Replication Delay (Seconds Behind Master): ' .$SecondsBehindMaster;
                        break;

                case "CRITICAL":
                        $info = 'Replication State: CRITICAL Error: ' .$LastErrno. ': ' .$Last_Error. ' Replication Delay (Seconds Behind Master): ' .$SecondsBehindMaster;
                        break;

        }

All that is left is to transfer our information to Nagios via standard out and an exit code:

        // Need to set type to integer for exit() to handle the code properly
        $status = $statuses[$state];
        settype( $status, "integer" );

        fwrite( STDOUT, $info );
        exit( $status );

Putting it all together we get something like this:

#!/usr/bin/php
<?php

	$shortopts  = "";
	$shortopts .= "w:"; // Required value for warning
	$shortopts .= "c:"; // Required value for critical

	$longopts  = array( 
		// No long form options 
	);

	$options = getopt( $shortopts, $longopts );

	// If slave is x second behind, set state as warn
	$delayWarn = $options['w'];

	// If slave is x second behind, set state as critical
	$delayCritical = $options['c'];

	// Nagios conditions we can be in
	$statuses = array( 'UNKNOWN' =----> '-1', 'OK' => '0', 'WARNING' => '1', 'CRITICAL' => '2' );
	$state = 'UNKNOWN';
	$info = '';
	
	$dbUser = 'user';
	$dbPasswd = 'password';
	$dbHost = 'localhost';

	$db = new mysqli( $dbHost, $dbUser, $dbPasswd );

	if ( mysqli_connect_errno() ) {
	
		// Well this isn't good
		$state = 'CRITICAL';
		$info = 'Cannot connect to db server';

	} else {

		// Prepare query statement & execute
		if ( $query = $db->prepare( "SHOW SLAVE STATUS" )) {

			$query->execute();

			// Bind our result columns to variables
			$query->bind_result( $SlaveIOState, $MasterHost, $MasterUser, $MasterPort, $ConnectRetry, $MasterLogFile, $ReadMasterLogPos, $RelayLogFile, $RelayLogPos, $RelayMasterLogFile, $SlaveIORunning, $SlaveSQLRunning, $ReplicateDoDB, $ReplicateIgnoreDB, $ReplicateDoTable, $ReplicateIgnoreTable, $ReplicateWildDoTable, $ReplicateWildIgnoreTable, $LastErrno, $Last_Error, $SkipCounter, $ExecMasterLogPos, $RelayLogSpace, $UntilCondition, $UntilLogFile, $UntilLogPos, $MasterSSLAllowed, $MasterSSLCAFile, $MasterSSLCAPath, $MasterSSLCert, $MasterSSLCipher, $MasterSSLKey, $SecondsBehindMaster, $MasterSSLVerifyServerCert, $LastIOErrno, $LastIOError, $LastSQLErrno, $LastSQLError );

			// Go fetch
			$query->fetch();

			// Done
			$query->close();

			// and done
			$db->close();
	
			// If Slave_IO_Running OR Slave_SQL_Running are not Yes OR Last_Errno is not 0 we have a problem
			if (( $SlaveIORunning != 'Yes' ) OR ( $SlaveSQLRunning != 'Yes' ) OR ( $LastErrno != '0' )) {
		
				$state = 'CRITICAL';	
		
			} else if (( $SlaveIORunning == 'Yes' ) OR ( $SlaveSQLRunning == 'Yes' ) OR ( $LastErrno == '0' )) {
	
				// So far so, good, what about time delay, how behind is the slave database?
	
				if ( $SecondsBehindMaster >= $delayCritical ) {
				
					$state = 'CRITICAL';
				
				} else if ( $SecondsBehindMaster >= $delayWarn ) {
				
					$state = 'WARN';
				
				} else {
	
					$state = 'OK';
		
				}
			
			}
	
	
		} else {
			
			// Well this isn't good
			$state = 'CRITICAL';
			$info = 'Cannot query db server';			
			
		}
	
		// What to output?
		switch ( $state ) {

			case "UNKNOWN":
				$info = 'Replication State: UNKNOWN';
				break;

			case "OK":
				$info = 'Replication State: OK Master Log File: ' .$MasterLogFile. ' Read Master Log Position: ' .$ReadMasterLogPos. ' Replication Delay (Seconds Behind Master): ' .$SecondsBehindMaster;
				break;

			case "WARNING":
				$info = 'Replication State: WARNING Master Log File: ' .$MasterLogFile. ' Read Master Log Position: ' .$ReadMasterLogPos. ' Replication Delay (Seconds Behind Master): ' .$SecondsBehindMaster;
				break;

			case "CRITICAL":
				if ( $info == '' ) {
					
					$info = 'Replication State: CRITICAL Error: ' .$LastErrno. ': ' .$LastError. ' Replication Delay (Seconds Behind Master): ' .$SecondsBehindMaster;
			
				}
			break;
			
		}
	
	}

	// Need to set type to integer for exit to handle the exit code properly
	$status = $statuses[$state];
	settype( $status, "integer" );

	fwrite( STDOUT, $info );
	exit( $status );


?>

So weird, Connecting HavenCo and Red Hat

| 0 Comments | 0 TrackBacks
| | | |

It's a bit weird to be reading about Red Hat posting $1 billion in revenue in a year for the first time or this Ars article by James Grimmelmann about HavenCo since, to me personally that's part of my past.

See, as Grimmelmann notes, HavenCo's chairman of the board was Sameer Parekh whom I worked with/for at a different internet security company, C2Net Software. Almost everything Grimmelmann writes about I remember first-hand. I even remember reading the Wired articles he references (and how could I forget Neil Stephenson's Cryptonomicon, it's still one of my favorite novels).

Around the same time, Steven Levy wrote the non-fiction book Crypto, which tells part of the history of securing communications and modern computing networks; from Whitfield Diffie and the initial concerns of privacy to Netscape and the creation of SSL.

Alas, Levy's book is already 10 years old. While it covers the basis for the cryptography that powers today's Internet, it doesn't necessarily tell the whole story. Parts of the story that are missing, such as the short comings of SSL and its open standard successor, TLS, the adoption of "virtual private networks", that allow the use of primarily public networks, such as the Internet, to connect remote points securely, as if part of a central private network or that much of today's emails remain in "plaintext", despite the availability of encryption methods such as PGP, is missing.

Most of what happens on today's Internet every moment, took root around the same time of Levy's work, 1999-2001, when I was right there working for C2Net with its own vision on how to secure everyday communications on the "Information Superhighway".

And what happened to C2Net? Well it was sold, to......Red Hat of which I become an employee of (and then ex-employee of).

So yeah, I have this odd, I remember that (HavenCo) and oh, good for them (Red Hat). Then I think wow, I wasn't just a part of the some pioneering companies "back in the day", but also witnessed some completely cutting edge stuff that's only now being understood by the world at large.

So weird.

Chicago's Technology Scene, circa 2011

| 0 Comments | 0 TrackBacks
| | | |

Roughly this time two years ago, I attended an entrepreneur and startup event in D.C. called Social Matchbox which I noted in a subsequent blog post of the same name.


While I know organizations and companies like those exists in many places I have yet to find a loose confederation of those individuals, organizations and companies similar to what I experienced in the Bay Area here in Chicago where I currently reside. I have however found such a network in Washington, DC and it is known as Social Matchbox.


Last year, I asked with all the things going for Chicago, high profile tech companies, top tier universities and a diverse population, "why don't tech people think of Chicago along the lines of a San Francisco, Seattle, New York, Boston or Austin?" Perhaps, I surmised, it was simply "that Midwestern work ethic, if we just work hard; the rewards and recognition will come on their own."

This year, I watched as the Chicago tech community rallied around TechWeek, a "celebration of a new technology epicenter unique among major world cities."

It's a start.

Alas, while I didn't get to attend any TechWeek specific events, someone has to keep an eye on the servers and write code for all these newfangled ideas, I did get a chance to meet up with a few other developers at the Chicago Open Data Hackathon. As a WTTW article wrote:


Chicago's city government has worked on developing its high-tech cred by initiatives such as publishing new city data sets online weekly and refreshing those sets nightly in order to increase the city's transparency ... On July 16, Google Chicago hosted a Chicago Open Data Hack Day. The event gathered 60 engineers, designers, and entrepreneurs to share ideas about using the City's open data to create new products and services."1


In my own participation of the hackathon, I did get a chance to create, what I hope will be, a useful PHP library (more on that later).

It's good to see Chicago get a little more boisterous about its tech creds. But it is also good to see Chicago go about about business as most Chicagoans do, as I did last week. As Orbit's Andy Crestodina notes "in a refreshing way, TechWeek was nothing new. Chicago has been doing this a long time and the tech community is an experienced crowd, many of whom have seen the boom and bust (and more booms and more busts) and lived to tell about it."

There is an end in all this technology means. We build apps to communicate. We open data to map relationships and piece out new meaning. The technology isn't an end unto itself. We work in technology to get something done.

And that's the innovation Chicago can bring to the table, even if it mostly goes unheralded.




1 I don't recall 60 people offhand, I probably would have put the count at around 30-40. But the hackathon was an all-day event and I know some people came and left, so, 60 total for the whole maybe true.

16 of 20: Personal Artifacts from the Early Years of Linux

| 4 Comments | 0 TrackBacks
| | | |

As the story goes, in 1991 Linus Torvalds, then a student at the University of Helsinki, began work on the core component, the kernel, of his own operating system based off of Andrew S. Tanenbaum's teaching operating system MINIX.

Since releasing the source code 20 years ago, and under his guidance ever since, the Linux kernel has become central to the development of devices from smartphones to super computers.

But for most people, when they think of Linux, they think of Linux distributions, software that includes the Linux kernel and supporting resources that complete the basic requirements of an operating system.

A few weeks ago the Linux.com Editorial Staff posted an article on one of the earliest distributions of Linux, Slackware. That in turn got me thinking about some of my early exposure to Linux in the late 90s, and what media I might still have from that time.


Linux
My personal copy of Andrew S. Tanenbaum's Modern Operating Systems from my Computer Science days along with Daniel A. Tauber's The Complete Linux Kit and Randy Hootman's Linux - Installation and Beyond 

A quick scan of my bookshelf revealed a couple of interesting artifacts. One is a copy of a book, "The Complete Linux Kit", a 1995 title that included a CD-ROM with the Slackware Linux distribution1 that was compiled by Daniel A. Tauber and printed by Sybex.

The second is a video, "Linux - Installation and Beyond" which is described as a "three hour seminar showing installation of Red Hat Linux, Slackware Linux, Yggdrasil Plug-and-Play Linux" featuring Randy Hootman and was distributed by Yggdrasil Computing. Alas while Red Hat and Slackware still exist, in one form or another, the Yggdrasil distribution is no longer maintained and the company no longer exists.

In a small effort to share what Slackware was like, "back in the day" I offer this copy of Randy Hootman's tutorial on installing and using Slackware Linux version 2.3:

As a small bonus, and because I personally worked for Red Hat, once upon a time, here is Randy on Red Hat Linux v2.0:


GNOME Linux Desktop v1
Speaking of Red Hat, a screenshot of my Linux Workstation in 2000, running GNOME v1




[1] Where the CD has since gone to, I'm note sure . Probably in a book of CD-ROMs in the storage.


The Beginning of the End of the Ballmer Era at Microsoft?

| 0 Comments | 0 TrackBacks
| | | |

Something has been puzzling me for awhile now. I've been wondering, where is the outrage, the angst and the out right hostility toward Microsoft CEO Steve Ballmer? I mean where are the industry pundits, Wall Street analysts, shareholders and Microsoft insiders calling for his head?

And then I saw Ben Brooks' blog post this past week entitled The Ballmer Days are Over and I realized, here it is, the beginning of the end of Steve Ballmer at Microsoft.

What am I babbling about?
Microsoft is Microsoft because of exactly two pieces of software, Windows and Office. Without Windows and Office there would be no Microsoft. No Xbox, no Windows Phone. Nor would they have been able to buy their way online with Hotmail or Skype.


But Microsoft has a problem. The market for its crown jewels have matured. The PC industry has stagnated. Sure, Microsoft can release a new version of Window or Office every few years, but customers, individuals and businesses, no longer feel compelled to spend several hundred dollars on the very latest version of either product.

Worst yet, sentiment seems to have turned away from Microsoft, if I'm replacing an old PC with a new one, the consumer thinking seems to go, why not just go ahead and get a Mac?1

So, what is Microsoft's future, if not Windows and Office upgrades?

The Internet Tidal Wave
Since May 1995, Bill Gates' company has set its sight on a future dominating the online world in a manner similar to the desktop. But from AOL to Facebook, someone always seems to beat them to the punch.2

That in itself probably explains their $8.5 billon acquisition of Skype, beat Google or Facebook for once.

But beat them to what exactly? As Andy Ihnatko pointed out on his own blog, there are three reasons why Tech Company A might buy Tech Company B. Note that none of them are "beat Tech Company C to the punch."

The closest justifiable reason from Ihnatko's list is "Company A gets to 'level up' instantly without having to spend years engaged in a long, expensive and uncertain dungeon crawl."

Yet, it is not like Skype is the hot new it online and as Brooks hints at, how many mistakes would Microsoft have to make to make $8.5 billon a reasonable trade off to "level up"? Surely nobody thinks "Apple spent anything close to $1 billion dollars building FaceTime?"

Sure Microsoft gets a technology it can instantly drop into Windows and Office their by given users a reason to upgrade. But, if they had developed something on their own, dropped that technology into Windows and Office for free, they could have tens of millions of potential paying customers of their own online conferencing service instantly for potential a lot less money.3

Yes, of course the business unit that makes money off of Windows and Office upgrades loses money on a free upgrade, but remember Windows and Office are the past, online is the future.

Well, maybe online is the future? Here's the rub, and why I've been thinking Ballmer's days are numbered for awhile now, Microsoft doesn't know what exactly their future online is. Don't believe me? Take a look at this:



Microsoft is chasing everybody online and gaining on nobody, they a literally losing millions of dollars each quarter. Add in the setbacks Microsoft has had in other business areas; mobile, with Zune and Kin and the challenges ahead for the next generation of gaming consoles against their one true success, the Xbox and well, one has to wonder, how much longer does Steve Ballmer have as CEO of Microsoft?




[1] Apple loves to tell people that since the opening of their stores 10 years ago, the majority of customers walking out with a new computer are first time Mac owners.


[2] Think about it, Internet Explorer the answer to Netscape, MSN and Hotmail was Microsoft's answer to AOL, Bing to Google, et al.


[3] Of course, we can't forget the legal trouble Microsoft got itself into the last time it tried to integrate online features into the core of Windows.

Saying No to Transparency Budget Cuts

| 0 Comments | 0 TrackBacks
| | | |

In the past few years we have seen an explosion in our ability to access information at anytime and from just about anywhere. The Internet in general has a lot to do with this explosion. Being able to access the Internet from just about anywhere has simply reinforced its importance.

A secondary development that has impacted our relationship to information is known as "Web 2.0". The central tenant of Web 2.0 is that websites not only facilitate in the sharing of information, but also the interoperability of information across the Internet.

To do this web developers separate out their concerns, the design of the website from its logical behavior, the information from the logic. This allows greater flexibility in developing the over all web-based application, applying computing resources specific to the concern in question, say storage of application data, as needed.

Given a proper interface a web developer can create a website "mashup" pulling data from numerous "outside" resources into a unique and useful application. One of earliest examples of this type of web application was a website called chicagocrime.org[1] that combined Google Maps with the Chicago Police "blotter" to provide a digital map in which a user could locate informtion about criminal activity at a given location in the city.

Recently the Obama Administration launched a number of government transparency initiatives designed to create data stores of federal information, akin to the local police blotter. By providing these data stores the administration's goal was to increase public access to high value information in a format that could be easily incorporated into a larger web application.

Yet, some of the most important technology programs that keep these data stores available are in danger of being eliminated. Data.gov, USASpending.gov, the IT Dashboard and other federal data transparency and government accountability programs are facing a massive budget cut, from $34 million to $8 million or less.

Government information must be available online, in real time and in machine-readable formats. Doing so can increase involvement in our democracy as non-for-profit organizations, for-profit businesses and independent developers find new ways to enable us in accessing and sharing information.

It seems stupid to let these new initiatives go dark. After all, why should we be able to know what is going on in our neighborhood, but not in our country as a whole?

Take action now to Save the Data, http://sunlightfoundation.com/savethedata




[1] Chicagocrimes.org has since morphed into EveryBlock.com, a site focused on collecting all of the news and civic goings-on related to a specific city neighborhoods, As of March 2010 they cover 16 metropolitan cities in America and their neighborhoods, providing a "news feed" for a given city neighborhood or block.

 

Old (High) School Apple Computer Club

| 0 Comments | 0 TrackBacks
| | | |

Brand loyalty is the marketing term used to describe a customer's attitude toward a brand (or company) which is exhibited through the consumer's behavior. The most desired behavior being turning a customer into a repeat consumer, but brand loyalty can also be exhibited in other ways as well.

For my two cents, there are a few good reasons why I follow Apple and their products. To be sure Apple, as a tech company, has been wildly successful in recent years. They have succeeded with their recent product innovations, from the iPod to the iPad. But they have also taken great pains to reinvigorate and enhance their "traditional" line of computers along the way. To work in the industry, even if it's in a different segment, and not take note of Apple would be foolish. 


But for me it's more than that. Apple isn't just great in the here and now with a tantalizing promise of the future. Nope, for me Apple is also about the past. Any computer first you can think of for me occurred on an Apple computer, specifically, the Apple ][ series of computers.

Sure the first home video game console I ever played would have been an Atari 26001. But the first "computer" would have been an Apple ][. The first computer my family owned, an Apple //e. The first computer I learned to program on? You get the drift.

I mention all of this because a few days ago, while rummaging through some old computer stuff I found a form letter from Apple thanking me for a submission to a programming contest. I don't remember much of the particulars of the contest, but judging by the letter as well as the printouts paper-clipped to the letter, it looks like it was a contest designed to build on Apple's then strong connection with education2.

Apple Computer Club Letter

Aside from the brand building, the community Apple built and sponsored helped me decide that computers and programming was an interest of mine that I could do "in the real world."

Who wouldn't be "loyal" to a "brand" that helped defined what they do for a living?




1  However, the first game console my family every own was a ColecoVision.


2  Not that Apple doesn't have a strong connection to education now, but it's not as high a business priority with regards to revenue as it was back then.

Chicago's Tech Scene: A Study in Contradiction?

| 0 Comments | 0 TrackBacks
| | | |
DSC01031

Image by pdweinstein via Flickr

One of the things that I have yet to get a handle on is the technology scene in Chicago. How can the country's third largest city, home to companies from Motorola to Threadless not have a thriving, engaging tech populous?  Why don't tech people think of Chicago along the lines of a San Francisco, Seattle, New York, Boston or Austin?

It's something I ponder once and awhile. Mostly I think we here in Chicago have an inferiority complex. Or maybe it has to do with that Midwestern work ethic, if we just work hard; the rewards and recognition will come on their own.  

I mean besides Motorola and Threadless, I can think of a number of established tech companies such as Abbott Laboratories, Tellabs and NAVTEQ. Or trendy web companies such as Orbiz, 37signals, Groupon and Grub Hub. And that's not including non-Chicago companies that have some sort of technical presence in the area, such as Google, BP or AT&T. Or the countless under-the-radar companies such as Orbit Media Studios.

Mix in top-tier schools in the region such as; Northwestern University, University of Illinois at Urbana-Champaign and the University of Wisconsin at Madison as well as federally funded research institutions Argonne National Labs and Fermilab and well, I think you start to see my point.

Thankfully, I'm not the only one who ponders why Chicago isn't seen as a tech city.

Insight Labs is leading a discussion in connection with midVenturesLAUNCH called "Not Being Silicon Valley" in which they ask questions such as "If Chicago were the new center of the technology world, what would it look like?" "What assets and advantages could we leverage to make Chicago the dominant technology powerhouse?" "What changes must occur to make the Second City number one for tech startups?"

Naturally my own answer jumps off with my thought that Chicago isn't seen as a tech-centric place to be, that there is no tech scene or as I commented, "I 'knew' going in that if I really wanted to make a career as a programmer I would end up working in Silicon Valley. Eventually I returned to Chicago (the Bay Area is damned expensive, even for a well-paid programmer) but even now I wonder if I'm missing on new opportunities by staying in Chicago."

More to the point of answering the question at hand, what changes must occur? I say understanding that we already have healthy technology assets, that opportunities do exist and a change of outlook is needed "to do a better job of recruiting and mentoring" in building a vibrant tech community.

What do you think?

What is Reliable Web Hosting?

| 0 Comments | 0 TrackBacks
| | | |

[Editor's Note:This guest post is written by Kirsten Ramsburg of WebHostingSearch, enjoy]

When a business decides to start a new website, they tend to not be particularly concerned with the type of hosting they will use. Instead, they are focused on getting their site online quickly and generating new sales through information dissemination or e-commerce. However, it is important for anyone planning on creating a website to consider the available options of web hosting and how they might affect their site.

There are many companies that offer cheap web hosting services for small sites. Almost all of them use either Windows or Linux as a hosting platform (there are a few alternatives like Unix or Mac hosting, but these are exceedingly rare). Contrary to popular belief, it is not necessary to use a Windows hosting package if you run Windows on your desktop computer. The hosting server is completely separate from your desktop and is typically accessed through third-party software, so you can use a Linux server even if your desktop is running Windows, OSX, or even Solaris.

Regardless of the type of hosting, the most important concern for any site is to find a reliable web hosting solution. For example, it is vital that the company you select has a guaranteed uptime of 98% percent or higher. This means that the server will be offline for less than fourteen hours a month for maintenance, or other reasons. Most web companies today guarantee 99% uptime and if they fail in delivering this you won't have to pay for that month. Be wary of any company that does not guarantee this minimum amount of uptime.

Another important thing to consider is the possibility of infiltration by a malicious third-party. Though both types of servers continue to improve their security systems, Windows is slightly more prone to hacker attacks because it is built on the Windows framework. Since the majority of viruses and other malicious software is designed specifically to attack Windows, servers based on Windows are a little more vulnerable. However, both types of servers depend primarily on the administrator to maintain security. In other words, it's better to have a competent administrator running a Windows server than a careless administrator running a Linux server.

The third important thing to consider when selecting a reliable web hosting companies is the age of the hosting company. Many newer services offer amazingly inexpensive rates, but the services and support are not always as consistent as with established hosts. There are even instances of companies selling hosting packages only to close down and disappear with their clients' money. Generally speaking, a company younger than two years is risky.

Finding reliable web hosting is a challenge that most new companies and many private individuals will have to face at some point. However, keeping these three points in mind will greatly improve the odds of finding a hosting company that will allow you to focus on actually running your business instead of worrying about your site.

How Google Search Works: A Detailed Flowchat

| 0 Comments | 0 TrackBacks
| | | |

This morning technabob pointed out the following flowchart, on how Google's world famous Search feature works, by PPCBlog

How Does Google Work?
Infographic by PPC Blog

The chart itself doesn't dive into how exactly PageRank works so much as covers all the steps and guidelines used to discover, rank and report on a web page relative to an user's query.

As such, the text at the end that proclaims "and all of this is done in less than second, 300 million times a day" is a bit of a misstatement. That statement is valid for everything after the point of "User queries Google". Everything before that is done in advance, in order to process, index and prepare for answering the user query in a quick, meaningful manner.

Also, that sidebar seems to leave out that those data centers are filled with an estimated 100,000+ servers built using "off-the-self" PC hardware that run highly customized software built on open source software such as Apache (quite possibly) and Linux (definitely).

Of course Google didn't exactly start out as the 800-pound gorilla.

About the Author

Paul is a technologist and all around nice guy for technology oriented organizations and parties. Besides maintaining this blog and website you can follow Paul's particular pontifications on the Life Universe and Everything on Twitter.

   
   


Subscribe:
Add to Google Reader or Homepage
Add to My AOL

Add to netvibes
Subscribe in Bloglines
Add to Technorati Favorites

Powered
CentOS
Apache
MySQL
Perl
Movable Type Pro