I think, therefore I am. I am, therefore I sail

Category: NNU Page 1 of 6

Diane Leclerc or John Wesley’s Grandfather in Disguise?

I ran across a picture of John Wesley’s grandfather on the Wesley Center website today. He bears a striking resemblance to Diane Leclerc, a religion professor at NNU. Is Diane the almighty John Wesley’s grandfather come back to haunt us? You decide.

2010 Photoshoot with my Bus

A friend needed a subject for a photoshoot and asked me if she could use me and my 1965 VW Bus. Of course I love pics of my Bus so I readily agreed. Here are some of the results.

Click a pic to view the gallery

What is an Extranet?

extranet

Intrigued by why my Systems Analysis and Design professor consistently uses the word ‘extranet’ in a form in which I am unfamiliar I have embarked on a quest for realization. It is my extreme hope that in my quest and answer will reveal itself in a form with which I may enhance and compliment my currently miniscule knowledge of all things.

Let us start with what I currently understand an extranet to be:

An extranet is an extension of your internal network (also called the intranet, though I may have to defend that later as well) to the outside. This ‘external’ network may run over the internet (a large group of interconnected networks), or it may be a private connection.

What I currently understand the extranet to exist for:

The extranet is a network designed to connect with another private user or private network, primarily used as a connection between businesses or locations. Extranets do not need to be through businesses only, individuals who own a network (such as a home network) may link their network with an associates network via an extranet. One of the most common extranet configurations is through a Virtual Private Network (VPN). It could probably be argued that internet gaming servers use extranets for their players, however I am not going to go into that, I simply want the possibility to be seen.

What I currently understand extranets to be used for:

An extranet is commonly used as the connection through which another party can access a company’s resources. This may be data shares (such as documents), it may be to access an outward facing web application, it may be to access programs which other organizations (such as product suppliers) can use. There are about as many uses for an extranet as there are ideas you can conceive.

How I currently understand the word ‘extranet’ to be misused:

The word ‘extranet’ is misused as a label for what is available on the extranet. Saying something like “the extranet is the application suppliers use” is a mislabeling of the extranet. The proper wording should have been “the application suppliers use is available on the extranet”. This properly shows that the extranet is not the application but rather the method of accessing the application. Similarly saying “the extranet is the developer’s file repository” is another mislabeling. “The developer’s file repository is on the extranet” is the proper wording.

I currently understand ‘extranet’ is misused because:

As with all other context sensitive disciplines, technology has it’s own subset of words and ideas those not a part of it do not understand. Some call this a ‘lingo’. Often those outside the discipline use a term incorrectly and it is easier for those within the discipline to simply understand what is meant than to explain to the user why they are using a term incorrectly. Sometimes this leads to a word or phrase becoming common language. That presents a danger to those within the discipline to whom the errant word or phrase belongs. It creates a sense of confusion and loss of dis-ambiguity that can be hard to correct later on, thus it is important that those inside a discipline understand those words or phrases that are incorrect and how to reinterpret them properly.

How I went about determining what ‘extranet’ means:

  • First I hit Wikipedia. Though many in education believe Wikipedia to be inaccurate and full of errors, Wikipedia in fact has a full staff of people dedicated to ensuring information is correct and highlighting area that may be sketchy and are in need of support. Wikipedia is accurate enough now that much of it is released in book form, similar to that of an encyclopedia.

  • Next I went to http://google.com to verify Wikipedia’s information. I used the following search terms:

    • extranet

    • what is an extranet

  • I compiled a listing of definitions which can be found below, and read several articles, which will also be linked below.

Here are some of the definitions I found on the first page:

  • A private computer network that uses Internet protocols and can be accessed by authorized individuals via the Internet.

  • The extension of a company’s intranet out onto the Internet, e.g. to allow selected customers, suppliers and mobile workers to access the company’s private data and applications via the World Wide Web. Generally an extranet implies real-time access through a firewall of some kind.

  • A network that supplements a closed intranet by providing access to customers, suppliers, subcontractors, and others outside the organization who have a need for selective information from the organization. It is not accessible to the Internet at large.

  • A secure extension of an Intranet that allows external users to access some parts of an organisation’s Intranet

  • Similar to an Intranet, an extranet is designed for authorized access by outside users.

    • http://www.odweb.com/resources/glossary.php#extranet

  • Private networks, connected by the Internet, which allow only users who have a valid password or digital certificate to use the system. The Internet, by comparison, allows any user to access without the verification of the identity of the user.

  • An extranet is a software application that delivers information from within an organisation to a defined group of users outside of that organisation, typically customers, suppliers or business partners. For example, a telephone company may deliver billing information to it’s customers over the web via an extranet.

    • http://www.oranz.co.uk/glossary_text.htm

    • Ben Note: This definition seems to both misuse and use correctly from my current understanding. Take note that it first says it is an application (misuse) and then says via, which implies the extranet is the delivery medium.

  • An intranet that is accessible to computers that are not physically part of a company’s own private network, but that is not accessible to the general public. For example, an extranet allows vendors and business partners to access private areas of a company web site. Users from outside the company’s network usually access the extranet using VPN.

  • A private computer network that uses Internet technology to link an organisation with its suppliers, customers and other collaborators.

  • An extranet is a private network that uses Internet technology and the public telecommunication system to securely share part of a business’s information or operations with suppliers, vendors, partners, customers, or other businesses. An extranet can be viewed as part of a company’s intranet that is extended to users outside the company. It has also been described as a “state of mind” in which the Internet is perceived as a way to do business with other companies as well as to sell products to customers.

  • An “intranet” is the generic term for a collection of private computer networks within an organization. An “extranet” is a computer network that allows controlled access from the outside for specific business or educational purposes. Intranets and extranets are communication tools designed to enable easy information sharing within workgroups.

  • An extranet is a private virtual space to securely collaborate, share information or integrate operations with travelling teams, suppliers, vendors, partners, or customers. A few examples are a sales extranet containing order forms and client directories for the sales team, a partner extranet enabling management of joint tasks, or a customer extranet portal where you collaborate on specifications documents with clients.

  • Answers.com shares several definitions:

    • An extension of an institution’s intranet, especially over the World Wide Web, enabling communication between the institution and people it deals with, often by providing limited access to its intranet.

    • A Web site for customers rather than the general public. It can provide access to research, current inventories and internal databases, virtually any information that is private and not published for everyone. An extranet uses the public Internet as its transmission system, but requires passwords to gain entrance. Access to the site may be free or require payment for some or all of the services offered.

    • Private network that uses the Internet protocols and the public telecommunication system to securely share part of a business’s information or operations with suppliers, vendors, partners, customers, or other businesses. An extranet can be viewed as part of a company’s Intranet that is extended to users outside the company.

    • http://www.answers.com/topic/extranet

Articles I read:

My Conclusion:

The large majority of the articles speak of an extranet as being a network that is connected into and resources are utilized over. There was an article that speaks of an extranet as being a website, however it seems to me that based off the weight of the articles speaking of an extranet as a network that the author of the article using the website as an example of an extranet must be misusing the word. What the author is most probably doing is using the extranet as an alias for what is running on the extranet. If the website is the only thing running on the extranet it might possibly be acceptable to alias the extranet to the website, however the questions most likely asked of a network administrator are “What does your extranet do?”, and “What runs on your extranet?”. The answer to the first may look like “It is a website that does…”, however more than likely the response would sound like “It runs our outward facing website”, which implies that the extranet carries something and is not the application itself. Any answer to the second question assumes the extranet is the medium for transport, not an application.

What I now understand an extranet to be:

An extranet is an extension of an internal network. Extranets seem to primarily be run over the internet, though private connections may be used. Sometimes an outward facing web application is called an extranet, though it seems that it is simply delivered over an extranet as it’s only service. It seems to me that saying a web application that suppliers use is called an extranet may be acceptable here, but only if the person understands that the ‘extranet’ used is not referring the actual network, but to an application running on the network. It must be translated in the person’s head to be proper.

What I now understand extranets to exist for and be used for:

Extranets are used by external networks and users to connect them into a private network, usually at a business. Using an extranet allows the outsider to utilize network resources, such as network data shares (documents) and applications, that are not normally available to the general public.

Final comments:

I believe that an extranet is an extension of an intranet that can be used by outsiders to gain access to network resources, just as my original understanding stated. I also think that extranet is a term that can and is misused, both in the professional and academic worlds. There are many words currently in the english dictionary that have more than one unique meaning. It could be possible that what I am seeing is a shift towards creating an additional definition for extranet, however the evidence currently overwhelmingly is in favor of my original definition. As this is the case, great care should be taken when using extranet to refer to anything other than the network itself. If extranet is used to denote the application running over the extranet it should be known by all parties involved that the extranet term in this instance is being used not in the standard definition way, and the listeners should assume the application is in fact simply a service provided by the extranet, and not the extranet itself.

C++: Virtual Token Ring Network

My networking professor handed out a group project to build a virtual token ring network and I thought I would share my findings here. Before you say anything, I know it is not a true token ring network, but it sorta acts like one which was more the goal of the project.

My group partner and I went through several different models, which included; building a virtual DHCP server and virtual cables, telling the program at run time who it’s neighbor was, sending out a broadcast and having the virtual nodes organize themselves into a network, and a few others. We finally settled on pulling out a switch and creating a network of static IPs that we controlled. The program attempts to send to the next IP number from itself and if it cannot find it the token is sent to the first node. An unintended side effect is that we have the ability to add and remove machines at the highest IP number without breaking the ring. The requirement was only that it worked with three machines.

This code is not the cleanest, nor is it in any way awesome, and there are probably a ton of things I can take out of it to make it better, but it runs beautifully on the Dell Mini 10s running Ubuntu that I tested it on with a 5 port Netgear switch. Just make sure your network is in the range 192.168.0.1 and the machines go in sequential order (e.g. 192.168.0.1, 192.168.0.2, 192.168.0.3)

/*
 * Virtual Token Ring Network
 *
 * Networking II
 * Spring 2009-2010
 * Prof: Xueyi Wang
 * Group: Ben Lobaugh, Jake Bodenstab
 *
 * Project Description: Sorta creates a virtual token
 *      ring network simulation
 */

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

using namespace std;

// Global Constants and Variables
int PORT = 55555, node, s_sockfd , s_clilen, s_n;
struct message{
        int sender;
        int receiver;
        string message;
};
struct token{
        int type; // 1 = empty token, 2 = token with data
        int valid;
        message msg;
        int checksum;        
        int turn;
};
struct sockaddr_in s_serv_addr, s_cli_addr;

// Function Definitions
void getToken(char* token);
void sendToken(char* token);
bool messageExists();
void createServerSocket();
void error(string msg);


int main(int argc, char** argv) {
        char* token;
		string start_token;

		node = atoi(argv[1]);
		cout << "Node: " << node << endl << endl;
		
		createServerSocket();
		
		if(node == 1) {
			cout << "Start token? (y/n): ";
			cin >> start_token;
		
			if(start_token.compare("y") == 0) {
				cout << "\nInitializing Token\n";
				sendToken(token);
			} 
		}
		
		cout << "**** Ctrl-C Terminates **** \n\n";

		while(1) {
			getToken(token);

			if(token[0] == 2) {
				// Token Contains a message
				if(token[2] == node) {
					// Message is from us. Erase it and change token type to 1
					token[2] = -1;
					token [3] = -1;
					token[4] = -1;
					token[0] = 1;
				} else if(token[3] == node) {
					// Message in token is for us. Display it
					cout << "--------------\n";
					cout << "From: " << token[2] << endl;
					//cout << token.msg.message << endl;
				}
			} else if(token[0] == 1) {
				// Token does not contain a message
				if(messageExists()) {
					// There is a message to send. Load message into token and change type

					 // Open file ./message.tok
					 // Read first line as the receiver
					 // Rest of file is message 
					 
					token[0]  = 2;
				}
			} else {
				// This token is a type we do not know about
				// Don't worry about this token, just forward it
			}
			sleep(2);
			// Send token along it's merry way
			sendToken(token); 
		}

       return (EXIT_SUCCESS);
}

void getToken(char* token) {
	int newsockfd;
	/*
	 * Create a server socket on PORT
	 * Listen on socket until message is received
	 * If message is of type token load it into token
	 * Close socket
	 * Return filled token
	 */
     listen(s_sockfd,5);
     s_clilen = sizeof(s_cli_addr);
     newsockfd = accept(s_sockfd, 
                 (struct sockaddr *) &s_cli_addr, 
                 (socklen_t*) &s_clilen);
     if (newsockfd < 0) 
          error("ERROR on accept");
     bzero(token,256);
     s_n = read(newsockfd,token,255);
     if (s_n < 0) error("ERROR reading from socket");
     
	cout << "I've got the token\n";
}

void createServerSocket() {

	s_sockfd = socket(AF_INET, SOCK_STREAM, 0);
     if (s_sockfd < 0) 
        error("ERROR opening socket");

	int on = 1;
	  if ( setsockopt ( s_sockfd, SOL_SOCKET, SO_REUSEADDR, ( const char* ) &on, sizeof ( on ) ) == -1 )
	    error("ERROR setting socket options");

     bzero((char *) &s_serv_addr, sizeof(s_serv_addr));
     s_serv_addr.sin_family = AF_INET;
     s_serv_addr.sin_addr.s_addr = INADDR_ANY;
     s_serv_addr.sin_port = htons(PORT);

     if (bind(s_sockfd, (struct sockaddr *) &s_serv_addr, sizeof(s_serv_addr)) < 0) 
              error("ERROR on binding");
}

void sendToken(char* token) {
	int to;
	string ip = "192.168.0.";
	
	// Start Socket Vars
	int sockfd, n;
    struct sockaddr_in serv_addr;
    struct hostent *server;
	// End Socket Vars
		
	// Find the next node to send to
	to = node + 1; 
	std::ostringstream sin;
	sin << to;
	std::string val = sin.str();
	ip.append(val);
	
	/*
	 * Create socket connection to next node
	 * Send token
	 * Close socket
	 */
    sockfd = socket(AF_INET, SOCK_STREAM, 0);
    if (sockfd < 0) 
        error("ERROR opening socket");

	try {
	    server = gethostbyname(ip.c_str());
	    if (server == NULL) {
	        error("ERROR, no such host\n");
	    }

	    bzero((char *) &serv_addr, sizeof(serv_addr));
	    serv_addr.sin_family = AF_INET;
	    bcopy((char *)server->h_addr, 
	         (char *)&serv_addr.sin_addr.s_addr,
	         server->h_length);
	    serv_addr.sin_port = htons(PORT);


	    if (connect(sockfd, (struct sockaddr*) &serv_addr,sizeof(serv_addr)) < 0) 
			throw 1;//("ERROR connecting");
		
		cout << "Token Sent To: 192.168.0." << to << endl << endl;
	} catch (int i)  {
		cout << "Could not contact " << ip << " sending to 192.168.0.1\n\n";
		server = gethostbyname("192.168.0.1");
	    if (server == NULL) {
	        error("ERROR, no such host\n");
	    }

	    bzero((char *) &serv_addr, sizeof(serv_addr));
	    serv_addr.sin_family = AF_INET;
	    bcopy((char *)server->h_addr, 
	         (char *)&serv_addr.sin_addr.s_addr,
	         server->h_length);
	    serv_addr.sin_port = htons(PORT);


	    if (connect(sockfd, (struct sockaddr*) &serv_addr,sizeof(serv_addr)) < 0) 
	        error("ERROR connecting");
	
	}

	bzero(token,256);
    n = write(sockfd,token,strlen(token));
    if (n < 0) 
         error("ERROR writing to socket");
    
	close(sockfd);
	unlink(ip.c_str());
}

bool messageExists() {
	bool ret = false;
	return ret;
}

void error(string msg) {
    perror(msg.c_str());
    exit(0);
}

Back in Nampa for the 2009-2010 school year

I had a great summer, but unfortunately it is once again time to get back to Nampa for school :(. Road tripped it back with Jordan in my 1965 VW Bus. It was a good trip over all. We started around 3.30 PM and the air was hot! We sweated along for a few hundred miles before we gained enough elevation and evening approached to cool us off. The bus complained about the heat as well. Had to pull off a couple times to let the old lady cool down. Jordan snapped a fabulous photo after a short break.

thumb_img_2730

As proof, I snapped this. We were going up hill at the time as well. Not really steep, but it was a long drag.

thumb_img_2740

I figured the VWers will still be skeptical, so I shot a video cruising past a semi right after that picture.

Spent an amazingly hot next day pulling all my stuff out of storage and setting it up. I was sweating so much that my clothes were completely soaked! And the worst part was my shower drain was busted so I did not get to shower until about 11 that evening. Here is a video tour of my apartment. I really like how it turned out.

Page 1 of 6

Powered by WordPress & Beards